/*
	==============================================================================
	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;
	}
};
