Deluge Firmware
1.3.0
Build date: 2026.08.29
Toggle main menu visibility
Loading...
Searching...
No Matches
waveform_basic_navigator.h
1
/*
2
* Copyright © 2018-2023 Synthstrom Audible Limited
3
*
4
* This file is part of The Synthstrom Audible Deluge Firmware.
5
*
6
* The Synthstrom Audible Deluge Firmware is free software: you can redistribute it and/or modify it under the
7
* terms of the GNU General Public License as published by the Free Software Foundation,
8
* either version 3 of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
* See the GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along with this program.
15
* If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#pragma once
19
20
#include "definitions_cxx.hpp"
21
#include "gui/waveform/waveform_render_data.h"
22
#include <cstdint>
23
24
class
Sample
;
25
struct
MarkerColumn
;
26
class
SampleHolder
;
27
28
// This class supports basic navigation for samples not tied to a timeline - i.e. not AudioClips. Navigation is done and
29
// thought about at the individual-sample level. This is used (but not inherited) by SampleMarkerEditor and
30
// SampleBrowser
31
32
class
WaveformBasicNavigator {
33
public
:
34
WaveformBasicNavigator();
35
void
opened(
SampleHolder
* range =
nullptr
);
36
int32_t getMaxZoom();
37
bool
isZoomedIn();
38
39
bool
zoom(int32_t offset,
bool
shouldAllowExtraScrollRight =
false
,
MarkerColumn
* cols =
nullptr
,
40
MarkerType markerType = MarkerType::NONE);
41
bool
scroll(int32_t offset,
bool
shouldAllowExtraScrollRight =
false
,
MarkerColumn
* cols =
nullptr
);
42
void
potentiallyAdjustScrollPosition(
bool
shouldAllowExtraScrollRight =
false
);
43
44
Sample
* sample;
45
46
int64_t xZoom;
47
int64_t xScroll;
48
49
WaveformRenderData
renderData;
50
};
51
52
extern
WaveformBasicNavigator
waveformBasicNavigator;
SampleHolder
Definition
sample_holder.h:32
Sample
Definition
sample.h:50
WaveformBasicNavigator
Definition
waveform_basic_navigator.h:32
MarkerColumn
Definition
waveform_renderer.h:30
WaveformRenderData
Definition
waveform_render_data.h:26