aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Jahnke <tjahnk@users.noreply.github.com>2017-08-10 17:35:55 +0200
committerTobias Jahnke <tjahnk@users.noreply.github.com>2017-08-16 16:00:50 +0200
commiteb6b00b52432941cf081a3b511c70e758f6a7213 (patch)
treefc08f0e2d1db090edef42e22e1ebd2a6ac7d3933
parent9a57e535616ce2fd84344911b02a6fe471258c93 (diff)
fixes linker issue and implements volume service
-rw-r--r--HAL-afb/hal-most-unicens/CMakeLists.txt3
-rw-r--r--HAL-afb/hal-most-unicens/wrap_volume.c39
-rw-r--r--HAL-afb/hal-most-unicens/wrap_volume.h1
-rw-r--r--nbproject/configurations.xml6
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 <string.h>
+#include <time.h>
#include <json-c/json.h>
#include <afb/afb-binding.h>
#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 <stdint.h>
+#include <systemd/sd-event.h>
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">
<cTool flags="4">
<incDir>
+ <pElem>../../../opt/include/afb</pElem>
<pElem>/opt/AGL/include/afb</pElem>
<pElem>HAL-afb/hal-most-unicens</pElem>
<pElem>/usr/include/json-c</pElem>
<pElem>/usr/lib64/gcc/x86_64-suse-linux/5/include</pElem>
<pElem>build/HAL-afb/hal-most-unicens</pElem>
</incDir>
+ <preprocessorList>
+ <Elem>CONTROL_CDEV_RX="/dev/inic-usb-crx"</Elem>
+ <Elem>CONTROL_CDEV_TX="/dev/inic-usb-ctx"</Elem>
+ <Elem>MAX_SND_CARD=16</Elem>
+ </preprocessorList>
</cTool>
</item>
<item path="HighLevel-afb/HighLevelApiConf.c" ex="false" tool="0" flavor2="3">