diff options
Diffstat (limited to 'ahl-binding/ahl-apidef.h')
-rw-r--r-- | ahl-binding/ahl-apidef.h | 251 |
1 files changed, 92 insertions, 159 deletions
diff --git a/ahl-binding/ahl-apidef.h b/ahl-binding/ahl-apidef.h index 9002c6f..2c77827 100644 --- a/ahl-binding/ahl-apidef.h +++ b/ahl-binding/ahl-apidef.h @@ -36,113 +36,86 @@ static const char _afb_description_v2_ahl_4a[] = "200\":{\"description\":\"A complex object array response\",\"content\":{" "\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/afb-re" "ply\"}}}},\"400\":{\"description\":\"Invalid arguments\"}}},\"paths\":{\"" - "/get_sources\":{\"description\":\"Retrieve array of available audio sour" - "ces\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"audio_role\"" - ",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"2" - "00\":{\"$ref\":\"#/components/responses/200\",\"response\":{\"descriptio" - "n\":\"Array of endpoint info structures\",\"type\":\"array\",\"items\":{" - "\"$ref\":\"#/components/schemas/endpoint_info\"}}},\"400\":{\"$ref\":\"#" - "/components/responses/400\"}}}},\"/get_sinks\":{\"description\":\"Retrie" - "ve array of available audio sinks\",\"get\":{\"parameters\":[{\"in\":\"q" - "uery\",\"name\":\"audio_role\",\"required\":true,\"schema\":{\"type\":\"" - "string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/20" - "0\",\"response\":{\"description\":\"Array of endpoint info structures\"," - "\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/endpoint_i" - "nfo\"}}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/stream_" - "open\":{\"description\":\"Request opening a stream\",\"get\":{\"x-permis" - "sions\":{\"$ref\":\"#/components/x-permissions/audiostream\"},\"paramete" - "rs\":[{\"in\":\"query\",\"name\":\"audio_role\",\"required\":true,\"sche" - "ma\":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"endpoint_type\"" - ",\"required\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"n" - "ame\":\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"int\"}}]" - ",\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\",\"respo" - "nse\":{\"description\":\"Stream information structure\",\"$ref\":\"#/com" - "ponents/schemas/stream_info\"}},\"400\":{\"$ref\":\"#/components/respons" - "es/400\"}}}},\"/stream_close\":{\"description\":\"Request closing a stre" - "am\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/a" - "udiostream\"},\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\",\"" - "required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{" - "\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/component" - "s/responses/400\"}}}},\"/set_stream_state\":{\"description\":\"Change st" - "ream active state\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/" - "x-permissions/streamcontrol\"},\"parameters\":[{\"in\":\"query\",\"name\"" - ":\"stream_id\",\"required\":true,\"schema\":{\"type\":\"int\"}},{\"in\":" - "\"query\",\"name\":\"state\",\"required\":true,\"schema\":{\"type\":\"in" - "t\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}," - "\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/set_stream_mute\"" - ":{\"description\":\"Change stream mute state\",\"get\":{\"x-permissions\"" - ":{\"$ref\":\"#/components/x-permissions/streamcontrol\"},\"parameters\":" - "[{\"in\":\"query\",\"name\":\"stream_id\",\"required\":true,\"schema\":{" - "\"type\":\"int\"}},{\"in\":\"query\",\"name\":\"mute\",\"required\":true" - ",\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/co" - "mponents/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/400" - "\"}}}},\"/get_stream_info\":{\"description\":\"Retrieve stream informati" - "on\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\",\"" - "required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{" - "\"$ref\":\"#/components/responses/200\",\"response\":{\"description\":\"" - "Stream information structure\",\"$ref\":\"#/components/schemas/stream_in" - "fo\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/set_volum" - "e\":{\"description\":\"Set volume on endpoint\",\"get\":{\"x-permissions" + "/get_endpoints\":{\"description\":\"Retrieve array of available audio en" + "dpoints\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"audio_ro" + "le\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"query" + "\",\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\":\"e" + "num\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"" + ",\"response\":{\"description\":\"Array of endpoint info structures\",\"t" + "ype\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/endpoint_info" + "\"}}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/stream_ope" + "n\":{\"description\":\"Request opening a stream\",\"get\":{\"x-permissio" + "ns\":{\"$ref\":\"#/components/x-permissions/audiostream\"},\"parameters\"" + ":[{\"in\":\"query\",\"name\":\"audio_role\",\"required\":true,\"schema\"" + ":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"endpoint_type\",\"r" + "equired\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\"" + ":\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"int\"}}],\"re" + "sponses\":{\"200\":{\"$ref\":\"#/components/responses/200\",\"response\"" + ":{\"description\":\"Stream information structure\",\"$ref\":\"#/componen" + "ts/schemas/stream_info\"}},\"400\":{\"$ref\":\"#/components/responses/40" + "0\"}}}},\"/stream_close\":{\"description\":\"Request closing a stream\"," + "\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/audios" + "tream\"},\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\",\"requ" + "ired\":false,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$" + "ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/components/r" + "esponses/400\"}}}},\"/set_stream_state\":{\"description\":\"Change strea" + "m active and/or mute state\",\"get\":{\"x-permissions\":{\"$ref\":\"#/co" + "mponents/x-permissions/streamcontrol\"},\"parameters\":[{\"in\":\"query\"" + ",\"name\":\"stream_id\",\"required\":false,\"schema\":{\"type\":\"int\"}" + "},{\"in\":\"query\",\"name\":\"state\",\"required\":false,\"schema\":{\"" + "type\":\"int\"}},{\"in\":\"query\",\"name\":\"mute\",\"required\":false," + "\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/com" + "ponents/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/400\"" + "}}}},\"/get_stream_info\":{\"description\":\"Retrieve stream information" + "\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\",\"r" + "equired\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"" + "$ref\":\"#/components/responses/200\",\"response\":{\"description\":\"St" + "ream information structure\",\"$ref\":\"#/components/schemas/stream_info" + "\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/volume\":{\"" + "description\":\"Set or get volume on endpoint\",\"get\":{\"x-permissions" "\":{\"$ref\":\"#/components/x-permissions/endpointcontrol\"},\"parameter" "s\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\"required\":true,\"sc" "hema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"" "required\":true,\"schema\":{\"type\":\"int\"}},{\"in\":\"query\",\"name\"" - ":\"volume\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"respo" - "nses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$re" - "f\":\"#/components/responses/400\"}}}},\"/get_volume\":{\"description\":" - "\"Get endpoint volume\",\"get\":{\"parameters\":[{\"in\":\"query\",\"nam" - "e\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\":\"enum\"}}," - "{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":true,\"schema\":" - "{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/res" - "ponses/200\",\"response\":{\"description\":\"Endpoint volume value\",\"t" - "ype\":\"double\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}}," - "\"/get_endpoint_info\":{\"description\":\"Retrieve endpoint information " - "including its properties\",\"get\":{\"parameters\":[{\"in\":\"query\",\"" - "name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\":\"enum\"" - "}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":false,\"schem" - "a\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components" - "/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"" - "/set_property\":{\"description\":\"Set endpoint property value\",\"get\"" - ":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/endpointcontr" - "ol\"},\"parameters\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\"req" - "uired\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\":" - "\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"int\"}},{\"in\"" - ":\"query\",\"name\":\"property_name\",\"required\":true,\"schema\":{\"ty" - "pe\":\"string\"}},{\"in\":\"query\",\"name\":\"value\",\"required\":true" - ",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#" - "/components/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/" - "400\"}}}},\"/get_property\":{\"description\":\"Get endpoint property val" - "ue\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"endpoint_type" - "\",\"required\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"" - "name\":\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"int\"}}" - ",{\"in\":\"query\",\"name\":\"property_name\",\"required\":true,\"schema" - "\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/componen" - "ts/responses/200\",\"response\":{\"description\":\"Property value\",\"ty" - "pe\":\"double\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"" - "/get_list_actions\":{\"description\":\"Retrieve a list of supported acti" - "ons for a particular audio role\",\"get\":{\"parameters\":[{\"in\":\"que" - "ry\",\"name\":\"audio_role\",\"required\":true,\"schema\":{\"type\":\"st" - "ring\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"" - "},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/post_action\":" - "{\"description\":\"Post sound or audio device related action event (exte" - "ndable mechanism)\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/" - "x-permissions/soundevent\"},\"parameters\":[{\"in\":\"query\",\"name\":\"" - "action_name\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"in\"" - ":\"query\",\"name\":\"audio_role\",\"required\":true,\"schema\":{\"type\"" - ":\"string\"}},{\"in\":\"query\",\"name\":\"media_name\",\"required\":fal" - "se,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"action" - "_context\",\"required\":false,\"schema\":{\"type\":\"object\"}}],\"respo" - "nses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$re" - "f\":\"#/components/responses/400\"}}}},\"/subscribe\":{\"description\":\"" - "Subscribe to audio high level events\",\"get\":{\"parameters\":[{\"in\":" - "\"query\",\"name\":\"events\",\"required\":true,\"schema\":{\"type\":\"a" - "rray\",\"items\":{\"type\":\"string\"}}}],\"responses\":{\"200\":{\"$ref" - "\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/components/resp" - "onses/400\"}}}},\"/unsubscribe\":{\"description\":\"Unubscribe to audio " - "high level events\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":" - "\"events\",\"required\":true,\"schema\":{\"type\":\"array\",\"items\":{\"" - "type\":\"string\"}}}],\"responses\":{\"200\":{\"$ref\":\"#/components/re" - "sponses/200\"},\"400\":{\"$ref\":\"#/components/responses/400\"}}}}}}" + ":\"volume\",\"required\":false,\"schema\":{\"type\":\"string\"}}],\"resp" + "onses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$r" + "ef\":\"#/components/responses/400\"}}}},\"/get_endpoint_info\":{\"descri" + "ption\":\"Retrieve endpoint information including its properties\",\"get" + "\":{\"parameters\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\"requi" + "red\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\":\"" + "endpoint_id\",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"respon" + "ses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref" + "\":\"#/components/responses/400\"}}}},\"/property\":{\"description\":\"S" + "et/get endpoint property value\",\"get\":{\"x-permissions\":{\"$ref\":\"" + "#/components/x-permissions/endpointcontrol\"},\"parameters\":[{\"in\":\"" + "query\",\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\"" + ":\"enum\"}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":true" + ",\"schema\":{\"type\":\"int\"}},{\"in\":\"query\",\"name\":\"property_na" + "me\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"query" + "\",\"name\":\"value\",\"required\":false,\"schema\":{\"type\":\"string\"" + "}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"4" + "00\":{\"$ref\":\"#/components/responses/400\"}}}},\"/get_list_actions\":" + "{\"description\":\"Retrieve a list of supported actions for a particular" + " audio role\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"audi" + "o_role\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"response" + "s\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\"" + ":\"#/components/responses/400\"}}}},\"/post_action\":{\"description\":\"" + "Post sound or audio device related action event (extendable mechanism)\"" + ",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/sound" + "event\"},\"parameters\":[{\"in\":\"query\",\"name\":\"action_name\",\"re" + "quired\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"name" + "\":\"audio_role\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"" + "in\":\"query\",\"name\":\"media_name\",\"required\":false,\"schema\":{\"" + "type\":\"string\"}},{\"in\":\"query\",\"name\":\"action_context\",\"requ" + "ired\":false,\"schema\":{\"type\":\"object\"}}],\"responses\":{\"200\":{" + "\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/component" + "s/responses/400\"}}}},\"/event_subscription\":{\"description\":\"Subscri" + "be to audio high level events\",\"get\":{\"parameters\":[{\"in\":\"query" + "\",\"name\":\"events\",\"required\":true,\"schema\":{\"type\":\"array\"," + "\"items\":{\"type\":\"string\"}}},{\"in\":\"query\",\"name\":\"subscribe" + "\",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"20" + "0\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/comp" + "onents/responses/400\"}}}}}}" ; static const struct afb_auth _afb_auths_v2_ahl_4a[] = { @@ -152,36 +125,24 @@ static const struct afb_auth _afb_auths_v2_ahl_4a[] = { { .type = afb_auth_Permission, .text = "urn:AGL:permission:audio:public:soundevent" } }; - void audiohlapi_get_sources(struct afb_req req); - void audiohlapi_get_sinks(struct afb_req req); + void audiohlapi_get_endpoints(struct afb_req req); void audiohlapi_stream_open(struct afb_req req); void audiohlapi_stream_close(struct afb_req req); void audiohlapi_set_stream_state(struct afb_req req); - void audiohlapi_set_stream_mute(struct afb_req req); void audiohlapi_get_stream_info(struct afb_req req); - void audiohlapi_set_volume(struct afb_req req); - void audiohlapi_get_volume(struct afb_req req); + void audiohlapi_volume(struct afb_req req); void audiohlapi_get_endpoint_info(struct afb_req req); - void audiohlapi_set_property(struct afb_req req); - void audiohlapi_get_property(struct afb_req req); + void audiohlapi_property(struct afb_req req); void audiohlapi_get_list_actions(struct afb_req req); void audiohlapi_post_action(struct afb_req req); - void audiohlapi_subscribe(struct afb_req req); - void audiohlapi_unsubscribe(struct afb_req req); + void audiohlapi_event_subscription(struct afb_req req); static const struct afb_verb_v2 _afb_verbs_v2_ahl_4a[] = { { - .verb = "get_sources", - .callback = audiohlapi_get_sources, - .auth = NULL, - .info = "Retrieve array of available audio sources", - .session = AFB_SESSION_NONE_V2 - }, - { - .verb = "get_sinks", - .callback = audiohlapi_get_sinks, + .verb = "get_endpoints", + .callback = audiohlapi_get_endpoints, .auth = NULL, - .info = "Retrieve array of available audio sinks", + .info = "Retrieve array of available audio endpoints", .session = AFB_SESSION_NONE_V2 }, { @@ -202,14 +163,7 @@ static const struct afb_verb_v2 _afb_verbs_v2_ahl_4a[] = { .verb = "set_stream_state", .callback = audiohlapi_set_stream_state, .auth = &_afb_auths_v2_ahl_4a[1], - .info = "Change stream active state", - .session = AFB_SESSION_NONE_V2 - }, - { - .verb = "set_stream_mute", - .callback = audiohlapi_set_stream_mute, - .auth = &_afb_auths_v2_ahl_4a[1], - .info = "Change stream mute state", + .info = "Change stream active and/or mute state", .session = AFB_SESSION_NONE_V2 }, { @@ -220,17 +174,10 @@ static const struct afb_verb_v2 _afb_verbs_v2_ahl_4a[] = { .session = AFB_SESSION_NONE_V2 }, { - .verb = "set_volume", - .callback = audiohlapi_set_volume, + .verb = "volume", + .callback = audiohlapi_volume, .auth = &_afb_auths_v2_ahl_4a[2], - .info = "Set volume on endpoint", - .session = AFB_SESSION_NONE_V2 - }, - { - .verb = "get_volume", - .callback = audiohlapi_get_volume, - .auth = NULL, - .info = "Get endpoint volume", + .info = "Set or get volume on endpoint", .session = AFB_SESSION_NONE_V2 }, { @@ -241,17 +188,10 @@ static const struct afb_verb_v2 _afb_verbs_v2_ahl_4a[] = { .session = AFB_SESSION_NONE_V2 }, { - .verb = "set_property", - .callback = audiohlapi_set_property, + .verb = "property", + .callback = audiohlapi_property, .auth = &_afb_auths_v2_ahl_4a[2], - .info = "Set endpoint property value", - .session = AFB_SESSION_NONE_V2 - }, - { - .verb = "get_property", - .callback = audiohlapi_get_property, - .auth = NULL, - .info = "Get endpoint property value", + .info = "Set/get endpoint property value", .session = AFB_SESSION_NONE_V2 }, { @@ -269,20 +209,13 @@ static const struct afb_verb_v2 _afb_verbs_v2_ahl_4a[] = { .session = AFB_SESSION_NONE_V2 }, { - .verb = "subscribe", - .callback = audiohlapi_subscribe, + .verb = "event_subscription", + .callback = audiohlapi_event_subscription, .auth = NULL, .info = "Subscribe to audio high level events", .session = AFB_SESSION_NONE_V2 }, { - .verb = "unsubscribe", - .callback = audiohlapi_unsubscribe, - .auth = NULL, - .info = "Unubscribe to audio high level events", - .session = AFB_SESSION_NONE_V2 - }, - { .verb = NULL, .callback = NULL, .auth = NULL, |