22 |
#define __LS_ENGINECHANNEL_H__ |
#define __LS_ENGINECHANNEL_H__ |
23 |
|
|
24 |
#include "../EventListeners.h" |
#include "../EventListeners.h" |
25 |
|
#include "../common/atomic.h" |
26 |
#include "../drivers/audio/AudioOutputDevice.h" |
#include "../drivers/audio/AudioOutputDevice.h" |
27 |
#include "../drivers/midi/midi.h" |
#include "../drivers/midi/midi.h" |
28 |
#include "../drivers/midi/MidiInputDevice.h" |
#include "../drivers/midi/MidiInputDevice.h" |
34 |
namespace LinuxSampler { |
namespace LinuxSampler { |
35 |
|
|
36 |
// just symbol prototyping |
// just symbol prototyping |
37 |
|
class Sampler; |
38 |
|
class SamplerChannel; |
39 |
class AudioOutputDevice; |
class AudioOutputDevice; |
40 |
class MidiInputPort; |
class MidiInputPort; |
41 |
class FxSend; |
class FxSend; |
73 |
virtual bool StatusChanged(bool bNewStatus = false) = 0; |
virtual bool StatusChanged(bool bNewStatus = false) = 0; |
74 |
virtual float Volume() = 0; |
virtual float Volume() = 0; |
75 |
virtual void Volume(float f) = 0; |
virtual void Volume(float f) = 0; |
76 |
|
virtual float Pan() = 0; |
77 |
|
virtual void Pan(float f) = 0; |
78 |
virtual uint Channels() = 0; |
virtual uint Channels() = 0; |
79 |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
80 |
virtual void DisconnectAudioOutputDevice() = 0; |
virtual void DisconnectAudioOutputDevice() = 0; |
302 |
*/ |
*/ |
303 |
void SetDiskStreamCount(uint Streams); |
void SetDiskStreamCount(uint Streams); |
304 |
|
|
305 |
int iSamplerChannelIndex; ///< FIXME: nasty hack, might be removed (should be 'virtual EngineChannel* EngineChannel() = 0;', but due to cyclic dependencies only a void* solution would be possible ATM) |
SamplerChannel* GetSamplerChannel(); |
306 |
|
|
307 |
|
void SetSamplerChannel(SamplerChannel* pChannel); |
308 |
|
|
309 |
|
/** Returns the sampler to which this channel belongs */ |
310 |
|
Sampler* GetSampler(); |
311 |
|
|
312 |
protected: |
protected: |
313 |
EngineChannel(); |
EngineChannel(); |
336 |
bool bProgramChangeReceived; |
bool bProgramChangeReceived; |
337 |
bool bMidiRpnReceived; |
bool bMidiRpnReceived; |
338 |
int iMidiInstrumentMap; |
int iMidiInstrumentMap; |
339 |
uint uiVoiceCount; |
atomic_t voiceCount; |
340 |
uint uiDiskStreamCount; |
atomic_t diskStreamCount; |
341 |
|
SamplerChannel* pSamplerChannel; |
342 |
ListenerList<FxSendCountListener*> llFxSendCountListeners; |
ListenerList<FxSendCountListener*> llFxSendCountListeners; |
343 |
}; |
}; |
344 |
|
|