60 |
Engine(); |
Engine(); |
61 |
virtual ~Engine(); |
virtual ~Engine(); |
62 |
void Connect(AudioOutputDevice* pAudioOut); |
void Connect(AudioOutputDevice* pAudioOut); |
63 |
|
::gig::DimensionRegion** ChangeInstrument(EngineChannel* pEngineChannel, ::gig::Instrument* pInstrument); |
64 |
|
|
65 |
// implementation of abstract methods derived from class 'LinuxSampler::Engine' |
// implementation of abstract methods derived from class 'LinuxSampler::Engine' |
66 |
virtual int RenderAudio(uint Samples); |
virtual int RenderAudio(uint Samples); |
140 |
|
|
141 |
friend class Voice; |
friend class Voice; |
142 |
private: |
private: |
143 |
|
|
144 |
|
/// Command used by the instrument loader thread to |
145 |
|
/// request an instrument change on a channel. |
146 |
|
struct instrument_change_command_t { |
147 |
|
EngineChannel* pEngineChannel; |
148 |
|
::gig::Instrument* pInstrument; |
149 |
|
}; |
150 |
|
struct instrument_change_reply_t { |
151 |
|
int dummy; |
152 |
|
}; |
153 |
|
RingBuffer<instrument_change_command_t,false>* InstrumentChangeQueue; ///< Contains the instrument change command |
154 |
|
RingBuffer<instrument_change_reply_t,false>* InstrumentChangeReplyQueue; ///< Contains the acknowledge of an instrument change |
155 |
|
::gig::DimensionRegion** pDimRegionsInUse; ///< After an instrument change, this contains a list of dimension regions that are still in use by playing voices |
156 |
|
|
157 |
ArrayList<EngineChannel*> engineChannels; ///< All engine channels of a gig::Engine instance. |
ArrayList<EngineChannel*> engineChannels; ///< All engine channels of a gig::Engine instance. |
158 |
|
|
159 |
static std::map<AudioOutputDevice*,Engine*> engines; ///< All instances of gig::Engine. |
static std::map<AudioOutputDevice*,Engine*> engines; ///< All instances of gig::Engine. |