removed volume API
authorTobias Jahnke <tjahnk@users.noreply.github.com>
Fri, 18 Aug 2017 11:46:58 +0000 (13:46 +0200)
committerTobias Jahnke <tjahnk@users.noreply.github.com>
Fri, 18 Aug 2017 11:46:58 +0000 (13:46 +0200)
20 files changed:
htdocs/UNICENS.html
ucs2-afb/ucs_apidef.h
ucs2-afb/ucs_apidef.json
ucs2-afb/ucs_binding.c
ucs2-afb/ucs_binding.h
ucs2-interface/CMakeLists.txt
ucs2-interface/ucs_interface.h
ucs2-interface/ucs_vol_interf.c [deleted file]
ucs2-vol/CMakeLists.txt [deleted file]
ucs2-vol/inc/callbacks.h [deleted file]
ucs2-vol/inc/device_container.h [deleted file]
ucs2-vol/inc/device_value.h [deleted file]
ucs2-vol/inc/libmostvolume.h [deleted file]
ucs2-vol/inc/setup.h [deleted file]
ucs2-vol/src/CMakeLists.txt [deleted file]
ucs2-vol/src/callbacks.cpp [deleted file]
ucs2-vol/src/device_container.cpp [deleted file]
ucs2-vol/src/device_value.cpp [deleted file]
ucs2-vol/src/libmostvolume.cpp [deleted file]
ucs2-vol/src/setup.cpp [deleted file]

index d3fc285..ddcb52b 100644 (file)
     <ol>
     <li><button onclick="callbinder('UNICENS','subscribe', {})">Subscribe to events</button></li>
     <li><button onclick="callbinder('UNICENS','initialise', {filename:ucs2_config})">Parse XML and Start UNICENS</button></li>
-    <li><button onclick="callbinder('UNICENS','volume', {channel:'master', volume: 255})">Set Master Volume to 255</button></li>
-    <li><button onclick="callbinder('unicens','volume', {channel:'master', volume: 230})">Set Master Volume to 230</button></li>
-    <li><button onclick="callbinder('unicens','volume', {channel:'master', volume: 215})">Set Master Volume to 215</button></li>
-    <li><button onclick="callbinder('unicens','volume', {channel:'master', volume: 200})">Set Master Volume to 200</button></li>
-    <li><button onclick="callbinder('unicens','volume', {channel:'master', volume: 185})">Set Master Volume to 185</button></li>
-    <li><button onclick="callbinder('unicens','volume', {channel:'master', volume: 0})">Set Master Volume to 0</button></li>
     </ol>
     <br>
+    <!--
     <ol>
-    <li><button onclick="callbinder('UNICENS','volume', [[0,200], [1,255]])">Set left=200 right=250</button></li>
-    <li><button onclick="callbinder('UNICENS','volume', [[0,255], [1,200]])">Set right=250 left=200</button></li>
-    <li><button onclick="callbinder('UNICENS','volume', [[0,255], [1,255]])">Set right=255 left=255</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x01,0x00]}, {node: 0x271, data:[0x07,0x01,0x00]}, {node: 0x272, data:[0x07,0x01,0x00]}] )">WriteI2c Master (100%)</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x01,0x99]}, {node: 0x271, data:[0x07,0x01,0x99]}, {node: 0x272, data:[0x07,0x01,0x99]}] )">WriteI2c Master (80%)</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x02,0x32]}, {node: 0x271, data:[0x07,0x02,0x32]}, {node: 0x272, data:[0x07,0x02,0x32]}] )">WriteI2c Master (60%)</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x02,0xCB]}, {node: 0x271, data:[0x07,0x02,0xCB]}, {node: 0x272, data:[0x07,0x02,0xCB]}] )">WriteI2c Master (40%)</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x03,0x64]}, {node: 0x271, data:[0x07,0x03,0x64]}, {node: 0x272, data:[0x07,0x03,0x64]}] )">WriteI2c Master (20%)</button></li>
+    <li><button onclick="callbinder('UNICENS','writei2c', [{node: 0x270, data:[0x07,0x03,0xFF]}, {node: 0x271, data:[0x07,0x03,0xFF]}, {node: 0x272, data:[0x07,0x03,0xFF]}] )">WriteI2c Master (0%)</button></li>
     </ol>
+    -->
     <br>
     <ol>
     <li><button onclick="callbinder('UNICENS','writei2c', {node: 0x270, data:[0x07,0x03,0xFF]})">WriteI2c to 0x270 (mute)</button></li>
index 1c27ab7..876ac89 100644 (file)
@@ -42,12 +42,7 @@ static const char _afb_description_v2_UNICENS[] =
     ":\"node\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":"
     "\"int32\"}},{\"in\":\"query\",\"name\":\"data\",\"required\":true,\"sche"
     "ma\":{\"type\":\"array\",\"format\":\"int32\"},\"style\":\"simple\"}],\""
