Krotos Modules 3
Loading...
Searching...
No Matches
krotos::GrainDisplay Class Reference

#include <GrainDisplay.h>

Inheritance diagram for krotos::GrainDisplay:
krotos::ZoomableComponent

Public Member Functions

 GrainDisplay ()
 
 ~GrainDisplay () override
 
void paint (Graphics &g) override
 
void update ()
 
Range< float > getPlayingWaveformZoomRange ()
 
AreaSelectionComp::WaveformMode getWaveformMode ()
 
void setGrainData (Grain *grains, int numSamples, int numChannels)
 
void organiseGrains ()
 
void setSampleEngineToDisplay (KrotosSampleOscillatorSound *sound)
 
SampleEnginegetDisplayedSampleEngine ()
 
float getPlayheadPosition ()
 
- Public Member Functions inherited from krotos::ZoomableComponent
 ZoomableComponent ()=default
 
 ~ZoomableComponent () override=default
 
void setHorizontalZoomFactor (float factor)
 
void setHorizontalZoomCenter (float center)
 
void setVerticalZoomFactor (float factor)
 
void setVerticalZoomCenter (float center)
 
void setHorizontalZoomFromRange (const Range< float > xr)
 
void SetTransformToFit (int width, int height)
 
float getHorizontalZoomFactor () const
 
float getHorizontalZoomCenter () const
 
float getVerticalZoomFactor () const
 
float getVerticalZoomCenter () const
 
Range< float > getHorizontalRange () const
 
Range< float > getVerticalRange () const
 

Protected Member Functions

bool checkGrain (int index)
 
- Protected Member Functions inherited from krotos::ZoomableComponent
void drawNormalisedZoomedRect (Graphics &g, const Rectangle< float > &rect) const
 
void drawNormalisedZoomedRectLine (Graphics &g, const Rectangle< float > &rect) const
 
void drawZoomedRect (Graphics &g, const Rectangle< float > &rect) const
 
void drawNormalisedZoomedLine (Graphics &g, Line< float > line, float thickness) const
 
void drawZoomedLine (Graphics &g, const Line< float > &line, float thickness) const
 
void drawNormalisedZoomedText (Graphics &g, String text, Rectangle< float > bounds) const
 
void drawNormalisedZoomedPath (Graphics &g, const Path &path, float thickness)
 
void drawZoomedPath (Graphics &g, Path path, float thickness)
 
void drawNormalisedZoomedImage (Graphics &g, Image &image, const Rectangle< float > &bounds, bool fillAlphaChannelWithCurrentBrush=false)
 
void fillNormalisedZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 
void drawNormalisedZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 
void drawZoomedEllipse (Graphics &g, const Rectangle< float > &bounds)
 

Protected Attributes

KrotosSampleOscillatorSoundm_sampleOscillatorSound {nullptr}
 
SampleEnginem_sampleEngine {nullptr}
 
volatile std::atomic< bool > m_waitingForTimer {false}
 
Grainm_grainArray {nullptr}
 
int m_numSamples {0}
 
int m_numChannels {0}
 
int m_grainIndices [MAX_DRAWN_GRAINS]
 
WaitableEvent m_waitForTimer
 
bool m_drawDebugGraphics {false}
 
const Colour m_playheadColour {55, 201, 219}
 

Static Protected Attributes

static const int MAX_DRAWN_GRAINS = 30
 

Static Private Attributes

static const String GRAIN_DISPLAY_UPDATE_ID {"GrainDisplay::update"}
 

Constructor & Destructor Documentation

◆ GrainDisplay()

krotos::GrainDisplay::GrainDisplay ( )

◆ ~GrainDisplay()

krotos::GrainDisplay::~GrainDisplay ( )
override

Member Function Documentation

◆ checkGrain()

bool krotos::GrainDisplay::checkGrain ( int index)
protected

◆ getDisplayedSampleEngine()

SampleEngine * krotos::GrainDisplay::getDisplayedSampleEngine ( )
inline

◆ getPlayheadPosition()

float krotos::GrainDisplay::getPlayheadPosition ( )

Get the playhead position

Returns
float of the current playhead position, in normalised value (0.0f-1.0f). If there is no playhead the default middle value of 0.5f is returned.

◆ getPlayingWaveformZoomRange()

Range< float > krotos::GrainDisplay::getPlayingWaveformZoomRange ( )

◆ getWaveformMode()

AreaSelectionComp::WaveformMode krotos::GrainDisplay::getWaveformMode ( )

◆ organiseGrains()

void krotos::GrainDisplay::organiseGrains ( )

◆ paint()

void krotos::GrainDisplay::paint ( Graphics & g)
override

◆ setGrainData()

void krotos::GrainDisplay::setGrainData ( Grain * grains,
int numSamples,
int numChannels )
inline

◆ setSampleEngineToDisplay()

void krotos::GrainDisplay::setSampleEngineToDisplay ( KrotosSampleOscillatorSound * sound)
inline

◆ update()

void krotos::GrainDisplay::update ( )

Member Data Documentation

◆ GRAIN_DISPLAY_UPDATE_ID

const String krotos::GrainDisplay::GRAIN_DISPLAY_UPDATE_ID {"GrainDisplay::update"}
staticprivate

◆ m_drawDebugGraphics

bool krotos::GrainDisplay::m_drawDebugGraphics {false}
protected

◆ m_grainArray

Grain* krotos::GrainDisplay::m_grainArray {nullptr}
protected

◆ m_grainIndices

int krotos::GrainDisplay::m_grainIndices[MAX_DRAWN_GRAINS]
protected

◆ m_numChannels

int krotos::GrainDisplay::m_numChannels {0}
protected

◆ m_numSamples

int krotos::GrainDisplay::m_numSamples {0}
protected

◆ m_playheadColour

const Colour krotos::GrainDisplay::m_playheadColour {55, 201, 219}
protected

◆ m_sampleEngine

SampleEngine* krotos::GrainDisplay::m_sampleEngine {nullptr}
protected

◆ m_sampleOscillatorSound

KrotosSampleOscillatorSound* krotos::GrainDisplay::m_sampleOscillatorSound {nullptr}
protected

◆ m_waitForTimer

WaitableEvent krotos::GrainDisplay::m_waitForTimer
protected

◆ m_waitingForTimer

volatile std::atomic<bool> krotos::GrainDisplay::m_waitingForTimer {false}
protected

◆ MAX_DRAWN_GRAINS

const int krotos::GrainDisplay::MAX_DRAWN_GRAINS = 30
staticprotected

The documentation for this class was generated from the following files: