HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Member Functions
tt::detail::observable_cast< T, OT > Class Template Referencefinal
Inheritance diagram for tt::detail::observable_cast< T, OT >:
tt::detail::observable_unary< T, OT > tt::detail::observable_base< T >

Public Member Functions

 observable_cast (std::shared_ptr< observable_base< OT > > const &operand) noexcept
 
virtual T load () const noexcept override
 Get the current value.
 
virtual bool store (T const &new_value) noexcept override
 Set the value.
 
- Public Member Functions inherited from tt::detail::observable_unary< T, OT >
 observable_unary (std::shared_ptr< observable_base< OT > > const &operand) noexcept
 
- Public Member Functions inherited from tt::detail::observable_base< T >
 observable_base (observable_base const &)=delete
 
 observable_base (observable_base &&)=delete
 
observable_baseoperator= (observable_base const &)=delete
 
observable_baseoperator= (observable_base &&)=delete
 
 observable_base () noexcept
 Constructor.
 
previous_value () const noexcept
 Get the previous value.
 
time_point time_when_last_modified () const noexcept
 Time when the value was modified last.
 
duration duration_since_last_modified () const noexcept
 Duration since the value was last modified.
 
float animation_progress (duration animation_duration) const noexcept
 The relative time since the start of the animation.
 
load (duration animation_duration) const noexcept
 Get the current value animated over the animation_duration.
 
size_t add_callback (callback_type callback) noexcept
 Add a callback as a listener.
 
void remove_callback (size_t id) noexcept
 Remove a callback.
 

Additional Inherited Members

- Public Types inherited from tt::detail::observable_base< T >
using callback_type = std::function<void(T const &)>
 
using time_point = typename hires_utc_clock::time_point
 
using duration = typename hires_utc_clock::duration
 

Member Function Documentation

◆ load()

template<typename T , typename OT >
virtual T tt::detail::observable_cast< T, OT >::load ( ) const
inlineoverridevirtualnoexcept

Get the current value.

The value is often calculated directly from the cached values retrieved from notifications down the chain.

Implements tt::detail::observable_base< T >.

◆ store()

template<typename T , typename OT >
virtual bool tt::detail::observable_cast< T, OT >::store ( T const & new_value)
inlineoverridevirtualnoexcept

Set the value.

The value is often not directly stored, but instead forwarded up the chain of observables. And then let the notifications flowing backward updated the cached values so that loads() will be quick.

Parameters
new_valueThe new value
Returns
true if the value was different from before.

Implements tt::detail::observable_base< T >.


The documentation for this class was generated from the following file: