42 |
*/ |
*/ |
43 |
class EngineChannel { |
class EngineChannel { |
44 |
public: |
public: |
45 |
|
|
46 |
///////////////////////////////////////////////////////////////// |
///////////////////////////////////////////////////////////////// |
47 |
// abstract methods |
// abstract methods |
48 |
// (these have to be implemented by the descendant) |
// (these have to be implemented by the descendant) |
49 |
|
|
50 |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument) = 0; |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument) = 0; |
51 |
virtual void LoadInstrument() = 0; |
virtual void LoadInstrument() = 0; |
52 |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity) = 0; |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity) = 0; |
53 |
virtual void SendNoteOff(uint8_t Key, uint8_t Velocity) = 0; |
virtual void SendNoteOff(uint8_t Key, uint8_t Velocity) = 0; |
54 |
virtual void SendPitchbend(int Pitch) = 0; |
virtual void SendPitchbend(int Pitch) = 0; |
55 |
virtual void SendControlChange(uint8_t Controller, uint8_t Value) = 0; |
virtual void SendControlChange(uint8_t Controller, uint8_t Value) = 0; |
56 |
|
virtual bool StatusChanged() = 0; |
57 |
virtual float Volume() = 0; |
virtual float Volume() = 0; |
58 |
virtual void Volume(float f) = 0; |
virtual void Volume(float f) = 0; |
59 |
virtual uint Channels() = 0; |
virtual uint Channels() = 0; |
60 |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
61 |
virtual void DisconnectAudioOutputDevice() = 0; |
virtual void DisconnectAudioOutputDevice() = 0; |
62 |
virtual void SetOutputChannel(uint EngineAudioChannel, uint AudioDeviceChannel) = 0; |
virtual void SetOutputChannel(uint EngineAudioChannel, uint AudioDeviceChannel) = 0; |
63 |
virtual int OutputChannel(uint EngineAudioChannel) = 0; |
virtual int OutputChannel(uint EngineAudioChannel) = 0; |
64 |
virtual String InstrumentFileName() = 0; |
virtual String InstrumentFileName() = 0; |
65 |
virtual String InstrumentName() = 0; |
virtual String InstrumentName() = 0; |
66 |
virtual int InstrumentIndex() = 0; |
virtual int InstrumentIndex() = 0; |
68 |
virtual Engine* GetEngine() = 0; |
virtual Engine* GetEngine() = 0; |
69 |
virtual String EngineName() = 0; |
virtual String EngineName() = 0; |
70 |
|
|
71 |
virtual ~EngineChannel() {}; |
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) |
72 |
|
|
73 |
|
protected: |
74 |
|
virtual ~EngineChannel() {}; // MUST only be destroyed by EngineChannelFactory |
75 |
|
friend class EngineChannelFactory; |
76 |
}; |
}; |
77 |
|
|
78 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |
79 |
|
|
80 |
#endif // __LS_ENGINECHANNEL_H__ |
#endif // __LS_ENGINECHANNEL_H__ |