-    "responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}},\"/vol"
-    "ume\":{\"description\":\"Set Master Volume (DEPRECATED).\",\"get\":{\"x-"
-    "permissions\":{\"$ref\":\"#/components/x-permissions/monitor\"},\"parame"
-    "ters\":[{\"in\":\"query\",\"name\":\"value\",\"required\":true,\"schema\""
-    ":{\"type\":\"integer\"}}],\"responses\":{\"200\":{\"$ref\":\"#/component"
-    "s/responses/200\"}}}}}}"
+    "responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}}}}"
 ;
 
 static const struct afb_auth _afb_auths_v2_UNICENS[] = {
@@ -59,7 +54,6 @@ static const struct afb_auth _afb_auths_v2_UNICENS[] = {
  void ucs2_initialise(struct afb_req req);
  void ucs2_subscribe(struct afb_req req);
  void ucs2_writei2c(struct afb_req req);
- void ucs2_volume(struct afb_req req);
 
 static const struct afb_verb_v2 _afb_verbs_v2_UNICENS[] = {
     {
@@ -90,13 +84,6 @@ static const struct afb_verb_v2 _afb_verbs_v2_UNICENS[] = {
         .info = NULL,
         .session = AFB_SESSION_NONE_V2
     },
-    {
-        .verb = "volume",
-        .callback = ucs2_volume,
-        .auth = &_afb_auths_v2_UNICENS[1],
-        .info = NULL,
-        .session = AFB_SESSION_NONE_V2
-    },
     { .verb = NULL }
 };
 
index febd4c8..b8d6311 100644 (file)
           "200": {"$ref": "#/components/responses/200"}
         }
       }
-    },
-    "/volume": {
-      "description": "Set Master Volume (DEPRECATED).",
-      "get": {
-        "x-permissions": {
-          "$ref": "#/components/x-permissions/monitor"
-        },
-        "parameters": [
-          {
-            "in": "query",
-            "name": "value",
-            "required": true,
-            "schema": { "type": "integer" }
-          }
-        ],
-        "responses": {
-          "200": {"$ref": "#/components/responses/200"}
-        }
-      }
     }
   }
 }
index 7d27fc6..ee1bce6 100644 (file)
@@ -59,7 +59,6 @@ typedef struct {
   CdevData_t rx;
   CdevData_t tx;
   UCSI_Data_t ucsiData;
-  UCSI_channelsT *channels;
 } ucsContextT;
 
 typedef struct {
@@ -326,141 +325,6 @@ STATIC UcsXmlVal_t* ParseFile(struct afb_req request) {
     return NULL;
 }
 
-STATIC int volOnSvcCB (sd_event_source* source,uint64_t timer, void* pTag) {
-    ucsContextT *ucsContext = (ucsContextT*) pTag;
-
-    sd_event_source_unref(source);
-    UCSI_Vol_Service(&ucsContext->ucsiData);
-
-    return 0;
-}
-
-/* This callback is fire each time an volume event wait in the queue */
-void volumeCB (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, volOnSvcCB, ucsContextS);
-}
-
-STATIC int volSndCmd (struct afb_req request, struct json_object *commandJ, ucsContextT *ucsContext) {
-    int numid, vol, err;
-    struct json_object *nameJ, *channelJ, *volJ;
-
-    enum json_type jtype= json_object_get_type(commandJ);
-    switch (jtype) {
-        case json_type_array:
-            if (!sscanf (json_object_get_string (json_object_array_get_idx(commandJ, 0)), "%d", &numid)) {
-                afb_req_fail_f (request, "channel-invalid","command=%s channel is not an integer", json_object_get_string (channelJ));
-                goto OnErrorExit;
-            }
-            if (!sscanf (json_object_get_string (json_object_array_get_idx(commandJ, 1)), "%d", &vol)) {
-                afb_req_fail_f (request, "vol-invalid","command=%s vol is not an integer", json_object_get_string (channelJ));
-                goto OnErrorExit;
-            }
-            break;
-
-        case json_type_object:
-            if (json_object_object_get_ex (commandJ, "numid", &channelJ)) {
-                if (!sscanf (json_object_get_string (channelJ), "%d", &numid)) {
-                    afb_req_fail_f (request, "channel-invalid","command=%s numid is not an integer", json_object_get_string (channelJ));
-                    goto OnErrorExit;
-                }
-            } else {
-                if (json_object_object_get_ex (commandJ, "channel", &nameJ)) {
-                    int idx;
-                    const char *name = json_object_get_string(nameJ);
-
-                    for (idx =0; ucsContext->channels[idx].name != NULL; idx++) {
-                        if (!strcasecmp(ucsContext->channels[idx].name, name)) {
-                            numid = ucsContext->channels[idx].numid;
-                            break;
-                        }
-                    }
-                    if (ucsContext->channels[idx].name == NULL) {
-                        afb_req_fail_f (request, "channel-invalid","command=%s channel name does not exist", name);
-                        goto OnErrorExit;
-                    }
-                } else {
-                    afb_req_fail_f (request, "channel-invalid","command=%s no valid channel name or channel", json_object_get_string(commandJ));
-                    goto OnErrorExit;
-                };
-            }
-
-            if (!json_object_object_get_ex (commandJ, "volume", &volJ)) {
-                afb_req_fail_f (request, "vol-missing","command=%s vol not present", json_object_get_string (commandJ));
-                goto OnErrorExit;
-            }
-
-            if (!sscanf (json_object_get_string (volJ), "%d", &vol)) {
-                afb_req_fail_f (request, "vol-invalid","command=%s vol:%s is not an integer", json_object_get_string (commandJ), json_object_get_string (volJ));
-                goto OnErrorExit;
-            }
-
-            break;
-
-        default:
-            afb_req_fail_f (request, "setvol-invalid","command=%s not valid JSON Volume Command", json_object_get_string(commandJ));
-            goto OnErrorExit;
-    }
-
-
-    /* Fulup what's append when channel or vol are invalid ??? */
-    err = UCSI_Vol_Set  (&ucsContext->ucsiData, numid, (uint8_t) vol);
-    if (err) {
-        /* Fulup this might only be a warning (not sure about it) */
-        afb_req_fail_f (request, "vol-refused","command=%s vol was refused by UNICENS", json_object_get_string (volJ));
-        goto OnErrorExit;
-    }
-
-    return 0;
-
-  OnErrorExit:
-    return 1;
-}
-
-PUBLIC void ucs2_volume (struct afb_req request) {
-    struct json_object *queryJ;
-    int err;
-
-    /* check UNICENS is initialised */
-    if (!ucsContextS) {
-        afb_req_fail_f (request, "UNICENS-init","Should Load Config before using setvol");
-        goto OnErrorExit;
-    }
-
-    queryJ = afb_req_json(request);
-    if (!queryJ) {
-        afb_req_fail_f (request, "query-notjson","query=%s not a valid json entry", afb_req_value(request,""));
-        goto OnErrorExit;
-    };
-
-    enum json_type jtype= json_object_get_type(queryJ);
-    switch (jtype) {
-        case json_type_array:
-            for (int idx=0; idx < json_object_array_length (queryJ); idx ++) {
-               err= volSndCmd (request, json_object_array_get_idx (queryJ, idx), ucsContextS);
-               if (err) goto OnErrorExit;
-            }
-            break;
-
-        case json_type_object:
-            err = volSndCmd (request, queryJ, ucsContextS);
-            if (err) goto OnErrorExit;
-            break;
-
-        default:
-            afb_req_fail_f (request, "query-notarray","query=%s not valid JSON Volume Command Array", afb_req_value(request,""));
-            goto OnErrorExit;
-    }
-
-
-    afb_req_success(request,NULL,NULL);
-
- OnErrorExit:
-    return;
-}
-
-
 PUBLIC void ucs2_initialise (struct afb_req request) {
     static UcsXmlVal_t *ucsConfig;
     static ucsContextT ucsContext;
@@ -490,12 +354,6 @@ PUBLIC void ucs2_initialise (struct afb_req request) {
             goto OnErrorExit;
         }
 
-        /* init UNICENS Volume Library */
-        ucsContext.channels = UCSI_Vol_Init (&ucsContext.ucsiData, volumeCB);
-        if (!ucsContext.channels) {
-            afb_req_fail_f (request, "register-volume", "Could not enqueue new Unicens config");
-            goto OnErrorExit;
-        }
         /* save this in a statical variable until ucs2vol move to C */
         ucsContextS = &ucsContext;
     }
