LMMS
Loading...
Searching...
No Matches
lmms::PlayHandle Class Referenceabstract

#include <PlayHandle.h>

Inheritance diagram for lmms::PlayHandle:
lmms::ThreadableJob lmms::InstrumentPlayHandle lmms::NotePlayHandle lmms::PresetPreviewPlayHandle lmms::SamplePlayHandle lmms::SampleRecordHandle

Public Types

enum class  Type { NotePlayHandle = 0x01 , InstrumentPlayHandle = 0x02 , SamplePlayHandle = 0x04 , PresetPreviewHandle = 0x08 }
using Types = Flags<Type>
Public Types inherited from lmms::ThreadableJob
enum class  ProcessingState : int { Unstarted , Queued , InProgress , Done }

Public Member Functions

 PlayHandle (const Type type, f_cnt_t offset=0)
PlayHandleoperator= (PlayHandle &p)
virtual ~PlayHandle ()
virtual bool affinityMatters () const
const QThread * affinity () const
Type type () const
void doProcessing () override
bool requiresProcessing () const override
void lock ()
void unlock ()
bool tryLock ()
virtual void play (SampleFrame *buffer)=0
virtual bool isFinished () const =0
f_cnt_t offset () const
void setOffset (f_cnt_t _offset)
virtual bool isFromTrack (const Track *_track) const =0
bool usesBuffer () const
void setUsesBuffer (const bool b)
AudioBusHandleaudioBusHandle ()
void setAudioBusHandle (AudioBusHandle *busHandle)
void releaseBuffer ()
SampleFramebuffer ()
Public Member Functions inherited from lmms::ThreadableJob
 ThreadableJob ()
ProcessingState state () const
void reset ()
void queue ()
void done ()
void process ()

Static Public Attributes

static constexpr std::size_t MaxNumber = 1024

Private Attributes

Type m_type
f_cnt_t m_offset
QThread * m_affinity
QMutex m_processingLock
SampleFramem_playHandleBuffer
bool m_bufferReleased
bool m_usesBuffer
AudioBusHandlem_audioBusHandle

Additional Inherited Members

Protected Attributes inherited from lmms::ThreadableJob
std::atomic< ProcessingStatem_state

Member Typedef Documentation

◆ Types

Member Enumeration Documentation

◆ Type

enum class lmms::PlayHandle::Type
strong
Enumerator
NotePlayHandle 
InstrumentPlayHandle 
SamplePlayHandle 
PresetPreviewHandle 

Constructor & Destructor Documentation

◆ PlayHandle()

lmms::PlayHandle::PlayHandle ( const Type type,
f_cnt_t offset = 0 )

◆ ~PlayHandle()

lmms::PlayHandle::~PlayHandle ( )
virtual

Member Function Documentation

◆ affinity()

const QThread * lmms::PlayHandle::affinity ( ) const
inline

◆ affinityMatters()

virtual bool lmms::PlayHandle::affinityMatters ( ) const
inlinevirtual

◆ audioBusHandle()

AudioBusHandle * lmms::PlayHandle::audioBusHandle ( )
inline

◆ buffer()

SampleFrame * lmms::PlayHandle::buffer ( )

◆ doProcessing()

void lmms::PlayHandle::doProcessing ( )
overridevirtual

Implements lmms::ThreadableJob.

◆ isFinished()

virtual bool lmms::PlayHandle::isFinished ( ) const
pure virtual

◆ isFromTrack()

virtual bool lmms::PlayHandle::isFromTrack ( const Track * _track) const
pure virtual

◆ lock()

void lmms::PlayHandle::lock ( )
inline

◆ offset()

f_cnt_t lmms::PlayHandle::offset ( ) const
inline

◆ operator=()

PlayHandle & lmms::PlayHandle::operator= ( PlayHandle & p)
inline

◆ play()

◆ releaseBuffer()

void lmms::PlayHandle::releaseBuffer ( )

◆ requiresProcessing()

bool lmms::PlayHandle::requiresProcessing ( ) const
inlineoverridevirtual

Implements lmms::ThreadableJob.

◆ setAudioBusHandle()

void lmms::PlayHandle::setAudioBusHandle ( AudioBusHandle * busHandle)
inline

◆ setOffset()

void lmms::PlayHandle::setOffset ( f_cnt_t _offset)
inline

◆ setUsesBuffer()

void lmms::PlayHandle::setUsesBuffer ( const bool b)
inline

◆ tryLock()

bool lmms::PlayHandle::tryLock ( )
inline

◆ type()

Type lmms::PlayHandle::type ( ) const
inline

◆ unlock()

void lmms::PlayHandle::unlock ( )
inline

◆ usesBuffer()

bool lmms::PlayHandle::usesBuffer ( ) const
inline

Member Data Documentation

◆ m_affinity

QThread* lmms::PlayHandle::m_affinity
private

◆ m_audioBusHandle

AudioBusHandle* lmms::PlayHandle::m_audioBusHandle
private

◆ m_bufferReleased

bool lmms::PlayHandle::m_bufferReleased
private

◆ m_offset

f_cnt_t lmms::PlayHandle::m_offset
private

◆ m_playHandleBuffer

SampleFrame* lmms::PlayHandle::m_playHandleBuffer
private

◆ m_processingLock

QMutex lmms::PlayHandle::m_processingLock
private

◆ m_type

Type lmms::PlayHandle::m_type
private

◆ m_usesBuffer

bool lmms::PlayHandle::m_usesBuffer
private

◆ MaxNumber

std::size_t lmms::PlayHandle::MaxNumber = 1024
staticconstexpr

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