X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=plugins%2Faudio%2Faudio-api.c;h=74a1be95b552734860f987d13910afc86b315292;hb=0d170147150b90678225b55548215d09d8273e6d;hp=0fcc73d173641e1bd4d39a3b23b54f10b74b3497;hpb=915d25a0c2fcff8a8bb189963f490e0894d05733;p=src%2Fapp-framework-binder.git diff --git a/plugins/audio/audio-api.c b/plugins/audio/audio-api.c index 0fcc73d1..74a1be95 100644 --- a/plugins/audio/audio-api.c +++ b/plugins/audio/audio-api.c @@ -25,24 +25,24 @@ /* private client context creation ; default values */ STATIC audioCtxHandleT* initAudioCtx () { - audioCtxHandleT *ctx; + audioCtxHandleT *actx; - ctx = malloc (sizeof(audioCtxHandleT)); - ctx->idx = -1; - ctx->volume = 25; - ctx->channels = 2; - ctx->mute = 0; + actx = malloc (sizeof(audioCtxHandleT)); + actx->idx = -1; + actx->volume = 25; + actx->channels = 2; + actx->mute = 0; - return ctx; + return actx; } -STATIC AFB_error releaseAudio (audioCtxHandleT *ctx) { +STATIC AFB_error releaseAudio (audioCtxHandleT *actx) { /* power it off */ - _alsa_free (ctx->idx); + _alsa_free (actx->idx); /* clean client context */ - ctx->idx = -1; + actx->idx = -1; return AFB_SUCCESS; } @@ -61,15 +61,15 @@ STATIC json_object* freeAudio (AFB_clientCtx *client) { STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CREATE */ - audioCtxHandleT *ctx; + audioCtxHandleT *actx; json_object *jresp; int idx; /* create a private client context */ - ctx = initAudioCtx(); - request->client->ctx = (audioCtxHandleT*)ctx; + actx = initAudioCtx(); + request->client->ctx = (audioCtxHandleT*)actx; - _alsa_init("default", ctx); + _alsa_init("default", actx); jresp = json_object_new_object(); json_object_object_add (jresp, "token", json_object_new_string (request->client->token)); @@ -78,7 +78,7 @@ STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CREATE */ STATIC json_object* volume (AFB_request *request) { /* AFB_SESSION_CHECK */ - audioCtxHandleT *ctx = (audioCtxHandleT*)request->client->ctx; + audioCtxHandleT *actx = (audioCtxHandleT*)request->client->ctx; const char *value = getQueryValue (request, "value"); json_object *jresp; int volume; @@ -86,8 +86,8 @@ STATIC json_object* volume (AFB_request *request) { /* AFB_SESSION_CHECK */ /* no "?value=" parameter : return current state */ if (!value) { - ctx->volume = _alsa_get_volume (ctx->idx); - snprintf (volume_str, sizeof(volume_str), "%d", ctx->volume); + actx->volume = _alsa_get_volume (actx->idx); + snprintf (volume_str, sizeof(volume_str), "%d", actx->volume); jresp = json_object_new_object(); json_object_object_add (jresp, "volume", json_object_new_string(volume_str)); } @@ -99,10 +99,10 @@ STATIC json_object* volume (AFB_request *request) { /* AFB_SESSION_CHECK */ request->errcode = MHD_HTTP_SERVICE_UNAVAILABLE; return (jsonNewMessage (AFB_FAIL, "Volume must be between 0 and 100")); } - ctx->volume = volume; - _alsa_set_volume (ctx->idx, ctx->volume); + actx->volume = volume; + _alsa_set_volume (actx->idx, actx->volume); - snprintf (volume_str, sizeof(volume_str), "%d", ctx->volume); + snprintf (volume_str, sizeof(volume_str), "%d", actx->volume); jresp = json_object_new_object(); json_object_object_add (jresp, "volume", json_object_new_string(volume_str)); } @@ -112,23 +112,23 @@ STATIC json_object* volume (AFB_request *request) { /* AFB_SESSION_CHECK */ STATIC json_object* channels (AFB_request *request) { /* AFB_SESSION_CHECK */ - audioCtxHandleT *ctx = (audioCtxHandleT*)request->client->ctx; + audioCtxHandleT *actx = (audioCtxHandleT*)request->client->ctx; const char *value = getQueryValue (request, "value"); json_object *jresp = json_object_new_object(); char channels_str[256]; /* no "?value=" parameter : return current state */ if (!value) { - snprintf (channels_str, sizeof(channels_str), "%d", ctx->channels); + snprintf (channels_str, sizeof(channels_str), "%d", actx->channels); json_object_object_add (jresp, "channels", json_object_new_string (channels_str)); } /* "?value=" parameter, set channels */ else { - ctx->channels = atoi (value); - _alsa_set_channels (ctx->idx, ctx->channels); + actx->channels = atoi (value); + _alsa_set_channels (actx->idx, actx->channels); - snprintf (channels_str, sizeof(channels_str), "%d", ctx->channels); + snprintf (channels_str, sizeof(channels_str), "%d", actx->channels); json_object_object_add (jresp, "channels", json_object_new_string (channels_str)); } @@ -137,30 +137,30 @@ STATIC json_object* channels (AFB_request *request) { /* AFB_SESSION_CHECK */ STATIC json_object* mute (AFB_request *request) { /* AFB_SESSION_CHECK */ - audioCtxHandleT *ctx = (audioCtxHandleT*)request->client->ctx; + audioCtxHandleT *actx = (audioCtxHandleT*)request->client->ctx; const char *value = getQueryValue (request, "value"); json_object *jresp = json_object_new_object(); /* no "?value=" parameter : return current state */ if (!value) { - ctx->mute = _alsa_get_mute (ctx->idx); - ctx->mute ? + actx->mute = _alsa_get_mute (actx->idx); + actx->mute ? json_object_object_add (jresp, "mute", json_object_new_string ("on")) : json_object_object_add (jresp, "mute", json_object_new_string ("off")); } /* "?value=" parameter is "1" or "on" */ else if ( atoi(value) == 1 || !strcasecmp(value, "on") ) { - ctx->mute = 1; - _alsa_set_mute (ctx->idx, ctx->mute); + actx->mute = 1; + _alsa_set_mute (actx->idx, actx->mute); json_object_object_add (jresp, "mute", json_object_new_string ("on")); } /* "?value=" parameter is "0" or "off" */ - if ( atoi(value) == 0 || !strcasecmp(value, "off") ) { - ctx->mute = 0; - _alsa_set_mute (ctx->idx, ctx->mute); + else if ( atoi(value) == 0 || !strcasecmp(value, "off") ) { + actx->mute = 0; + _alsa_set_mute (actx->idx, actx->mute); json_object_object_add (jresp, "mute", json_object_new_string ("off")); } @@ -168,8 +168,14 @@ STATIC json_object* mute (AFB_request *request) { /* AFB_SESSION_CHECK */ return jresp; } -STATIC json_object* status (AFB_request *request) { /* AFB_SESSION_RENEW */ - return NULL; +STATIC json_object* refresh (AFB_request *request) { /* AFB_SESSION_RENEW */ + json_object *jresp = json_object_new_object(); + json_object_object_add(jresp, "token", json_object_new_string (request->client->token)); + return jresp; +} + +STATIC json_object* ping (AFB_request *request) { /* AFB_SESSION_NONE */ + return jsonNewMessage(AFB_SUCCESS, "Ping Binder Daemon - Radio API"); } @@ -178,7 +184,8 @@ STATIC AFB_restapi pluginApis[]= { {"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"}, - {"status" , AFB_SESSION_RENEW, (AFB_apiCB)status , "Audio API - status"}, + {"refresh", AFB_SESSION_RENEW, (AFB_apiCB)refresh , "Audio API - refresh"}, + {"ping" , AFB_SESSION_NONE, (AFB_apiCB)ping , "Audio API - ping"}, {NULL} };