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

#include <Sample.h>

Classes

class  PlaybackState

Public Types

enum class  Loop { Off , On , PingPong }

Public Member Functions

 Sample ()=default
 Sample (const SampleFrame *data, size_t numFrames, int sampleRate=Engine::audioEngine() ->outputSampleRate())
 Sample (const Sample &other)
 Sample (Sample &&other) noexcept
 Sample (std::shared_ptr< const SampleBuffer > buffer)
auto operator= (const Sample &) -> Sample &
auto operator= (Sample &&) noexcept -> Sample &
auto play (SampleFrame *dst, PlaybackState *state, size_t numFrames, Loop loopMode=Loop::Off, double ratio=1.0) const -> bool
auto sampleDuration () const -> std::chrono::milliseconds
auto sampleFile () const -> const QString &
auto sampleRate () const -> int
auto sampleSize () const -> size_t
auto toBase64 () const -> QString
auto data () const -> const SampleFrame *
auto buffer () const -> std::shared_ptr< const SampleBuffer >
auto startFrame () const -> int
auto endFrame () const -> int
auto loopStartFrame () const -> int
auto loopEndFrame () const -> int
auto amplification () const -> float
auto frequency () const -> float
auto reversed () const -> bool
void setStartFrame (int startFrame)
void setEndFrame (int endFrame)
void setLoopStartFrame (int loopStartFrame)
void setLoopEndFrame (int loopEndFrame)
void setAllPointFrames (int startFrame, int endFrame, int loopStartFrame, int loopEndFrame)
void setAmplification (float amplification)
void setFrequency (float frequency)
void setReversed (bool reversed)

Private Member Functions

f_cnt_t render (SampleFrame *dst, f_cnt_t size, PlaybackState *state, Loop loop) const

Private Attributes

std::shared_ptr< const SampleBufferm_buffer = SampleBuffer::emptyBuffer()
std::atomic< intm_startFrame = 0
std::atomic< intm_endFrame = 0
std::atomic< intm_loopStartFrame = 0
std::atomic< intm_loopEndFrame = 0
std::atomic< float > m_amplification = 1.0f
std::atomic< float > m_frequency = DefaultBaseFreq
std::atomic< bool > m_reversed = false

Member Enumeration Documentation

◆ Loop

enum class lmms::Sample::Loop
strong
Enumerator
Off 
On 
PingPong 

Constructor & Destructor Documentation

◆ Sample() [1/5]

lmms::Sample::Sample ( )
default

◆ Sample() [2/5]

lmms::Sample::Sample ( const SampleFrame * data,
size_t numFrames,
int sampleRate = Engine::audioEngine()->outputSampleRate() )

◆ Sample() [3/5]

lmms::Sample::Sample ( const Sample & other)

◆ Sample() [4/5]

lmms::Sample::Sample ( Sample && other)
noexcept

◆ Sample() [5/5]

lmms::Sample::Sample ( std::shared_ptr< const SampleBuffer > buffer)
explicit

Member Function Documentation

◆ amplification()

auto lmms::Sample::amplification ( ) const -> float
inline

◆ buffer()

auto lmms::Sample::buffer ( ) const -> std::shared_ptr< const SampleBuffer >
inline

◆ data()

auto lmms::Sample::data ( ) const -> const SampleFrame *
inline

◆ endFrame()

auto lmms::Sample::endFrame ( ) const -> int
inline

◆ frequency()

auto lmms::Sample::frequency ( ) const -> float
inline

◆ loopEndFrame()

auto lmms::Sample::loopEndFrame ( ) const -> int
inline

◆ loopStartFrame()

auto lmms::Sample::loopStartFrame ( ) const -> int
inline

◆ operator=() [1/2]

auto lmms::Sample::operator= ( const Sample & other) -> Sample &

◆ operator=() [2/2]

auto lmms::Sample::operator= ( Sample && other) -> Sample &
noexcept

◆ play()

bool lmms::Sample::play ( SampleFrame * dst,
PlaybackState * state,
size_t numFrames,
Loop loopMode = Loop::Off,
double ratio = 1.0 ) const -> bool

◆ render()

f_cnt_t lmms::Sample::render ( SampleFrame * dst,
f_cnt_t size,
PlaybackState * state,
Loop loop ) const
private

◆ reversed()

auto lmms::Sample::reversed ( ) const -> bool
inline

◆ sampleDuration()

auto lmms::Sample::sampleDuration ( ) const -> std::chrono::milliseconds

◆ sampleFile()

auto lmms::Sample::sampleFile ( ) const -> const QString &
inline

◆ sampleRate()

auto lmms::Sample::sampleRate ( ) const -> int
inline

◆ sampleSize()

auto lmms::Sample::sampleSize ( ) const -> size_t
inline

◆ setAllPointFrames()

void lmms::Sample::setAllPointFrames ( int startFrame,
int endFrame,
int loopStartFrame,
int loopEndFrame )

◆ setAmplification()

void lmms::Sample::setAmplification ( float amplification)
inline

◆ setEndFrame()

void lmms::Sample::setEndFrame ( int endFrame)
inline

◆ setFrequency()

void lmms::Sample::setFrequency ( float frequency)
inline

◆ setLoopEndFrame()

void lmms::Sample::setLoopEndFrame ( int loopEndFrame)
inline

◆ setLoopStartFrame()

void lmms::Sample::setLoopStartFrame ( int loopStartFrame)
inline

◆ setReversed()

void lmms::Sample::setReversed ( bool reversed)
inline

◆ setStartFrame()

void lmms::Sample::setStartFrame ( int startFrame)
inline

◆ startFrame()

auto lmms::Sample::startFrame ( ) const -> int
inline

◆ toBase64()

auto lmms::Sample::toBase64 ( ) const -> QString
inline

Member Data Documentation

◆ m_amplification

std::atomic<float> lmms::Sample::m_amplification = 1.0f
private

◆ m_buffer

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

◆ m_endFrame

std::atomic<int> lmms::Sample::m_endFrame = 0
private

◆ m_frequency

std::atomic<float> lmms::Sample::m_frequency = DefaultBaseFreq
private

◆ m_loopEndFrame

std::atomic<int> lmms::Sample::m_loopEndFrame = 0
private

◆ m_loopStartFrame

std::atomic<int> lmms::Sample::m_loopStartFrame = 0
private

◆ m_reversed

std::atomic<bool> lmms::Sample::m_reversed = false
private

◆ m_startFrame

std::atomic<int> lmms::Sample::m_startFrame = 0
private

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