summaryrefslogtreecommitdiffstats
path: root/binding/afm-mediaplayer-binding.c
diff options
context:
space:
mode:
Diffstat (limited to 'binding/afm-mediaplayer-binding.c')
-rw-r--r--binding/afm-mediaplayer-binding.c40
1 files changed, 19 insertions, 21 deletions
diff --git a/binding/afm-mediaplayer-binding.c b/binding/afm-mediaplayer-binding.c
index e82f7d6..d6f1a69 100644
--- a/binding/afm-mediaplayer-binding.c
+++ b/binding/afm-mediaplayer-binding.c
@@ -29,11 +29,11 @@
#include <json-c/json.h>
#include "afm-common.h"
-#define AFB_BINDING_VERSION 2
+#define AFB_BINDING_VERSION 3
#include <afb/afb-binding.h>
-static struct afb_event playlist_event;
-static struct afb_event metadata_event;
+static afb_event_t playlist_event;
+static afb_event_t metadata_event;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static GList *playlist = NULL;
@@ -241,7 +241,7 @@ static json_object *populate_json_playlist(json_object *jresp)
return jresp;
}
-static void audio_playlist(struct afb_req request)
+static void audio_playlist(afb_req_t request)
{
const char *value = afb_req_value(request, "list");
json_object *jresp = NULL;
@@ -343,7 +343,7 @@ static int seek_track(int cmd)
* loop - set looping of playlist (true or false)
*/
-static void controls(struct afb_req request)
+static void controls(afb_req_t request)
{
const char *value = afb_req_value(request, "value");
const char *position = afb_req_value(request, "position");
@@ -571,7 +571,7 @@ static json_object *populate_json_metadata(void)
return jresp;
}
-static void metadata(struct afb_req request)
+static void metadata(afb_req_t request)
{
json_object *jresp;
@@ -585,7 +585,7 @@ static void metadata(struct afb_req request)
afb_req_success(request, jresp, "Metadata results");
}
-static void subscribe(struct afb_req request)
+static void subscribe(afb_req_t request)
{
const char *value = afb_req_value(request, "value");
@@ -620,7 +620,7 @@ static void subscribe(struct afb_req request)
afb_req_fail(request, "failed", "Invalid event");
}
-static void unsubscribe(struct afb_req request)
+static void unsubscribe(afb_req_t request)
{
const char *value = afb_req_value(request, "value");
@@ -731,7 +731,7 @@ static gboolean position_event(CustomData *data)
return TRUE;
}
-static void gstreamer_init()
+static void gstreamer_init(afb_api_t api)
{
GstBus *bus;
json_object *response;
@@ -762,7 +762,7 @@ static void gstreamer_init()
#ifdef HAVE_4A_FRAMEWORK
json_object *jsonData = json_object_new_object();
json_object_object_add(jsonData, "action", json_object_new_string("open"));
- ret = afb_service_call_sync("ahl-4a", "multimedia", jsonData, &response);
+ ret = afb_api_call_sync(api, "ahl-4a", "multimedia", jsonData, &response, NULL, NULL);
if (!ret) {
json_object *valJson = NULL;
@@ -794,14 +794,12 @@ static void gstreamer_init()
gst_bus_add_watch(bus, (GstBusFunc) handle_message, &data);
g_timeout_add_seconds(1, (GSourceFunc) position_event, &data);
- ret = afb_service_call_sync("mediascanner", "media_result", NULL, &response);
+ ret = afb_api_call_sync(api, "mediascanner", "media_result", NULL, &response, NULL, NULL);
if (!ret) {
json_object *val = NULL;
gboolean ret;
- ret = json_object_object_get_ex(response, "response", &val);
- if (ret)
- ret = json_object_object_get_ex(val, "Media", &val);
+ ret = json_object_object_get_ex(response, "Media", &val);
if (ret)
populate_playlist(val);
@@ -809,7 +807,7 @@ static void gstreamer_init()
json_object_put(response);
}
-static void onevent(const char *event, struct json_object *object)
+static void onevent(afb_api_t api, const char *event, struct json_object *object)
{
json_object *jresp = NULL;
@@ -877,7 +875,7 @@ void *gstreamer_loop_thread(void *ptr)
return NULL;
}
-static int init()
+static int init(afb_api_t api)
{
pthread_t thread_id;
json_object *response, *query;
@@ -892,7 +890,7 @@ static int init()
query = json_object_new_object();
json_object_object_add(query, "value", json_object_new_string("media_added"));
- ret = afb_service_call_sync("mediascanner", "subscribe", query, &response);
+ ret = afb_api_call_sync(api, "mediascanner", "subscribe", query, &response, NULL, NULL);
json_object_put(response);
if (ret < 0) {
@@ -903,7 +901,7 @@ static int init()
query = json_object_new_object();
json_object_object_add(query, "value", json_object_new_string("media_removed"));
- ret = afb_service_call_sync("mediascanner", "subscribe", query, &response);
+ ret = afb_api_call_sync(api, "mediascanner", "subscribe", query, &response, NULL, NULL);
json_object_put(response);
if (ret < 0) {
@@ -914,12 +912,12 @@ static int init()
metadata_event = afb_daemon_make_event("metadata");
playlist_event = afb_daemon_make_event("playlist");
- gstreamer_init();
+ gstreamer_init(api);
return pthread_create(&thread_id, NULL, gstreamer_loop_thread, NULL);
}
-static const struct afb_verb_v2 binding_verbs[] = {
+static const afb_verb_t binding_verbs[] = {
{ .verb = "playlist", .callback = audio_playlist, .info = "Get/set playlist" },
{ .verb = "controls", .callback = controls, .info = "Audio controls" },
{ .verb = "metadata", .callback = metadata, .info = "Get metadata of current track" },
@@ -931,7 +929,7 @@ static const struct afb_verb_v2 binding_verbs[] = {
/*
* binder API description
*/
-const struct afb_binding_v2 afbBindingV2 = {
+const afb_binding_t afbBindingV3 = {
.api = "mediaplayer",
.specification = "Mediaplayer API",
.verbs = binding_verbs,