diff options
author | Tobias Jahnke <tjahnk@users.noreply.github.com> | 2017-08-10 17:35:55 +0200 |
---|---|---|
committer | Tobias Jahnke <tjahnk@users.noreply.github.com> | 2017-08-16 16:00:50 +0200 |
commit | eb6b00b52432941cf081a3b511c70e758f6a7213 (patch) | |
tree | fc08f0e2d1db090edef42e22e1ebd2a6ac7d3933 /HAL-afb/hal-most-unicens/wrap_volume.c | |
parent | 9a57e535616ce2fd84344911b02a6fe471258c93 (diff) |
fixes linker issue and implements volume service
Diffstat (limited to 'HAL-afb/hal-most-unicens/wrap_volume.c')
-rw-r--r-- | HAL-afb/hal-most-unicens/wrap_volume.c | 39 |
1 files changed, 35 insertions, 4 deletions
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 |