|
LMMS
|
#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< ThumbnailCache > | m_thumbnailCache = std::make_shared<ThumbnailCache>() |
| std::shared_ptr< const SampleBuffer > | m_buffer = SampleBuffer::emptyBuffer() |
Static Private Attributes | |
| static std::unordered_map< SampleThumbnailEntry, std::shared_ptr< ThumbnailCache >, Hash > | s_sampleThumbnailCacheMap |
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.
|
private |
|
default |
| void lmms::SampleThumbnail::visualize | ( | VisualizeParameters | parameters, |
| QPainter & | painter ) const |
|
private |
|
private |
|
inlinestaticprivate |