alc_channel.h

Go to the documentation of this file.
00001 
00034 #ifndef _ALC_CHANNEL_H_
00035 #define _ALC_CHANNEL_H_
00036 
00037 #ifdef _MSC_VER
00038 #include <winsock2.h>
00039 #include <ws2tcpip.h>
00040 #endif
00041 
00042 #include "defines.h"
00043 #include "utils.h"
00044 #include "alc_session.h"
00045 
00046 #ifdef SSM
00047 #include "linux_ssm.h"
00048 #endif
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053 
00058 typedef struct alc_channel {
00059         
00060         int ch_id;                                                      
00061         struct alc_session *s;                          
00063         const char *port;                                       
00064         const char *addr;                                       
00065         const char *intface;                            
00066         const char *intface_name;                       
00068         int tx_rate;                                            
00069         int nb_tx_units;                                        
00070         BOOL start_sending;                                     
00071         BOOL ready;                                                     
00072         int wait_after_sp;                                      
00074         BOOL previous_lost;                                     
00076 #ifdef _MSC_VER
00077         SOCKET  rx_sock;                                        
00078         SOCKET  tx_sock;                                        
00079 #else
00080         int     rx_sock;                                                
00081         int     tx_sock;                                                
00082 #endif
00083 
00084 #ifdef SSM
00085         struct ip_mreq_source source_imr;       
00087 #ifdef LINUX
00088         struct group_source_req greqs;          
00089 #endif
00090 
00091 #endif
00092 
00093         struct ip_mreq imr;                                     
00094         struct ipv6_mreq imr6;                          
00096         struct sockaddr_in remote;                      
00097         struct sockaddr_in6 remote6;            
00098         struct addrinfo *addrinfo;                      
00099         struct tx_queue_struct *queue_ptr;  
00101         struct alc_list *receiving_list;    
00103 #ifdef _MSC_VER
00104     HANDLE handle_rx_socket_thread;     
00105     unsigned int rx_socket_thread_id;   
00106 #else
00107     pthread_t rx_socket_thread_id;       
00108 #endif
00109 } alc_channel_t;
00110 
00126 int open_alc_channel(alc_channel_t *ch, alc_session_t *s, const char *port,
00127                                          const char *addr, const char *intface, const char *intface_name, int tx_rate); 
00128 
00139 int close_alc_channel(alc_channel_t *ch, alc_session_t *s);
00140 
00141 #ifdef __cplusplus
00142 }; //extern "C"
00143 #endif
00144 
00145 #endif
00146 

Generated on Fri Mar 9 19:59:51 2007 for MAD-FCL by  doxygen 1.5.0