Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

alsad_stream_list.h

Go to the documentation of this file.
00001 #ifndef __ALSAD_STREAM_LIST_H
00002 #define __ALSAD_STREAM_LIST_H
00003 
00004 
00017 #include <stdio.h>
00018 #include <stdlib.h>
00019 #include <unistd.h>
00020 #include <sys/time.h>
00021 #include "circ_buff.h"
00022 #include "alsad_net_lib.h"
00023 #include "alsad_shared_lib.h"
00024 #include "alsad_data_pipe_list.h"
00025 
00026 
00027 struct alsad_stream_node{
00028    int closing;
00029    alsad_stream_props_t *stream_props;
00030    circ_buff_t *audio_circ_buff;
00031    alsad_data_pipe_list_t sources;
00032    alsad_data_pipe_list_t sinks;
00033 };
00034 
00035 typedef struct alsad_stream_node alsad_stream_node_t;
00036 
00037 
00038 struct alsad_stream_list{
00039    int shutdown;
00040    linked_list_t *streams;
00041 };
00042 
00043 typedef struct alsad_stream_list alsad_stream_list_t;
00044 
00045 
00046 struct alsad_send_stream_list_args{
00047   int sock;
00048 };
00049 
00050 typedef struct alsad_send_stream_list_args alsad_send_stream_list_args_t;
00051 
00052 int alsad_stream_list_init(alsad_stream_list_t *new_list,
00053                                                unsigned int num_streams);
00054 
00055 void alsad_stream_list_destroy(alsad_stream_list_t *destroy_list);
00056 
00057 int alsad_stream_node_init(alsad_stream_node_t **new_stream_node, 
00058                 alsad_stream_props_t *new_chan, 
00059                 alsad_config_keys_t *keys);
00060 
00061 void alsad_stream_node_destroy(alsad_stream_node_t *destroy_chan);
00062         
00063 alsad_stream_node_t *alsad_stream_list_insert(
00064                              alsad_stream_list_t *head_of_list,
00065                              alsad_stream_node_t *new_chan_node);
00066 
00067 alsad_stream_node_t* alsad_stream_list_remove(
00068                              alsad_stream_list_t *head_of_list,
00069                              unsigned int ident);
00070 
00071 alsad_stream_node_t *alsad_stream_list_find(alsad_stream_list_t *head_of_list,
00072                         unsigned int ident);
00073 
00074 //Leaving out until I know if I need it
00075 //void alsad_print_stream_list(alsad_stream_list_t *head_of_list);
00076 
00077 int alsad_stream_list_send(int sock, alsad_stream_list_t *head_of_list);
00078 
00079 int alsad_stream_list_send_pipes(int sock, alsad_stream_list_t *list,
00080                                                    unsigned int ident);
00081 int alsad_stream_node_compare(void *identifier, void *stream_node);
00082 
00083 int alsad_stream_send_stream_nodes(void *stream_node, void *args);
00084 
00085 
00088 #endif

Generated on Thu Dec 16 23:07:31 2004 for alsad by doxygen 1.3.6