voiceman.h
/* voiceman.h - The VoiceManager class handles a set of voices for synths
This file is part of LibKMid 0.9.5
Copyright (C) 1997,98,99,2000 Antonio Larrosa Jimenez
LibKMid's homepage : http://www.arrakis.es/~rlarrosa/libkmid.html
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
Send comments and bug fixes to Antonio Larrosa <larrosa@kde.org>
***************************************************************************/
#ifndef _VOICEMAN_H
#define _VOICEMAN_H
class VoiceManager
{
private:
class VoiceManagerPrivate;
VoiceManagerPrivate *d;
int nvoices;
struct voice
{
int id;
int channel;
int note;
int used;
struct voice *prev;
struct voice *next;
};
voice *FirstVoice;
voice *LastVoice;
voice *LastnotusedVoice;
voice **VoiceList;
voice *searcher;
voice *searcher_aid;
public:
VoiceManager(int totalvoices);
~VoiceManager();
int allocateVoice(int chn,int key);
void deallocateVoice(int id);
void initSearch(void);
int search(int chn);
//returns -1 if channel chn is not currently used
// Continue searching for more voices which
// use the channel chn
int search(int chn,int note);
int channel(int v) {return VoiceList[v]->channel;}
int note(int v) {return VoiceList[v]->note;}
int used(int v) {return VoiceList[v]->used;}
void clearLists(void);
};
#endif
KStdAccel::next
const KShortcut & next()

KDE Home | KDE Accessibility Home | Description of Access Keys