52 #if defined(__clang__) || (defined(__GNUC__) && defined(__has_attribute))
53 #if __has_attribute(format)
54 #define LIBSRTP_FORMAT_PRINTF(fmt, args) \
55 __attribute__((format(__printf__, fmt, args)))
57 #define LIBSRTP_FORMAT_PRINTF(fmt, args)
60 #define LIBSRTP_FORMAT_PRINTF(fmt, args)
81 srtp_err_level_warning,
84 } srtp_err_reporting_level_t;
94 typedef void(srtp_err_report_handler_func_t)(srtp_err_reporting_level_t level,
98 srtp_err_report_handler_func_t func);
110 void srtp_err_report(srtp_err_reporting_level_t level,
const char *format, ...)
111 LIBSRTP_FORMAT_PRINTF(2, 3);
122 #ifdef ENABLE_DEBUG_LOGGING
124 #define debug_print0(mod, format) \
125 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name)
126 #define debug_print(mod, format, arg) \
127 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, arg)
128 #define debug_print2(mod, format, arg1, arg2) \
129 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, \
134 #define debug_print0(mod, format) \
136 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name)
137 #define debug_print(mod, format, arg) \
139 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, arg)
140 #define debug_print2(mod, format, arg1, arg2) \
142 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, \
srtp_err_status_t
srtp_err_status_t defines error codes.
Definition: srtp.h:181