Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
snap_grid.hpp
Go to the documentation of this file.
1#pragma once
2
5
9
10#include <cstdint>
11
12namespace pulp::timeline_editor {
13
17
19enum class SnapDirection : std::uint8_t {
23};
24
25enum class SnapGridError : std::uint8_t {
28};
29
38class SnapGrid {
39 public:
43
53 SnapDirection direction = SnapDirection::Nearest) const noexcept;
54
56 return interval_;
57 }
58 timebase::SwingRatio swing() const noexcept {
59 return swing_;
60 }
61
62 private:
64 : interval_(interval), swing_(swing) {}
65
66 timebase::TickDuration interval_;
68};
69
71
72} // namespace pulp::timeline_editor
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Definition compiled_meter_map.hpp:64
A validated musical grid whose phase restarts at every authored bar.
Definition snap_grid.hpp:38
static runtime::Result< SnapGrid, SnapGridError > create(timebase::TickDuration interval, timebase::SwingRatio swing=timebase::kStraightSwing) noexcept
timebase::TickDuration interval() const noexcept
Definition snap_grid.hpp:55
timebase::TickPosition snap(const timebase::CompiledMeterMap &meter_map, timebase::TickPosition position, SnapDirection direction=SnapDirection::Nearest) const noexcept
Snap position without leaving the signed tick domain.
timebase::SwingRatio swing() const noexcept
Definition snap_grid.hpp:58
SnapGridError
Definition snap_grid.hpp:25
SnapDirection
Which inclusive grid boundary a gesture requests.
Definition snap_grid.hpp:19
@ InvalidSwingRatio
Definition snap_grid.hpp:27
@ InvalidInterval
Definition snap_grid.hpp:26
@ Nearest
Definition snap_grid.hpp:21
@ AtOrAfter
Definition snap_grid.hpp:22
@ AtOrBefore
Definition snap_grid.hpp:20
constexpr SwingRatio kStraightSwing
Definition quantize.hpp:61
ScriptedUiHost is a SequencerUiHost whose playhead is written by the caller instead of an engine,...
Definition edit_intent.hpp:14
Result<T, E> — success / failure union for fallible operations.
Definition quantize.hpp:53
Definition tick.hpp:56
Definition tick.hpp:61