From 1393b5d318e22dbd1625692847a51c27932fd442 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Wed, 8 Mar 2017 14:23:35 +0100 Subject: Events Partially Working --- BusinessLogic/AudioLogicBinding.c | 78 ---------------------------------- BusinessLogic/AudioLogicMapping.c | 88 --------------------------------------- BusinessLogic/AudioLogicMapping.h | 50 ---------------------- BusinessLogic/CMakeLists.txt | 36 ---------------- BusinessLogic/README.md | 18 -------- 5 files changed, 270 deletions(-) delete mode 100644 BusinessLogic/AudioLogicBinding.c delete mode 100644 BusinessLogic/AudioLogicMapping.c delete mode 100644 BusinessLogic/AudioLogicMapping.h delete mode 100644 BusinessLogic/CMakeLists.txt delete mode 100644 BusinessLogic/README.md (limited to 'BusinessLogic') diff --git a/BusinessLogic/AudioLogicBinding.c b/BusinessLogic/AudioLogicBinding.c deleted file mode 100644 index 4d7dc35..0000000 --- a/BusinessLogic/AudioLogicBinding.c +++ /dev/null @@ -1,78 +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. - */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define _GNU_SOURCE // needed for vasprintf -#include "AudioLogicMapping.h" - -PUBLIC const struct afb_binding_interface *binderIface; - -static void localping(struct afb_req request) { - json_object *query = afb_req_json(request); - afb_req_success(request, query, NULL); -} - -/* - * array of the verbs exported to afb-daemon - */ -static const struct afb_verb_desc_v1 binding_verbs[] = { - /* VERB'S NAME SESSION MANAGEMENT FUNCTION TO CALL SHORT DESCRIPTION */ - { .name= "ping" , .session= AFB_SESSION_NONE, .callback= localping, .info= "Ping Binding" }, - { .name= "setvolume", .session= AFB_SESSION_NONE, .callback= audioLogicSetVol, .info= "Set Volume" }, - { .name= "getvolume", .session= AFB_SESSION_NONE, .callback= audioLogicGetVol, .info= "Get Volume" }, - { .name= "subscribe", .session= AFB_SESSION_NONE, .callback= audioLogicSubscribe, .info= "Get Volume" }, - { .name= NULL } /* marker for end of the array */ -}; - -/* - * description of the binding for afb-daemon - */ -static const struct afb_binding binding_description = { - /* description conforms to VERSION 1 */ - .type= AFB_BINDING_VERSION_1, - .v1= { - .prefix= "audio", - .info= "High Level Interface to Audio bindings", - .verbs = binding_verbs - } -}; - -extern int afbBindingV1ServiceInit(struct afb_service service) { - // this is call when after all bindings are loaded - - return (audioLogicInit(service)); -}; - -/* - * activation function for registering the binding called by afb-daemon - */ -const struct afb_binding *afbBindingV1Register(const struct afb_binding_interface *itf) { - binderIface= itf; - - return &binding_description; /* returns the description of the binding */ -} - diff --git a/BusinessLogic/AudioLogicMapping.c b/BusinessLogic/AudioLogicMapping.c deleted file mode 100644 index 8e0b773..0000000 --- a/BusinessLogic/AudioLogicMapping.c +++ /dev/null @@ -1,88 +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. - */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "AudioLogicMapping.h" -static struct afb_service srvitf; - -#define _GNU_SOURCE // needed for vasprintf - -// this function is call after all binder are loaded and initialised -PUBLIC int audioLogicInit (struct afb_service service) { - srvitf = service; - return 0; -} - -STATIC void alsaSubcribeCB (void *handle, int iserror, struct json_object *result) { - struct afb_req request = afb_req_unstore(handle); - struct json_object *x, *resp = NULL; - const char *info = NULL; - - if (result) { - fprintf (stdout, "result=[%s]\n", json_object_to_json_string (result)); - if (json_object_object_get_ex(result, "request", &x) && json_object_object_get_ex(x, "info", &x)) - info = json_object_get_string(x); - if (!json_object_object_get_ex(result, "response", &resp)) resp = NULL; - } - - // push message respond - if (iserror) afb_req_fail_f(request, "Fail", info); - else afb_req_success(request, resp, info); - - // free calling request - afb_req_unref(request); -} - - -PUBLIC void audioLogicSubscribe(struct afb_req request) { - - // save request in session as it might be used after return by callback - struct afb_req *handle = afb_req_store(request); - - // push request to low level binding - if (!handle) afb_req_fail(request, "error", "out of memory"); - else afb_service_call(srvitf, "alsacore", "subctl", json_object_get(afb_req_json(request)), alsaSubcribeCB, handle); - - // success/failure message will be position from callback -} - -PUBLIC void audioLogicGetVol(struct afb_req request) { - - - afb_req_success (request, NULL, NULL); - return; - -} - -PUBLIC void audioLogicSetVol(struct afb_req request) { - - - afb_req_success (request, NULL, NULL); - return; - -} - diff --git a/BusinessLogic/AudioLogicMapping.h b/BusinessLogic/AudioLogicMapping.h deleted file mode 100644 index e1033f7..0000000 --- a/BusinessLogic/AudioLogicMapping.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * AlsaLibMapping -- provide low level interface with AUDIO lib (extracted from alsa-json-gateway code) - * Copyright (C) 2015,2016,2017, Fulup Ar Foll fulup@iot.bzh - * - * 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. - */ - - -// few coding convention -typedef int BOOL; -#ifndef PUBLIC - #define PUBLIC -#endif -#ifndef FALSE - #define FALSE 0 -#endif -#ifndef TRUE - #define TRUE 1 -#endif -#define STATIC static - -#ifndef AUDIOLIBMAPPING_H -#define AUDIOLIBMAPPING_H - -#include -#include -#include - - -// import from AlsaAfbBinding -extern const struct afb_binding_interface *binderIface; - -// import from AlsaAfbMapping -PUBLIC void audioLogicSetVol (struct afb_req request); -PUBLIC void audioLogicGetVol(struct afb_req request); -PUBLIC void audioLogicSubscribe(struct afb_req request); -PUBLIC int audioLogicInit (struct afb_service service); - -#endif /* AUDIOLIBMAPPING_H */ - diff --git a/BusinessLogic/CMakeLists.txt b/BusinessLogic/CMakeLists.txt deleted file mode 100644 index 7ae760b..0000000 --- a/BusinessLogic/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -########################################################################### -# 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_DIRECTORIES(${include_dirs}) - -################################################## -# AudioLogicBinding -################################################## -ADD_LIBRARY(audiologic-afb MODULE AudioLogicBinding.c AudioLogicMapping.c) - -SET_TARGET_PROPERTIES(audiologic-afb PROPERTIES - PREFIX "" - LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/export.map" -) - -TARGET_LINK_LIBRARIES(audiologic-afb ${link_libraries}) -INSTALL(TARGETS audiologic-afb - LIBRARY DESTINATION ${binding_install_dir}) - - diff --git a/BusinessLogic/README.md b/BusinessLogic/README.md deleted file mode 100644 index a07f752..0000000 --- a/BusinessLogic/README.md +++ /dev/null @@ -1,18 +0,0 @@ ------------------------------------------------------------------------- - AudioLogic High Level APIs ------------------------------------------------------------------------- - -Testing: (from project directory bindings) - * start binder: ~/opt/bin/afb-daemon --ldpaths=./Alsa/src/low-level-binding:./BusinessLogic/audiologic-afb.so --roothttp=htdocs - * connect browser on http://localhost:1234 - - # Subscribe event for a given board - http://localhost:1234/api/audio/subscribe&devid=hw:0 - - # Increase Volume - http://localhost:1234/api/audio/setvol?devid=hw:0&pcm=master&vol=50% - - # Get Volume - http://localhost:1234/api/audio/getvol?devid=hw:0&pcm=master - - \ No newline at end of file -- cgit 1.2.3-korg