From 362c23509cca3101b4abcb47f76c57baa69c8d08 Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Mon, 10 Dec 2018 17:22:34 +0100 Subject: Add unicens input plugin for md microphone Add unicens input plugin for multi-directionnal microphone. Update the unciens hal to load this plugin. Change-Id: I933ed6ff3a709d0c11bf86e64c83559a38386e98 Signed-off-by: Jonathan Aillet --- plugin/unicens-input/unicens-md-mic.c | 109 ++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 plugin/unicens-input/unicens-md-mic.c (limited to 'plugin/unicens-input/unicens-md-mic.c') diff --git a/plugin/unicens-input/unicens-md-mic.c b/plugin/unicens-input/unicens-md-mic.c new file mode 100644 index 0000000..b35743b --- /dev/null +++ b/plugin/unicens-input/unicens-md-mic.c @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2018, "IoT.bzh". + * Author Jonathan Aillet + * + * 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 + +#include + +#include + +#include "unicens-md-mic.h" +#include "unicens-md-mic-cb.h" + +CTLP_CAPI_REGISTER(UNICENS_MD_MIC_PLUGIN_NAME) + +// Call at pre-initialisation time +CTLP_ONLOAD(plugin, callbacks) +{ + AFB_API_NOTICE(plugin->api, "%s Plugin Registered correctly: uid='%s' 'info='%s'", UNICENS_MD_MIC_PLUGIN_NAME, plugin->uid, plugin->info); + + return 0; +} + +// Call at initialisation time +CTLP_INIT(plugin, callbacks) +{ + AFB_API_INFO(plugin->api, "Initialization of %s plugin", UNICENS_MD_MIC_PLUGIN_NAME); + + if(afb_api_require_api(plugin->api, UNICENS_API, 1)) { + AFB_API_WARNING(plugin->api, "Didn't succeed to require %s api, won't be able to send command to unicens multi-directional microphone", UNICENS_API); + return 0; + } + + // Loading Unicens multi-directional microphone specific verbs + if(afb_api_add_verb(plugin->api, + UNICENS_MD_MIC_SET_COLOR_SCHEME_VERB, + "Set Unicens multi-directional microphone color scheme", + UnicensMdMicSetColorScheme, + NULL, + NULL, + 0, + 0)) { + AFB_API_ERROR(plugin->api, + "Error while creating verb for unicens multi-directional microphone plugin : '%s'", + UNICENS_MD_MIC_SET_COLOR_SCHEME_VERB); + return -1; + } + + if(afb_api_add_verb(plugin->api, + UNICENS_MD_MIC_SET_MODE_VERB, + "Set Unicens multi-directional microphone mode", + UnicensMdMicSetMode, + NULL, + NULL, + 0, + 0)) { + AFB_API_ERROR(plugin->api, + "Error while creating verb for unicens multi-directional microphone plugin : '%s'", + UNICENS_MD_MIC_SET_MODE_VERB); + return -2; + } + + if(afb_api_add_verb(plugin->api, + UNICENS_MD_MIC_SET_DOA_VERB, + "Set Unicens multi-directional microphone DOA", + UnicensMdMicSetDoa, + NULL, + NULL, + 0, + 0)) { + AFB_API_ERROR(plugin->api, + "Error while creating verb for unicens multi-directional microphone plugin : '%s'", + UNICENS_MD_MIC_SET_DOA_VERB); + return -3; + } + + if(afb_api_add_verb(plugin->api, + UNICENS_MD_MIC_GET_DOA_VERB, + "Get Unicens multi-directional microphone DOA", + UnicensMdMicGetDoa, + NULL, + NULL, + 0, + 0)) { + AFB_API_ERROR(plugin->api, + "Error while creating verb for unicens multi-directional microphone plugin : '%s'", + UNICENS_MD_MIC_GET_DOA_VERB); + return -4; + } + + AFB_API_NOTICE(plugin->api, "Initialization of %s plugin correctly done", UNICENS_MD_MIC_PLUGIN_NAME); + + return 0; +} \ No newline at end of file -- cgit 1.2.3-korg