From f817ce67ff6344f181d221c859e1cb2231a3dac4 Mon Sep 17 00:00:00 2001 From: fulup Date: Tue, 8 Aug 2017 18:52:13 +0200 Subject: Early Draft of LUA integration --- Controler-afb/ctl-binding.h | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Controler-afb/ctl-binding.h (limited to 'Controler-afb/ctl-binding.h') diff --git a/Controler-afb/ctl-binding.h b/Controler-afb/ctl-binding.h new file mode 100644 index 0000000..e53d2ca --- /dev/null +++ b/Controler-afb/ctl-binding.h @@ -0,0 +1,96 @@ +/* + * 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. + */ +#include + +#include "audio-common.h" + +#ifndef CONTROLER_BINDING_INCLUDE +#define CONTROLER_BINDING_INCLUDE + +// polctl-binding.c +PUBLIC int CtlBindingInit (); + +// ctl-timerevt.c +// ---------------------- +#define DEFAULT_PAUSE_DELAY 3000 +#define DEFAULT_TEST_COUNT 1 +typedef int (*timerCallbackT)(void *context); +typedef struct { + int value; + const char *label; +} AutoTestCtxT; + +typedef struct TimerHandleS { + int count; + int delay; + AutoTestCtxT *context; + timerCallbackT callback; + sd_event_source *evtSource; +} TimerHandleT; + +PUBLIC int TimerEvtInit (void); +PUBLIC afb_event TimerEvtGet(void); +PUBLIC void ctlapi_event_test (afb_req request); + +// ctl-policy +// ----------- + +typedef struct PolicyActionS{ + const char* label; + const char* api; + const char* verb; + json_object *argsJ; + const char *info; + int timeout; + json_object* (*actionCB)(struct PolicyActionS *action,json_object *response, void *context); +} PolicyActionT; + +typedef struct { + const char* label; + const char *info; + const char *version; + void *context; +} PolicyHandleT; + +typedef struct { + char *sharelib; + void *dlHandle; + PolicyHandleT **handle; + PolicyActionT **onload; + PolicyActionT **events; + PolicyActionT **controls; +} PolicyCtlConfigT; + +typedef enum { + CTLAPI_NAVIGATION, + CTLAPI_MULTIMEDIA, + CTLAPI_EMERGENCY, + + CTL_NONE=-1 +} PolicyCtlEnumT; + +PUBLIC int PolicyInit(void); +PUBLIC json_object* ScanForConfig (char* searchPath, char * pre, char *ext); +PUBLIC void ctlapi_authorize (PolicyCtlEnumT control, afb_req request); + +// ctl-lua.c +PUBLIC int LuaLibInit (); +PUBLIC void ctlapi_lua_docall (afb_req request); +PUBLIC void ctlapi_lua_dostring (afb_req request); +PUBLIC void ctlapi_lua_doscript (afb_req request); + +#endif -- cgit 1.2.3-korg