diff options
author | 2018-10-15 14:22:58 +0200 | |
---|---|---|
committer | 2018-12-18 10:24:00 +0100 | |
commit | 799c911b3f94adc470a02c7ba5f2900ab3fcbee7 (patch) | |
tree | f9913be034a29dea4db05c1e008c9cae1edddf44 /plugin/ucs2-vol/inc | |
parent | 76823a851b3b3733f4455f5921747eab347be0c0 (diff) |
4a-hal-unicens: prepare support for Fiberdyne Amp
Bug-AGL: SPEC-1758
- updated VolumeLib to support ctrl messages
- added master volume setup for amplifier node
- known issue: message transmission is commented out
due to wrap_json issue
Signed-off-by: Tobias Jahnke <tobias.jahnke@microchip.com>
Diffstat (limited to 'plugin/ucs2-vol/inc')
-rw-r--r-- | plugin/ucs2-vol/inc/device_value.h | 9 | ||||
-rw-r--r-- | plugin/ucs2-vol/inc/libmostvolume.h | 3 | ||||
-rw-r--r-- | plugin/ucs2-vol/inc/setup.h | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/plugin/ucs2-vol/inc/device_value.h b/plugin/ucs2-vol/inc/device_value.h index fe6d3a5..ef57003 100644 --- a/plugin/ucs2-vol/inc/device_value.h +++ b/plugin/ucs2-vol/inc/device_value.h @@ -53,13 +53,14 @@ struct STxMessage { enum DeviceValueType { DEVICE_VAL_MASTER = 0, DEVICE_VAL_LEFT = 1, - DEVICE_VAL_RIGHT = 2 + DEVICE_VAL_RIGHT = 2, + DEVICE_VAL_FIBERDYNE_MASTER = 3 }; class CDeviceValue { public: - CDeviceValue(uint16_t address, DeviceValueType type, uint16_t key); + CDeviceValue(uint16_t address, DeviceValueType type, uint16_t key, bool is_i2c); virtual ~CDeviceValue(); uint16_t GetKey(){return _key;} @@ -72,7 +73,8 @@ public: bool FireUpdateMessage(lib_most_volume_writei2c_cb_t writei2c_fptr, lib_most_volume_writei2c_result_cb_t result_fptr, void *result_user_ptr);// fires message & updates actual value - + bool FireControlMessage(lib_most_volume_sendmessage_cb_t sendmsg_fptr); + void SetAvailable(bool active){this->_is_available = active; _actual_value = 0x01u;} bool IsAvailable() {return this->_is_available;} uint16_t GetAddress() {return this->_address;} @@ -84,6 +86,7 @@ private: bool _is_available; // related node is available bool _is_busy; // do not update while busy + bool _is_i2c; DeviceValueType _type; // determines the remote i2c command uint16_t _key; // lookup key uint16_t _address; // target node/group address diff --git a/plugin/ucs2-vol/inc/libmostvolume.h b/plugin/ucs2-vol/inc/libmostvolume.h index 1147993..5335754 100644 --- a/plugin/ucs2-vol/inc/libmostvolume.h +++ b/plugin/ucs2-vol/inc/libmostvolume.h @@ -63,9 +63,12 @@ typedef int (*lib_most_volume_writei2c_cb_t)(uint16_t node, uint8_t *data_ptr, u lib_most_volume_writei2c_result_cb_t result_fptr, void *result_user_ptr); +typedef int (*lib_most_volume_sendmessage_cb_t)(uint16_t node, uint16_t msgid, uint8_t *data_ptr, uint8_t data_sz); + typedef struct lib_most_volume_init_ { lib_most_volume_service_cb_t service_cb; lib_most_volume_writei2c_cb_t writei2c_cb; + lib_most_volume_sendmessage_cb_t sendmsg_cb; } lib_most_volume_init_t; diff --git a/plugin/ucs2-vol/inc/setup.h b/plugin/ucs2-vol/inc/setup.h index e7cda01..3be8bf4 100644 --- a/plugin/ucs2-vol/inc/setup.h +++ b/plugin/ucs2-vol/inc/setup.h @@ -51,6 +51,8 @@ private: CDeviceValue _volume_amp_272_m; CDeviceValue _volume_amp_272_l; CDeviceValue _volume_amp_272_r; + + CDeviceValue _volume_amp_510_m; CDeviceContainer _value_container; lib_most_volume_init_t init_data; |