|
LMMS
|
Job between PlayHandle and MixerChannel. More...
#include <AudioBusHandle.h>
Public Member Functions | |
| AudioBusHandle (const QString &name, bool hasEffectChain=true, FloatModel *volumeModel=nullptr, FloatModel *panningModel=nullptr, BoolModel *mutedModel=nullptr) | |
| virtual | ~AudioBusHandle () |
| bool | extOutputEnabled () const |
| void | setExtOutputEnabled (bool enabled) |
| mix_ch_t | nextMixerChannel () const |
| void | setNextMixerChannel (const mix_ch_t chnl) |
| const QString & | name () const |
| void | setName (const QString &newName) |
| EffectChain * | effects () |
| bool | processEffects () |
| void | doProcessing () override |
| bool | requiresProcessing () const override |
| void | addPlayHandle (PlayHandle *handle) |
| void | removePlayHandle (PlayHandle *handle) |
| Public Member Functions inherited from lmms::ThreadableJob | |
| ThreadableJob () | |
| ProcessingState | state () const |
| void | reset () |
| void | queue () |
| void | done () |
| void | process () |
Private Attributes | |
| volatile bool | m_bufferUsage |
| AudioBuffer | m_buffer |
| bool | m_extOutputEnabled |
| mix_ch_t | m_nextMixerChannel |
| QString | m_name |
| std::unique_ptr< EffectChain > | m_effects |
| PlayHandleList | m_playHandles |
| QMutex | m_playHandleLock |
| FloatModel * | m_volumeModel |
| FloatModel * | m_panningModel |
| BoolModel * | m_mutedModel |
Friends | |
| class | AudioEngine |
| class | AudioEngineWorkerThread |
Additional Inherited Members | |
| Public Types inherited from lmms::ThreadableJob | |
| enum class | ProcessingState : int { Unstarted , Queued , InProgress , Done } |
| Protected Attributes inherited from lmms::ThreadableJob | |
| std::atomic< ProcessingState > | m_state |
Job between PlayHandle and MixerChannel.
A ThreadableJob class located at the exit point of each PlayHandle into a MixerChannel (or into an audio device, in case of AudioJack, but this is not supported in AudioBusHandle yet). It contains an optional EffectChain which is e.g. visualized in the InstrumentTrackWindow or SampleTrackWindow. For processing, it adds all input play handles into an internal buffer, processes the EffectChain (if existing) on that buffer and finally merges the buffer into its MixerChannel.
| lmms::AudioBusHandle::AudioBusHandle | ( | const QString & | name, |
| bool | hasEffectChain = true, | ||
| FloatModel * | volumeModel = nullptr, | ||
| FloatModel * | panningModel = nullptr, | ||
| BoolModel * | mutedModel = nullptr ) |
|
virtual |
| void lmms::AudioBusHandle::addPlayHandle | ( | PlayHandle * | handle | ) |
|
overridevirtual |
Implements lmms::ThreadableJob.
|
inline |
|
inline |
|
inline |
|
inline |
| bool lmms::AudioBusHandle::processEffects | ( | ) |
| void lmms::AudioBusHandle::removePlayHandle | ( | PlayHandle * | handle | ) |
|
inlineoverridevirtual |
Implements lmms::ThreadableJob.
| void lmms::AudioBusHandle::setExtOutputEnabled | ( | bool | enabled | ) |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |