TracktionEngine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
engine::SmartThumbnail Class Reference

SmartThumnail automatically tracks changes to an AudioFile and will update its cache if the file changes. More...

#include <tracktion_SmartThumbnail.h>

Inherits juce::AudioThumbnailBase, and juce::Timer.

Public Member Functions

 SmartThumbnail (Engine &, const AudioFile &, juce::Component &componentToRepaint, Edit *)
 Creates a SmartThumbnail for an AudioFile which will automatically repaint a Component as it it loaded.
 
 SmartThumbnail (Engine &, const AudioFile &, juce::Component &componentToRepaint, Edit *, std::unique_ptr< juce::AudioThumbnailBase > thumbnailToUse)
 Creates a SmartThumbnail for an AudioFile which will automatically repaint a Component as it it loaded.
 
 ~SmartThumbnail () override
 Destructor.
 
void setNewFile (const AudioFile &)
 Sets a new file to display.
 
bool isGeneratingProxy () const noexcept
 Returns true if this is a proxy file being generated by the AudioProxyGenerator.
 
float getProxyProgress () const noexcept
 Returns the progress of the current proxy file creation.
 
bool isOutOfDate () const noexcept
 Returns true if the file has been changed and a new thumbnail has not yet been generated.
 
void drawChannel (juce::Graphics &, juce::Rectangle< int >, TimeRange, int channelNum, float verticalZoomFactor)
 Draws one of the channels, optionally using a hi-res algorithm.
 
void drawChannels (juce::Graphics &, juce::Rectangle< int >, TimeRange, float verticalZoomFactor)
 Draws all of the channels, optionally using a hi-res algorithm.
 
double getProportionComplete () const noexcept
 Returns the proportion of the thumbnail that has been generated.
 
void clear () override
 
bool setSource (juce::InputSource *) override
 
void setReader (juce::AudioFormatReader *, juce::int64 hashCode) override
 
bool loadFrom (juce::InputStream &) override
 
void saveTo (juce::OutputStream &) const override
 
int getNumChannels () const noexcept override
 
double getTotalLength () const noexcept override
 
bool isFullyLoaded () const noexcept override
 
juce::int64 getNumSamplesFinished () const noexcept override
 
float getApproximatePeak () const override
 
void getApproximateMinMax (double startTime, double endTime, int channelIndex, float &minValue, float &maxValue) const noexcept override
 
juce::int64 getHashCode () const override
 
void reset (int numChannels, double sampleRate, juce::int64 totalSamplesInSource) override
 
void addBlock (juce::int64 sampleNumberInSource, const juce::AudioBuffer< float > &, int startOffsetInBuffer, int numSamples) override
 
void audioFileChanged ()
 
void releaseFile ()
 

Static Public Member Functions

static void setEnabled (bool e)
 Enable/disable all smart thumbnail generation.
 
static bool areThumbnailsFullyLoaded (Engine &)
 Returns true if any thumbnails are currently being generated for the given Edit.
 

Public Attributes

AudioFile file
 
Engineengine
 
Edit *const edit = nullptr
 

Detailed Description

SmartThumnail automatically tracks changes to an AudioFile and will update its cache if the file changes.

Additionally, if this file is a wav proxy file that's being generated, you can use this to find out about its progress.

Constructor & Destructor Documentation

◆ SmartThumbnail() [1/2]

engine::SmartThumbnail::SmartThumbnail ( Engine ,
const AudioFile ,
juce::Component &  componentToRepaint,
Edit  
)

Creates a SmartThumbnail for an AudioFile which will automatically repaint a Component as it it loaded.

You can optionally supply an Edit to use its temporary directory for the thumbnail file storage.

◆ SmartThumbnail() [2/2]

engine::SmartThumbnail::SmartThumbnail ( Engine ,
const AudioFile ,
juce::Component &  componentToRepaint,
Edit ,
std::unique_ptr< juce::AudioThumbnailBase >  thumbnailToUse 
)

Creates a SmartThumbnail for an AudioFile which will automatically repaint a Component as it it loaded.

You can optionally supply an Edit to use its temporary directory for the thumbnail file storage.

Parameters
thumbnailToUseThe thumbnail instance to use if you want custom thumbs

