00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00064 #ifndef ORTP_H
00065 #define ORTP_H
00066
00067 #include <ortp/rtpsession.h>
00068 #include <ortp/sessionset.h>
00069
00070 #ifdef __cplusplus
00071 extern "C"
00072 {
00073 #endif
00074
00075 bool_t ortp_min_version_required(int major, int minor, int micro);
00076 void ortp_init(void);
00077 void ortp_scheduler_init(void);
00078 void ortp_exit(void);
00079
00080
00081
00082
00083
00084 typedef enum {
00085 ORTP_DEBUG=1,
00086 ORTP_MESSAGE=1<<1,
00087 ORTP_WARNING=1<<2,
00088 ORTP_ERROR=1<<3,
00089 ORTP_FATAL=1<<4,
00090 ORTP_LOGLEV_END=1<<5
00091 } OrtpLogLevel;
00092
00093
00094 typedef void (*OrtpLogFunc)(OrtpLogLevel lev, const char *fmt, va_list args);
00095
00096 void ortp_set_log_file(FILE *file);
00097 void ortp_set_log_handler(OrtpLogFunc func);
00098
00099 VAR_DECLSPEC OrtpLogFunc ortp_logv_out;
00100
00101 extern unsigned int __ortp_log_mask;
00102
00103 #define ortp_log_level_enabled(level) (__ortp_log_mask & (level))
00104
00105 #if !defined(WIN32) && !defined(_WIN32_WCE)
00106 #define ortp_logv(level,fmt,args) \
00107 {\
00108 if (ortp_logv_out!=NULL && ortp_log_level_enabled(level)) \
00109 ortp_logv_out(level,fmt,args);\
00110 if ((level)==ORTP_FATAL) abort();\
00111 }while(0)
00112 #else
00113 void ortp_logv(int level, const char *fmt, va_list args);
00114 #endif
00115
00116 void ortp_set_log_level_mask(int levelmask);
00117
00118 #ifdef ORTP_DEBUG_MODE
00119 static inline void ortp_debug(const char *fmt,...)
00120 {
00121 va_list args;
00122 va_start (args, fmt);
00123 ortp_logv(ORTP_DEBUG, fmt, args);
00124 va_end (args);
00125 }
00126 #else
00127
00128 #define ortp_debug(...)
00129
00130 #endif
00131
00132 #ifdef ORTP_NOMESSAGE_MODE
00133
00134 #define ortp_log(...)
00135 #define ortp_message(...)
00136 #define ortp_warning(...)
00137
00138 #else
00139
00140 static inline void ortp_log(OrtpLogLevel lev, const char *fmt,...){
00141 va_list args;
00142 va_start (args, fmt);
00143 ortp_logv(lev, fmt, args);
00144 va_end (args);
00145 }
00146
00147 static inline void ortp_message(const char *fmt,...)
00148 {
00149 va_list args;
00150 va_start (args, fmt);
00151 ortp_logv(ORTP_MESSAGE, fmt, args);
00152 va_end (args);
00153 }
00154
00155 static inline void ortp_warning(const char *fmt,...)
00156 {
00157 va_list args;
00158 va_start (args, fmt);
00159 ortp_logv(ORTP_WARNING, fmt, args);
00160 va_end (args);
00161 }
00162
00163 #endif
00164
00165 static inline void ortp_error(const char *fmt,...)
00166 {
00167 va_list args;
00168 va_start (args, fmt);
00169 ortp_logv(ORTP_ERROR, fmt, args);
00170 va_end (args);
00171 }
00172
00173 static inline void ortp_fatal(const char *fmt,...)
00174 {
00175 va_list args;
00176 va_start (args, fmt);
00177 ortp_logv(ORTP_FATAL, fmt, args);
00178 va_end (args);
00179 }
00180
00181
00182
00183
00184
00185
00186 extern rtp_stats_t ortp_global_stats;
00187
00188 void ortp_global_stats_reset(void);
00189 rtp_stats_t *ortp_get_global_stats(void);
00190
00191 void ortp_global_stats_display(void);
00192 void rtp_stats_display(const rtp_stats_t *stats, const char *header);
00193 void rtp_stats_reset(rtp_stats_t *stats);
00194
00195 #ifdef __cplusplus
00196 }
00197 #endif
00198
00199 #endif