diff options
author | Tobias Jahnke <tjahnk@users.noreply.github.com> | 2017-08-10 10:35:39 +0200 |
---|---|---|
committer | Tobias Jahnke <tjahnk@users.noreply.github.com> | 2017-08-16 16:00:50 +0200 |
commit | cf590ad67211ee634d4cb24ca97c9e65891240b9 (patch) | |
tree | ba8117a88db9c08a3e0d19ad541b3679d53c10b0 /HAL-afb/hal-most-unicens/hal_most_unicens.c | |
parent | e94c8800c515dc64a7d7ae275e607e23591b8498 (diff) |
implements wrapper for unicens functions
Diffstat (limited to 'HAL-afb/hal-most-unicens/hal_most_unicens.c')
-rw-r--r-- | HAL-afb/hal-most-unicens/hal_most_unicens.c | 91 |
1 files changed, 20 insertions, 71 deletions
diff --git a/HAL-afb/hal-most-unicens/hal_most_unicens.c b/HAL-afb/hal-most-unicens/hal_most_unicens.c index a1a1e66..394e502 100644 --- a/HAL-afb/hal-most-unicens/hal_most_unicens.c +++ b/HAL-afb/hal-most-unicens/hal_most_unicens.c @@ -20,17 +20,23 @@ #include "audio-interface.h" #include "wrap-json.h" #include "string.h" +#include "wrap_unicens.h" static int master_volume; static json_bool master_switch; static int pcm_volume[6]; +static uint8_t test[3] = {0x07,0x03,0xFF}; + void unicens_master_vol_cb(halCtlsEnumT tag, alsaHalCtlMapT *control, void* handle, json_object *j_obj) { const char *j_str = json_object_to_json_string(j_obj); if (wrap_json_unpack(j_obj, "[i!]", &master_volume) == 0) { AFB_NOTICE("master_volume: %s, value=%d", j_str, master_volume); + /*wrap_ucs_i2cwrite(0x270, test, 3); + wrap_ucs_i2cwrite(0x271, test, 3); + wrap_ucs_i2cwrite(0x272, test, 3);*/ } else { AFB_NOTICE("master_volume: INVALID STRING %s", j_str); @@ -84,92 +90,35 @@ STATIC alsaHalSndCardT alsaHalSndCard = { .volumeCB = NULL, /* use default volume normalization function */ }; -STATIC int unicens_start_binding() { - - json_object *j_response, *j_query = NULL; - int err; - - /* Build an empty JSON object */ - err = wrap_json_pack(&j_query, "{}"); - if (err) { - AFB_ERROR("Failed to create subscribe json object"); - goto OnErrorExit; - } +/* initializes ALSA sound card, UNICENS API */ +STATIC int unicens_service_init() { + int err = 0; + AFB_NOTICE("Initializing HAL-MOST-UNICENS-BINDING"); - err = afb_service_call_sync("UNICENS", "subscribe", j_query, &j_response); + err = halServiceInit(afbBindingV2.api, &alsaHalSndCard); if (err) { - AFB_ERROR("Fail subscribing to UNICENS events"); + AFB_ERROR("Cannot initialize ALSA soundcard."); goto OnErrorExit; - } - else { - AFB_NOTICE("Subscribed to UNICENS events, res=%s", json_object_to_json_string(j_response)); - json_object_put(j_response); - } - json_object_put(j_query); -#if 0 - /* Build JSON object to retrieve UNICENS configuration */ - err = wrap_json_pack(&j_query, "{}"); - if (err) { - AFB_ERROR("Failed to create listconfig json object"); - goto OnErrorExit; - } + } - err = afb_service_call_sync("UNICENS", "listconfig", j_query, &j_response); + err= afb_daemon_require_api("UNICENS", 1); if (err) { - AFB_ERROR("Failed to call listconfig"); + AFB_ERROR("Failed to access UNICENS API"); goto OnErrorExit; } - else { - AFB_NOTICE("UNICENS listconfig result, res=%s", json_object_to_json_string(j_response)); - json_object_put(j_response); - } - json_object_put(j_query); -#endif - /* Build JSON object to initialize UNICENS */ - err = wrap_json_pack(&j_query, "{s:s}", "filename", "/home/agluser/DEVELOPMENT/AGL/BINDING/unicens2-binding/data/config_multichannel_audio_kit.xml"); + err = wrap_ucs_subscribe_sync(); if (err) { - AFB_ERROR("Failed to create initialize json object"); - goto OnErrorExit; - } - err = afb_service_call_sync("UNICENS", "initialise", j_query, &j_response); - if (err) { - AFB_ERROR("Failed to initialize UNICENS"); + AFB_ERROR("Failed to subscribe to unicensv2-binding"); goto OnErrorExit; } - else { - AFB_NOTICE("Initialized UNICENS, res=%s", json_object_to_json_string(j_response)); - json_object_put(j_response); - } - json_object_put(j_query); - - - j_query = NULL; - OnErrorExit: - if (j_query) - json_object_put(j_query); - return NULL; -} - -STATIC int unicens_service_init() { - int err; - AFB_NOTICE("Initializing HAL-MOST-UNICENS-BINDING"); - err = halServiceInit(afbBindingV2.api, &alsaHalSndCard); - if (err) { - AFB_ERROR("Cannot initialize hal-most-unicens binding."); - goto OnErrorExit; - } - - err= afb_daemon_require_api("UNICENS", 1); + err = wrap_ucs_initialize_sync("/home/agluser/DEVELOPMENT/AGL/BINDING/unicens2-binding/data/config_multichannel_audio_kit.xml"); if (err) { - AFB_ERROR("UNICENS is missing or not initialized"); - goto OnErrorExit; + AFB_ERROR("Failed to initialize unicens-v2 binding"); + goto OnErrorExit; } - unicens_start_binding(); - - OnErrorExit: AFB_NOTICE("Initializing HAL-MOST-UNICENS-BINDING done.."); return err; |