00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef rtpsignaltable_h
00021 #define rtpsignaltable_h
00022
00023 #define RTP_CALLBACK_TABLE_MAX_ENTRIES 5
00024
00025 typedef void (*RtpCallback)(struct _RtpSession *, ...);
00026
00027 struct _RtpSignalTable
00028 {
00029 RtpCallback callback[RTP_CALLBACK_TABLE_MAX_ENTRIES];
00030 unsigned long user_data[RTP_CALLBACK_TABLE_MAX_ENTRIES];
00031 struct _RtpSession *session;
00032 const char *signal_name;
00033 int count;
00034 };
00035
00036 typedef struct _RtpSignalTable RtpSignalTable;
00037
00038 void rtp_signal_table_init(RtpSignalTable *table,struct _RtpSession *session, const char *signal_name);
00039
00040 int rtp_signal_table_add(RtpSignalTable *table,RtpCallback cb, unsigned long user_data);
00041
00042 void rtp_signal_table_emit(RtpSignalTable *table);
00043
00044
00045 void rtp_signal_table_emit2(RtpSignalTable *table, unsigned long arg);
00046
00047
00048 void rtp_signal_table_emit3(RtpSignalTable *table, unsigned long arg1, unsigned long arg2);
00049
00050 int rtp_signal_table_remove_by_callback(RtpSignalTable *table,RtpCallback cb);
00051
00052 #endif
00053