From 9777a02c7540fdec145feb948b4bbf1cd44c3352 Mon Sep 17 00:00:00 2001 From: fulup Date: Sun, 13 Aug 2017 16:50:34 +0200 Subject: Fix AFB_MESSAGE with null arguments --- conf.d/CMakeLists.txt | 10 +- conf.d/cmake/config.cmake | 16 +-- conf.d/ctl-rules/CMakeLists.txt | 44 -------- conf.d/ctl-rules/helloworld-lua-script.lua | 41 -------- conf.d/ctl-rules/onload-control-policy.json | 108 -------------------- conf.d/ctl-rules/onload-control-script.lua | 96 ------------------ conf.d/project/CMakeLists.txt | 24 +++++ conf.d/project/config.d/CMakeLists.txt | 40 ++++++++ conf.d/project/config.d/onload-audio-control.json | 116 ++++++++++++++++++++++ conf.d/project/lua.d/CMakeLists.txt | 40 ++++++++ conf.d/project/lua.d/helloworld-lua-script.lua | 41 ++++++++ conf.d/project/lua.d/onload-audio-policy.lua | 49 +++++++++ conf.d/project/lua.d/onload-audio-samples.lua | 93 +++++++++++++++++ 13 files changed, 415 insertions(+), 303 deletions(-) delete mode 100644 conf.d/ctl-rules/CMakeLists.txt delete mode 100644 conf.d/ctl-rules/helloworld-lua-script.lua delete mode 100644 conf.d/ctl-rules/onload-control-policy.json delete mode 100644 conf.d/ctl-rules/onload-control-script.lua create mode 100644 conf.d/project/CMakeLists.txt create mode 100644 conf.d/project/config.d/CMakeLists.txt create mode 100644 conf.d/project/config.d/onload-audio-control.json create mode 100644 conf.d/project/lua.d/CMakeLists.txt create mode 100644 conf.d/project/lua.d/helloworld-lua-script.lua create mode 100644 conf.d/project/lua.d/onload-audio-policy.lua create mode 100644 conf.d/project/lua.d/onload-audio-samples.lua (limited to 'conf.d') diff --git a/conf.d/CMakeLists.txt b/conf.d/CMakeLists.txt index 413fe8e..28a0609 100644 --- a/conf.d/CMakeLists.txt +++ b/conf.d/CMakeLists.txt @@ -17,10 +17,6 @@ ########################################################################### - -# Define subproject targets -ADD_SUBDIRECTORY(ctl-rules) - - - - +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake index e70fb62..510eb70 100644 --- a/conf.d/cmake/config.cmake +++ b/conf.d/cmake/config.cmake @@ -67,17 +67,19 @@ set (PKG_REQUIRED_LIST # Define CONTROL_CDEV_NAME should match MOST driver values # --------------------------------------------------------- + add_compile_options(-DCONTROL_ONLOAD_DEFAULT="onload-default") add_compile_options(-DCONTROL_MAXPATH_LEN=255) - add_compile_options(-DCONTROL_CONFIG_FILE="onload-control-policy.json") - add_compile_options(-DCONTROL_CONFIG_PATH="${CMAKE_SOURCE_DIR}/conf.d:${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}/config") - - add_compile_options(-DCONTROL_LUA_PATH="${CMAKE_SOURCE_DIR}/conf.d:/etc/default/${PROJECT_NAME}/lua:${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}/lua") + add_compile_options(-DCONTROL_CONFIG_PRE="onload") + add_compile_options(-DCONTROL_CONFIG_POST="control" ) + add_compile_options(-DCONTROL_CONFIG_PATH="${CMAKE_SOURCE_DIR}/conf.d/project/config.d:${CMAKE_INSTALL_PREFIX}/controler/config.d") + add_compile_options(-DCONTROL_LUA_EVENT="luaevt") + add_compile_options(-DCONTROL_LUA_PATH="${CMAKE_SOURCE_DIR}/conf.d/project/lua.d:${CMAKE_INSTALL_PREFIX}/controler/ctl-lua.d") - set (CTL_PLUGIN_PRE "audio-") - set (CTL_PLUGIN_EXT ".ctlso") + set (CTL_PLUGIN_PRE "ctl-" cache "Prefix for Controler share plugin") + set (CTL_PLUGIN_EXT ".ctlso" cache "Postfix for Controler share plugin") add_compile_options(-DCTL_PLUGIN_MAGIC=2468013579) - add_compile_options(-DCONTROL_PLUGIN_PATH="${BINDINGS_INSTALL_DIR}/controler:/usr/lib/${PROJECT_NAME}") + add_compile_options(-DCONTROL_PLUGIN_PATH="${CMAKE_BINARY_DIR}:${BINDINGS_INSTALL_DIR}/ctlplug:/usr/lib/afb/ctlplug") # Print a helper message when every thing is finished # ---------------------------------------------------- diff --git a/conf.d/ctl-rules/CMakeLists.txt b/conf.d/ctl-rules/CMakeLists.txt deleted file mode 100644 index 51a3a46..0000000 --- a/conf.d/ctl-rules/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -########################################################################### -# Copyright 2017 IoT.bzh -# -# author: Fulup Ar Foll -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -########################################################################### - - -################################################## -# Control Policy Config file -################################################## -PROJECT_TARGET_ADD(control-rules) - - file(GLOB XML_FILES "*.json" "*.lua") - - add_custom_target(${TARGET_NAME} - DEPENDS ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} - ) - - # check XML schema before pushing config - add_custom_command( - DEPENDS ${XML_FILES} - OUTPUT ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} - # COMMAND xmllint -schema ${XML_SCHEMA} ${XML_FILES} --noout (Fulup we miss this for JSON) - COMMAND mkdir -p ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} - COMMAND touch ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} - COMMAND cp -r ${XML_FILES} ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} - ) - - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "DATA" - OUTPUT_NAME ${TARGET_NAME} - ) diff --git a/conf.d/ctl-rules/helloworld-lua-script.lua b/conf.d/ctl-rules/helloworld-lua-script.lua deleted file mode 100644 index 7dd0459..0000000 --- a/conf.d/ctl-rules/helloworld-lua-script.lua +++ /dev/null @@ -1,41 +0,0 @@ ---[[ - Copyright (C) 2016 "IoT.bzh" - Author Fulup Ar Foll - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Simple API script ---]] - - -- retrieve calling arguments - args= ... - - print ("Helloworld script arguments:") - - - for key,value in pairs(args) - do - print("args: ", key,value) - end - - -- loop on script arguments - --for i=1,#args - --do - -- print(" -- ", i, args[i]) - --end - - - -- return two arguments on top of status - return true, 1234, "ABCD", 5678 - diff --git a/conf.d/ctl-rules/onload-control-policy.json b/conf.d/ctl-rules/onload-control-policy.json deleted file mode 100644 index b5d4503..0000000 --- a/conf.d/ctl-rules/onload-control-policy.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "$schema": "ToBeDone", - "metadata": { - "label": "sample-audio-control", - "info": "Provide Default Audio Policy for Multimedia, Navigation and Emergency", - "version": "1.0" - }, - "onload": { - "label": "onload-config", - "info": "onload initialisation config", - "plugin": "audio-ctl-plugin-sample.ctlso", - "actions": [ - { - "label": "onload-sample-cb", - "info": "Call control sharelib install entrypoint", - "callback": "SamplePolicyInit", - "args": { - "arg1": "first_arg", - "nextarg": "second arg value" - } - }, { - "label": "onload-sample-api", - "info": "Assert AlsaCore Presence", - "api": "alsacore", - "verb": "ping", - "args": "test" - }, { - "label": "onload-sample-lua", - "info": "Assert LUA Engine", - "lua": "Test_Lua_Engine", - "args": "ping" - } - ] - }, - "controls": - [ - { - "label": "multimedia", - "actions": [ - { - "label": "multimedia-control-cb", - "info": "Call Sharelib Sample Callback", - "callback": "sampleControlMultimedia", - "args": { - "arg1": "snoopy", - "arg2": "toto" - } - }, { - "label": "multimedia-control-ucm", - "info": "Subcall AlSA UCM navigation", - "api": "alsacore", - "verb": "ping", - "args": { - "select": "multimedia" - } - }] - }, { - "label": "navigation", - "actions": [ { - "label": "multimedia-control-cb", - "info": "Call Sharelib Sample Callback", - "callback": "sampleControlNavigation", - "args": { - "arg1": "snoopy", - "arg2": "toto" - } - }, { - "label": "navigation-control-ucm", - "api": "alsacore", - "verb": "ping", - "args": { - "select": "navigation" - } - }] - }, { - "label": "emergency", - "actions": [{ - "label": "emergency-control-ucm", - "api": "alsacore", - "verb": "ping", - "args": { - "select": "emergency" - } - }] - } - ], - "events": - { - "label": "SampleEvent", - "info": "define action when receiving a given event", - "actions": [ - { - "label": "Event Callback-1", - "callback": "SampleControlEvent", - "args": { - "arg": "action-1" - } - }, { - "label": "Event Callback-2", - "callback": "SampleControlEvent", - "args": { - "arg": "action-2" - } - } - ] - } -} - diff --git a/conf.d/ctl-rules/onload-control-script.lua b/conf.d/ctl-rules/onload-control-script.lua deleted file mode 100644 index 6cc85fa..0000000 --- a/conf.d/ctl-rules/onload-control-script.lua +++ /dev/null @@ -1,96 +0,0 @@ ---[[ - Copyright (C) 2016 "IoT.bzh" - Author Fulup Ar Foll - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Provide sample policy function for AGL Advance Audio Agent ---]] - -count=0 - --- Adjust Volume function of vehicle speed -function Adjust_Volume_Speed (request, speed_meters_second) - - AFB:notice("In Adjust_Volume_Speed speed=%d", speed_meters_second); - - print (string.format("*****(From Lua) Adjust_Volume_Speed speed=%d count=%d", speed_meters_second, count)); - - -- compute volume - volume = speed_meters_second * 2 - count=count+1 - - AFB:success (request, 1234, volume, count, 5678) -end - - -function Test_Binder_CB (result, context) - - local myTable= { ["arg1"] = "myString", ["arg2"] = 1234, ["arg4"] = true, ["arg5"] = 3.1416 } - - AFB:notice ("In Test_Binder_CB", result, context) - - AFB:success (1234, "ABCD", myTable, 5678) - -end - -function Test_Binder_Call_Async () - - local query= { - ["arg1"] = "myString", - ["arg2"] = 1234, - ["arg4"] = true, - ["arg5"] = 3.1416, - } - - AFB:service("alsacore","ping", query, Test_Binder_CB, "myContext") - -end - -function Test_Binder_Call_Sync () - - local query= { - ["arg1"] = "myString", - ["arg2"] = 1234, - ["arg4"] = true, - ["arg5"] = 3.1416, - } - - err= AFB:service_sync ("alsacore","ping", query) - - if (err) then - AFB:fail ("AFB:service_call_sync fail"); - else - AFB:success (1234, "ABCD", myTable) - end - - -end - - -function Test_Lua_Engine(request, ...) - - AFB:NOTICE ("In est_Lua_Engine"); - print ("Ping_Test script arguments:"); - - for i,v in ipairs(arg) - do - print(" -- ", tostring(v)) - end - - -- return OK - return 0 -end - - diff --git a/conf.d/project/CMakeLists.txt b/conf.d/project/CMakeLists.txt new file mode 100644 index 0000000..fd4d454 --- /dev/null +++ b/conf.d/project/CMakeLists.txt @@ -0,0 +1,24 @@ +########################################################################### +# Copyright 2015, 2016, 2017 IoT.bzh +# +# author: Fulup Ar Foll +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + + + +# Include anything not starting with _ +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) + + diff --git a/conf.d/project/config.d/CMakeLists.txt b/conf.d/project/config.d/CMakeLists.txt new file mode 100644 index 0000000..229cf2d --- /dev/null +++ b/conf.d/project/config.d/CMakeLists.txt @@ -0,0 +1,40 @@ +########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Fulup Ar Foll +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + + +################################################## +# Control Policy Config file +################################################## +PROJECT_TARGET_ADD(ctl-config.d) + + file(GLOB XML_FILES "*.json") + + add_custom_target(${TARGET_NAME} + DEPENDS ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + + # check XML schema before pushing config + add_custom_command( + DEPENDS ${XML_FILES} + OUTPUT ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + # COMMAND xmllint -schema ${XML_SCHEMA} ${XML_FILES} --noout (Fulup we miss this for JSON) + COMMAND mkdir -p ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND touch ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND cp -r ${XML_FILES} ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + diff --git a/conf.d/project/config.d/onload-audio-control.json b/conf.d/project/config.d/onload-audio-control.json new file mode 100644 index 0000000..aecf1b3 --- /dev/null +++ b/conf.d/project/config.d/onload-audio-control.json @@ -0,0 +1,116 @@ +{ + "$schema": "ToBeDone", + "metadata": { + "label": "sample-audio-control", + "info": "Provide Default Audio Policy for Multimedia, Navigation and Emergency", + "version": "1.0" + }, + "onload": [{ + "label": "onload-default", + "info": "onload initialisation config", + "plugin": "ctl-audio-plugin-sample.ctlso", + "require": ["intel-hda", "jabra-usb", "scarlett-usb"], + "actions": [ + { + "label": "onload-sample-cb", + "info": "Call control sharelib install entrypoint", + "callback": "SamplePolicyInit", + "args": { + "arg1": "first_arg", + "nextarg": "second arg value" + } + }, { + "label": "onload-sample-api", + "info": "Assert AlsaCore Presence", + "api": "alsacore", + "verb": "ping", + "args": "test" + }, { + "label": "onload-hal-lua", + "info": "Load avaliable HALs", + "lua": "Audio_Init_Hal" + } + ] + }], + "controls": + [ + { + "label": "multimedia", + "actions": [{ + "label": "multimedia-control-lua", + "info": "Call Lua Script function Test_Lua_Engin", + "lua": "Audio_Set_Use_Case_Multimedia", + }] + }, { + "label": "navigation", + "actions": [{ + "label": "multimedia-control-cb", + "info": "Call Sharelib Sample Callback", + "callback": "sampleControlNavigation", + "args": { + "arg1": "snoopy", + "arg2": "toto" + } + }, { + "label": "navigation-control-ucm", + "api": "alsacore", + "verb": "ping", + "args": { + "test": "navigation" + } + }, { + "label": "navigation-control-lua", + "info": "Call Lua Script to set Navigation", + "lua": "Audio_Set_Use_Case_Navigation", + }] + }, { + "label": "emergency", + "actions": [{ + "label": "emergency-control-ucm", + "lua": "Audio_Set_Use_Case_Emergency", + }] + } + ], + "events": + [ + { + "label": "SampleEvent1", + "info": "define action when receiving a given event", + "actions": [ + { + "label": "Event Callback-1", + "callback": "SampleControlEvent", + "args": { + "arg": "action-1" + } + }, { + "label": "Event Callback-2", + "callback": "SampleControlEvent", + "args": { + "arg": "action-2" + } + } + ] + }, + { + "label": "SampleEvent2", + "info": "define action when receiving a given event", + "actions": [ + { + "label": "Event Callback-1", + "callback": "SampleControlEvent", + "args": { + "arg": "action-1" + } + }, { + "label": "Event Callback-2", + "callback": "SampleControlEvent", + "args": { + "arg": "action-2" + } + } + ] + } + ] +} + diff --git a/conf.d/project/lua.d/CMakeLists.txt b/conf.d/project/lua.d/CMakeLists.txt new file mode 100644 index 0000000..db54742 --- /dev/null +++ b/conf.d/project/lua.d/CMakeLists.txt @@ -0,0 +1,40 @@ +########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Fulup Ar Foll +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + + +################################################## +# Control Policy Config file +################################################## +PROJECT_TARGET_ADD(ctl-lua.d) + + file(GLOB XML_FILES "*.lua") + + add_custom_target(${TARGET_NAME} + DEPENDS ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + + # check XML schema before pushing config + add_custom_command( + DEPENDS ${XML_FILES} + OUTPUT ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + # COMMAND xmllint -schema ${XML_SCHEMA} ${XML_FILES} --noout (Fulup we miss this for JSON) + COMMAND mkdir -p ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND touch ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + COMMAND cp -r ${XML_FILES} ${PROJECT_PKG_BUILD_DIR}/${TARGET_NAME} + ) + diff --git a/conf.d/project/lua.d/helloworld-lua-script.lua b/conf.d/project/lua.d/helloworld-lua-script.lua new file mode 100644 index 0000000..7dd0459 --- /dev/null +++ b/conf.d/project/lua.d/helloworld-lua-script.lua @@ -0,0 +1,41 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Simple API script +--]] + + -- retrieve calling arguments + args= ... + + print ("Helloworld script arguments:") + + + for key,value in pairs(args) + do + print("args: ", key,value) + end + + -- loop on script arguments + --for i=1,#args + --do + -- print(" -- ", i, args[i]) + --end + + + -- return two arguments on top of status + return true, 1234, "ABCD", 5678 + diff --git a/conf.d/project/lua.d/onload-audio-policy.lua b/conf.d/project/lua.d/onload-audio-policy.lua new file mode 100644 index 0000000..0b7c358 --- /dev/null +++ b/conf.d/project/lua.d/onload-audio-policy.lua @@ -0,0 +1,49 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Provide sample policy function for AGL Advance Audio Agent +--]] + +function Audio_Init_CB (status, result, context) + print ("***** result=", Dump_Table(result)) + print ("***** context=", Dump_Table(context)) + + -- AFB:notice ("--LUA:Audio_Init_Hal result=%s context=%s", result, context) + +end + +-- Function call at binding load time +function Audio_Init_Hal(args, query) + AFB:notice ("--LUA:Audio_Init_Hal args=%s query=%s", args, query); + + -- query asynchronously loaded HAL + AFB:service ('alsacore', 'hallist', {}, "Audio_Init_CB", {arg1=1234, arg2="toto"}) + +end + +function Audio_Set_Navigation(args, query) + + AFB:notice ("--LUA:Audio_Set_Use_Case args=%s query=%s", args, query, {myint=1234, mystring="abcd"}); + -- Print_Table("args", args) + + + + -- return OK + return 0 +end + + diff --git a/conf.d/project/lua.d/onload-audio-samples.lua b/conf.d/project/lua.d/onload-audio-samples.lua new file mode 100644 index 0000000..055a15d --- /dev/null +++ b/conf.d/project/lua.d/onload-audio-samples.lua @@ -0,0 +1,93 @@ +--[[ + Copyright (C) 2016 "IoT.bzh" + Author Fulup Ar Foll + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Provide sample policy function for AGL Advance Audio Agent +--]] + +count=0 + +-- Adjust Volume function of vehicle speed +function Adjust_Volume_Speed (request, speed_meters_second) + + AFB:notice("In Adjust_Volume_Speed speed=%d", speed_meters_second); + + print (string.format("*****(From Lua) Adjust_Volume_Speed speed=%d count=%d", speed_meters_second, count)); + + -- compute volume + volume = speed_meters_second * 2 + count=count+1 + + AFB:success (request, 1234, volume, count, 5678) +end + + +function Test_Binder_CB (result, context) + + local myTable= { ["arg1"] = "myString", ["arg2"] = 1234, ["arg4"] = true, ["arg5"] = 3.1416 } + + AFB:notice ("In Test_Binder_CB", result, context) + + AFB:success (1234, "ABCD", myTable, 5678) + +end + +function Test_Binder_Call_Async () + + local query= { + ["arg1"] = "myString", + ["arg2"] = 1234, + ["arg4"] = true, + ["arg5"] = 3.1416, + } + + AFB:service("alsacore","ping", query, Test_Binder_CB, "myContext") + +end + +function Test_Binder_Call_Sync () + + local query= { + ["arg1"] = "myString", + ["arg2"] = 1234, + ["arg4"] = true, + ["arg5"] = 3.1416, + } + + err= AFB:service_sync ("alsacore","ping", query) + + if (err) then + AFB:fail ("AFB:service_call_sync fail"); + else + AFB:success (1234, "ABCD", myTable) + end + + +end + +-- return serialised version of printable table +function Dump_Table(o) + if type(o) == 'table' then + local s = '{ ' + for k,v in pairs(o) do + if type(k) ~= 'number' then k = '"'..k..'"' end + s = s .. '['..k..'] = ' .. Dump_Table(v) .. ',' + end + return s .. '} ' + else + return tostring(o) + end +end -- cgit 1.2.3-korg