summaryrefslogtreecommitdiffstats
path: root/ahl-binding/ahl-apidef.h
diff options
context:
space:
mode:
Diffstat (limited to 'ahl-binding/ahl-apidef.h')
-rw-r--r--ahl-binding/ahl-apidef.h251
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,