@@ -613,26 +471,14 @@ STATIC void ucs2_writei2c_CB (void *result_ptr, void *request_ptr) {
     }
 }
 
-PUBLIC void ucs2_writei2c (struct afb_req request) {
+/* write a single i2c command */
+STATIC void ucs2_writei2c_cmd(struct afb_req request, json_object *j_obj) {
     
-    struct json_object *j_obj;
     static uint8_t i2c_data[I2C_MAX_DATA_SZ];
     uint8_t i2c_data_sz = 0;
     uint16_t node_addr = 0;
     struct afb_req *async_req_ptr = NULL;
     
-    /* check UNICENS is initialised */
-    if (!ucsContextS) {
-        afb_req_fail_f(request, "unicens-init","Should Load Config before using setvol");
-        goto OnErrorExit;
-    }
-
-    j_obj = afb_req_json(request);
-    if (!j_obj) {
-        afb_req_fail_f(request, "query-notjson","query=%s not a valid json entry", afb_req_value(request,""));
-        goto OnErrorExit;
-    };
-    
     node_addr = (uint16_t)json_object_get_int(json_object_object_get(j_obj, "node"));
     AFB_NOTICE("node_address: 0x%02X", node_addr);
     
@@ -671,7 +517,7 @@ PUBLIC void ucs2_writei2c (struct afb_req request) {
         afb_req_fail_f(request, "query-params","params wrong or missing");
         goto OnErrorExit;
     }
-    
+   
     async_req_ptr = malloc(sizeof(afb_req));
     *async_req_ptr = request;
     
@@ -697,6 +543,49 @@ PUBLIC void ucs2_writei2c (struct afb_req request) {
         goto OnErrorExit;
     }
     
+OnErrorExit:
+    return;
+}
+
+/* parse array or single command */
+PUBLIC void ucs2_writei2c (struct afb_req request) {
+    
+    struct json_object *j_obj;
+    
+    /* check UNICENS is initialised */
+    if (!ucsContextS) {
+        afb_req_fail_f(request, "unicens-init","Should Load Config before using setvol");
+        goto OnErrorExit;
+    }
+
+    j_obj = afb_req_json(request);
+    if (!j_obj) {
+        afb_req_fail_f(request, "query-notjson","query=%s not a valid json entry", afb_req_value(request,""));
+        goto OnErrorExit;
+    };
+    
+    AFB_DEBUG("request: %s", json_object_to_json_string(j_obj));
+    
+    if (json_object_get_type(j_obj)==json_type_array) {
+        
+        int cnt;
+        int len = json_object_array_length(j_obj);
+        
+        if (len != 1) {
+            afb_req_fail_f(request, "query-array","query of multiple commands is not supported");
+            goto OnErrorExit;
+        }
+        
+        for (cnt = 0; cnt < len; cnt++) {
+            
+            json_object *j_cmd = json_object_array_get_idx(j_obj, cnt);
+            ucs2_writei2c_cmd(request, j_cmd);
+        }
+    }
+    else {
+        ucs2_writei2c_cmd(request, j_obj);
+    }
+    
  OnErrorExit:
     return;
 }
index 24c0b4e..d909d41 100644 (file)
@@ -46,7 +46,6 @@ extern struct afb_service afbSrv;
 PUBLIC void ucs2_configure (struct afb_req request);
 PUBLIC void ucs2_subscribe (struct afb_req request);
 PUBLIC void ucs2_writei2c  (struct afb_req request);
-PUBLIC void ucs2_volume    (struct afb_req request);
 
 #endif /* UCS2BINDING_H */
 
index 4d3c5ee..cd5e880 100644 (file)
@@ -21,13 +21,13 @@ PROJECT_TARGET_ADD(ucs2-inter)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG")
 
     # Define targets 
-    ADD_LIBRARY(ucs2-inter STATIC ucs_lib_interf.c ucs_vol_interf.c ucs-xml/UcsXml.c ucs-xml/UcsXml_Private.c)
+    ADD_LIBRARY(ucs2-inter STATIC ucs_lib_interf.c ucs-xml/UcsXml.c ucs-xml/UcsXml_Private.c)
 
     # Library properties
     SET_TARGET_PROPERTIES(ucs2-inter PROPERTIES OUTPUT_NAME ucs2interface)
    
     # Depends on Unicens2 lib
-    TARGET_LINK_LIBRARIES(ucs2-inter ucs2-lib ucs2-vol)
+    TARGET_LINK_LIBRARIES(ucs2-inter ucs2-lib)
 
     # Define includes
     TARGET_INCLUDE_DIRECTORIES(ucs2-inter 
index 82bba55..5f02851 100644 (file)
@@ -41,18 +41,6 @@ extern "C" {
 /*                            Public API                                */
 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-// Fulup interface added to support ucs2vol
-typedef const struct {
-    char* name;
-    int numid;
-} UCSI_channelsT;
-
-typedef void (*UCSI_VolumeServiceCB_t)(uint16_t timeout);
-UCSI_channelsT *UCSI_Vol_Init (UCSI_Data_t *pPriv, UCSI_VolumeServiceCB_t serviceCB);
-uint8_t UCSI_Vol_Set  (UCSI_Data_t *pPriv, int numId, uint8_t volume);
-void UCSI_Vol_Service (UCSI_Data_t *pPriv);
-
-
 /**
  * \brief Initializes Unicens Integration module.
  * \note Must be called before any other function of this component
diff --git a/ucs2-interface/ucs_vol_interf.c b/ucs2-interface/ucs_vol_interf.c
deleted file mode 100644 (file)
index 5d65d4a..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Unicens Integration Helper Component
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-#include <assert.h>
-#include "ucs_interface.h"
-#include "libmostvolume.h"
-
-static UCSI_channelsT ucsiChannels[] = {
-    {.name= "FRONT_LEFT" , .numid= (int)LIB_MOST_VOLUME_CH_FRONT_LEFT},
-    {.name= "FRONT_RIGHT", .numid= (int)LIB_MOST_VOLUME_CH_FRONT_RIGHT},
-    {.name= "REAR_LEFT"  , .numid= (int)LIB_MOST_VOLUME_CH_REAR_LEFT},
-    {.name= "REAR_LEFT"  , .numid= (int)LIB_MOST_VOLUME_CH_REAR_RIGHT},
-    {.name= "CENTER"     , .numid= (int)LIB_MOST_VOLUME_CH_CENTER},
-    {.name= "SUB"        , .numid= (int)LIB_MOST_VOLUME_CH_SUB},
-    {.name= "MASTER"     , .numid= (int)LIB_MOST_VOLUME_MASTER},
-
-    {.name= NULL}
-};
-
-// Small wrapper as UCSI and UCSVOL do not use the same handle
-void UCSI_Vol_Service (UCSI_Data_t *pPriv) {
-    (void)lib_most_volume_service();
-
-}
-
-UCSI_channelsT *UCSI_Vol_Init (UCSI_Data_t *pPriv, UCSI_VolumeServiceCB_t serviceCB) {
-    int err;
-    err = lib_most_volume_init(pPriv->unicens, (lib_most_volume_service_cb_t) serviceCB);
-    if (err) return (NULL);
-    else return (ucsiChannels);
-}
-
-uint8_t UCSI_Vol_Set(UCSI_Data_t *pPriv, int numid, uint8_t volume) {
-
-    return (lib_most_volume_set((enum lib_most_volume_channel_t)numid, volume));
-}
-
-
diff --git a/ucs2-vol/CMakeLists.txt b/ucs2-vol/CMakeLists.txt
deleted file mode 100644 (file)
index 8735677..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-###########################################################################
-# Copyright 2015, 2016, 2017 IoT.bzh
-#
-# author: Fulup Ar Foll <fulup@iot.bzh>
-#
-# 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.
-###########################################################################
-
-
-
-# Define subproject targets    
-ADD_SUBDIRECTORY(src)
-
-
-
-
diff --git a/ucs2-vol/inc/callbacks.h b/ucs2-vol/inc/callbacks.h
deleted file mode 100644 (file)
index 8515d61..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#ifndef CALLBACKS_H
-#define        CALLBACKS_H
-
-#include "ucs_api.h"
-
-typedef void (*clb_i2c_result_cb_t)(Ucs_I2c_Result_t result, void *obj_ptr);
-
-extern "C" void Clb_RegisterI2CResultCB(clb_i2c_result_cb_t result_fptr, void *obj_ptr);
-extern "C" void Clb_OnWriteI2CPortResult(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, Ucs_I2c_Result_t result, void *user_ptr);
-
-#endif /* CALLBACKS_H */
-
diff --git a/ucs2-vol/inc/device_container.h b/ucs2-vol/inc/device_container.h
deleted file mode 100644 (file)
index 6e98ea6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#ifndef DEVICECONTAINER_H
-#define        DEVICECONTAINER_H
-
-#include "device_value.h"
-#include "libmostvolume.h"
-
-class CDeviceContainer {
-
-public:
-    CDeviceContainer();
-    virtual ~CDeviceContainer();
-
-    void AssignService(lib_most_volume_service_cb_t service_fptr, Ucs_Inst_t *ucs_ptr) {_service_fptr = service_fptr; _ucs_inst_ptr = ucs_ptr;}
-
-    void RegisterValues(CDeviceValue** list_pptr, uint16_t list_sz);
-    void SetValue(uint16_t key, uint8_t value);
-    void ClearValues();
-    void Update();
-
-private:
-    void RequestService(uint16_t timeout);
-    void IncrementProcIndex(void);
-    void HandleI2cResult(Ucs_I2c_Result_t result);
-
-    static void OnI2cResult(Ucs_I2c_Result_t result, void *obj_ptr);
-
-    Ucs_Inst_t *_ucs_inst_ptr;
-    uint16_t _idx_processing;
-    uint16_t _values_sz;
-    CDeviceValue **_values_pptr;
-    bool _tx_busy;
-    bool _service_requested;
-    lib_most_volume_service_cb_t _service_fptr;
-};
-
-#endif /* DEVICECONTAINER_H */
-
diff --git a/ucs2-vol/inc/device_value.h b/ucs2-vol/inc/device_value.h
deleted file mode 100644 (file)
index 0c83197..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#ifndef DEVICEVALUE_H
-#define        DEVICEVALUE_H
-
-#include "ucs_api.h"
-
-struct SRxMessage {
-    uint32_t devInst;   /*instance if multiple devices are using the same group id*/
-    uint32_t sourceAddr;
-    uint32_t targetAddr;
-    uint32_t nFBlock;
-    uint32_t nInst;
-    uint32_t nFunc;
-    uint32_t nOpType;
-    const uint8_t *pPayload;
-    uint32_t payloadLen;
-};
-
-struct STxMessage {
-    uint32_t devInst;   /*instance if multiple devices are using the same group id*/
-    uint32_t targetAddr;
-    uint32_t nFBlock;
-    uint32_t nInst;
-    uint32_t nFunc;
-    uint32_t nOpType;
-    const uint8_t *pPayload;
-    uint32_t payloadLen;
-};
-
-enum DeviceValueType {
-    DEVICE_VAL_MASTER = 0,
-    DEVICE_VAL_LEFT = 1,
-    DEVICE_VAL_RIGHT = 2
-
-};
-
-class CDeviceValue {
-public:
-    CDeviceValue(uint16_t address, DeviceValueType type, uint16_t key);
-    virtual ~CDeviceValue();
-
-    uint16_t GetKey(){return _key;}
-    DeviceValueType GetType(){return _type;}        // returns the assigned type
-    void SetValue(uint8_t value){_target_value = value;}   // sets desired value
-
-    bool RequiresUpdate();      // returns true if target is not actual value
-                                // returns true if success, false if failed
-                                // -> stop transmission
-    bool FireUpdateMessage(void);// fires message & updates actual value
-
-private:
-    void HandleI2cResult(Ucs_I2c_Result_t result);
-    void ApplyMostValue(uint8_t value, DeviceValueType type, uint8_t tx_payload[]);
-
-    bool     _is_initial;       // ensure first update
-    DeviceValueType _type;      // determines the remote i2c command
-    uint16_t _key;              // lookup key
-    uint16_t _address;          // target node/group address
-    uint8_t  _target_value;     // desired value
-    uint8_t  _actual_value;     // value set and confirmed via network
-    uint8_t  _tx_payload[20];
-    uint8_t  _tx_payload_sz;
-};
-
-#endif /* DEVICEPROPERTY_H */
-
diff --git a/ucs2-vol/inc/libmostvolume.h b/ucs2-vol/inc/libmostvolume.h
deleted file mode 100644 (file)
index 38928e0..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#ifndef LIB_MOST_VOLUME_H
-#define        LIB_MOST_VOLUME_H
-
-#include "ucs_api.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Describes the volume control */
-enum lib_most_volume_channel_t{
-    LIB_MOST_VOLUME_CH_FRONT_LEFT   = 0,
-    LIB_MOST_VOLUME_CH_FRONT_RIGHT  = 1,
-    LIB_MOST_VOLUME_CH_REAR_LEFT    = 2,
-    LIB_MOST_VOLUME_CH_REAR_RIGHT   = 3,
-    LIB_MOST_VOLUME_CH_CENTER       = 4,
-    LIB_MOST_VOLUME_CH_SUB          = 5,
-    LIB_MOST_VOLUME_MASTER          = 6
-};
-
-/** Is fired when the application shall call "lib_most_volume_service()" after a certain time
-  * \param timeout  Time in ms after which the application shall call lib_most_volume_service().
-  *                 Valid values:
-  *                 0x0000: as soon as possible,
-  *                 0x0001..0xFFFE: timeout in ms,
-  *                 0xFFFF: never
-  */
-typedef void (*lib_most_volume_service_cb_t)(uint16_t timeout);
-
-/** Initializes the library
-  * \param   UNICENS_inst       Reference to the UNICENS instance, created by the application.
-  * \param   req_service_fptr   Callback function which is fired if the application shall call
-  *                             lib_most_volume_service.
-  * \return  '0' on success, otherwise value >'0'.
-  */
-extern uint8_t lib_most_volume_init(Ucs_Inst_t *UNICENS_inst, lib_most_volume_service_cb_t req_service_fptr);
-
-/** Terminates the library
-  * \return  '0' on success, otherwise value >'0'.
-  */
-extern uint8_t lib_most_volume_exit(void);
-
-/** Sets a single volume value.
-  * \param   channel        The volume control to be set.
-  * \param   volume         The volume value to be set. Valid values: 0..255.
-  * \return  '0' on success, otherwise value >'0'.
-  */
-extern uint8_t lib_most_volume_set(enum lib_most_volume_channel_t channel, uint8_t volume);
-
-/** Shall be called either cyclically (e.g. 50ms -> polling) or after "timeout"
-  * when "service_fptr" is fired (-> event triggered).
-  * \return  '0' on success, otherwise value >'0'.
-  */
-extern uint8_t lib_most_volume_service(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIB_MOST_VOLUME_H */
-
diff --git a/ucs2-vol/inc/setup.h b/ucs2-vol/inc/setup.h
deleted file mode 100644 (file)
index 3295d3d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#ifndef SETUP_H
-#define        SETUP_H
-
-#include "ucs_api.h"
-#include "libmostvolume.h"
-#include "device_value.h"
-#include "device_container.h"
-
-#define MAX_CHANNELS    (LIB_MOST_VOLUME_MASTER + 1u)
-#define MAX_MASTERS     3u
-
-class CSetup {
-
-public:
-    void Configure(Ucs_Inst_t *UNICENS_inst, lib_most_volume_service_cb_t service_fptr);
-    Ucs_Inst_t *RetrieveUnicensInst(void);
-    void SetVolume(enum lib_most_volume_channel_t channel, uint8_t volume);
-    void Update();
-
-private:
-    CDeviceValue _volume_amp_270_m;
-    CDeviceValue _volume_amp_270_l;
-    CDeviceValue _volume_amp_270_r;
-
-    CDeviceValue _volume_amp_271_m;
-    CDeviceValue _volume_amp_271_l;
-    CDeviceValue _volume_amp_271_r;
-
-    CDeviceValue _volume_amp_272_m;
-    CDeviceValue _volume_amp_272_l;
-    CDeviceValue _volume_amp_272_r;
-
-    CDeviceContainer _value_container;
-    Ucs_Inst_t *ucs_inst;
-
-public:
-    static CSetup* GetInstance();   // singleton
-    static void Release();          // singleton
-
-protected:
-    CSetup();                       // singleton
-    virtual ~CSetup();              // singleton
-
-private:
-    static CSetup* _instance;       // singleton
-};
-
-#endif /* SETUP_H */
-
diff --git a/ucs2-vol/src/CMakeLists.txt b/ucs2-vol/src/CMakeLists.txt
deleted file mode 100644 (file)
index 64ef536..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-###########################################################################
-# Copyright 2015, 2016, 2017 IoT.bzh
-#
-# author: Fulup Ar Foll <fulup@iot.bzh>
-#
-# 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.
-###########################################################################
-
-# Add target to project dependency list
-PROJECT_TARGET_ADD(ucs2-vol)
-
-# Define targets source files
-ADD_LIBRARY(ucs2-vol STATIC callbacks.cpp device_container.cpp  device_value.cpp  libmostvolume.cpp  setup.cpp)
-
-    # Expose Library Properties
-    SET_TARGET_PROPERTIES(ucs2-vol PROPERTIES OUTPUT_NAME ucs2vol)
-
-    # Library dependencies from PKG_REQUIRED_LIST
-    TARGET_LINK_LIBRARIES(ucs2-vol     # Library dependencies (include updates automatically)
-        ucs2-lib
-        ${link_libraries}
-    )
-
-    # Define properties to expose when others use this target
-    TARGET_INCLUDE_DIRECTORIES(ucs2-vol
-       PUBLIC
-        ${CMAKE_CURRENT_SOURCE_DIR}/../inc
-        ${CMAKE_CURRENT_SOURCE_DIR}/../cfg
-        ${CMAKE_CURRENT_SOURCE_DIR}/ucs-xml
-    )
-
diff --git a/ucs2-vol/src/callbacks.cpp b/ucs2-vol/src/callbacks.cpp
deleted file mode 100644 (file)
index 353d027..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#include "callbacks.h"
-#include "device_value.h"
-
-typedef void (*i2c_result_t)(Ucs_I2c_Result_t result, void *obj_ptr);
-
-static clb_i2c_result_cb_t i2c_result_fptr;
-static void *i2_obj_ptr;
-
-#define CLB_UNUSED(a)     (a = a)
-
-extern "C" void Clb_RegisterI2CResultCB(clb_i2c_result_cb_t result_fptr, void *obj_ptr)
-{
-    i2c_result_fptr = result_fptr;
-    i2_obj_ptr = obj_ptr;
-}
-
-extern "C" void Clb_OnWriteI2CPortResult(uint16_t node_address, uint16_t i2c_port_handle, uint8_t i2c_slave_address, uint8_t data_len, Ucs_I2c_Result_t result, void *user_ptr)
-{
-    CLB_UNUSED(user_ptr);
-    CLB_UNUSED(data_len);
-    CLB_UNUSED(i2c_slave_address);
-    CLB_UNUSED(i2c_port_handle);
-    CLB_UNUSED(node_address);
-
-    if (i2c_result_fptr != NULL)
-    {
-        clb_i2c_result_cb_t tmp_i2c_result_fptr = i2c_result_fptr;
-        void *tmp_i2_obj_ptr = i2_obj_ptr;
-
-        i2c_result_fptr = NULL;     /* reset references before callback to allow synchronous registration of a new callback */
-        i2_obj_ptr = NULL;
-
-        tmp_i2c_result_fptr(result, tmp_i2_obj_ptr);
-    }
-}
diff --git a/ucs2-vol/src/device_container.cpp b/ucs2-vol/src/device_container.cpp
deleted file mode 100644 (file)
index bda3b79..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#include "device_container.h"
-#include "callbacks.h"
-#include "ucs_api.h"
-
-#define DEVCONT_TIME_RETRIGGER      (uint16_t)100U
-#define DEVCONT_TIME_NOW            (uint16_t)0U
-#define DEVCONT_TIME_STOP           (uint16_t)0xFFFFU
-
-#define DEVCONT_UNUSED(a)     (a = a)
-
-CDeviceContainer::CDeviceContainer()
-{
-    this->_idx_processing = 0U;
-    this->_ucs_inst_ptr = NULL;
-    this->_values_pptr = NULL;
-    this->_values_sz = 0U;
-    this->_tx_busy = false;
-    this->_service_requested = false;
-    this->_service_fptr = NULL;
-}
-
-CDeviceContainer::~CDeviceContainer()
-{
-    Clb_RegisterI2CResultCB(NULL, NULL);    /* avoid that the result callback is fired after object is destroyed */
-}
-
-void CDeviceContainer::RegisterValues(CDeviceValue** list_pptr, uint16_t list_sz)
-{
-    this->_idx_processing = 0U;
-    this->_values_pptr = list_pptr;
-    this->_values_sz = list_sz;
-    this->_tx_busy = false;
-
-    if ((list_pptr != NULL) && (list_sz > 0U))
-    {
-        this->_idx_processing = list_sz - 1U;
-    }
-}
-
-void CDeviceContainer::ClearValues()
-{
-    this->_idx_processing = 0U;
-    this->_values_pptr = NULL;
-    this->_values_sz = 0U;
-    this->_tx_busy = false;
-}
-
-void CDeviceContainer::SetValue(uint16_t key, uint8_t value)
-{
-     uint16_t idx;
-     bool req_update = false;
-
-     for (idx = 0U; idx < this->_values_sz; idx++)
-     {
-         if (this->_values_pptr[idx]->GetKey() == key)
-         {
-            this->_values_pptr[idx]->SetValue(value);
-            if (this->_values_pptr[idx]->RequiresUpdate())
-            {
-                req_update = true;
-            }
-         }
-     }
-
-    if (req_update && (!this->_tx_busy))
-    {
-        RequestService(DEVCONT_TIME_NOW); //fire callback
-    }
-}
-
-void CDeviceContainer::IncrementProcIndex(void)
-{
-    if ((_idx_processing + 1U) >=  this->_values_sz)
-    {
-        _idx_processing = 0U;
-    }
-    else
-    {
-        _idx_processing++;
-    }
-}
-
-// starts at latest position, searches next value to update, waits until response
-void CDeviceContainer::Update()
-{
-    uint16_t cnt;
-    bool error = false;
-    _service_requested = false;
-
-    if (this->_ucs_inst_ptr == NULL)
-    {
-        return;
-    }
-
-    if (this->_tx_busy)
-    {
-        return;
-    }
-    
-    for (cnt = 0u; cnt < this->_values_sz; cnt++)   /* just run one cycle */
-    {
-        IncrementProcIndex();
-
-        if (_values_pptr[_idx_processing]->RequiresUpdate())
-        {
-            if (_values_pptr[_idx_processing]->FireUpdateMessage())
-            {
-                Clb_RegisterI2CResultCB(&OnI2cResult, this);
-                this->_tx_busy = true;
-                break;
-            }
-            else
-            {
-                error = true;
-            }
-        }
-    }
-
-    if (error)
-    {
-        RequestService(DEVCONT_TIME_RETRIGGER);
-    }
-}
-
-void CDeviceContainer::HandleI2cResult(Ucs_I2c_Result_t result)
-{
-    DEVCONT_UNUSED(result);
-    this->_tx_busy = false;
-    this->RequestService(DEVCONT_TIME_NOW);
-}
-
-void CDeviceContainer::OnI2cResult(Ucs_I2c_Result_t result, void *obj_ptr)
-{
-    ((CDeviceContainer*)obj_ptr)->HandleI2cResult(result);
-}
-
-void CDeviceContainer::RequestService(uint16_t timeout)
-{
-    if (!_service_requested)
-    {
-        _service_requested = true;
-
-        if (_service_fptr != NULL)
-        {
-            _service_fptr(timeout);
-        }
-    }
-}
diff --git a/ucs2-vol/src/device_value.cpp b/ucs2-vol/src/device_value.cpp
deleted file mode 100644 (file)
index 95ea256..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#include "device_value.h"
-#include "callbacks.h"
-#include "ucs_api.h"
-#include "setup.h"
-/*#include <iostream>*/
-
-#define MUTE_VALUE      0x03FFU
-#define MUTE_VALUE_HB   0x03U
-#define MUTE_VALUE_LB   0xFFU
-
-#define CONTROL_MASTER  0x07U
-#define CONTROL_CH_1    0x08U
-#define CONTROL_CH_2    0x09U
-
-CDeviceValue::CDeviceValue(uint16_t address, DeviceValueType type, uint16_t key)
-{
-    this->_is_initial = true;
-    this->_address = address;
-    this->_target_value = 0x01u;
-    this->_actual_value = 0x01u;
-
-    this->_type = type;
-    this->_key = key;
-
-    _tx_payload[0] = CONTROL_MASTER;// 7: master, 8: channel 1, 9: Channel 2
-    _tx_payload[1] = MUTE_VALUE_HB; //HB:Volume
-    _tx_payload[2] = MUTE_VALUE_LB; //LB:Volume
-    _tx_payload_sz = 3u;
-}
-
-CDeviceValue::~CDeviceValue()
-{
-}
-
-void CDeviceValue::ApplyMostValue(uint8_t value, DeviceValueType type, uint8_t tx_payload[])
-{
-    uint16_t tmp = MUTE_VALUE;
-
-    switch (type)
-    {
-        case DEVICE_VAL_LEFT:
-            tmp = 0x80U + 0x37FU - (0x37FU * ((int32_t)value) / (0xFFU));
-            //tmp = 0x3FF - (0x3FF * ((int32_t)value) / (0xFF));
-            //tmp = 0x100 + 0x2FF - (0x2FF * ((int32_t)value) / (0xFF));
-            tx_payload[0] = CONTROL_CH_1;
-            break;
-        case DEVICE_VAL_RIGHT:
-            tmp = 0x80U + 0x37FU - (0x37FU * ((int32_t)value) / (0xFFU));
-            //tmp = 0x3FF - (0x3FF * ((int32_t)value) / (0xFF));
-            //tmp = 0x100 + 0x2FF - (0x2FF * ((int32_t)value) / (0xFF));
-            tx_payload[0] = CONTROL_CH_2;
-            break;
-        default:
-            /*std::cerr << "CDeviceValue::ApplyMostValue() error matching incorrect" << std::endl;*/
-        case DEVICE_VAL_MASTER:
-            tmp = 0x100U + 0x2FFU - (0x2FFU * ((int32_t)value) / (0xFFU));
-            tx_payload[0] = CONTROL_MASTER;
-            break;
-    }
-
-    tx_payload[1] = (uint8_t)((tmp >> 8U) & (uint16_t)0xFFU); //HB:Volume
-    tx_payload[2] = (uint8_t)(tmp  & (uint16_t)0xFFU); //LB:Volume
-}
-
-// returns true if target is not actual value
-bool CDeviceValue::RequiresUpdate()
-{
-    if (this->_target_value != this->_actual_value)
-    {
-        return true;
-    }
-
-    return false;
-}
-
-bool CDeviceValue::FireUpdateMessage(void)
-{
-    Ucs_Return_t ret;
-    ApplyMostValue(this->_target_value, _type, _tx_payload);
-
-    ret = Ucs_I2c_WritePort( CSetup::GetInstance()->RetrieveUnicensInst(),
-            this->_address,
-            0x0F00u,                /* i2c port handle */
-            UCS_I2C_DEFAULT_MODE,   /* 0 */
-            0u,                     /* block count */
-            0x2Au,                  /* i2c slave address */
-            0x03E8u,                /* timeout 1000 milliseconds */
-            _tx_payload_sz,         /* data length */
-            &_tx_payload[0],        /* data pointer */
-            &Clb_OnWriteI2CPortResult
-            );
-
-    if (ret == UCS_RET_SUCCESS)
-    {
-        // Clb_RegisterI2CResultCB(OnI2cResult, this);
-        // mark value as set!
-        this->_actual_value = this->_target_value;
-        return true;
-    }
-
-    return false;
-}
diff --git a/ucs2-vol/src/libmostvolume.cpp b/ucs2-vol/src/libmostvolume.cpp
deleted file mode 100644 (file)
index a44d4bd..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#include "libmostvolume.h"
-#include "setup.h"
-/*#include <iostream>*/
-
-static bool _running = false;
-
-extern "C" uint8_t lib_most_volume_init(Ucs_Inst_t *UNICENS_inst, lib_most_volume_service_cb_t req_service_fptr)
-{
-    uint8_t success = 1U;
-    /*std::cerr << "lib_most_volume_init(): called" << std::endl;*/
-
-    if (!_running)
-    {
-        CSetup::GetInstance()->Configure(UNICENS_inst, req_service_fptr);
-        success = 0U;
-        _running = true;
-    }
-
-    return success;
-}
-
-extern "C" uint8_t lib_most_volume_exit(void)
-{
-    uint8_t success = 1U;
-    /*std::cerr << "lib_most_volume_exit(): called" << std::endl;*/
-
-    if (_running)
-    {
-        CSetup::Release();
-        success = 0U;
-        _running = false;
-    }
-
-    return success;
-}
-
-extern "C" uint8_t lib_most_volume_set(enum lib_most_volume_channel_t channel, uint8_t volume)
-{
-    uint8_t success = 1U;
-    /*std::cerr << "lib_most_volume_set(): channel=" << channel << ", volume=" << (int)volume << std::endl;*/
-
-    if (_running)
-    {
-        CSetup::GetInstance()->SetVolume(channel, volume);
-        success = 0U;
-    }
-
-    return success;
-}
-
-extern "C" uint8_t lib_most_volume_service(void)
-{   
-    uint8_t success = 1U;
-    /*std::cerr << "lib_most_volume_service(): called" << std::endl;*/
-
-    if (_running)
-    {
-        CSetup::GetInstance()->Update();
-        success = 0U;
-    }
-    
-    return success;
-}
diff --git a/ucs2-vol/src/setup.cpp b/ucs2-vol/src/setup.cpp
deleted file mode 100644 (file)
index 53b6f8c..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * libmostvolume example
- *
- * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * You may also obtain this software under a propriety license from Microchip.
- * Please contact Microchip for further information.
- *
- */
-
-#include "setup.h"
-
-CSetup* CSetup::_instance = NULL;
-
-// singleton
-CSetup* CSetup::GetInstance() {
-    if (_instance == NULL) {
-        _instance = new CSetup();
-    }
-
-    return _instance;
-}
-
-// singleton
-void CSetup::Release() {
-    if (_instance != NULL) {
-        delete _instance;
-    }
-    _instance = NULL;
-}
-
-CSetup::CSetup()
-    :   _volume_amp_270_m(0x270U, DEVICE_VAL_MASTER, LIB_MOST_VOLUME_MASTER),
-        _volume_amp_270_l(0x270U, DEVICE_VAL_LEFT, LIB_MOST_VOLUME_CH_FRONT_LEFT),
-        _volume_amp_270_r(0x270U, DEVICE_VAL_RIGHT, LIB_MOST_VOLUME_CH_FRONT_RIGHT),
-        _volume_amp_271_m(0x271U, DEVICE_VAL_MASTER, LIB_MOST_VOLUME_MASTER),
-        _volume_amp_271_l(0x271U, DEVICE_VAL_LEFT, LIB_MOST_VOLUME_CH_REAR_LEFT),
-        _volume_amp_271_r(0x271U, DEVICE_VAL_RIGHT, LIB_MOST_VOLUME_CH_REAR_RIGHT),
-        _volume_amp_272_m(0x272U, DEVICE_VAL_MASTER, LIB_MOST_VOLUME_MASTER),
-        _volume_amp_272_l(0x272U, DEVICE_VAL_LEFT, LIB_MOST_VOLUME_CH_CENTER),
-        _volume_amp_272_r(0x272U, DEVICE_VAL_RIGHT, LIB_MOST_VOLUME_CH_SUB),
-        _value_container()
-{
-    static CDeviceValue* value_list[9] = {  &_volume_amp_270_m,
-                                            &_volume_amp_270_l,
-                                            &_volume_amp_270_r,
-                                            &_volume_amp_271_m,
-                                            &_volume_amp_271_l,
-                                            &_volume_amp_271_r,
-                                            &_volume_amp_272_m,
-                                            &_volume_amp_272_l,
-                                            &_volume_amp_272_r};
-
-    _value_container.RegisterValues(value_list, 9U);
-}
-
-CSetup::~CSetup()
-{
-
-}
-
-void CSetup::Configure(Ucs_Inst_t *UNICENS_inst, lib_most_volume_service_cb_t service_fptr)
-{
-    ucs_inst = UNICENS_inst;
-    _value_container.AssignService(service_fptr, UNICENS_inst);
-}
-
-Ucs_Inst_t* CSetup::RetrieveUnicensInst(void)
-{
-    return ucs_inst;
-}
-
-void CSetup::SetVolume(enum lib_most_volume_channel_t channel, uint8_t volume)
-{
-    _value_container.SetValue((uint16_t)channel, volume);
-}
-
-void CSetup::Update()
-{
-    _value_container.Update();
-}