◆ ~SmartThumbnail()

engine::SmartThumbnail::~SmartThumbnail ( )
override

Destructor.

Member Function Documentation

◆ setEnabled()

static void engine::SmartThumbnail::setEnabled ( bool  e)
static

Enable/disable all smart thumbnail generation.

◆ areThumbnailsFullyLoaded()

static bool engine::SmartThumbnail::areThumbnailsFullyLoaded ( Engine )
static

Returns true if any thumbnails are currently being generated for the given Edit.

◆ setNewFile()

void engine::SmartThumbnail::setNewFile ( const AudioFile )

Sets a new file to display.

◆ isGeneratingProxy()

bool engine::SmartThumbnail::isGeneratingProxy ( ) const
noexcept

Returns true if this is a proxy file being generated by the AudioProxyGenerator.

◆ getProxyProgress()

float engine::SmartThumbnail::getProxyProgress ( ) const
noexcept

Returns the progress of the current proxy file creation.

◆ isOutOfDate()

bool engine::SmartThumbnail::isOutOfDate ( ) const
noexcept

Returns true if the file has been changed and a new thumbnail has not yet been generated.

◆ drawChannel()

void engine::SmartThumbnail::drawChannel ( juce::Graphics &  ,
juce::Rectangle< int >  ,
TimeRange  ,
int  channelNum,
float  verticalZoomFactor 
)

Draws one of the channels, optionally using a hi-res algorithm.

◆ drawChannels()

void engine::SmartThumbnail::drawChannels ( juce::Graphics &  ,
juce::Rectangle< int >  ,
TimeRange  ,
float  verticalZoomFactor 
)

Draws all of the channels, optionally using a hi-res algorithm.

◆ getProportionComplete()

double engine::SmartThumbnail::getProportionComplete ( ) const
noexcept

Returns the proportion of the thumbnail that has been generated.

◆ clear()

void engine::SmartThumbnail::clear ( )
override

.

◆ setSource()

bool engine::SmartThumbnail::setSource ( juce::InputSource *  )
override

.

◆ setReader()

void engine::SmartThumbnail::setReader ( juce::AudioFormatReader *  ,
juce::int64  hashCode 
)
override

.

◆ loadFrom()

bool engine::SmartThumbnail::loadFrom ( juce::InputStream &  )
override

.

◆ saveTo()

void engine::SmartThumbnail::saveTo ( juce::OutputStream &  ) const
override

.

◆ getNumChannels()

int engine::SmartThumbnail::getNumChannels ( ) const
overridenoexcept

.

◆ getTotalLength()

double engine::SmartThumbnail::getTotalLength ( ) const
overridenoexcept

.

◆ isFullyLoaded()

bool engine::SmartThumbnail::isFullyLoaded ( ) const
overridenoexcept

.

◆ getNumSamplesFinished()

juce::int64 engine::SmartThumbnail::getNumSamplesFinished ( ) const
overridenoexcept

.

◆ getApproximatePeak()

float engine::SmartThumbnail::getApproximatePeak ( ) const
override

.

◆ getApproximateMinMax()

void engine::SmartThumbnail::getApproximateMinMax ( double  startTime,
double  endTime,
int  channelIndex,
float &  minValue,
float &  maxValue 
) const
overridenoexcept

.

◆ getHashCode()

juce::int64 engine::SmartThumbnail::getHashCode ( ) const
override

.

◆ reset()

void engine::SmartThumbnail::reset ( int  numChannels,
double  sampleRate,
juce::int64  totalSamplesInSource 
)
override

.

◆ addBlock()

void engine::SmartThumbnail::addBlock ( juce::int64  sampleNumberInSource,
const juce::AudioBuffer< float > &  ,
int  startOffsetInBuffer,
int  numSamples 
)
override

.

◆ audioFileChanged()

void engine::SmartThumbnail::audioFileChanged ( )

◆ releaseFile()

void engine::SmartThumbnail::releaseFile ( )

Member Data Documentation

◆ file

AudioFile engine::SmartThumbnail::file

◆ engine

Engine& engine::SmartThumbnail::engine

◆ edit

Edit* const engine::SmartThumbnail::edit = nullptr

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