diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-12-10 17:22:34 +0100 |
---|---|---|
committer | Tobias Jahnke <tobias.jahnke@microchip.com> | 2018-12-19 10:27:57 +0100 |
commit | 362c23509cca3101b4abcb47f76c57baa69c8d08 (patch) | |
tree | 4e22d79b2915ab90b93a804144c6491561940c2f /plugin/unicens-input/unicens-md-mic.c | |
parent | 5770713075119f42d3486fa8db616efa8231a336 (diff) |
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 <jonathan.aillet@iot.bzh>
Diffstat (limited to 'plugin/unicens-input/unicens-md-mic.c')
-rw-r--r-- | plugin/unicens-input/unicens-md-mic.c | 109 |
1 files changed, 109 insertions, 0 deletions
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 <stdio.h> +#include <string.h> + +#include <wrap-json.h> + +#include <ctl-config.h> + +#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 |