Fix Audio/Radio reinitialization issue
[src/app-framework-binder.git] / plugins / audio / audio-api.c
index 8671a87..8350377 100644 (file)
@@ -58,19 +58,19 @@ STATIC void freeAudio (void *context) {
 
 /* ------ PUBLIC PLUGIN FUNCTIONS --------- */
 
-STATIC json_object* init (AFB_request *request) {       /* AFB_SESSION_CREATE */
+STATIC json_object* init (AFB_request *request) {        /* AFB_SESSION_CHECK */
 
-    audioCtxHandleT *ctx;
     json_object *jresp;
     int idx;
 
     /* create a private client context */
-    request->context = initAudioCtx();
+    if (!request->context)
+        request->context = initAudioCtx();
     
-    _alsa_init("default", ctx);
+    _alsa_init("default", request->context);
     
     jresp = json_object_new_object();
-    json_object_object_add (jresp, "info", json_object_new_string ("Radio initialised"));
+    json_object_object_add (jresp, "info", json_object_new_string ("Audio initialised"));
     return (jresp);
 }
 
@@ -226,7 +226,7 @@ STATIC json_object* ping (AFB_request *request) {         /* AFB_SESSION_NONE */
 }
 
 STATIC AFB_restapi pluginApis[]= {
-  {"init"    , AFB_SESSION_CREATE, (AFB_apiCB)init      , "Audio API - init"},
+  {"init"    , AFB_SESSION_CHECK,  (AFB_apiCB)init      , "Audio API - init"},
   {"volume"  , AFB_SESSION_CHECK,  (AFB_apiCB)volume    , "Audio API - volume"},
   {"channels", AFB_SESSION_CHECK,  (AFB_apiCB)channels  , "Audio API - channels"},
   {"mute"    , AFB_SESSION_CHECK,  (AFB_apiCB)mute      , "Audio API - mute"},