#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 = nullptr
 

Detailed Description

Definition at line 30 of file SamplePlayer.h.

Member Enumeration Documentation

anonymous enum
private
Enumerator
OutputPort 
RetunePort 
BasePitchPort 
ConcertAPort 
SustainPort 
ReleasePort 
PortCount 

Definition at line 39 of file SamplePlayer.h.

anonymous enum
private
Enumerator
Polyphony 

Definition at line 49 of file SamplePlayer.h.

Constructor & Destructor Documentation

SamplePlayer::SamplePlayer ( int  sampleRate)
private

Definition at line 134 of file SamplePlayer.cpp.

Referenced by instantiate().

SamplePlayer::~SamplePlayer ( )
private

Definition at line 151 of file SamplePlayer.cpp.

References m_sampleData.

Member Function Documentation

const DSSI_Descriptor * SamplePlayer::getDescriptor ( unsigned long  index)
static

Definition at line 128 of file SamplePlayer.cpp.

References dssiDescriptor.

Referenced by DSSIPluginFactory::getDSSIDescriptor().

LADSPA_Handle SamplePlayer::instantiate ( const LADSPA_Descriptor *  ,
unsigned long  rate 
)
staticprivate

Definition at line 157 of file SamplePlayer.cpp.

References hostDescriptor, SamplePlayer(), SVDEBUG, and workThreadCallback().

void SamplePlayer::connectPort ( LADSPA_Handle  handle,
unsigned long  port,
LADSPA_Data *  location 
)
staticprivate

Definition at line 177 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)
staticprivate

Definition at line 195 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 
)
staticprivate

Definition at line 210 of file SamplePlayer.cpp.

References runSynth().

void SamplePlayer::deactivate ( LADSPA_Handle  handle)
staticprivate

Definition at line 216 of file SamplePlayer.cpp.

References activate().

void SamplePlayer::cleanup ( LADSPA_Handle  handle)
staticprivate

Definition at line 222 of file SamplePlayer.cpp.

char * SamplePlayer::configure ( LADSPA_Handle  handle,
const char *  key,
const char *  value 
)
staticprivate

Definition at line 228 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 
)
staticprivate

Definition at line 259 of file SamplePlayer.cpp.

References m_mutex, m_samples, m_sampleSearchComplete, and searchSamples().

void SamplePlayer::selectProgram ( LADSPA_Handle  handle,
unsigned  long,
unsigned long  program 
)
staticprivate

Definition at line 285 of file SamplePlayer.cpp.

References m_pendingProgramChange.

int SamplePlayer::getMidiController ( LADSPA_Handle  ,
unsigned long  port 
)
staticprivate

Definition at line 294 of file SamplePlayer.cpp.

References PortCount.

void SamplePlayer::runSynth ( LADSPA_Handle  handle,
unsigned long  samples,
snd_seq_event_t *  events,
unsigned long  eventCount 
)
staticprivate

Definition at line 308 of file SamplePlayer.cpp.

References runImpl().

Referenced by run().

void SamplePlayer::receiveHostDescriptor ( const DSSI_Host_Descriptor *  descriptor)
staticprivate

Definition at line 317 of file SamplePlayer.cpp.

References hostDescriptor.

void SamplePlayer::workThreadCallback ( LADSPA_Handle  handle)
staticprivate
void SamplePlayer::searchSamples ( )
private

Definition at line 366 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 394 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
void SamplePlayer::addSample ( int  n,
unsigned long  pos,
unsigned long  count 
)
private

Member Data Documentation

const char *const SamplePlayer::portNames
staticprivate
Initial value:
=
{
"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
staticprivate
Initial value:
=
{
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
staticprivate
Initial value:
=
{
{ 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.001f, 2.0f }
}

Definition at line 55 of file SamplePlayer.h.

const LADSPA_Properties SamplePlayer::properties = LADSPA_PROPERTY_HARD_RT_CAPABLE
staticprivate

Definition at line 56 of file SamplePlayer.h.

const LADSPA_Descriptor SamplePlayer::ladspaDescriptor
staticprivate
Initial value:
=
{
0,
"sample_player",
"Library Sample Player",
"Chris Cannam",
"GPL",
nullptr,
run,
nullptr,
nullptr,
}

Definition at line 57 of file SamplePlayer.h.

const DSSI_Descriptor SamplePlayer::dssiDescriptor
staticprivate
Initial value:

Definition at line 58 of file SamplePlayer.h.

Referenced by getDescriptor().

const DSSI_Host_Descriptor * SamplePlayer::hostDescriptor = nullptr
staticprivate

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

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