32 |
#include "../common/EngineChannel.h" |
#include "../common/EngineChannel.h" |
33 |
#include "EngineGlobals.h" |
#include "EngineGlobals.h" |
34 |
#include "Engine.h" |
#include "Engine.h" |
35 |
|
#include "Voice.h" |
36 |
#include "InstrumentResourceManager.h" |
#include "InstrumentResourceManager.h" |
37 |
|
|
38 |
namespace LinuxSampler { namespace gig { |
namespace LinuxSampler { namespace gig { |
39 |
|
|
40 |
|
// just symbol prototyping |
41 |
class midi_key_info_t; |
class midi_key_info_t; |
42 |
|
class Voice; |
43 |
|
|
44 |
class EngineChannel : public LinuxSampler::EngineChannel, public InstrumentConsumer { |
class EngineChannel : public LinuxSampler::EngineChannel, public InstrumentConsumer { |
45 |
public: |
public: |
47 |
virtual ~EngineChannel(); |
virtual ~EngineChannel(); |
48 |
|
|
49 |
// implementation of abstract methods derived from interface class 'LinuxSampler::EngineChannel' |
// implementation of abstract methods derived from interface class 'LinuxSampler::EngineChannel' |
|
virtual int RenderAudio(uint Samples); |
|
50 |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument); |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument); |
51 |
virtual void LoadInstrument(); |
virtual void LoadInstrument(); |
52 |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity); |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity); |
84 |
::gig::Instrument* pInstrument; |
::gig::Instrument* pInstrument; |
85 |
bool SustainPedal; ///< true if sustain pedal is down |
bool SustainPedal; ///< true if sustain pedal is down |
86 |
double GlobalVolume; ///< overall volume (a value < 1.0 means attenuation, a value > 1.0 means amplification) |
double GlobalVolume; ///< overall volume (a value < 1.0 means attenuation, a value > 1.0 means amplification) |
87 |
|
float GlobalPanLeft; |
88 |
|
float GlobalPanRight; |
89 |
int Pitch; ///< Current (absolute) MIDI pitch value. |
int Pitch; ///< Current (absolute) MIDI pitch value. |
90 |
int CurrentKeyDimension; ///< Current value (0-127) for the keyboard dimension, altered by pressing a keyswitching key. |
int CurrentKeyDimension; ///< Current value (0-127) for the keyboard dimension, altered by pressing a keyswitching key. |
91 |
String InstrumentFile; |
String InstrumentFile; |
92 |
int InstrumentIdx; |
int InstrumentIdx; |
93 |
String InstrumentIdxName; |
String InstrumentIdxName; |
94 |
int InstrumentStat; |
int InstrumentStat; |
95 |
|
RTList<Voice>::Iterator itLastStolenVoice; ///< Only for voice stealing: points to the last voice which was theft in current audio fragment, NULL otherwise. |
96 |
|
RTList<uint>::Iterator iuiLastStolenKey; ///< Only for voice stealing: key number of last key on which the last voice was theft in current audio fragment, NULL otherwise. |
97 |
|
|
98 |
friend class Engine; |
friend class Engine; |
99 |
friend class Voice; |
friend class Voice; |