aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf.d/project/etc/smixer-test-config.json20
-rw-r--r--conf.d/project/htdocs/index.html22
-rw-r--r--conf.d/project/lua.d/smixer-test-simple.lua12
-rw-r--r--mixer-binding/mixer-binding.c30
-rw-r--r--nbproject/configurations.xml253
-rw-r--r--plugins/alsa/alsa-api-mixer.c80
6 files changed, 65 insertions, 352 deletions
diff --git a/conf.d/project/etc/smixer-test-config.json b/conf.d/project/etc/smixer-test-config.json
index 3ed9f29..71eded8 100644
--- a/conf.d/project/etc/smixer-test-config.json
+++ b/conf.d/project/etc/smixer-test-config.json
@@ -12,24 +12,20 @@
"info": "Map alsa-loop subdevices to 4A HAL streams",
"spath": "./package/lib/plugins:./package/var:./lib/plugins:./var",
"libs": ["alsa-softmixer.ctlso", "smixer-test-simple.lua"],
- "lua": {
- "prefix": "smix",
- "functions": ["_mixer_new_"]
- }
}
],
"onload": [
{
- "uid": "init-soft-mixer",
- "info": "Initialise Audio Router",
- "action": "lua://softmixer#_mixer_simple_test_"
- }
- ],
- "controls": [
+ "uid": "create-soft-mixer",
+ "info": "Create Audio Router",
+ "action": "plugin://softmixer#CreateMixer",
+ "args": {"uid":"Simple_Test_Mixer"}
+ },
{
- "uid": "create",
- "action": "plugin://softmixer#mixer_new"
+ "uid": "attach-soft-mixer",
+ "info": "Attach Stream to Audio Router",
+ "action": "lua://softmixer#_mixer_simple_test_"
}
]
}
diff --git a/conf.d/project/htdocs/index.html b/conf.d/project/htdocs/index.html
index df7ec80..c667dde 100644
--- a/conf.d/project/htdocs/index.html
+++ b/conf.d/project/htdocs/index.html
@@ -18,21 +18,21 @@
<h2>V3 API CALL</h2>
<ol>
- <li><button onclick="callbinder('MyMixer', 'info', {streams: true});">Streams List</button></li>
- <li><button onclick="callbinder('MyMixer', 'info', {ramps: true});">Ramps List</button></li>
- <li><button onclick="callbinder('MyMixer', 'info', {zones: true});">Zones List</button></li>
+ <li><button onclick="callbinder('smixer', 'info', {streams: true});">Streams List</button></li>
+ <li><button onclick="callbinder('smixer', 'info', {ramps: true});">Ramps List</button></li>
+ <li><button onclick="callbinder('smixer', 'info', {zones: true});">Zones List</button></li>
<br>
- <li><button onclick="callbinder('MyMixer', '8CH-USB/playback', {volume: '+10'});">Master 8CH-USB vol=+10</button></li>
- <li><button onclick="callbinder('MyMixer', '8CH-USB/playback', {volume: '-10'});">Master 8CH-USB vol=-10</button></li>
+ <li><button onclick="callbinder('smixer', '8CH-USB/playback', {volume: '+10'});">Master 8CH-USB vol=+10</button></li>
+ <li><button onclick="callbinder('smixer', '8CH-USB/playback', {volume: '-10'});">Master 8CH-USB vol=-10</button></li>
<br>
- <li><button onclick="callbinder('MyMixer', 'multimedia', {toggle: true});">Stream Multimedia pause/resume</button></li>
- <li><button onclick="callbinder('MyMixer', 'navigation', {toggle: true});">Stream Navigation pause/resume</button></li>
+ <li><button onclick="callbinder('smixer', 'multimedia', {toggle: true});">Stream Multimedia pause/resume</button></li>
+ <li><button onclick="callbinder('smixer', 'navigation', {toggle: true});">Stream Navigation pause/resume</button></li>
<br>
- <li><button onclick="callbinder('MyMixer', 'multimedia', {volume: '+10'});">Stream Multimedia volume=+10"</button></li>
- <li><button onclick="callbinder('MyMixer', 'multimedia', {volume: '-10'});">Stream Multimedia volume=-10"</button></li>
+ <li><button onclick="callbinder('smixer', 'multimedia', {volume: '+10'});">Stream Multimedia volume=+10"</button></li>
+ <li><button onclick="callbinder('smixer', 'multimedia', {volume: '-10'});">Stream Multimedia volume=-10"</button></li>
<br>
- <li><button onclick="callbinder('MyMixer', 'multimedia', {ramp: {uid:'ramp-slow', volume:30}});">Stream Multimedia ramp-slow=30"</button></li>
- <li><button onclick="callbinder('MyMixer', 'multimedia', {ramp: {uid:'ramp-fast', volume:80}});">Stream Multimedia ramp-fast=80"</button></li>
+ <li><button onclick="callbinder('smixer', 'multimedia', {ramp: {uid:'ramp-slow', volume:30}});">Stream Multimedia ramp-slow=30"</button></li>
+ <li><button onclick="callbinder('smixer', 'multimedia', {ramp: {uid:'ramp-fast', volume:80}});">Stream Multimedia ramp-fast=80"</button></li>
</ol>
<div id="main" style="visibility:hidden">
diff --git a/conf.d/project/lua.d/smixer-test-simple.lua b/conf.d/project/lua.d/smixer-test-simple.lua
index 3a5dc98..99893c1 100644
--- a/conf.d/project/lua.d/smixer-test-simple.lua
+++ b/conf.d/project/lua.d/smixer-test-simple.lua
@@ -37,7 +37,6 @@ end
function _mixer_simple_test_ (source, args)
do
-
-- Mixer UID is used as API name
-- ==================== Default rate ===========================
@@ -220,16 +219,9 @@ function _mixer_simple_test_ (source, args)
}
- -- direct LUA call because controller cannot call its own API from AFB:servsync
- error,result= smix:_mixer_new_ (source, {["uid"]="MyMixer"})
- if (error ~= 0) then
- AFB:error (source, "--InLua-- smix:_mixer_new_ fail config=%s", Dump_Table(result))
- goto OnErrorExit
- else
- AFB:notice (source, "--InLua-- smix:_mixer_new_ done\n")
- end
- error,result= AFB:servsync(source, "MyMixer", "attach", MyTestHal)
+
+ error,result= AFB:servsync(source, "smixer", "attach", MyTestHal)
if (error) then
AFB:error (source, "--InLua-- API MyMixer/attach fail error=%d", error)
goto OnErrorExit
diff --git a/mixer-binding/mixer-binding.c b/mixer-binding/mixer-binding.c
index edfb408..ab61baa 100644
--- a/mixer-binding/mixer-binding.c
+++ b/mixer-binding/mixer-binding.c
@@ -30,7 +30,7 @@ PUBLIC afb_dynapi *AFB_default;
static CtlSectionT ctrlSections[]= {
{.key="resources" , .loadCB= PluginConfig},
{.key="onload" , .loadCB= OnloadConfig},
- {.key="controls", .loadCB= ControlConfig},
+ // {.key="controls", .loadCB= ControlConfig},
{.key=NULL}
};
@@ -62,18 +62,6 @@ STATIC int CtrlLoadStaticVerbs (afb_dynapi *apiHandle, AFB_ApiVerbs *verbs) {
return errcount;
};
-
-STATIC int CtrlInitOneApi (AFB_ApiT apiHandle) {
-
- AFB_default = apiHandle; // hugely hack to make all V2 AFB_DEBUG to work in fileutils
-
- // retrieve section config from api handle
- CtlConfigT *ctrlConfig = (CtlConfigT*) afb_dynapi_get_userdata(apiHandle);
- int err = CtlConfigExec (apiHandle, ctrlConfig);
-
- return err;
-}
-
// next generation dynamic API-V3 mode
#include <signal.h>
@@ -85,24 +73,21 @@ STATIC int CtrlLoadOneApi (void *cbdata, AFB_ApiT apiHandle) {
afb_dynapi_set_userdata(apiHandle, ctrlConfig);
// add static controls verbs
- int err = CtrlLoadStaticVerbs (apiHandle, CtrlApiVerbs);
- if (err) {
+ int error = CtrlLoadStaticVerbs (apiHandle, CtrlApiVerbs);
+ if (error) {
AFB_ApiError(apiHandle, "CtrlLoadSection fail to Registry static V2 verbs");
goto OnErrorExit;
}
// load section for corresponding API
- err= CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
+ error= CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
// declare an event event manager for this API;
afb_dynapi_on_event(apiHandle, CtrlDispatchApiEvent);
- // init API function (does not receive user closure ???
- afb_dynapi_on_init(apiHandle, CtrlInitOneApi);
-
// should not seal API as each mixer+stream create a new verb
// afb_dynapi_seal(apiHandle);
- return err;
+ return error;
OnErrorExit:
return 1;
@@ -130,7 +115,6 @@ PUBLIC int afbBindingVdyn(afb_dynapi *apiHandle) {
goto OnErrorExit;
}
-
if (!ctrlConfig->api) {
AFB_ApiError(apiHandle, "CtrlBindingDyn API Missing from metadata in:\n-- %s", configPath);
goto OnErrorExit;
@@ -140,6 +124,10 @@ PUBLIC int afbBindingVdyn(afb_dynapi *apiHandle) {
// create one API per config file (Pre-V3 return code ToBeChanged)
int status = afb_dynapi_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, CtrlLoadOneApi, ctrlConfig);
+ // config exec should be done after api init in order to enable onload to use newly defined ctl API.
+ if (!status)
+ status = CtlConfigExec (apiHandle, ctrlConfig);
+
return status;
OnErrorExit:
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
index e0e102a..d60d750 100644
--- a/nbproject/configurations.xml
+++ b/nbproject/configurations.xml
@@ -174,6 +174,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -186,6 +188,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -198,10 +202,21 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
</incDir>
+ <preprocessorList>
+ <Elem>AFB_BINDING_VERSION=dyn</Elem>
+ <Elem>CONTROL_CONFIG_PATH="/home/fulup/opt/4a-softmixer/etc:/home/fulup/Workspace/Audio-4a/4a-softmixer/build/package/etc"</Elem>
+ <Elem>CONTROL_LUA_PATH="/home/fulup/Workspace/Audio-4a/4a-softmixer/conf.d/project/lua.d:/home/fulup/opt/4a-softmixer/data"</Elem>
+ <Elem>CONTROL_PLUGIN_PATH="/home/fulup/opt/4a-softmixer/lib/plugins:/home/fulup/Workspace/Audio-4a/4a-softmixer/build/package/lib/plugins"</Elem>
+ <Elem>CONTROL_SUPPORT_LUA</Elem>
+ <Elem>CTL_PLUGIN_MAGIC=987456123</Elem>
+ <Elem>USE_API_DYN=1</Elem>
+ </preprocessorList>
</cTool>
</item>
<item path="app-controller-submodule/ctl-lib/ctl-event.c"
@@ -210,6 +225,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -222,6 +239,7 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
</incDir>
</cTool>
@@ -232,6 +250,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -244,6 +264,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -256,6 +278,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -268,6 +292,8 @@
flavor2="3">
<cTool flags="1">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
+ <pElem>app-controller-submodule/ctl-lib</pElem>
<pElem>app-afb-helpers-submodule</pElem>
<pElem>../../../opt/include</pElem>
<pElem>build/app-controller-submodule/ctl-lib</pElem>
@@ -337,18 +363,6 @@
<item path="plugins/alsa/alsa-api-loop.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -359,16 +373,7 @@
<item path="plugins/alsa/alsa-api-mixer.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>/usr/include/json-c</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
</incDir>
<preprocessorList>
<Elem>alsa_softmixer_EXPORTS</Elem>
@@ -378,18 +383,6 @@
<item path="plugins/alsa/alsa-api-pcm.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -400,18 +393,6 @@
<item path="plugins/alsa/alsa-api-ramp.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -422,18 +403,6 @@
<item path="plugins/alsa/alsa-api-sink.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -444,18 +413,6 @@
<item path="plugins/alsa/alsa-api-source.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -466,18 +423,6 @@
<item path="plugins/alsa/alsa-api-streams.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -488,18 +433,6 @@
<item path="plugins/alsa/alsa-api-zones.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -509,20 +442,6 @@
</item>
<item path="plugins/alsa/alsa-capture.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
- <incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
- </incDir>
<preprocessorList>
<Elem>CONTROL_CONFIG_PATH="/home/fulup/opt/4a-softmixer/etc:/home/fulup/Workspace/Audio-4a/4a-softmixer/build/package/etc"</Elem>
<Elem>CONTROL_LUA_PATH="/home/fulup/opt/4a-softmixer/data:/home/fulup/Workspace/Audio-4a/4a-softmixer/conf.d/project/lua.d"</Elem>
@@ -535,18 +454,6 @@
<item path="plugins/alsa/alsa-core-ctl.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -557,18 +464,6 @@
<item path="plugins/alsa/alsa-core-pcm.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -579,18 +474,6 @@
<item path="plugins/alsa/alsa-effect-ramp.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -601,18 +484,6 @@
<item path="plugins/alsa/alsa-plug-dmix.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -623,18 +494,6 @@
<item path="plugins/alsa/alsa-plug-rate.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -645,18 +504,6 @@
<item path="plugins/alsa/alsa-plug-route.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -667,18 +514,6 @@
<item path="plugins/alsa/alsa-plug-vol.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -689,18 +524,6 @@
<item path="plugins/alsa/alsa-softmixer.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -711,18 +534,6 @@
<item path="plugins/alsa/alsa-utils-bypath.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
@@ -733,18 +544,6 @@
<item path="plugins/alsa/alsa-utils-dump.c" ex="false" tool="0" flavor2="2">
<cTool flags="0">
<incDir>
- <pElem>app-controller-submodule/ctl-lib</pElem>
- <pElem>build/app-controller-submodule/ctl-lib</pElem>
- <pElem>/usr/include</pElem>
- <pElem>/usr/include/json-c</pElem>
- <pElem>/usr/include/alsa</pElem>
- <pElem>../../../opt/include</pElem>
- <pElem>/usr/include/p11-kit-1</pElem>
- <pElem>/usr/include/uuid</pElem>
- <pElem>../../../opt/include/alsa</pElem>
- <pElem>mixer-binding</pElem>
- <pElem>app-afb-helpers-submodule</pElem>
- <pElem>build/plugins/alsa</pElem>
<pElem>/usr/include/lua5.3</pElem>
</incDir>
<preprocessorList>
diff --git a/plugins/alsa/alsa-api-mixer.c b/plugins/alsa/alsa-api-mixer.c
index 112adbb..8616384 100644
--- a/plugins/alsa/alsa-api-mixer.c
+++ b/plugins/alsa/alsa-api-mixer.c
@@ -278,13 +278,6 @@ STATIC void MixerPingVerb(AFB_ReqT request) {
return;
}
-STATIC void MixerEventCB(AFB_ApiT api, const char *evtLabel, struct json_object *eventJ) {
-
- SoftMixerT *mixer = (SoftMixerT*) afb_dynapi_get_userdata(api);
- assert(mixer);
-
- AFB_ApiNotice(api, "Mixer=%s Received event=%s, eventJ=%s", mixer->uid, evtLabel, json_object_get_string(eventJ));
-}
// Every HAL export the same API & Interface Mapping from SndCard to AudioLogic is done through alsaHalSndCardT
STATIC AFB_ApiVerbs CtrlApiVerbs[] = {
@@ -306,38 +299,7 @@ STATIC int LoadStaticVerbs(SoftMixerT *mixer, AFB_ApiVerbs *verbs) {
return errcount;
};
-STATIC int MixerInitCB(AFB_ApiT api) {
-
- SoftMixerT *mixer = (SoftMixerT*) afb_dynapi_get_userdata(api);
- assert(mixer);
-
- // attach AFB mainloop to mixer
- mixer->sdLoop = AFB_GetEventLoop(api);
-
-
- AFB_ApiNotice(api, "MixerInitCB API=%s activated info=%s", mixer->uid, mixer->info);
-
- return 0;
-}
-
-STATIC int MixerApiCB(void* handle, AFB_ApiT api) {
- SoftMixerT *mixer = (SoftMixerT*) handle;
-
- mixer->api = api;
- afb_dynapi_set_userdata(api, mixer);
- afb_dynapi_on_event(api, MixerEventCB);
- afb_dynapi_on_init(api, MixerInitCB);
-
- int error = LoadStaticVerbs(mixer, CtrlApiVerbs);
- if (error) goto OnErrorExit;
-
- return 0;
-
-OnErrorExit:
- return -1;
-}
-
-CTLP_LUA2C(_mixer_new_, source, argsJ, responseJ) {
+CTLP_CAPI(CreateMixer, source, argsJ, responseJ) {
SoftMixerT *mixer = calloc(1, sizeof (SoftMixerT));
int error;
mixer->max.loops = SMIXER_DEFLT_RAMPS;
@@ -377,40 +339,16 @@ CTLP_LUA2C(_mixer_new_, source, argsJ, responseJ) {
mixer->zones = calloc(mixer->max.zones + 1, sizeof (void*));
mixer->streams = calloc(mixer->max.streams + 1, sizeof (void*));
mixer->ramps = calloc(mixer->max.ramps + 1, sizeof (void*));
+
+ mixer->sdLoop = AFB_GetEventLoop(source->api);
+ mixer->api= source->api;
+ afb_dynapi_set_userdata(source->api, mixer);
- // create mixer verb within API.
- error = afb_dynapi_new_api(source->api, mixer->uid, mixer->info, !MAINLOOP_CONCURENCY, MixerApiCB, mixer);
- if (error) {
- AFB_ApiError(source->api, "_mixer_new_ mixer=%s fail to Registry API verb", mixer->uid);
- goto OnErrorExit;
- }
-
+ error = LoadStaticVerbs(mixer, CtrlApiVerbs);
+ if (error) goto OnErrorExit;
+
return 0;
OnErrorExit:
return -1;
-}
-
-// provide a similar command but for API
-
-CTLP_CAPI(mixer_new, source, argsJ, queryJ) {
- json_object * responseJ;
-
- // merge static config args with dynamic one coming from the request
- if (argsJ && json_object_get_type(argsJ) == json_type_object) {
-
- json_object_object_foreach(argsJ, key, val) {
- json_object_get(val);
- json_object_object_add(queryJ, key, val);
- }
- }
-
- int error = _mixer_new_(source, queryJ, &responseJ);
-
- if (error)
- AFB_ReqFailF(source->request, "fail-create", "invalid arguments");
- else
- AFB_ReqSucess(source->request, responseJ, NULL);
-
- return error;
-}
+} \ No newline at end of file