4 |
* * |
* * |
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-2009 Christian Schoenebeck * |
* Copyright (C) 2005-2009 Christian Schoenebeck * |
7 |
* Copyright (C) 2009 Grigor Iliev * |
* Copyright (C) 2009-2010 Grigor Iliev * |
8 |
* * |
* * |
9 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
10 |
* 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 |
ProcessFxSendControllers(pChannel, itControlChangeEvent); |
ProcessFxSendControllers(pChannel, itControlChangeEvent); |
59 |
} |
} |
60 |
|
|
61 |
|
void Engine::ProcessChannelPressure(LinuxSampler::EngineChannel* pEngineChannel, Pool<Event>::Iterator& itChannelPressureEvent) { |
62 |
|
// if required: engine global aftertouch handling (apart from the per voice handling) |
63 |
|
} |
64 |
|
|
65 |
|
void Engine::ProcessPolyphonicKeyPressure(LinuxSampler::EngineChannel* pEngineChannel, Pool<Event>::Iterator& itNotePressureEvent) { |
66 |
|
// if required: engine global aftertouch handling (apart from the per voice handling) |
67 |
|
} |
68 |
|
|
69 |
DiskThread* Engine::CreateDiskThread() { |
DiskThread* Engine::CreateDiskThread() { |
70 |
return new DiskThread ( |
return new DiskThread ( |
71 |
iMaxDiskStreams, |
iMaxDiskStreams, |
137 |
// no need to process if sample is silent |
// no need to process if sample is silent |
138 |
if (!pRgn->GetSample() || !pRgn->GetSample()->GetTotalFrameCount()) return Pool<Voice>::Iterator(); |
if (!pRgn->GetSample() || !pRgn->GetSample()->GetTotalFrameCount()) return Pool<Voice>::Iterator(); |
139 |
|
|
140 |
// only mark the first voice of a layered voice (group) to be in a |
int iKeyGroup = pRgn->exclusiveClass; |
|
// key group, so the layered voices won't kill each other |
|
|
int iKeyGroup = (iLayer == 0 && !ReleaseTriggerVoice) ? pRgn->exclusiveClass : 0; |
|
141 |
if (HandleKeyGroupConflicts) pChannel->HandleKeyGroupConflicts(iKeyGroup, itNoteOnEvent); |
if (HandleKeyGroupConflicts) pChannel->HandleKeyGroupConflicts(iKeyGroup, itNoteOnEvent); |
142 |
|
|
143 |
// allocate a new voice for the key |
// allocate a new voice for the key |
165 |
} |
} |
166 |
|
|
167 |
String Engine::Version() { |
String Engine::Version() { |
168 |
String s = "$Revision: 1.3 $"; |
String s = "$Revision$"; |
169 |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
170 |
} |
} |
171 |
|
|