5 |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
7 |
* Copyright (C) 2009-2012 Christian Schoenebeck and Grigor Iliev * |
* Copyright (C) 2009-2012 Christian Schoenebeck and Grigor Iliev * |
8 |
* Copyright (C) 2012-2016 Christian Schoenebeck and Andreas Persson * |
* Copyright (C) 2012-2017 Christian Schoenebeck and Andreas Persson * |
9 |
* * |
* * |
10 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
11 |
* 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 * |
37 |
|
|
38 |
#define CTRL_TABLE_IDX_AFTERTOUCH 128 |
#define CTRL_TABLE_IDX_AFTERTOUCH 128 |
39 |
#define CTRL_TABLE_IDX_PITCHBEND 129 |
#define CTRL_TABLE_IDX_PITCHBEND 129 |
40 |
|
#define CTRL_TABLE_SIZE 130 |
41 |
|
|
42 |
namespace LinuxSampler { |
namespace LinuxSampler { |
43 |
|
|
102 |
|
|
103 |
AudioOutputDevice* GetAudioOutputDeviceSafe(); |
AudioOutputDevice* GetAudioOutputDeviceSafe(); |
104 |
|
|
105 |
|
script_callback_id_t GetScriptCallbackID(const ScriptEvent* e) const { |
106 |
|
return pScript->pEvents->getID(e); |
107 |
|
} |
108 |
|
|
109 |
|
RTList<ScriptEvent>::Iterator ScriptCallbackByID(script_callback_id_t id) const { |
110 |
|
return pScript->pEvents->fromID(id); |
111 |
|
} |
112 |
|
|
113 |
|
void ScheduleResumeOfScriptCallback(RTList<ScriptEvent>::Iterator& itCallback, sched_time_t now, bool forever); |
114 |
|
|
115 |
friend class AbstractVoice; |
friend class AbstractVoice; |
116 |
friend class AbstractEngine; |
friend class AbstractEngine; |
117 |
template<class TV, class TRR, class TR, class TD, class TIM, class TI> friend class EngineBase; |
template<class TV, class TRR, class TR, class TD, class TIM, class TI> friend class EngineBase; |
147 |
queue.clear(); |
queue.clear(); |
148 |
} |
} |
149 |
} delayedEvents; |
} delayedEvents; |
150 |
uint8_t ControllerTable[130]; ///< Reflects the current values (0-127) of all MIDI controllers for this engine / sampler channel. Number 128 is for channel pressure (mono aftertouch), 129 for pitch bend. |
uint8_t ControllerTable[CTRL_TABLE_SIZE]; ///< Reflects the current values (0-127) of all MIDI controllers for this engine / sampler channel. Number 128 is for channel pressure (mono aftertouch), 129 for pitch bend. |
151 |
String InstrumentFile; |
String InstrumentFile; |
152 |
int InstrumentIdx; |
int InstrumentIdx; |
153 |
String InstrumentIdxName; |
String InstrumentIdxName; |
197 |
virtual note_id_t ScheduleNoteMicroSec(const Event* pEvent, int delay) = 0; |
virtual note_id_t ScheduleNoteMicroSec(const Event* pEvent, int delay) = 0; |
198 |
event_id_t ScheduleEventMicroSec(const Event* pEvent, int delay); |
event_id_t ScheduleEventMicroSec(const Event* pEvent, int delay); |
199 |
void IgnoreEvent(event_id_t id); |
void IgnoreEvent(event_id_t id); |
200 |
void IgnoreNote(note_id_t id); |
virtual void IgnoreNote(note_id_t id) = 0; |
201 |
void IgnoreEventByScriptID(const ScriptID& id); |
void IgnoreEventByScriptID(const ScriptID& id); |
202 |
|
virtual uint AllNoteIDs(note_id_t* dstBuf, uint bufSize) = 0; |
203 |
|
|
204 |
void AddGroup(uint group); |
void AddGroup(uint group); |
205 |
void HandleKeyGroupConflicts(uint KeyGroup, Pool<Event>::Iterator& itNoteOnEvent); |
void HandleKeyGroupConflicts(uint KeyGroup, Pool<Event>::Iterator& itNoteOnEvent); |