From 662faf40f0c11536afcaa7e2ff0969f247ae4965 Mon Sep 17 00:00:00 2001 From: Manuel Bachmann Date: Wed, 16 Dec 2015 17:47:59 +0100 Subject: [PATCH] Fix radio plugin runtime Signed-off-by: Manuel Bachmann --- nbproject/configurations.xml | 165 ++++++++++++++++++++++++++++------- nbproject/private/Default.properties | 1 - nbproject/private/configurations.xml | 74 +++++++++++++++- plugins/radio/radio-api.c | 27 +++--- 4 files changed, 223 insertions(+), 44 deletions(-) diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml index 0a5d9b3f..c9b7be53 100644 --- a/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -2,6 +2,21 @@ + + + audio-api.c + + + radio-api.c + radio-rtlsdr.c + + + HelloWorld.c + + + token-api.c + + afbs-api.c alsa-api.c @@ -49,7 +64,6 @@ - @@ -60,23 +74,6 @@ ${MAKE} -f Makefile clean build/afb-daemon - - plugins/audio - /usr/include/json-c - include - /usr/include/uuid - build/plugins - plugins/samples - /usr/include/json-c - include - /usr/include/uuid - build/plugins - plugins/session - /usr/include/json-c - include - /usr/include/uuid - build/plugins - @@ -85,11 +82,89 @@ true + + + + include + /usr/include/json-c + /usr/include/libusb-1.0 + build/plugins + + + + + + + plugins/audio + /usr/include/uuid + + + + + + + plugins/radio + + + + + + + plugins/samples + /usr/include/uuid + + + + + + + plugins/session + /usr/include/uuid + + + + + + + + + + + /usr/include/json-c + include + /usr/include/uuid + build/plugins + + + + + + + include + /usr/include/json-c + /usr/include/uuid + build/plugins + + + + + + + + + + + - include + plugins/audio /usr/include/json-c + include + /usr/include/uuid + build/plugins + plugins/samples + plugins/session build/src @@ -97,14 +172,19 @@ - include + plugins/audio /usr/include/json-c + include + /usr/include/uuid + build/plugins + plugins/samples + plugins/session build/src - + src /usr/include/json-c @@ -113,20 +193,24 @@ build/src + HAVE_RADIO_PLUGIN=1 __PIC__=2 - __PIE__=2 __REGISTER_PREFIX__= __USER_LABEL_PREFIX__= __pic__=2 - __pie__=2 - include + plugins/audio /usr/include/json-c + include + /usr/include/uuid + build/plugins + plugins/samples + plugins/session build/src @@ -140,10 +224,17 @@ /usr/include/uuid build/src + + HAVE_RADIO_PLUGIN=1 + __PIC__=2 + __REGISTER_PREFIX__= + __USER_LABEL_PREFIX__= + __pic__=2 + - + src /usr/include/json-c @@ -152,20 +243,24 @@ build/src + HAVE_RADIO_PLUGIN=1 __PIC__=2 - __PIE__=2 __REGISTER_PREFIX__= __USER_LABEL_PREFIX__= __pic__=2 - __pie__=2 - include + plugins/audio /usr/include/json-c + include + /usr/include/uuid + build/plugins + plugins/samples + plugins/session /usr/include/libusb-1.0 build/src @@ -175,7 +270,7 @@ - + src /usr/include/json-c @@ -183,10 +278,17 @@ /usr/include/uuid build/src + + HAVE_RADIO_PLUGIN=1 + __PIC__=2 + __REGISTER_PREFIX__= + __USER_LABEL_PREFIX__= + __pic__=2 + - + src /usr/include/json-c @@ -195,12 +297,11 @@ build/src + HAVE_RADIO_PLUGIN=1 __PIC__=2 - __PIE__=2 __REGISTER_PREFIX__= __USER_LABEL_PREFIX__= __pic__=2 - __pie__=2 diff --git a/nbproject/private/Default.properties b/nbproject/private/Default.properties index e63c2370..e69de29b 100644 --- a/nbproject/private/Default.properties +++ b/nbproject/private/Default.properties @@ -1 +0,0 @@ -/home/fulup/Workspace/afb-daemon/src/session.c=/home/fulup/Workspace/afb-daemon/build/src#-g3 -gdwarf-2 -fPIE -I/home/fulup/Workspace/afb-daemon/include -I/usr/include/json-c -o CMakeFiles/afb-daemon.dir/session.c.o -c /home/fulup/Workspace/afb-daemon/src/session.c diff --git a/nbproject/private/configurations.xml b/nbproject/private/configurations.xml index 713e87f4..e198cc10 100644 --- a/nbproject/private/configurations.xml +++ b/nbproject/private/configurations.xml @@ -2,6 +2,40 @@ + + + + + CMakeCCompilerId.c + + + + + + + feature_tests.c + + + + + + + + + + + + + + + + + + + + + + @@ -18,6 +52,9 @@ radio-api.c + radio-api.h + radio-rtlsdr.c + radio-rtlsdr.h HelloWorld.c @@ -40,6 +77,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -87,6 +156,8 @@ + + @@ -104,8 +175,9 @@ --token=123456789 "${OUTPUT_PATH}" --verbose --alias=icons:/usr/share/icons --token=123456789 "${OUTPUT_PATH}" --verbose --alias=icons:/usr/share/icons --token=123456789 --rootdir=/home/fulup/Workspace/afb-client/dist.dev + "${OUTPUT_PATH}" --verbose --alias=icons:/usr/share/icons --token=123456789 --rootdir=/home/fulup/Workspace/afb-client/dist.dev --sessiondir=/tmp --port=1235 - "${OUTPUT_PATH}" --verbose --alias=icons:/usr/share/icons --token=123456789 --rootdir=/home/fulup/Workspace/afb-client/dist.dev + "${OUTPUT_PATH}" --verbose --alias=icons:/usr/share/icons --token=123456789 --rootdir=/home/fulup/Workspace/afb-client/dist.dev --sessiondir=/tmp --port=1235 build true 0 diff --git a/plugins/radio/radio-api.c b/plugins/radio/radio-api.c index 02f6330c..efd309c3 100644 --- a/plugins/radio/radio-api.c +++ b/plugins/radio/radio-api.c @@ -121,16 +121,26 @@ STATIC json_object* freeRadio (AFB_clientCtx *client) { /* ------ PUBLIC PLUGIN FUNCTIONS --------- */ -STATIC json_object* power (AFB_request *request) { /* AFB_SESSION_CREATE */ +STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CREATE */ + + radioCtxHandleT *ctx; + json_object *jresp; + + /* create a private client context */ + ctx = initRadioCtx(); + request->client->ctx = (radioCtxHandleT*)ctx; + + jresp = json_object_new_object(); + json_object_object_add(jresp, "token", json_object_new_string (request->client->token)); +} + +STATIC json_object* power (AFB_request *request) { /* AFB_SESSION_CHECK */ pluginHandleT *handle = request->client->plugin->handle; radioCtxHandleT *ctx = (radioCtxHandleT*)request->client->ctx; const char *value = getQueryValue (request, "value"); json_object *jresp; - /* create a private client context if needed */ - if (!ctx) ctx = initRadioCtx(); - /* no "?value=" parameter : return current state */ if (!value) { jresp = json_object_new_object(); @@ -265,7 +275,7 @@ STATIC json_object* play (AFB_request *request) { /* AFB_SESSION_CHECK */ radioCtxHandleT *ctx = (radioCtxHandleT*)request->client->ctx; const char *value = getQueryValue (request, "value"); - json_object *jresp; + json_object *jresp = json_object_new_object(); /* no "?value=" parameter : return current state */ if (!value) { @@ -279,8 +289,6 @@ STATIC json_object* play (AFB_request *request) { /* AFB_SESSION_CHECK */ /* radio playback */ ctx->is_playing = 1; _radio_play (ctx->idx); - - jresp = json_object_new_object(); json_object_object_add (jresp, "play", json_object_new_string ("on")); } @@ -289,8 +297,6 @@ STATIC json_object* play (AFB_request *request) { /* AFB_SESSION_CHECK */ /* radio stop */ ctx->is_playing = 0; _radio_stop (ctx->idx); - - jresp = json_object_new_object(); json_object_object_add (jresp, "play-on", json_object_new_string ("off")); } @@ -303,7 +309,8 @@ STATIC json_object* status (AFB_request *request) { STATIC AFB_restapi pluginApis[]= { - {"power" , AFB_SESSION_CREATE, (AFB_apiCB)power , "Radio API - power"}, + {"init" , AFB_SESSION_CREATE, (AFB_apiCB)init , "Radio API - init"}, + {"power" , AFB_SESSION_CHECK, (AFB_apiCB)power , "Radio API - power"}, {"mode" , AFB_SESSION_CHECK, (AFB_apiCB)mode , "Radio API - mode"}, {"freq" , AFB_SESSION_CHECK, (AFB_apiCB)freq , "Radio API - freq"}, {"mute" , AFB_SESSION_CHECK, (AFB_apiCB)mute , "Radio API - mute"}, -- 2.16.6