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

alsad_channel_list.h

Go to the documentation of this file.
00001 #ifndef __ALSAD_CHANNEL_LIST_H
00002 #define __ALSAD_CHANNEL_LIST_H
00003 
00004 
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <unistd.h>
00008 #include <sys/time.h>
00009 #include "circ_buff.h"
00010 #include "alsad_net_lib.h"
00011 #include "alsad_shared_lib.h"
00012 #include "linked_list.h"
00013 
00014 
00015 struct alsad_channel_node{
00016    int closing;
00017    alsad_audio_channel *audio_chan;
00018    circ_buff *audio_buff;
00019    linked_list *sources;
00020    linked_list *sinks;
00021 };
00022 
00023 typedef struct alsad_channel_node alsad_channel_node;
00024 
00025 
00026 struct alsad_channel_list{
00027    int shutdown;
00028    linked_list *channels;
00029 };
00030 
00031 typedef struct alsad_channel_list alsad_channel_list;
00032 
00033 
00034 struct alsad_send_channel_list_args{
00035   int sock;
00036 };
00037 
00038 typedef struct alsad_send_channel_list_args alsad_send_channel_list_args;
00039 
00040 int alsad_channel_list_init(alsad_channel_list *new_list,
00041                                                unsigned int num_channels);
00042 
00043 void alsad_channel_list_destroy(alsad_channel_list *destroy_list);
00044 
00045 int alsad_channel_node_init(alsad_channel_node *new_channel_node, 
00046                 alsad_audio_channel *new_chan, 
00047                 alsad_config_keys *keys);
00048 
00049 void alsad_channel_node_destroy(alsad_channel_node *destroy_chan);
00050         
00051 alsad_channel_node *alsad_channel_list_insert(
00052                              alsad_channel_list *head_of_list,
00053                              alsad_channel_node *new_chan_node);
00054 
00055 alsad_channel_node* alsad_channel_list_remove(
00056                              alsad_channel_list *head_of_list,
00057                              unsigned int ident);
00058 
00059 alsad_channel_node *alsad_channel_find(alsad_channel_list *head_of_list,
00060                         unsigned int ident);
00061 
00062 //Leaving out until I know if I need it
00063 //void alsad_print_channel_list(alsad_channel_list *head_of_list);
00064 
00065 int alsad_send_channel_list(int sock, alsad_channel_list *head_of_list);
00066 
00067 int alsad_channel_node_compare(void *identifier, void *channel_node);
00068 
00069 int alsad_channel_send_channel_nodes(void *channel_node, void *args);
00070 
00071 #endif

Generated on Thu Oct 7 22:41:33 2004 for alsad by doxygen 1.3.6