LMMS
Loading...
Searching...
No Matches
lmms::SampleThumbnail Class Reference

#include <SampleThumbnail.h>

Classes

struct  VisualizeParameters
class  Thumbnail
struct  SampleThumbnailEntry
struct  Hash

Public Member Functions

 SampleThumbnail ()=default
 SampleThumbnail (const Sample &sample)
void visualize (VisualizeParameters parameters, QPainter &painter) const

Private Types

using ThumbnailCache = std::vector<Thumbnail>

Private Attributes

std::shared_ptr< ThumbnailCachem_thumbnailCache = std::make_shared<ThumbnailCache>()
std::shared_ptr< const SampleBufferm_buffer = SampleBuffer::emptyBuffer()

Static Private Attributes

static std::unordered_map< SampleThumbnailEntry, std::shared_ptr< ThumbnailCache >, Hashs_sampleThumbnailCacheMap

Detailed Description

Allows for visualizing sample data.

On construction, thumbnails will be generated at logarathmic intervals of downsampling. Those cached thumbnails will then be further downsampled on the fly and transformed in various ways to create the desired waveform.

Given that we are dealing with far less data to generate the visualization however (i.e., we are not reading from original sample data when drawing), this provides a significant performance boost that wouldn't be possible otherwise.

Member Typedef Documentation

◆ ThumbnailCache

using lmms::SampleThumbnail::ThumbnailCache = std::vector<Thumbnail>
private

Constructor & Destructor Documentation

◆ SampleThumbnail() [1/2]

lmms::SampleThumbnail::SampleThumbnail ( )
default

◆ SampleThumbnail() [2/2]

lmms::SampleThumbnail::SampleThumbnail ( const Sample & sample)

Member Function Documentation

◆ visualize()

void lmms::SampleThumbnail::visualize ( VisualizeParameters parameters,
QPainter & painter ) const

Member Data Documentation

◆ m_buffer

std::shared_ptr<const SampleBuffer> lmms::SampleThumbnail::m_buffer = SampleBuffer::emptyBuffer()
private

◆ m_thumbnailCache

std::shared_ptr<ThumbnailCache> lmms::SampleThumbnail::m_thumbnailCache = std::make_shared<ThumbnailCache>()
private

◆ s_sampleThumbnailCacheMap

std::unordered_map<SampleThumbnailEntry, std::shared_ptr<ThumbnailCache>, Hash> lmms::SampleThumbnail::s_sampleThumbnailCacheMap
inlinestaticprivate

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