X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=plugins%2Fafm-main-plugin%2Fafm-main-plugin.c;h=418cc5081789306d3f714ad215fcd1912e606a99;hb=68a8eaafe5f43480f29308bfd2ec12ad54da43f1;hp=b026fd80ed6a9e5169975b86a883bd0eb6912166;hpb=67966a2f96613d833f493ef3773c442d35f8ed31;p=src%2Fapp-framework-binder.git diff --git a/plugins/afm-main-plugin/afm-main-plugin.c b/plugins/afm-main-plugin/afm-main-plugin.c index b026fd80..418cc508 100644 --- a/plugins/afm-main-plugin/afm-main-plugin.c +++ b/plugins/afm-main-plugin/afm-main-plugin.c @@ -23,7 +23,9 @@ #include "afb-plugin.h" #include "afb-req-itf.h" +#include "afb-poll-itf.h" +#include "utils-sbus.h" #include "utils-jbus.h" static const char _auto_[] = "auto"; @@ -276,14 +278,33 @@ static const struct AFB_plugin plug_desc = { .apis = plug_apis }; +static struct sbus_itf sbusitf; + const struct AFB_plugin *pluginRegister(const struct AFB_interface *itf) { + struct sbus *sbus; + + if (interface != NULL) + return NULL; + interface = itf; + sbusitf.wait = itf->pollitf->wait; + sbusitf.open = itf->pollitf->open; + sbusitf.on_readable = itf->pollitf->on_readable; + sbusitf.on_writable = itf->pollitf->on_writable; + sbusitf.on_hangup = itf->pollitf->on_hangup; + sbusitf.close = itf->pollitf->close; + + sbus = sbus_session(&sbusitf, itf->pollclosure); + if (sbus == NULL) { + fprintf(stderr, "ERROR: %s:%d: can't connect to DBUS session\n", __FILE__, __LINE__); + return NULL; + } - jbus = create_jbus_session("/org/AGL/afm/user"); + jbus = create_jbus(sbus, "/org/AGL/afm/user"); if (jbus) return &plug_desc; - fprintf(stderr, "ERROR: %s:%d: can't connect to DBUS session\n", __FILE__, __LINE__); + sbus_unref(sbus); return NULL; }