From eb6b00b52432941cf081a3b511c70e758f6a7213 Mon Sep 17 00:00:00 2001 From: Tobias Jahnke Date: Thu, 10 Aug 2017 17:35:55 +0200 Subject: fixes linker issue and implements volume service --- HAL-afb/hal-most-unicens/CMakeLists.txt | 3 ++- HAL-afb/hal-most-unicens/wrap_volume.c | 39 +++++++++++++++++++++++++++++---- HAL-afb/hal-most-unicens/wrap_volume.h | 1 + nbproject/configurations.xml | 6 +++++ 4 files changed, 44 insertions(+), 5 deletions(-) diff --git a/HAL-afb/hal-most-unicens/CMakeLists.txt b/HAL-afb/hal-most-unicens/CMakeLists.txt index 784024a..e532191 100644 --- a/HAL-afb/hal-most-unicens/CMakeLists.txt +++ b/HAL-afb/hal-most-unicens/CMakeLists.txt @@ -22,7 +22,7 @@ ADD_SUBDIRECTORY(ucs2-vol) PROJECT_TARGET_ADD(hal-most-unicens) # Define project Targets - ADD_LIBRARY(hal-most-unicens MODULE hal_most_unicens.c wrap-json.c wrap_unicens.c) + ADD_LIBRARY(hal-most-unicens MODULE hal_most_unicens.c wrap-json.c wrap_unicens.c wrap_volume.c) # Binder exposes a unique public entry point SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES @@ -36,6 +36,7 @@ PROJECT_TARGET_ADD(hal-most-unicens) TARGET_LINK_LIBRARIES(${TARGET_NAME} hal-interface audio-interface + ucs2-volume ) # installation directory diff --git a/HAL-afb/hal-most-unicens/wrap_volume.c b/HAL-afb/hal-most-unicens/wrap_volume.c index 811879f..438704f 100644 --- a/HAL-afb/hal-most-unicens/wrap_volume.c +++ b/HAL-afb/hal-most-unicens/wrap_volume.c @@ -19,18 +19,49 @@ #define AFB_BINDING_VERSION 2 #include +#include #include #include #include "wrap_volume.h" #include "wrap_unicens.h" +#include "libmostvolume.h" + +static int wrap_volume_service_timeout_cb(sd_event_source* source, + uint64_t timer __attribute__((__unused__)), + void *userdata __attribute__((__unused__))) { + + uint8_t ret; + + sd_event_source_unref(source); + ret = lib_most_volume_service(); + + if (ret != 0U) { + AFB_ERROR("lib_most_volume_service returns %d", ret); + } + + return 0; +} + +static void wrap_volume_service_cb(uint16_t timeout) { + uint64_t usec; + sd_event_now(afb_daemon_get_event_loop(), CLOCK_BOOTTIME, &usec); + sd_event_add_time( afb_daemon_get_event_loop(), NULL, CLOCK_MONOTONIC, + usec + (timeout*1000), + 250, + wrap_volume_service_timeout_cb, + NULL); +} extern int wrap_volume_init(void) { - /*lib_most_volume_init_t mv_init; + uint8_t ret = 0U; + lib_most_volume_init_t mv_init; + mv_init.writei2c_cb = &wrap_ucs_i2cwrite; - mv_init.service_cb = NULL; - lib_most_volume_init(NULL);*/ + mv_init.service_cb = wrap_volume_service_cb; + + ret = lib_most_volume_init(&mv_init); - return -1; + return ret * (-1); } \ No newline at end of file diff --git a/HAL-afb/hal-most-unicens/wrap_volume.h b/HAL-afb/hal-most-unicens/wrap_volume.h index 92fae48..b17bc26 100644 --- a/HAL-afb/hal-most-unicens/wrap_volume.h +++ b/HAL-afb/hal-most-unicens/wrap_volume.h @@ -18,5 +18,6 @@ #pragma once #include +#include extern int wrap_volume_init(void); diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml index 07b5f8e..70d59f9 100644 --- a/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -495,12 +495,18 @@ flavor2="3"> + ../../../opt/include/afb /opt/AGL/include/afb HAL-afb/hal-most-unicens /usr/include/json-c /usr/lib64/gcc/x86_64-suse-linux/5/include build/HAL-afb/hal-most-unicens + + CONTROL_CDEV_RX="/dev/inic-usb-crx" + CONTROL_CDEV_TX="/dev/inic-usb-ctx" + MAX_SND_CARD=16 + -- cgit 1.2.3-korg