47#define MAX_ERROR_LEN 256
50#define MAX_LOG_LEN 1024
84 const char* level_str;
91 level_str =
"[DEBUG]";
95 level_str =
"[INFO] ";
99 level_str =
"[WARN] ";
103 level_str =
"[ERROR]";
112 fprintf(output,
"%s %s\n", level_str, msg);
128#if defined(__GNUC__) || defined(__clang__)
129__attribute__((unused, format(printf, 2, 3)))
134 if (ctx == NULL || fmt == NULL) {
268 written = vsnprintf(buf,
sizeof(buf), fmt, args);
309 return "Invalid context";
static void mrtk_set_error(mrtk_context_t *ctx, const char *fmt,...)
Set the internal error message.
void * mrtk_context_get_user_data(const mrtk_context_t *ctx)
Get user-defined data.
mrtk_context_t * g_mrtk_legacy_ctx
Global context for legacy RTKLIB trace() bridge.
void mrtk_log(mrtk_context_t *ctx, mrtk_log_level_t level, const char *fmt,...)
Log a formatted message.
#define MAX_ERROR_LEN
Maximum length of error messages stored in context.
void mrtk_context_set_log_callback(mrtk_context_t *ctx, mrtk_log_cb_t cb)
Set a custom log callback.
mrtk_context_t * mrtk_context_new(void)
Create a new library context.
mrtk_log_level_t mrtk_context_get_log_level(const mrtk_context_t *ctx)
Get the current log level.
static void default_log_callback(mrtk_context_t *ctx, mrtk_log_level_t level, const char *msg)
Default log callback implementation.
#define MAX_LOG_LEN
Maximum length of formatted log messages.
const char * mrtk_version_string(void)
Get the library version string.
void mrtk_clear_error(mrtk_context_t *ctx)
Clear the last error message.
void mrtk_log_v(mrtk_context_t *ctx, mrtk_log_level_t level, const char *fmt, va_list args)
Log a formatted message using a pre-initialized va_list.
void mrtk_context_free(mrtk_context_t *ctx)
Free the library context.
void mrtk_context_set_log_level(mrtk_context_t *ctx, mrtk_log_level_t level)
Set the minimum log level.
void mrtk_context_set_user_data(mrtk_context_t *ctx, void *user_data)
Set user-defined data.
const char * mrtk_get_last_error(const mrtk_context_t *ctx)
Get the last error message.
MRTKLIB Public API — Context Management and Logging.
mrtk_log_level_t
Log severity levels.
void(* mrtk_log_cb_t)(mrtk_context_t *ctx, mrtk_log_level_t level, const char *msg)
Log callback function signature.
struct mrtk_context_s mrtk_context_t
Opaque library context structure.
Internal context structure.
mrtk_log_level_t log_level
mrtk_log_cb_t log_callback