47 |
class EngineChannel { |
class EngineChannel { |
48 |
public: |
public: |
49 |
|
|
|
EngineChannel(); |
|
|
|
|
50 |
///////////////////////////////////////////////////////////////// |
///////////////////////////////////////////////////////////////// |
51 |
// abstract methods |
// abstract methods |
52 |
// (these have to be implemented by the descendant) |
// (these have to be implemented by the descendant) |
55 |
virtual void LoadInstrument() = 0; |
virtual void LoadInstrument() = 0; |
56 |
virtual void Reset() = 0; |
virtual void Reset() = 0; |
57 |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity) = 0; |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity) = 0; |
58 |
|
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity, int32_t FragmentPos) = 0; |
59 |
virtual void SendNoteOff(uint8_t Key, uint8_t Velocity) = 0; |
virtual void SendNoteOff(uint8_t Key, uint8_t Velocity) = 0; |
60 |
|
virtual void SendNoteOff(uint8_t Key, uint8_t Velocity, int32_t FragmentPos) = 0; |
61 |
virtual void SendPitchbend(int Pitch) = 0; |
virtual void SendPitchbend(int Pitch) = 0; |
62 |
|
virtual void SendPitchbend(int Pitch, int32_t FragmentPos) = 0; |
63 |
virtual void SendControlChange(uint8_t Controller, uint8_t Value) = 0; |
virtual void SendControlChange(uint8_t Controller, uint8_t Value) = 0; |
64 |
|
virtual void SendControlChange(uint8_t Controller, uint8_t Value, int32_t FragmentPos) = 0; |
65 |
virtual bool StatusChanged(bool bNewStatus = false) = 0; |
virtual bool StatusChanged(bool bNewStatus = false) = 0; |
66 |
virtual float Volume() = 0; |
virtual float Volume() = 0; |
67 |
virtual void Volume(float f) = 0; |
virtual void Volume(float f) = 0; |
116 |
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) |
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) |
117 |
|
|
118 |
protected: |
protected: |
119 |
|
EngineChannel(); |
120 |
virtual ~EngineChannel() {}; // MUST only be destroyed by EngineChannelFactory |
virtual ~EngineChannel() {}; // MUST only be destroyed by EngineChannelFactory |
121 |
friend class EngineChannelFactory; |
friend class EngineChannelFactory; |
122 |
|
|