X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-ditf.c;h=e6b6857c48154f004583e37db3a652e161dfd633;hb=1a64df64ca126fb1e0dbe08c432d3c015d4ac458;hp=9d65d30c138430c99aa75103a3f3195309d71a01;hpb=05e0214d821f1a7604b4a0897907f347761b56e6;p=src%2Fapp-framework-binder.git diff --git a/src/afb-ditf.c b/src/afb-ditf.c index 9d65d30c..e6b6857c 100644 --- a/src/afb-ditf.c +++ b/src/afb-ditf.c @@ -16,7 +16,7 @@ */ #define _GNU_SOURCE -#define NO_BINDING_VERBOSE_MACRO +#define AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO #include #include @@ -107,14 +107,11 @@ static void hooked_vverbose_cb(void *closure, int level, const char *file, int l struct afb_ditf *ditf = closure; vverbose_cb(closure, level, file, line, function, fmt, args); afb_hook_ditf_vverbose(ditf, level, file, line, function, fmt, args); - vverbose_cb(closure, level, file, line, function, fmt, args); } static void hooked_old_vverbose_cb(void *closure, int level, const char *file, int line, const char *fmt, va_list args) { - struct afb_ditf *ditf = closure; - old_vverbose_cb(closure, level, file, line, fmt, args); - afb_hook_ditf_vverbose(ditf, level, file, line, "", fmt, args); + hooked_vverbose_cb(closure, level, file, line, "?", fmt, args); } static struct afb_event hooked_event_make_cb(void *closure, const char *name) @@ -202,8 +199,16 @@ static const struct afb_daemon_itf hooked_daemon_itf = { .queue_job = hooked_queue_job_cb }; -void afb_ditf_init(struct afb_ditf *ditf, const char *prefix) +void afb_ditf_init_v2(struct afb_ditf *ditf, const char *prefix) { + ditf->version = 2; + ditf->daemon.closure = ditf; + afb_ditf_rename(ditf, prefix); +} + +void afb_ditf_init_v1(struct afb_ditf *ditf, const char *prefix) +{ + ditf->version = 1; ditf->interface.verbosity = verbosity; ditf->interface.mode = AFB_MODE_LOCAL; ditf->interface.daemon.closure = ditf; @@ -218,9 +223,15 @@ void afb_ditf_rename(struct afb_ditf *ditf, const char *prefix) void afb_ditf_update_hook(struct afb_ditf *ditf) { - if (afb_hook_flags_ditf(ditf->prefix)) - ditf->interface.daemon.itf = &hooked_daemon_itf; - else - ditf->interface.daemon.itf = &daemon_itf; + int hooked = !!afb_hook_flags_ditf(ditf->prefix); + switch (ditf->version) { + case 1: + ditf->interface.daemon.itf = hooked ? &hooked_daemon_itf : &daemon_itf; + break; + default: + case 2: + ditf->daemon.itf = hooked ? &hooked_daemon_itf : &daemon_itf; + break; + } }