summaryrefslogtreecommitdiffstats
path: root/src/ahl-apidef.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ahl-apidef.h')
-rw-r--r--src/ahl-apidef.h256
1 files changed, 94 insertions, 162 deletions
diff --git a/src/ahl-apidef.h b/src/ahl-apidef.h
index fd957ce..97f8de7 100644
--- a/src/ahl-apidef.h
+++ b/src/ahl-apidef.h
@@ -36,114 +36,86 @@ static const char _afb_description_v2_audiohl[] =
":{\"200\":{\"description\":\"A complex object array response\",\"content"
"\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/af"
"b-reply\"}}}},\"400\":{\"description\":\"Invalid arguments\"}}},\"paths\""
- ":{\"/get_sources\":{\"description\":\"Retrieve array of available audio "
- "sources\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"audio_ro"
- "le\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"responses\":"
- "{\"200\":{\"$ref\":\"#/components/responses/200\",\"response\":{\"descri"
- "ption\":\"Array of endpoint info structures\",\"type\":\"array\",\"items"
- "\":{\"$ref\":\"#/components/schemas/endpoint_info\"}}},\"400\":{\"$ref\""
- ":\"#/components/responses/400\"}}}},\"/get_sinks\":{\"description\":\"Re"
- "trieve array of available audio sinks\",\"get\":{\"parameters\":[{\"in\""
- ":\"query\",\"name\":\"audio_role\",\"required\":true,\"schema\":{\"type\""
- ":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses"
- "/200\",\"response\":{\"description\":\"Array of endpoint info structures"
- "\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/endpoin"
- "t_info\"}}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/stre"
- "am_open\":{\"description\":\"Request opening a stream\",\"get\":{\"x-per"
- "missions\":{\"$ref\":\"#/components/x-permissions/audiostream\"},\"param"
- "eters\":[{\"in\":\"query\",\"name\":\"audio_role\",\"required\":true,\"s"
- "chema\":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"endpoint_typ"
- "e\",\"required\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\","
- "\"name\":\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"int\""
- "}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\",\"re"
- "sponse\":{\"description\":\"Stream information structure\",\"$ref\":\"#/"
- "components/schemas/stream_info\"}},\"400\":{\"$ref\":\"#/components/resp"
- "onses/400\"}}}},\"/stream_close\":{\"description\":\"Request closing a s"
- "tream\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permission"
- "s/audiostream\"},\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\""
+ ":{\"/get_endpoints\":{\"description\":\"Retrieve array of available audi"
+ "o endpoints\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"audi"
+ "o_role\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"q"
+ "uery\",\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\""
+ ":\"enum\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/2"
+ "00\",\"response\":{\"description\":\"Array of endpoint info structures\""
+ ",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/endpoint_"
+ "info\"}}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/stream"
+ "_open\":{\"description\":\"Request opening a stream\",\"get\":{\"x-permi"
+ "ssions\":{\"$ref\":\"#/components/x-permissions/audiostream\"},\"paramet"
+ "ers\":[{\"in\":\"query\",\"name\":\"audio_role\",\"required\":true,\"sch"
+ "ema\":{\"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\":false,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":"
+ "{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/componen"
+ "ts/responses/400\"}}}},\"/set_stream_state\":{\"description\":\"Change s"
+ "tream active and/or mute state\",\"get\":{\"x-permissions\":{\"$ref\":\""
+ "#/components/x-permissions/streamcontrol\"},\"parameters\":[{\"in\":\"qu"
+ "ery\",\"name\":\"stream_id\",\"required\":false,\"schema\":{\"type\":\"i"
+ "nt\"}},{\"in\":\"query\",\"name\":\"state\",\"required\":false,\"schema\""
+ ":{\"type\":\"int\"}},{\"in\":\"query\",\"name\":\"mute\",\"required\":fa"
+ "lse,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#"
+ "/components/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/"
+ "400\"}}}},\"/get_stream_info\":{\"description\":\"Retrieve stream inform"
+ "ation\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id\""
",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\""
- ":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/compone"
- "nts/responses/400\"}}}},\"/set_stream_state\":{\"description\":\"Change "
- "stream active state\",\"get\":{\"x-permissions\":{\"$ref\":\"#/component"
- "s/x-permissions/streamcontrol\"},\"parameters\":[{\"in\":\"query\",\"nam"
- "e\":\"stream_id\",\"required\":true,\"schema\":{\"type\":\"int\"}},{\"in"
- "\":\"query\",\"name\":\"state\",\"required\":true,\"schema\":{\"type\":\""
- "int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\""
- "},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/set_stream_mut"
- "e\":{\"description\":\"Change stream mute state\",\"get\":{\"x-permissio"
- "ns\":{\"$ref\":\"#/components/x-permissions/streamcontrol\"},\"parameter"
- "s\":[{\"in\":\"query\",\"name\":\"stream_id\",\"required\":true,\"schema"
- "\":{\"type\":\"int\"}},{\"in\":\"query\",\"name\":\"mute\",\"required\":"
- "true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\""
- "#/components/responses/200\"},\"400\":{\"$ref\":\"#/components/responses"
- "/400\"}}}},\"/get_stream_info\":{\"description\":\"Retrieve stream infor"
- "mation\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"stream_id"
- "\",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"20"
- "0\":{\"$ref\":\"#/components/responses/200\",\"response\":{\"description"
- "\":\"Stream information structure\",\"$ref\":\"#/components/schemas/stre"
- "am_info\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/set_"
- "volume\":{\"description\":\"Set volume on endpoint\",\"get\":{\"x-permis"
- "sions\":{\"$ref\":\"#/components/x-permissions/endpointcontrol\"},\"para"
- "meters\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\"required\":true"
- ",\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\":\"endpoint_i"
- "d\",\"required\":true,\"schema\":{\"type\":\"int\"}},{\"in\":\"query\",\""
- "name\":\"volume\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\""
- "responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{"
- "\"$ref\":\"#/components/responses/400\"}}}},\"/get_volume\":{\"descripti"
- "on\":\"Get endpoint volume\",\"get\":{\"parameters\":[{\"in\":\"query\","
- "\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\":\"enum"
- "\"}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":true,\"sche"
- "ma\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/component"
- "s/responses/200\",\"response\":{\"description\":\"Endpoint volume value\""
- ",\"type\":\"double\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}"
- "}}},\"/get_endpoint_info\":{\"description\":\"Retrieve endpoint informat"
- "ion including its properties\",\"get\":{\"parameters\":[{\"in\":\"query\""
- ",\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"type\":\"enu"
- "m\"}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":false,\"sc"
- "hema\":{\"type\":\"int\"}}],\"responses\":{\"200\":{\"$ref\":\"#/compone"
- "nts/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/400\"}}}"
- "},\"/set_property\":{\"description\":\"Set endpoint property value\",\"g"
- "et\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/endpointc"
- "ontrol\"},\"parameters\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\""
+ ":{\"$ref\":\"#/components/responses/200\",\"response\":{\"description\":"
+ "\"Stream information structure\",\"$ref\":\"#/components/schemas/stream_"
+ "info\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/volume\""
+ ":{\"description\":\"Set or get volume on endpoint\",\"get\":{\"x-permiss"
+ "ions\":{\"$ref\":\"#/components/x-permissions/endpointcontrol\"},\"param"
+ "eters\":[{\"in\":\"query\",\"name\":\"endpoint_type\",\"required\":true,"
+ "\"schema\":{\"type\":\"enum\"}},{\"in\":\"query\",\"name\":\"endpoint_id"
+ "\",\"required\":true,\"schema\":{\"type\":\"int\"}},{\"in\":\"query\",\""
+ "name\":\"volume\",\"required\":false,\"schema\":{\"type\":\"string\"}}],"
+ "\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"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,\"schema\":{\"type\":\"int\"}},{\""
- "in\":\"query\",\"name\":\"property_name\",\"required\":true,\"schema\":{"
- "\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"value\",\"required\":"
- "true,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\""
- ":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/components/respon"
- "ses/400\"}}}},\"/get_property\":{\"description\":\"Get endpoint property"
- " value\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"endpoint_"
- "type\",\"required\":true,\"schema\":{\"type\":\"enum\"}},{\"in\":\"query"
- "\",\"name\":\"endpoint_id\",\"required\":false,\"schema\":{\"type\":\"in"
- "t\"}},{\"in\":\"query\",\"name\":\"property_name\",\"required\":true,\"s"
- "chema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/com"
- "ponents/responses/200\",\"response\":{\"description\":\"Property value\""
- ",\"type\":\"double\"}},\"400\":{\"$ref\":\"#/components/responses/400\"}"
- "}}},\"/get_list_actions\":{\"description\":\"Retrieve a list of supporte"
- "d actions for a particular audio role\",\"get\":{\"parameters\":[{\"in\""
- ":\"query\",\"name\":\"audio_role\",\"required\":true,\"schema\":{\"type\""
- ":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses"
- "/200\"},\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/post_act"
- "ion\":{\"description\":\"Post sound or audio device related action event"
- " (extendable mechanism)\",\"get\":{\"x-permissions\":{\"$ref\":\"#/compo"
- "nents/x-permissions/soundevent\"},\"parameters\":[{\"in\":\"query\",\"na"
- "me\":\"action_name\",\"required\":true,\"schema\":{\"type\":\"string\"}}"
- ",{\"in\":\"query\",\"name\":\"audio_role\",\"required\":true,\"schema\":"
- "{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"media_name\",\"requi"
- "red\":false,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"name\""
- ":\"action_context\",\"required\":false,\"schema\":{\"type\":\"object\"}}"
- "],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400"
- "\":{\"$ref\":\"#/components/responses/400\"}}}},\"/subscribe\":{\"descri"
- "ption\":\"Subscribe to audio high level events\",\"get\":{\"parameters\""
- ":[{\"in\":\"query\",\"name\":\"events\",\"required\":true,\"schema\":{\""
- "type\":\"array\",\"items\":{\"type\":\"string\"}}}],\"responses\":{\"200"
- "\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/compo"
- "nents/responses/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\":\"#/co"
- "mponents/responses/200\"},\"400\":{\"$ref\":\"#/components/responses/400"
- "\"}}}}}}"
+ "\":\"endpoint_id\",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"r"
+ "esponses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\""
+ "$ref\":\"#/components/responses/400\"}}}},\"/property\":{\"description\""
+ ":\"Set/get endpoint property value\",\"get\":{\"x-permissions\":{\"$ref\""
+ ":\"#/components/x-permissions/endpointcontrol\"},\"parameters\":[{\"in\""
+ ":\"query\",\"name\":\"endpoint_type\",\"required\":true,\"schema\":{\"ty"
+ "pe\":\"enum\"}},{\"in\":\"query\",\"name\":\"endpoint_id\",\"required\":"
+ "true,\"schema\":{\"type\":\"int\"}},{\"in\":\"query\",\"name\":\"propert"
+ "y_name\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"q"
+ "uery\",\"name\":\"value\",\"required\":false,\"schema\":{\"type\":\"stri"
+ "ng\"}}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}"
+ ",\"400\":{\"$ref\":\"#/components/responses/400\"}}}},\"/get_list_action"
+ "s\":{\"description\":\"Retrieve a list of supported actions for a partic"
+ "ular audio role\",\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\""
+ "audio_role\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"resp"
+ "onses\":{\"200\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$r"
+ "ef\":\"#/components/responses/400\"}}}},\"/post_action\":{\"description\""
+ ":\"Post sound or audio device related action event (extendable mechanism"
+ ")\",\"get\":{\"x-permissions\":{\"$ref\":\"#/components/x-permissions/so"
+ "undevent\"},\"parameters\":[{\"in\":\"query\",\"name\":\"action_name\",\""
+ "required\":true,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"na"
+ "me\":\"audio_role\",\"required\":true,\"schema\":{\"type\":\"string\"}},"
+ "{\"in\":\"query\",\"name\":\"media_name\",\"required\":false,\"schema\":"
+ "{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"action_context\",\"r"
+ "equired\":false,\"schema\":{\"type\":\"object\"}}],\"responses\":{\"200\""
+ ":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/compone"
+ "nts/responses/400\"}}}},\"/event_subscription\":{\"description\":\"Subsc"
+ "ribe to audio high level events\",\"get\":{\"parameters\":[{\"in\":\"que"
+ "ry\",\"name\":\"events\",\"required\":true,\"schema\":{\"type\":\"array\""
+ ",\"items\":{\"type\":\"string\"}}},{\"in\":\"query\",\"name\":\"subscrib"
+ "e\",\"required\":true,\"schema\":{\"type\":\"int\"}}],\"responses\":{\"2"
+ "00\":{\"$ref\":\"#/components/responses/200\"},\"400\":{\"$ref\":\"#/com"
+ "ponents/responses/400\"}}}}}}"
;
static const struct afb_auth _afb_auths_v2_audiohl[] = {
@@ -153,36 +125,24 @@ static const struct afb_auth _afb_auths_v2_audiohl[] = {
{ .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_audiohl[] = {
{
- .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
},
{
@@ -203,14 +163,7 @@ static const struct afb_verb_v2 _afb_verbs_v2_audiohl[] = {
.verb = "set_stream_state",
.callback = audiohlapi_set_stream_state,
.auth = &_afb_auths_v2_audiohl[1],
- .info = "Change stream active state",
- .session = AFB_SESSION_NONE_V2
- },
- {
- .verb = "set_stream_mute",
- .callback = audiohlapi_set_stream_mute,
- .auth = &_afb_auths_v2_audiohl[1],
- .info = "Change stream mute state",
+ .info = "Change stream active and/or mute state",
.session = AFB_SESSION_NONE_V2
},
{
@@ -221,17 +174,10 @@ static const struct afb_verb_v2 _afb_verbs_v2_audiohl[] = {
.session = AFB_SESSION_NONE_V2
},
{
- .verb = "set_volume",
- .callback = audiohlapi_set_volume,
+ .verb = "volume",
+ .callback = audiohlapi_volume,
.auth = &_afb_auths_v2_audiohl[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
},
{
@@ -242,17 +188,10 @@ static const struct afb_verb_v2 _afb_verbs_v2_audiohl[] = {
.session = AFB_SESSION_NONE_V2
},
{
- .verb = "set_property",
- .callback = audiohlapi_set_property,
+ .verb = "property",
+ .callback = audiohlapi_property,
.auth = &_afb_auths_v2_audiohl[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
},
{
@@ -270,20 +209,13 @@ static const struct afb_verb_v2 _afb_verbs_v2_audiohl[] = {
.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,