svcore
1.9
|
#include <SamplePlayer.h>
Static Public Member Functions | |
static const DSSI_Descriptor * | getDescriptor (unsigned long index) |
Private Types | |
enum | { OutputPort = 0, RetunePort = 1, BasePitchPort = 2, ConcertAPort = 3, SustainPort = 4, ReleasePort = 5, PortCount = 6 } |
enum | { Polyphony = 128 } |
Private Member Functions | |
SamplePlayer (int sampleRate) | |
~SamplePlayer () | |
void | searchSamples () |
void | loadSampleData (QString path) |
void | runImpl (unsigned long, snd_seq_event_t *, unsigned long) |
void | addSample (int, unsigned long, unsigned long) |
Static Private Member Functions | |
static LADSPA_Handle | instantiate (const LADSPA_Descriptor *, unsigned long) |
static void | connectPort (LADSPA_Handle, unsigned long, LADSPA_Data *) |
static void | activate (LADSPA_Handle) |
static void | run (LADSPA_Handle, unsigned long) |
static void | deactivate (LADSPA_Handle) |
static void | cleanup (LADSPA_Handle) |
static char * | configure (LADSPA_Handle, const char *, const char *) |
static const DSSI_Program_Descriptor * | getProgram (LADSPA_Handle, unsigned long) |
static void | selectProgram (LADSPA_Handle, unsigned long, unsigned long) |
static int | getMidiController (LADSPA_Handle, unsigned long) |
static void | runSynth (LADSPA_Handle, unsigned long, snd_seq_event_t *, unsigned long) |
static void | receiveHostDescriptor (const DSSI_Host_Descriptor *descriptor) |
static void | workThreadCallback (LADSPA_Handle) |
Private Attributes | |
float * | m_output |
float * | m_retune |
float * | m_basePitch |
float * | m_concertA |
float * | m_sustain |
float * | m_release |
float * | m_sampleData |
size_t | m_sampleCount |
int | m_sampleRate |
long | m_ons [Polyphony] |
long | m_offs [Polyphony] |
int | m_velocities [Polyphony] |
long | m_sampleNo |
QString | m_sampleDir |
QString | m_program |
std::vector< std::pair < QString, QString > > | m_samples |
bool | m_sampleSearchComplete |
int | m_pendingProgramChange |
QMutex | m_mutex |
Static Private Attributes | |
static const char *const | portNames [PortCount] |
static const LADSPA_PortDescriptor | ports [PortCount] |
static const LADSPA_PortRangeHint | hints [PortCount] |
static const LADSPA_Properties | properties = LADSPA_PROPERTY_HARD_RT_CAPABLE |
static const LADSPA_Descriptor | ladspaDescriptor |
static const DSSI_Descriptor | dssiDescriptor |
static const DSSI_Host_Descriptor * | hostDescriptor = 0 |
Definition at line 30 of file SamplePlayer.h.
anonymous enum [private] |
Definition at line 39 of file SamplePlayer.h.
anonymous enum [private] |
Definition at line 49 of file SamplePlayer.h.
SamplePlayer::SamplePlayer | ( | int | sampleRate | ) | [private] |
Definition at line 129 of file SamplePlayer.cpp.
Referenced by instantiate().
SamplePlayer::~SamplePlayer | ( | ) | [private] |
Definition at line 146 of file SamplePlayer.cpp.
References m_sampleData.
const DSSI_Descriptor * SamplePlayer::getDescriptor | ( | unsigned long | index | ) | [static] |
Definition at line 123 of file SamplePlayer.cpp.
References dssiDescriptor.
Referenced by DSSIPluginFactory::getDSSIDescriptor().
LADSPA_Handle SamplePlayer::instantiate | ( | const LADSPA_Descriptor * | , |
unsigned long | rate | ||
) | [static, private] |
Definition at line 152 of file SamplePlayer.cpp.
References hostDescriptor, SamplePlayer(), SVDEBUG, and workThreadCallback().
void SamplePlayer::connectPort | ( | LADSPA_Handle | handle, |
unsigned long | port, | ||
LADSPA_Data * | location | ||
) | [static, private] |
Definition at line 172 of file SamplePlayer.cpp.
References m_basePitch, m_concertA, m_output, m_release, m_retune, m_sustain, PortCount, and ports.
void SamplePlayer::activate | ( | LADSPA_Handle | handle | ) | [static, private] |
Definition at line 190 of file SamplePlayer.cpp.
References m_mutex, m_offs, m_ons, m_sampleNo, m_velocities, and Polyphony.
Referenced by deactivate().
void SamplePlayer::run | ( | LADSPA_Handle | handle, |
unsigned long | samples | ||
) | [static, private] |
Definition at line 205 of file SamplePlayer.cpp.
References runSynth().
void SamplePlayer::deactivate | ( | LADSPA_Handle | handle | ) | [static, private] |
Definition at line 211 of file SamplePlayer.cpp.
References activate().
void SamplePlayer::cleanup | ( | LADSPA_Handle | handle | ) | [static, private] |
Definition at line 217 of file SamplePlayer.cpp.
char * SamplePlayer::configure | ( | LADSPA_Handle | handle, |
const char * | key, | ||
const char * | value | ||
) | [static, private] |
Definition at line 223 of file SamplePlayer.cpp.
References m_mutex, m_sampleDir, m_sampleSearchComplete, and searchSamples().
const DSSI_Program_Descriptor * SamplePlayer::getProgram | ( | LADSPA_Handle | handle, |
unsigned long | program | ||
) | [static, private] |
Definition at line 254 of file SamplePlayer.cpp.
References m_mutex, m_samples, m_sampleSearchComplete, and searchSamples().
void SamplePlayer::selectProgram | ( | LADSPA_Handle | handle, |
unsigned | long, | ||
unsigned long | program | ||
) | [static, private] |
Definition at line 280 of file SamplePlayer.cpp.
References m_pendingProgramChange.
int SamplePlayer::getMidiController | ( | LADSPA_Handle | , |
unsigned long | port | ||
) | [static, private] |
Definition at line 289 of file SamplePlayer.cpp.
References PortCount.
void SamplePlayer::runSynth | ( | LADSPA_Handle | handle, |
unsigned long | samples, | ||
snd_seq_event_t * | events, | ||
unsigned long | eventCount | ||
) | [static, private] |
void SamplePlayer::receiveHostDescriptor | ( | const DSSI_Host_Descriptor * | descriptor | ) | [static, private] |
Definition at line 312 of file SamplePlayer.cpp.
References hostDescriptor.
void SamplePlayer::workThreadCallback | ( | LADSPA_Handle | handle | ) | [static, private] |
Definition at line 318 of file SamplePlayer.cpp.
References loadSampleData(), m_mutex, m_pendingProgramChange, m_program, m_samples, m_sampleSearchComplete, searchSamples(), and SVDEBUG.
Referenced by instantiate().
void SamplePlayer::searchSamples | ( | ) | [private] |
Definition at line 361 of file SamplePlayer.cpp.
References m_sampleDir, m_samples, m_sampleSearchComplete, and SVDEBUG.
Referenced by configure(), getProgram(), and workThreadCallback().
void SamplePlayer::loadSampleData | ( | QString | path | ) | [private] |
Definition at line 389 of file SamplePlayer.cpp.
References m_mutex, m_offs, m_ons, m_sampleCount, m_sampleData, m_sampleRate, m_velocities, and Polyphony.
Referenced by workThreadCallback().
void SamplePlayer::runImpl | ( | unsigned long | sampleCount, |
snd_seq_event_t * | events, | ||
unsigned long | eventCount | ||
) | [private] |
Definition at line 482 of file SamplePlayer.cpp.
References addSample(), m_mutex, m_offs, m_ons, m_output, m_sampleCount, m_sampleData, m_sampleNo, m_sustain, m_velocities, and Polyphony.
Referenced by runSynth().
void SamplePlayer::addSample | ( | int | n, |
unsigned long | pos, | ||
unsigned long | count | ||
) | [private] |
Definition at line 564 of file SamplePlayer.cpp.
References m_basePitch, m_concertA, m_offs, m_ons, m_output, m_release, m_retune, m_sampleCount, m_sampleData, m_sampleNo, m_sampleRate, and m_velocities.
Referenced by runImpl().
const char *const SamplePlayer::portNames [static, private] |
{ "Output", "Tuned (on/off)", "Base Pitch (MIDI)", "Tuning of A (Hz)", "Sustain (on/off)", "Release time (s)" }
Definition at line 53 of file SamplePlayer.h.
const LADSPA_PortDescriptor SamplePlayer::ports [static, private] |
{ LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL }
Definition at line 54 of file SamplePlayer.h.
Referenced by connectPort().
const LADSPA_PortRangeHint SamplePlayer::hints [static, private] |
{ { 0, 0, 0 }, { LADSPA_HINT_DEFAULT_MAXIMUM | LADSPA_HINT_INTEGER | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, 0, 1 }, { LADSPA_HINT_DEFAULT_MIDDLE | LADSPA_HINT_INTEGER | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, 0, 120 }, { LADSPA_HINT_DEFAULT_440 | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, 400, 499 }, { LADSPA_HINT_DEFAULT_MINIMUM | LADSPA_HINT_INTEGER | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, 0, 1 }, { LADSPA_HINT_DEFAULT_MINIMUM | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE, 0.001, 2.0 } }
Definition at line 55 of file SamplePlayer.h.
const LADSPA_Properties SamplePlayer::properties = LADSPA_PROPERTY_HARD_RT_CAPABLE [static, private] |
Definition at line 56 of file SamplePlayer.h.
const LADSPA_Descriptor SamplePlayer::ladspaDescriptor [static, private] |
{ 0, "sample_player", properties, "Library Sample Player", "Chris Cannam", "GPL", PortCount, ports, portNames, hints, 0, instantiate, connectPort, activate, run, 0, 0, deactivate, cleanup }
Definition at line 57 of file SamplePlayer.h.
const DSSI_Descriptor SamplePlayer::dssiDescriptor [static, private] |
{ 2, &ladspaDescriptor, configure, getProgram, selectProgram, getMidiController, runSynth, 0, 0, 0, receiveHostDescriptor }
Definition at line 58 of file SamplePlayer.h.
Referenced by getDescriptor().
const DSSI_Host_Descriptor * SamplePlayer::hostDescriptor = 0 [static, private] |
Definition at line 59 of file SamplePlayer.h.
Referenced by instantiate(), and receiveHostDescriptor().
float* SamplePlayer::m_output [private] |
Definition at line 81 of file SamplePlayer.h.
Referenced by addSample(), connectPort(), and runImpl().
float* SamplePlayer::m_retune [private] |
Definition at line 82 of file SamplePlayer.h.
Referenced by addSample(), and connectPort().
float* SamplePlayer::m_basePitch [private] |
Definition at line 83 of file SamplePlayer.h.
Referenced by addSample(), and connectPort().
float* SamplePlayer::m_concertA [private] |
Definition at line 84 of file SamplePlayer.h.
Referenced by addSample(), and connectPort().
float* SamplePlayer::m_sustain [private] |
Definition at line 85 of file SamplePlayer.h.
Referenced by connectPort(), and runImpl().
float* SamplePlayer::m_release [private] |
Definition at line 86 of file SamplePlayer.h.
Referenced by addSample(), and connectPort().
float* SamplePlayer::m_sampleData [private] |
Definition at line 88 of file SamplePlayer.h.
Referenced by addSample(), loadSampleData(), runImpl(), and ~SamplePlayer().
size_t SamplePlayer::m_sampleCount [private] |
Definition at line 89 of file SamplePlayer.h.
Referenced by addSample(), loadSampleData(), and runImpl().
int SamplePlayer::m_sampleRate [private] |
Definition at line 90 of file SamplePlayer.h.
Referenced by addSample(), and loadSampleData().
long SamplePlayer::m_ons[Polyphony] [private] |
Definition at line 92 of file SamplePlayer.h.
Referenced by activate(), addSample(), loadSampleData(), and runImpl().
long SamplePlayer::m_offs[Polyphony] [private] |
Definition at line 93 of file SamplePlayer.h.
Referenced by activate(), addSample(), loadSampleData(), and runImpl().
int SamplePlayer::m_velocities[Polyphony] [private] |
Definition at line 94 of file SamplePlayer.h.
Referenced by activate(), addSample(), loadSampleData(), and runImpl().
long SamplePlayer::m_sampleNo [private] |
Definition at line 95 of file SamplePlayer.h.
Referenced by activate(), addSample(), and runImpl().
QString SamplePlayer::m_sampleDir [private] |
Definition at line 97 of file SamplePlayer.h.
Referenced by configure(), and searchSamples().
QString SamplePlayer::m_program [private] |
Definition at line 98 of file SamplePlayer.h.
Referenced by workThreadCallback().
std::vector<std::pair<QString, QString> > SamplePlayer::m_samples [private] |
Definition at line 99 of file SamplePlayer.h.
Referenced by getProgram(), searchSamples(), and workThreadCallback().
bool SamplePlayer::m_sampleSearchComplete [private] |
Definition at line 100 of file SamplePlayer.h.
Referenced by configure(), getProgram(), searchSamples(), and workThreadCallback().
int SamplePlayer::m_pendingProgramChange [private] |
Definition at line 101 of file SamplePlayer.h.
Referenced by selectProgram(), and workThreadCallback().
QMutex SamplePlayer::m_mutex [private] |
Definition at line 103 of file SamplePlayer.h.
Referenced by activate(), configure(), getProgram(), loadSampleData(), runImpl(), and workThreadCallback().