19 [[nodiscard]]
bool valid() const noexcept;
37 [[nodiscard]]
bool valid() const noexcept;
56 [[nodiscard]]
bool valid() const noexcept;
69 [[nodiscard]]
bool valid() const noexcept {
return state_.valid(); }
73 std::uint64_t end)
const noexcept;
75 std::uint64_t fade_out_frames)
const noexcept;
77 std::uint64_t end)
const noexcept;
101 [[nodiscard]]
std::
size_t capacity() const noexcept {
return capacity_; }
102 [[nodiscard]] std::size_t
undo_count() const noexcept {
return undo_stack_.size(); }
103 [[nodiscard]] std::size_t
redo_count() const noexcept {
return redo_stack_.size(); }
104 [[nodiscard]]
bool can_undo() const noexcept {
return !undo_stack_.empty(); }
105 [[nodiscard]]
bool can_redo() const noexcept {
return !redo_stack_.empty(); }
112 std::size_t capacity_ = 0;
113 std::vector<SampleEditOperation> undo_stack_;
114 std::vector<SampleEditOperation> redo_stack_;
Definition sample_edit_document.hpp:64
const EditableSampleState & state() const noexcept
Definition sample_edit_document.hpp:70
bool apply(const SampleEditOperation &operation) noexcept
SampleEditOperation make_set_fades(std::uint64_t fade_in_frames, std::uint64_t fade_out_frames) const noexcept
SampleEditOperation make_set_reverse(bool reversed) const noexcept
bool valid() const noexcept
Definition sample_edit_document.hpp:69
bool reset(EditableSampleSource source) noexcept
bool restore_state(const EditableSampleState &state) noexcept
SampleEditOperation make_set_normalize_gain(float gain) const noexcept
SampleEditOperation make_set_loop(std::uint64_t start, std::uint64_t end) const noexcept
SampleEditOperation make_set_trim(std::uint64_t start, std::uint64_t end) const noexcept
SampleEditOperation make_clear_loop() const noexcept
Definition sample_edit_document.hpp:96
bool can_undo() const noexcept
Definition sample_edit_document.hpp:104
bool perform(EditableSampleDocument &document, const SampleEditOperation &operation)
bool can_redo() const noexcept
Definition sample_edit_document.hpp:105
std::size_t capacity() const noexcept
Definition sample_edit_document.hpp:101
std::size_t redo_count() const noexcept
Definition sample_edit_document.hpp:103
bool prepare(std::size_t max_operations)
std::size_t undo_count() const noexcept
Definition sample_edit_document.hpp:102
bool undo(EditableSampleDocument &document)
bool redo(EditableSampleDocument &document)
Definition analyzer_provider.hpp:12
SampleEditOperationKind
Definition sample_edit_document.hpp:41
@ set_reverse
Definition sample_edit_document.hpp:47
@ set_loop
Definition sample_edit_document.hpp:45
@ none
Definition sample_edit_document.hpp:42
@ set_fades
Definition sample_edit_document.hpp:44
@ set_trim
Definition sample_edit_document.hpp:43
@ clear_loop
Definition sample_edit_document.hpp:46
@ set_normalize_gain
Definition sample_edit_document.hpp:48
constexpr std::uint32_t kInvalidSampleId
Definition sample_identity.hpp:8
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
Definition sample_edit_document.hpp:12
double sample_rate
Definition sample_edit_document.hpp:17
std::uint32_t sample_id
Definition sample_edit_document.hpp:13
std::uint64_t generation
Definition sample_edit_document.hpp:14
std::uint32_t num_channels
Definition sample_edit_document.hpp:15
static EditableSampleSource from_published_sample(std::uint32_t sample_id, const PublishedSampleView &view) noexcept
bool valid() const noexcept
std::uint64_t num_frames
Definition sample_edit_document.hpp:16
Definition sample_edit_document.hpp:24
std::uint64_t fade_in_frames
Definition sample_edit_document.hpp:29
std::uint64_t loop_end
Definition sample_edit_document.hpp:35
std::uint64_t revision
Definition sample_edit_document.hpp:26
float normalize_gain
Definition sample_edit_document.hpp:32
bool reversed
Definition sample_edit_document.hpp:31
bool valid() const noexcept
std::uint64_t trim_start
Definition sample_edit_document.hpp:27
std::uint64_t trim_end
Definition sample_edit_document.hpp:28
std::uint64_t fade_out_frames
Definition sample_edit_document.hpp:30
bool has_loop
Definition sample_edit_document.hpp:33
std::uint64_t trimmed_frames() const noexcept
std::uint64_t loop_start
Definition sample_edit_document.hpp:34
EditableSampleSource source
Definition sample_edit_document.hpp:25
Definition sample_slot_bank.hpp:22
Definition sample_edit_document.hpp:51
SampleEditOperationKind kind
Definition sample_edit_document.hpp:52
bool valid() const noexcept
EditableSampleState after
Definition sample_edit_document.hpp:54
EditableSampleState before
Definition sample_edit_document.hpp:53