18 constexpr
explicit step_t(
bool active =
false ) noexcept : is_active_{active}
64 constexpr
const std::optional< copyable_atomic< note_t > >&
note() const noexcept
74 constexpr
const std::optional< copyable_atomic< std::uint8_t > >&
velocity() const noexcept
84 constexpr
const std::optional< copyable_atomic< beat_duration > >&
length() const noexcept
92 std::lock_guard lock{trig_condition_mutex_};
98 std::lock_guard lock{trig_condition_mutex_};
99 return !trig_condition_ || trig_condition_();
103 void copy_from(
const step_t& other ) noexcept
106 note_ = other.
note();
109 trig_condition_ = other.trig_condition_;
113 std::optional< copyable_atomic< note_t > > note_{};
114 std::optional< copyable_atomic< std::uint8_t > > velocity_{};
115 std::optional< copyable_atomic< beat_duration > > length_{};
116 mutable std::mutex trig_condition_mutex_{};
122 return os <<
"(" << step.
is_active() <<
", " 124 : std::string(
"-" ) )
127 : std::string(
"-" ) )
133 return lhs.is_active() == rhs.is_active() && lhs.note() == rhs.note() &&
134 lhs.velocity() == rhs.velocity() && lhs.length() == rhs.length();
139 return !( lhs == rhs );
constexpr const std::optional< copyable_atomic< beat_duration > > & length() const noexcept
Definition: step.hpp:84
void set_active(bool active) noexcept
Definition: step.hpp:48
note_t
Definition: note.hpp:11
constexpr step_t(note_t note, std::uint8_t velocity, beat_duration length) noexcept
Definition: step.hpp:32
void set_velocity(std::uint8_t velocity) noexcept
Definition: step.hpp:69
void set_trig_condition(F f) noexcept
Definition: step.hpp:90
bool evaluate_trig_condition() const noexcept
Definition: step.hpp:96
const auto F
Definition: note.hpp:40
constexpr step_t(bool active=false) noexcept
Definition: step.hpp:18
constexpr const std::optional< copyable_atomic< std::uint8_t > > & velocity() const noexcept
Definition: step.hpp:74
constexpr const std::optional< copyable_atomic< note_t > > & note() const noexcept
Definition: step.hpp:64
std::ostream & operator<<(std::ostream &os, const device_entry_t &entry)
Definition: device_spec.hpp:34
Definition: beat_duration.hpp:13
constexpr std::uint8_t to_uint8_t(note_t note) noexcept
Definition: note.hpp:21
step_t(const step_t &other) noexcept
Definition: step.hpp:37
constexpr step_t(note_t note) noexcept
Definition: step.hpp:22
bool operator==(const step_t &lhs, const step_t &rhs) noexcept
Definition: step.hpp:131
constexpr step_t(note_t note, std::uint8_t velocity) noexcept
Definition: step.hpp:27
step_t & operator=(const step_t &other) noexcept
Definition: step.hpp:42
std::string_view to_string(percussion_key key)
Definition: percussion_key.hpp:69
bool is_active() const noexcept
Definition: step.hpp:53
void set_length(beat_duration length) noexcept
Definition: step.hpp:79
void set_note(note_t note) noexcept
Definition: step.hpp:58
bool operator!=(const step_t &lhs, const step_t &rhs) noexcept
Definition: step.hpp:137