2
0
Fork 0
OB-Xd/Source/Engine/VoiceQueue.h

55 lines
1.3 KiB
C++
Executable File

/*
==============================================================================
This file is part of Obxd synthesizer.
Copyright ) 2013-2014 Filatov Vadim
Contact author via email :
justdat_@_e1.ru
This file may be licensed under the terms of of the
GNU General Public License Version 2 (the ``GPL'').
Software distributed under the License is distributed
on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
express or implied. See the GPL for the specific language
governing rights and limitations.
You should have received a copy of the GPL along with this
program. If not, go to http://www.gnu.org/licenses/gpl.html
or write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
==============================================================================
*/
#pragma once
#include "ObxdVoice.h"
class VoiceQueue
{
private:
ObxdVoice* voices;
int idx,total;
public:
VoiceQueue()
{
voices = NULL;
idx = 0;
total = 0;
}
VoiceQueue(int voiceCount,ObxdVoice* voicesReference)
{
voices = voicesReference;
idx = 0;total = voiceCount;
}
inline ObxdVoice* getNext()
{
idx = idx + 1;
idx %=total;
return &voices[idx];
}
inline void reInit(int voiceCount)
{
total = voiceCount;
idx = idx%total;
}
};