51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
/*
|
|
* DynamicParameterInitializer.cpp
|
|
*
|
|
* Created on: 29 íîÿá. 2023 ã.
|
|
* Author: titov
|
|
*/
|
|
|
|
#include "DynamicParameter.hh"
|
|
|
|
#include "../../systemic/ApplyParameter.hpp"
|
|
|
|
bool application::schematic::DynamicParameter::input( Environment & env ) {
|
|
|
|
return ( parameter = systemic::getSetting<Settable>( env.cparams, provider, links.preset ) );
|
|
|
|
}
|
|
|
|
void application::schematic::DynamicParameter::build( Environment & env ) {
|
|
|
|
Settable * dp = memories::instance_object<Settable>(env.static_object_ma);
|
|
|
|
typedef systemic::ApplyParameter<Settable> ApplySettable;
|
|
typedef systemic::IValueType<float> ParameterInterface;
|
|
typedef systemic::IFunctor<void> Action;
|
|
|
|
ApplySettable * ap = memories::instance_object<ApplySettable>(env.static_object_ma, *dp, parameter);
|
|
|
|
(*ap)();
|
|
|
|
if( links.value ) {
|
|
|
|
env.signals.create( links.value, dp->value() );
|
|
|
|
}
|
|
|
|
if( links.set ) {
|
|
|
|
env.rholder.share<ParameterInterface>( *dp, links.set );
|
|
|
|
}
|
|
|
|
if( links.reset ) {
|
|
|
|
env.rholder.share<Action>( *ap, links.reset );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|