44 #ifndef LIB_TIME_CONTROL_IMPL_H 45 #define LIB_TIME_CONTROL_IMPL_H 85 typedef function<TI(TI const&)> ValueSetter;
86 typedef function<TI(Offset const&)> Ofsetter;
87 typedef function<TI(int)> Nudger;
90 mutable ValueSetter setVal_;
91 mutable Ofsetter offset_;
92 mutable Nudger nudge_;
95 ensure_isArmed()
const 99 "while not (yet) connected to any target to change" 100 ,error::LUMIERA_ERROR_UNCONNECTED);
105 void bind_to (TAR& target)
const;
128 typedef function<void(TI const&)> ChangeSignal;
129 typedef std::vector<ChangeSignal> ListenerList;
131 ListenerList listeners_;
139 ChangeSignal newListener (std::ref(toNotify));
140 listeners_.push_back (newListener);
152 operator() (TI
const& changedVal)
const 154 typedef typename ListenerList::const_iterator Iter;
155 Iter p = listeners_.begin();
156 Iter e = listeners_.end();
191 setVal_ = ValueSetter();
192 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.