53 #ifndef LIB_TIME_CONTROL_IMPL_H 54 #define LIB_TIME_CONTROL_IMPL_H 94 typedef function<TI(TI const&)> ValueSetter;
95 typedef function<TI(Offset const&)> Ofsetter;
96 typedef function<TI(int)> Nudger;
99 mutable ValueSetter setVal_;
100 mutable Ofsetter offset_;
101 mutable Nudger nudge_;
104 ensure_isArmed()
const 108 "while not (yet) connected to any target to change" 109 ,error::LUMIERA_ERROR_UNCONNECTED);
114 void bind_to (TAR& target)
const;
137 typedef function<void(TI const&)> ChangeSignal;
138 typedef std::vector<ChangeSignal> ListenerList;
140 ListenerList listeners_;
148 ChangeSignal newListener (std::ref(toNotify));
149 listeners_.push_back (newListener);
161 operator() (TI
const& changedVal)
const 163 typedef typename ListenerList::const_iterator Iter;
164 Iter p = listeners_.begin();
165 Iter e = listeners_.end();
200 setVal_ = ValueSetter();
201 offset_ = Ofsetter();
Implementation building block: propagate changes to listeners.
Definition of special cases when imposing a change onto concrete time values.
Modifying time and timecode values.
void disconnect()
disconnect any observers
Interface: an opaque change imposed onto some time value.
Implementation namespace for support and library code.
Derived specific exceptions within Lumiera's exception hierarchy.
void attach(SIG const &toNotify)
install notification receiver
Lumiera error handling (C++ interface).
Policy how to impose changes onto a connected target time value entity This policy will be parametris...
Implementation building block: impose changes to a Time element.
a family of time value like entities and their relationships.