summaryrefslogtreecommitdiffstats
path: root/binding-bluetooth
diff options
context:
space:
mode:
Diffstat (limited to 'binding-bluetooth')
-rw-r--r--binding-bluetooth/bluetooth-api.c85
-rw-r--r--binding-bluetooth/export.map2
2 files changed, 38 insertions, 49 deletions
diff --git a/binding-bluetooth/bluetooth-api.c b/binding-bluetooth/bluetooth-api.c
index 16957ae..a1a3225 100644
--- a/binding-bluetooth/bluetooth-api.c
+++ b/binding-bluetooth/bluetooth-api.c
@@ -20,6 +20,8 @@
#include <stdlib.h>
#include <unistd.h>
#include <json-c/json.h>
+
+#define AFB_BINDING_VERSION 2
#include <afb/afb-binding.h>
#include <afb/afb-service-itf.h>
@@ -27,11 +29,6 @@
#include "bluetooth-agent.h"
#include "bluetooth-api.h"
-/*
- * the interface to afb-daemon
- */
-const struct afb_binding_interface *afbitf;
-
struct event
{
struct event *next;
@@ -85,7 +82,7 @@ static int event_add(const char *tag, const char *name)
strcpy(e->tag, tag);
/* make the event */
- e->event = afb_daemon_make_event(afbitf->daemon, name);
+ e->event = afb_daemon_make_event(name);
if (!e->event.closure) { free(e); return -1; }
/* link */
@@ -891,50 +888,36 @@ static void bt_send_confirmation(struct afb_req request)
/*
* array of the verbs exported to afb-daemon
*/
-static const struct afb_verb_desc_v1 binding_verbs[]= {
+static const struct afb_verb_v2 binding_verbs[]= {
/* VERB'S NAME SESSION MANAGEMENT FUNCTION TO CALL SHORT DESCRIPTION */
-{ .name = "power", .session = AFB_SESSION_NONE, .callback = bt_power, .info = "Set Bluetooth Power ON or OFF" },
-{ .name = "start_discovery", .session = AFB_SESSION_NONE, .callback = bt_start_discovery, .info = "Start discovery" },
-{ .name = "stop_discovery", .session = AFB_SESSION_NONE, .callback = bt_stop_discovery, .info = "Stop discovery" },
-{ .name = "discovery_result", .session = AFB_SESSION_NONE, .callback = bt_discovery_result, .info = "Get discovery result" },
-{ .name = "remove_device", .session = AFB_SESSION_NONE, .callback = bt_remove_device, .info = "Remove the special device" },
-{ .name = "pair", .session = AFB_SESSION_NONE, .callback = bt_pair, .info = "Pair to special device" },
-{ .name = "cancel_pair", .session = AFB_SESSION_NONE, .callback = bt_cancel_pairing, .info = "Cancel the pairing process" },
-{ .name = "connect", .session = AFB_SESSION_NONE, .callback = bt_connect, .info = "Connect to special device" },
-{ .name = "disconnect", .session = AFB_SESSION_NONE, .callback = bt_disconnect, .info = "Disconnect special device" },
-{ .name = "set_device_property", .session = AFB_SESSION_NONE, .callback = bt_set_device_property, .info = "Set special device property" },
-{ .name = "set_property", .session = AFB_SESSION_NONE, .callback = bt_set_property, .info = "Set Bluetooth property" },
-{ .name = "set_avrcp_controls", .session = AFB_SESSION_NONE, .callback = bt_set_avrcp_controls, .info = "Set Bluetooth AVRCP controls" },
-{ .name = "send_confirmation", .session = AFB_SESSION_NONE, .callback = bt_send_confirmation, .info = "Send Confirmation" },
-{ .name = "eventadd", .session = AFB_SESSION_NONE, .callback = eventadd, .info = "adds the event of 'name' for the 'tag'"},
-{ .name = "eventdel", .session = AFB_SESSION_NONE, .callback = eventdel, .info = "deletes the event of 'tag'"},
-{ .name = "eventsub", .session = AFB_SESSION_NONE, .callback = eventsub, .info = "subscribes to the event of 'tag'"},
-{ .name = "eventunsub", .session = AFB_SESSION_NONE, .callback = eventunsub, .info = "unsubscribes to the event of 'tag'"},
-{ .name = "eventpush", .session = AFB_SESSION_NONE, .callback = eventpush, .info = "pushs the event of 'tag' with the 'data'"},
-
-{ .name = NULL } /* marker for end of the array */
-};
-
-/*
- * description of the binding for afb-daemon
- */
-static const struct afb_binding binding_description =
-{
- .type = AFB_BINDING_VERSION_1,
- .v1 = {
- .info = "Application Framework Binder - Bluetooth Manager plugin",
- .prefix = "Bluetooth-Manager",
- .verbs = binding_verbs
- }
+{ .verb = "power", .session = AFB_SESSION_NONE, .callback = bt_power, .info = "Set Bluetooth Power ON or OFF" },
+{ .verb = "start_discovery", .session = AFB_SESSION_NONE, .callback = bt_start_discovery, .info = "Start discovery" },
+{ .verb = "stop_discovery", .session = AFB_SESSION_NONE, .callback = bt_stop_discovery, .info = "Stop discovery" },
+{ .verb = "discovery_result", .session = AFB_SESSION_NONE, .callback = bt_discovery_result, .info = "Get discovery result" },
+{ .verb = "remove_device", .session = AFB_SESSION_NONE, .callback = bt_remove_device, .info = "Remove the special device" },
+{ .verb = "pair", .session = AFB_SESSION_NONE, .callback = bt_pair, .info = "Pair to special device" },
+{ .verb = "cancel_pair", .session = AFB_SESSION_NONE, .callback = bt_cancel_pairing, .info = "Cancel the pairing process" },
+{ .verb = "connect", .session = AFB_SESSION_NONE, .callback = bt_connect, .info = "Connect to special device" },
+{ .verb = "disconnect", .session = AFB_SESSION_NONE, .callback = bt_disconnect, .info = "Disconnect special device" },
+{ .verb = "set_device_property", .session = AFB_SESSION_NONE, .callback = bt_set_device_property, .info = "Set special device property" },
+{ .verb = "set_property", .session = AFB_SESSION_NONE, .callback = bt_set_property, .info = "Set Bluetooth property" },
+{ .verb = "set_avrcp_controls", .session = AFB_SESSION_NONE, .callback = bt_set_avrcp_controls, .info = "Set Bluetooth AVRCP controls" },
+{ .verb = "send_confirmation", .session = AFB_SESSION_NONE, .callback = bt_send_confirmation, .info = "Send Confirmation" },
+{ .verb = "eventadd", .session = AFB_SESSION_NONE, .callback = eventadd, .info = "adds the event of 'name' for the 'tag'"},
+{ .verb = "eventdel", .session = AFB_SESSION_NONE, .callback = eventdel, .info = "deletes the event of 'tag'"},
+{ .verb = "eventsub", .session = AFB_SESSION_NONE, .callback = eventsub, .info = "subscribes to the event of 'tag'"},
+{ .verb = "eventunsub", .session = AFB_SESSION_NONE, .callback = eventunsub, .info = "unsubscribes to the event of 'tag'"},
+{ .verb = "eventpush", .session = AFB_SESSION_NONE, .callback = eventpush, .info = "pushs the event of 'tag' with the 'data'"},
+
+{ } /* marker for end of the array */
};
/*
* activation function for registering the binding called by afb-daemon
*/
-const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf)
-{
- afbitf = itf; // records the interface for accessing afb-daemon
+static int init()
+{
Binding_RegisterCallback_t API_Callback;
API_Callback.binding_device_added = bt_broadcast_device_added;
API_Callback.binding_device_removed = bt_broadcast_device_removed;
@@ -942,14 +925,20 @@ const struct afb_binding *afbBindingV1Register (const struct afb_binding_interfa
API_Callback.binding_request_confirmation = bt_request_confirmation;
BindingAPIRegister(&API_Callback);
- return &binding_description;
+ return 0;
}
-int afbBindingV1ServiceInit(struct afb_service service)
+/*
+ * description of the binding for afb-daemon
+ */
+const struct afb_binding_v2 afbBindingV2 =
{
- return BluetoothManagerInit();
-}
-
+ .specification = "Application Framework Binder - Bluetooth Manager plugin",
+ .api = "Bluetooth-Manager",
+ .verbs = binding_verbs,
+ .preinit = init,
+ .init = BluetoothManagerInit,
+};
/***************************** The End Of File ******************************/
diff --git a/binding-bluetooth/export.map b/binding-bluetooth/export.map
index 52c1b4a..eea0d7b 100644
--- a/binding-bluetooth/export.map
+++ b/binding-bluetooth/export.map
@@ -1 +1 @@
-{ global: afbBindingV1*; local: *; };
+{ global: afbBindingV2*; local: *; };