JUCE  v5.1.1-3-g1a0b28c73
JUCE API
AudioThumbnailCache Class Reference

An instance of this class is used to manage multiple AudioThumbnail objects. More...

#include <juce_AudioThumbnailCache.h>

Collaboration diagram for AudioThumbnailCache:

Public Member Functions

 AudioThumbnailCache (int maxNumThumbsToStore)
 Creates a cache object. More...
 
virtual ~AudioThumbnailCache ()
 Destructor. More...
 
void clear ()
 Clears out any stored thumbnails. More...
 
TimeSliceThreadgetTimeSliceThread () noexcept
 Returns the thread that client thumbnails can use. More...
 
bool loadThumb (AudioThumbnailBase &thumb, int64 hashCode)
 Reloads the specified thumb if this cache contains the appropriate stored data. More...
 
bool readFromStream (InputStream &source)
 Attempts to re-load a saved cache of thumbnails from a stream. More...
 
void removeThumb (int64 hashCode)
 Tells the cache to forget about the thumb with the given hashcode. More...
 
void storeThumb (const AudioThumbnailBase &thumb, int64 hashCode)
 Stores the cachable data from the specified thumb in this cache. More...
 
void writeToStream (OutputStream &stream)
 Writes all currently-loaded cache data to a stream. More...
 

Protected Member Functions

virtual bool loadNewThumb (AudioThumbnailBase &, int64 hashCode)
 This can be overridden to provide a custom callback for loading thumbnails from pre-saved files to save the cache the trouble of having to create them. More...
 
virtual void saveNewlyFinishedThumbnail (const AudioThumbnailBase &, int64 hashCode)
 This can be overridden to provide a custom callback for saving thumbnails once they have finished being loaded. More...
 

Private Member Functions

int findOldestThumb () const
 
ThumbnailCacheEntry * findThumbFor (int64 hash) const
 

Private Attributes

CriticalSection lock
 
int maxNumThumbsToStore
 
TimeSliceThread thread
 
OwnedArray< ThumbnailCacheEntry > thumbs
 

Friends

struct ContainerDeletePolicy< ThumbnailCacheEntry >
 

Detailed Description

An instance of this class is used to manage multiple AudioThumbnail objects.

The cache runs a single background thread that is shared by all the thumbnails that need it, and it maintains a set of low-res previews in memory, to avoid having to re-scan audio files too often.

See also
AudioThumbnail

Constructor & Destructor Documentation

◆ AudioThumbnailCache()

AudioThumbnailCache::AudioThumbnailCache ( int  maxNumThumbsToStore)
explicit

Creates a cache object.

The maxNumThumbsToStore parameter lets you specify how many previews should be kept in memory at once.

◆ ~AudioThumbnailCache()

virtual AudioThumbnailCache::~AudioThumbnailCache ( )
virtual

Destructor.

Member Function Documentation

◆ clear()

void AudioThumbnailCache::clear ( )

Clears out any stored thumbnails.

◆ findOldestThumb()

int AudioThumbnailCache::findOldestThumb ( ) const
private

◆ findThumbFor()

ThumbnailCacheEntry* AudioThumbnailCache::findThumbFor ( int64  hash) const
private

◆ getTimeSliceThread()

TimeSliceThread& AudioThumbnailCache::getTimeSliceThread ( )
inlinenoexcept

Returns the thread that client thumbnails can use.

◆ loadNewThumb()

virtual bool AudioThumbnailCache::loadNewThumb ( AudioThumbnailBase ,
int64  hashCode 
)
protectedvirtual

This can be overridden to provide a custom callback for loading thumbnails from pre-saved files to save the cache the trouble of having to create them.

◆ loadThumb()

bool AudioThumbnailCache::loadThumb ( AudioThumbnailBase thumb,
int64  hashCode 
)

Reloads the specified thumb if this cache contains the appropriate stored data.

This is called automatically by the AudioThumbnail class, so you shouldn't normally need to call it directly.

◆ readFromStream()

bool AudioThumbnailCache::readFromStream ( InputStream source)

Attempts to re-load a saved cache of thumbnails from a stream.

The cache data must have been written by the writeToStream() method. This will replace all currently-loaded thumbnails with the new data.

◆ removeThumb()

void AudioThumbnailCache::removeThumb ( int64  hashCode)

Tells the cache to forget about the thumb with the given hashcode.

◆ saveNewlyFinishedThumbnail()

virtual void AudioThumbnailCache::saveNewlyFinishedThumbnail ( const AudioThumbnailBase ,
int64  hashCode 
)
protectedvirtual

This can be overridden to provide a custom callback for saving thumbnails once they have finished being loaded.

◆ storeThumb()

void AudioThumbnailCache::storeThumb ( const AudioThumbnailBase thumb,
int64  hashCode 
)

Stores the cachable data from the specified thumb in this cache.

This is called automatically by the AudioThumbnail class, so you shouldn't normally need to call it directly.

◆ writeToStream()

void AudioThumbnailCache::writeToStream ( OutputStream stream)

Writes all currently-loaded cache data to a stream.

The resulting data can be re-loaded with readFromStream().

Friends And Related Function Documentation

◆ ContainerDeletePolicy< ThumbnailCacheEntry >

friend struct ContainerDeletePolicy< ThumbnailCacheEntry >
friend

Member Data Documentation

◆ lock

CriticalSection AudioThumbnailCache::lock
private

◆ maxNumThumbsToStore

int AudioThumbnailCache::maxNumThumbsToStore
private

◆ thread

TimeSliceThread AudioThumbnailCache::thread
private

◆ thumbs

OwnedArray<ThumbnailCacheEntry> AudioThumbnailCache::thumbs
private

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