Krotos Modules 3
Loading...
Searching...
No Matches
GrainDisplay.h
Go to the documentation of this file.
1#pragma once
2
3namespace krotos
4{
6 {
7 public:
9 ~GrainDisplay() override;
10
11 void paint(Graphics& g) override;
12 void update();
13 Range<float> getPlayingWaveformZoomRange();
15
16 void setGrainData(Grain* grains, int numSamples, int numChannels)
17 {
18 m_grainArray = grains;
19 m_numSamples = numSamples;
20 m_numChannels = numChannels;
21 }
22 void organiseGrains();
23
25 {
27 if (sound)
28 {
30 }
31 else
32 {
33 m_sampleEngine = nullptr;
34 }
35 }
36
38
43 float getPlayheadPosition();
44
45 protected:
48
49 volatile std::atomic<bool> m_waitingForTimer{false};
50 bool checkGrain(int index);
51
55
56 static const int MAX_DRAWN_GRAINS = 30;
58 WaitableEvent m_waitForTimer;
59
61 const Colour m_playheadColour{55, 201, 219};
62
63 private:
64 static const String GRAIN_DISPLAY_UPDATE_ID;
65 };
66} // namespace krotos
WaveformMode
Definition AreaSelectionComp.h:7
Definition GrainDisplay.h:6
void organiseGrains()
Definition GrainDisplay.cpp:52
void setSampleEngineToDisplay(KrotosSampleOscillatorSound *sound)
Definition GrainDisplay.h:24
void paint(Graphics &g) override
Definition GrainDisplay.cpp:107
const Colour m_playheadColour
Definition GrainDisplay.h:61
volatile std::atomic< bool > m_waitingForTimer
Definition GrainDisplay.h:49
SampleEngine * m_sampleEngine
Definition GrainDisplay.h:47
int m_numSamples
Definition GrainDisplay.h:53
int m_grainIndices[MAX_DRAWN_GRAINS]
Definition GrainDisplay.h:57
Range< float > getPlayingWaveformZoomRange()
Definition GrainDisplay.cpp:31
float getPlayheadPosition()
Definition GrainDisplay.cpp:387
void update()
Definition GrainDisplay.cpp:17
WaitableEvent m_waitForTimer
Definition GrainDisplay.h:58
GrainDisplay()
Definition GrainDisplay.cpp:7
static const String GRAIN_DISPLAY_UPDATE_ID
Definition GrainDisplay.h:64
bool checkGrain(int index)
Definition GrainDisplay.cpp:87
KrotosSampleOscillatorSound * m_sampleOscillatorSound
Definition GrainDisplay.h:46
static const int MAX_DRAWN_GRAINS
Definition GrainDisplay.h:56
Grain * m_grainArray
Definition GrainDisplay.h:52
int m_numChannels
Definition GrainDisplay.h:54
SampleEngine * getDisplayedSampleEngine()
Definition GrainDisplay.h:37
~GrainDisplay() override
Definition GrainDisplay.cpp:15
bool m_drawDebugGraphics
Definition GrainDisplay.h:60
void setGrainData(Grain *grains, int numSamples, int numChannels)
Definition GrainDisplay.h:16
AreaSelectionComp::WaveformMode getWaveformMode()
Definition GrainDisplay.cpp:40
Definition OscillatorUtils.h:39
Definition KrotosSynthesiserSound.h:19
SampleEngine * getSampleEngine() override
Definition KrotosSynthesiserSound.h:44
Definition SampleEngine.h:84
Enables zooming of a painted component using special drawing methods.
Definition ZoomableComponent.h:7
Definition AirAbsorptionFilter.cpp:2