blockparam: added support for external parameter copy

This commit is contained in:
Roman
2016-01-10 21:13:30 +01:00
parent 0510d2cb56
commit 88b2c6c78d
2 changed files with 20 additions and 5 deletions
+18 -4
View File
@@ -82,9 +82,10 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_pref
template <class T>
BlockParam<T>::BlockParam(Block *block, const char *name,
bool parent_prefix) :
bool parent_prefix, T *extern_address) :
BlockParamBase(block, name, parent_prefix),
_val()
_val(),
_extern_address(extern_address)
{
update();
}
@@ -93,12 +94,25 @@ template <class T>
T BlockParam<T>::get() { return _val; }
template <class T>
void BlockParam<T>::set(T val) { _val = val; }
void BlockParam<T>::set(T val)
{
_val = val;
if (_extern_address != NULL) {
*_extern_address = val;
}
}
template <class T>
void BlockParam<T>::update()
{
if (_handle != PARAM_INVALID) { param_get(_handle, &_val); }
if (_handle != PARAM_INVALID) {
param_get(_handle, &_val);
if (_extern_address != NULL) {
*_extern_address = _val;
}
}
}
template <class T>