1 |
/*************************************************************************** |
/*************************************************************************** |
2 |
* * |
* * |
3 |
* Copyright (C) 2005 - 2012 Christian Schoenebeck * |
* Copyright (C) 2005 - 2014 Christian Schoenebeck * |
4 |
* * |
* * |
5 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
6 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
58 |
// abstract methods |
// abstract methods |
59 |
// (these have to be implemented by the descendant) |
// (these have to be implemented by the descendant) |
60 |
|
|
61 |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument) = 0; |
// general sampler part management |
|
virtual void LoadInstrument() = 0; |
|
62 |
virtual void Reset() = 0; |
virtual void Reset() = 0; |
63 |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity, uint8_t MidiChannel) = 0; |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity, uint8_t MidiChannel) = 0; |
64 |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity, uint8_t MidiChannel, int32_t FragmentPos) = 0; |
virtual void SendNoteOn(uint8_t Key, uint8_t Velocity, uint8_t MidiChannel, int32_t FragmentPos) = 0; |
75 |
virtual float Pan() = 0; |
virtual float Pan() = 0; |
76 |
virtual void Pan(float f) = 0; |
virtual void Pan(float f) = 0; |
77 |
virtual uint Channels() = 0; |
virtual uint Channels() = 0; |
78 |
|
|
79 |
|
// audio driver management |
80 |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
virtual void Connect(AudioOutputDevice* pAudioOut) = 0; |
81 |
virtual void DisconnectAudioOutputDevice() = 0; |
virtual void DisconnectAudioOutputDevice() = 0; |
82 |
virtual AudioOutputDevice* GetAudioOutputDevice() = 0; |
virtual AudioOutputDevice* GetAudioOutputDevice() = 0; |
83 |
virtual void SetOutputChannel(uint EngineAudioChannel, uint AudioDeviceChannel) = 0; |
virtual void SetOutputChannel(uint EngineAudioChannel, uint AudioDeviceChannel) = 0; |
84 |
virtual int OutputChannel(uint EngineAudioChannel) = 0; |
virtual int OutputChannel(uint EngineAudioChannel) = 0; |
85 |
virtual void Connect(MidiInputPort* pMidiPort, midi_chan_t MidiChannel) = 0; |
|
86 |
virtual void DisconnectMidiInputPort() = 0; |
// MIDI driver management |
87 |
virtual MidiInputPort* GetMidiInputPort() = 0; |
virtual void Connect(MidiInputPort* pMidiPort) = 0; |
88 |
|
virtual void Disconnect(MidiInputPort* pMidiPort) = 0; |
89 |
|
virtual void DisconnectAllMidiInputPorts() = 0; |
90 |
|
virtual uint GetMidiInputPortCount() = 0; |
91 |
|
virtual MidiInputPort* GetMidiInputPort(uint index) = 0; |
92 |
virtual midi_chan_t MidiChannel() = 0; |
virtual midi_chan_t MidiChannel() = 0; |
93 |
|
virtual void SetMidiChannel(midi_chan_t MidiChannel) = 0; |
94 |
|
// (deprecated MIDI driver management methods) |
95 |
|
virtual void Connect(MidiInputPort* pMidiPort, midi_chan_t MidiChannel) DEPRECATED_API = 0; |
96 |
|
virtual void DisconnectMidiInputPort() DEPRECATED_API = 0; |
97 |
|
virtual MidiInputPort* GetMidiInputPort() DEPRECATED_API = 0; |
98 |
|
|
99 |
|
// virtual MIDI driver management (i.e. virtual on-screen MIDI keyboards) |
100 |
|
virtual void Connect(VirtualMidiDevice* pDevice) = 0; |
101 |
|
virtual void Disconnect(VirtualMidiDevice* pDevice) = 0; |
102 |
|
|
103 |
|
// instrument (sound file) management |
104 |
|
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument) = 0; |
105 |
|
virtual void LoadInstrument() = 0; |
106 |
virtual String InstrumentFileName() = 0; ///< Returns the file name of the currently loaded instrument. Equivalent as calling InstrumentFileName(0). |
virtual String InstrumentFileName() = 0; ///< Returns the file name of the currently loaded instrument. Equivalent as calling InstrumentFileName(0). |
107 |
virtual String InstrumentFileName(int index); |
virtual String InstrumentFileName(int index); |
108 |
virtual String InstrumentName() = 0; |
virtual String InstrumentName() = 0; |
109 |
virtual int InstrumentIndex() = 0; |
virtual int InstrumentIndex() = 0; |
110 |
virtual int InstrumentStatus() = 0; |
virtual int InstrumentStatus() = 0; |
111 |
|
|
112 |
|
// sampler format / sampler engine implementation details |
113 |
virtual Engine* GetEngine() = 0; |
virtual Engine* GetEngine() = 0; |
114 |
virtual String EngineName() = 0; |
virtual String EngineName() = 0; |
115 |
|
|
116 |
|
// effect routing |
117 |
virtual FxSend* AddFxSend(uint8_t MidiCtrl, String Name = "") throw (Exception) = 0; |
virtual FxSend* AddFxSend(uint8_t MidiCtrl, String Name = "") throw (Exception) = 0; |
118 |
virtual FxSend* GetFxSend(uint FxSendIndex) = 0; |
virtual FxSend* GetFxSend(uint FxSendIndex) = 0; |
119 |
virtual uint GetFxSendCount() = 0; |
virtual uint GetFxSendCount() = 0; |
120 |
virtual void RemoveFxSend(FxSend* pFxSend) = 0; |
virtual void RemoveFxSend(FxSend* pFxSend) = 0; |
|
virtual void Connect(VirtualMidiDevice* pDevice) = 0; |
|
|
virtual void Disconnect(VirtualMidiDevice* pDevice) = 0; |
|
121 |
|
|
122 |
|
|
123 |
///////////////////////////////////////////////////////////////// |
///////////////////////////////////////////////////////////////// |