Loading...
Searching...
No Matches

Detailed Description

The actions of the Switches tab, read each tick. What changes what is heard waits for the grid point, the transport calling looper_point(); selecting a layer is done at once.

Public Member Functions

void reset () noexcept
 
void add (layer_action a, transport &t) noexcept
 
template<typename Inputs , typename Engine >
void read (Inputs &in, transport &t, Engine &e, bool empty)
 
template<typename Inputs , typename Engine >
void apply (Inputs &in, Engine &e)
 On the grid point.
 
template<typename Inputs >
void follow (Inputs &in, int passes)
 
template<typename Inputs >
void removed (Inputs &in, int pass)
 Pass pass went from the layers: the one Layer says keeps its place.
 
template<typename Inputs >
void merged (Inputs &in, int at)
 
template<typename Inputs >
void inserted (Inputs &in, int pass, int passes)
 
template<typename Inputs , typename Log >
void follow_merges (Inputs &in, Log &log)
 

Public Attributes

std::array< layer_action, max_actions > actions {}
 
int action_count {}
 
bool reverse {}
 
std::optional< float > speed
 
solo_memory soloed
 
int seen_passes {}
 Passes when Layer was last made to follow them.
 

Static Public Attributes

static constexpr int max_actions = 16
 

Member Function Documentation

◆ follow()

template<typename Inputs >
void Nodes::Looper::switches::follow ( Inputs &  in,
int  passes 
)
inline

Layer moves to each new layer as it is added, and stays among the layers there are when some go.

◆ follow_merges()

template<typename Inputs , typename Log >
void Nodes::Looper::switches::follow_merges ( Inputs &  in,
Log &  log 
)
inline

Applies the merges log noted since it was last read, in their order. A merge moves the passes under the mutes a solo would give back: the solo is not undone any more.

◆ inserted()

template<typename Inputs >
void Nodes::Looper::switches::inserted ( Inputs &  in,
int  pass,
int  passes 
)
inline

Pass pass came back among passes layers, e.g. by undo: the one Layer says keeps its place.

◆ merged()

template<typename Inputs >
void Nodes::Looper::switches::merged ( Inputs &  in,
int  at 
)
inline

Pass at and the one over it became one layer: Layer keeps naming the layer it named, the merged one when it named either of the two. The layers are one fewer, so that a pass added with the merge is followed.

◆ read()

template<typename Inputs , typename Engine >
void Nodes::Looper::switches::read ( Inputs &  in,
transport &  t,
Engine &  e,
bool  empty 
)
inline

Reads the actions pressed this tick. empty: there is no loop and none is being recorded.


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