eas_vm_protos.h revision 7df30109963092559d3760c0661a020f9daf1030
17df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
27df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
37df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * File:
47df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * eas_vm_protos.h
57df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
67df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Contents and purpose:
77df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Declarations, interfaces, and prototypes for voice manager.
87df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
97df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Copyright Sonic Network Inc. 2004
107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License.
137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at
147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and
217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License.
227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Revision Control:
257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *   $Revision: 736 $
267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *   $Date: 2007-06-22 13:51:24 -0700 (Fri, 22 Jun 2007) $
277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#ifndef _EAS_VM_PROTOS_H
317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#define _EAS_VM_PROTOS_H
327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project// includes
347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#include "eas_data.h"
357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#include "eas_sndlib.h"
367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitialize()
397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
497df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMInitialize (S_EAS_DATA *pEASData);
507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitMIDI()
537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
637df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMInitMIDI (S_EAS_DATA *pEASData, S_SYNTH **ppSynth);
647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitializeAllChannels()
677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
777df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMInitializeAllChannels (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMResetControllers()
817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
917df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMResetControllers (S_SYNTH *pSynth);
927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitMIPTable()
957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Initialize the SP-MIDI MIP table
987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pEASData			- pointer to synthesizer instance data
1017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * mute				- EAS_FALSE to unmute channels, EAS_TRUE to mute
1027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
1047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
1077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
1107df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMInitMIPTable (S_SYNTH *pSynth);
1117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
1137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetMIPEntry()
1147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
1167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Sets the priority and MIP level for a MIDI channel
1177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pEASData			- pointer to synthesizer instance data
1207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * channel			- MIDI channel number
1217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * priority			- priority (0-15 with 0 = highest priority)
1227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * mip				- maximum instantaneous polyphony
1237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
1257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
1287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
1317df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMSetMIPEntry (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 priority, EAS_U8 mip);
1327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
1347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMUpdateMIPTable()
1357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
1377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This routine is called when the polyphony count in the synthesizer changes
1387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pEASData			- pointer to synthesizer instance data
1417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
1437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
1467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
1497df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMUpdateMIPTable (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
1507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
1527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitializeAllVoices()
1537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
1557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
1587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
1607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
1637df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMInitializeAllVoices (S_VOICE_MGR *pVoiceMgr, EAS_INT vSynthNum);
1647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
1667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMStartNote()
1677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
1697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Update the synth's state to play the requested note on the requested
1707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * channel if possible.
1717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
1747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - the MIDI key number for this note
1757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nNoteVelocity - the key velocity for this note
1767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
1777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
1797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
1827df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMStartNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity);
1837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
1857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMCheckKeyGroup()
1867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
1877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
1887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * If the note that we've been asked to start is in the same key group as
1897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * any currently playing notes, then we must shut down the currently playing
1907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * note in the same key group and then start the newly requested note.
1917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
1937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - synth channel that wants to start a new note
1947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - new note's midi note number
1957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nRegionIndex - calling routine finds this index and gives to us
1967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nNoteVelocity - new note's velocity
1977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
1987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
1997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
2007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pbVoiceStealingRequired - flag: this routine sets true if we needed to
2017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *								   steal a voice
2027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
2047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[free voice num].m_nKeyNumber may be assigned
2057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[free voice num].m_nVelocity may be assigned
2067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
2087df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMCheckKeyGroup (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U16 keyGroup, EAS_U8 channel);
2097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
2107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
2117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMCheckPolyphonyLimiting()
2127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
2147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We only play at most 2 of the same note on a MIDI channel.
2157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * E.g., if we are asked to start note 36, and there are already two voices
2167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * that are playing note 36, then we must steal the voice playing
2177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * the oldest note 36 and use that stolen voice to play the new note 36.
2187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
2207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - synth channel that wants to start a new note
2217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - new note's midi note number
2227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nNoteVelocity - new note's velocity
2237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
2247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
2267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pbVoiceStealingRequired - flag: this routine sets true if we needed to
2277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *								   steal a voice
2287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * *
2297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
2307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psSynthObject->m_sVoice[free voice num].m_nKeyNumber may be assigned
2317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psSynthObject->m_sVoice[free voice num].m_nVelocity may be assigned
2327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
2347df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_BOOL VMCheckPolyphonyLimiting (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity, EAS_U16 regionIndex, EAS_I32 lowVoice, EAS_I32 highVoice);
2357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
2367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
2377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMStopNote()
2387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
2407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Update the synth's state to end the requested note on the requested
2417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * channel.
2427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
2447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
2457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - the key number of the note to stop
2467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nNoteVelocity - the note-off velocity
2477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
2487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
2507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
2517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[free voice num].m_nSynthChannel may be assigned
2527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[free voice num].m_nKeyNumber is assigned
2537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[free voice num].m_nVelocity is assigned
2547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
2567df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMStopNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 key, EAS_U8 velocity);
2577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
2587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
2597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMFindAvailableVoice()
2607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
2627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Find an available voice and return the voice number if available.
2637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
2657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pnVoiceNumber - really an output, see below
2667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
2677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
2697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pnVoiceNumber - returns the voice number of available voice if found
2707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * success - if there is an available voice
2717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * failure - otherwise
2727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
2747df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMFindAvailableVoice (S_VOICE_MGR *pVoiceMgr, EAS_INT *pVoiceNumber, EAS_I32 lowVoice, EAS_I32 highVoice);
2757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
2767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
2777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMStealVoice()
2787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
2797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
2807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Steal a voice and return the voice number
2817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Stealing algorithm: steal the best choice with minimal work, taking into
2837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * account SP-Midi channel priorities and polyphony allocation.
2847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * In one pass through all the voices, figure out which voice to steal
2867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * taking into account a number of different factors:
2877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Priority of the voice's MIDI channel
2887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Number of voices over the polyphony allocation for voice's MIDI channel
2897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Amplitude of the voice
2907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Note age
2917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Key velocity (for voices that haven't been started yet)
2927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * If any matching notes are found
2937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
2957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the channel that this voice wants to be started on
2967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - the key number for this new voice
2977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
2987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
2997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
3007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pnVoiceNumber - voice stolen
3017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * EAS_RESULT EAS_SUCCESS - always successful
3027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
3047df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMStealVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_INT *pVoiceNumber, EAS_U8 channel, EAS_U8 note, EAS_I32 lowVoice, EAS_I32 highVoice);
3057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
3067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
3077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMAddSamples()
3087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
3107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Synthesize the requested number of samples.
3117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
3137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nNumSamplesToAdd - number of samples to write to buffer
3147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
3157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
3177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * number of samples actually written to buffer
3187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
3207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - samples are added to the presently free buffer
3217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
3247df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_I32 VMAddSamples (S_VOICE_MGR *pVoiceMgr, EAS_I32 *pMixBuffer, EAS_I32 numSamplesToAdd);
3257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
3267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
3277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMProgramChange()
3287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
3307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Change the instrument (program) for the given channel.
3317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Depending on the program number, and the bank selected for this channel, the
3337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * program may be in ROM, RAM (from SMAF or CMX related RAM wavetable), or
3347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Alternate wavetable (from mobile DLS or other DLS file)
3357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This function figures out what wavetable should be used, and sets it up as the
3377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * wavetable to use for this channel. Also the channel may switch from a melodic
3387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * channel to a rhythm channel, or vice versa.
3397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
3417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
3437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
3447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel].m_nProgramNumber is likely changed
3457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel].m_psEAS may be changed
3467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel].m_bRhythmChannel may be changed
3477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
3507df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMProgramChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 program);
3517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
3527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
3537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMChannelPressure()
3547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
3567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Change the channel pressure for the given channel
3577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
3597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
3607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nVelocity - the channel pressure value
3617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
3627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
3647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
3657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel].m_nChannelPressure is updated
3667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
3687df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMChannelPressure (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 value);
3697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
3707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
3717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMPitchBend()
3727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
3747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Change the pitch wheel value for the given channel.
3757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This routine constructs the proper 14-bit argument when the calling routine
3767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * passes the pitch LSB and MSB.
3777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Note: some midi disassemblers display a bipolar pitch bend value.
3797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We can display the bipolar value using
3807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * if m_nPitchBend >= 0x2000
3817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *		bipolar pitch bend = postive (m_nPitchBend - 0x2000)
3827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * else
3837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 		bipolar pitch bend = negative (0x2000 - m_nPitchBend)
3847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
3867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
3877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nPitchLSB - the LSB byte from the pitch bend message
3887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nPitchMSB - the MSB byte from the message
3897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
3907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
3927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
3947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel].m_nPitchBend is changed
3957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
3967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
3977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
3987df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMPitchBend (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 pitchLSB, EAS_U8 pitchMSB);
3997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
4007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
4017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMControlChange()
4027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
4047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Change the controller (or mode) for the given channel.
4057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
4077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
4087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nControllerNumber - the controller number
4097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nControlValue - the controller number for this control change
4107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nControlValue - the value for this control change
4117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
4127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
4147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
4157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sChannel[nChannel] controller is changed
4167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
4197df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMControlChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 controller, EAS_U8 value);
4207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
4217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
4227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMUpdateRPNStateMachine()
4237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
4257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Call this function when we want to parse a stream of RPN messages.
4267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * NOTE: The synth has only one set of global RPN data instead of RPN data
4277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * per channel.
4287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * So actually, we don't really need to look at the nChannel parameter,
4297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * but we pass it to facilitate future upgrades. Furthermore, we only
4307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * support RPN0 (pitch bend sensitivity), RPN1 (fine tuning) and
4317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * RPN2 (coarse tuning). Any other RPNs are rejected.
4327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
4347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - the MIDI channel
4357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nControllerNumber - the RPN controller number
4367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nControlValue - the value for this control change
4377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
4387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
4407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
4427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_RPN0 (or m_RPN1 or m_RPN2) may be updated if the
4437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * proper RPN message sequence is parsed.
4447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
4467df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMUpdateRPNStateMachine (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 controller, EAS_U8 value);
4477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
4487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
4497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMUpdateStaticChannelParameters()
4507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
4527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Update all of the static channel parameters for channels that have had
4537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * a controller change values
4547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Or if the synth has signalled that all channels must forcibly
4557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * be updated
4567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
4587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
4597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
4617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * none
4627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
4647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - psSynthObject->m_sChannel[].m_nStaticGain and m_nStaticPitch
4657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * are updated for channels whose controller values have changed
4667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * or if the synth has signalled that all channels must forcibly
4677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * be updated
4687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
4707df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMUpdateStaticChannelParameters (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
4717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
4727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
4737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMReleaseAllDeferredNoteOffs()
4747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
4767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Call this functin when the sustain flag is presently set but
4777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * we are now transitioning from damper pedal on to
4787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * damper pedal off. This means all notes in this channel
4797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * that received a note off while the damper pedal was on, and
4807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * had their note-off requests deferred, should now proceed to
4817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * the release state.
4827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
4847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - this channel has its sustain pedal transitioning from on to off
4857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
4867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
4887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
4897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * any voice with deferred note offs on this channel are updated such that
4907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
4927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
4947df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMReleaseAllDeferredNoteOffs (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel);
4957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
4967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
4977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMCatchNotesForSustainPedal()
4987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
4997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
5007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Call this function when the sustain flag is presently clear and
5017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * the damper pedal is off and we are transitioning from damper pedal OFF to
5027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * damper pedal ON. Currently sounding notes should be left
5037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * unchanged. However, we should try to "catch" notes if possible.
5047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * If any notes have levels >= sustain level, catch them,
5057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * otherwise, let them continue to release.
5067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
5087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - this channel has its sustain pedal transitioning from on to off
5097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
5107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
5127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
5137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * any voice with deferred note offs on this channel are updated such that
5147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psVoice->m_sEG1.m_eState = eEnvelopeStateSustainPedal
5157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
5177df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMCatchNotesForSustainPedal (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel);
5187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
5197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
5207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMUpdateAllNotesAge()
5217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
5237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Increment the note age for all voices older than the age of the voice
5247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * that is stopping, effectively making the voices "younger".
5257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
5277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nAge - age of voice that is going away
5287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
5297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
5317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
5337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * m_nAge for some voices is incremented
5347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
5367df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMUpdateAllNotesAge (S_VOICE_MGR *pVoiceMgr, EAS_U16 nAge);
5377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
5387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
5397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMFindRegionIndex()
5407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
5427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Find the region index for the given instrument using the midi key number
5437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * and the RPN2 (coarse tuning) value. By using RPN2 as part of the
5447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * region selection process, we reduce the amount a given sample has
5457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * to be transposed by selecting the closest recorded root instead.
5467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
5487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - current channel for this note
5497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nKeyNumber - current midi note number
5507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
5517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
5537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pnRegionIndex - valid only if we returned success
5547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * success if we found the region index number, otherwise
5557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * failure
5567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
5587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
5607df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMFindRegionIndex (S_VOICE_MGR *pVoiceMgr, EAS_U8 channel, EAS_U8 note, EAS_U16 *pRegionIndex);
5617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
5627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
5637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMIncRefCount()
5647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Increment reference count for virtual synth
5667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
5687df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMIncRefCount (S_SYNTH *pSynth);
5697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
5707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
5717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMReset()
5727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
5747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We call this routine to start the process of reseting the synth.
5757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This routine sets a flag for the entire synth indicating that we want
5767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * to reset.
5777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We also force all voices to mute quickly.
5787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * However, we do not actually perform any synthesis in this routine. That
5797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * is, we do not ramp the voices down from this routine, but instead, we
5807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * let the "regular" synth processing steps take care of adding the ramp
5817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * down samples to the output buffer. After we are sure that all voices
5827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * have completed ramping down, we continue the process of resetting the
5837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * synth (from another routine).
5847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
5867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
5877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
5897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
5917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - set a flag (in gsSynthObject.m_nFlags) indicating synth reset requested.
5927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - force all voices to update their envelope states to mute
5937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
5947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
5957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
5967df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMReset (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_BOOL force);
5977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
5987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
5997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMMuteAllVoices()
6007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
6027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We call this in an emergency reset situation.
6037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This forces all voices to mute quickly.
6047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
6067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
6077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
6097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
6117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - forces all voices to update their envelope states to mute
6127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
6157df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMMuteVoice (S_VOICE_MGR *pVoiceMgr, EAS_I32 voiceNum);
6167df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMMuteAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
6177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
6187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
6197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMReleaseAllVoices()
6207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
6227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We call this after we've encountered the end of the Midi file.
6237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This ensures all voice are either in release (because we received their
6247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * note off already) or forces them to mute quickly.
6257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * We use this as a safety to prevent bad midi files from playing forever.
6267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
6287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
6297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
6317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
6337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - forces all voices to update their envelope states to release or mute
6347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
6377df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMReleaseAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
6387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
6397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
6407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMAllNotesOff()
6417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
6437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Quickly mute all notes on the given channel.
6447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
6467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nChannel - quickly turn off all notes on this channel
6477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
6487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
6507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
6527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * - forces all voices on this channel to update their envelope states to mute
6537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
6567df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMAllNotesOff (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel);
6577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
6587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
6597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMDeferredStopNote()
6607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
6627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Stop the notes that had deferred note-off requests.
6637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
6657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
6667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
6687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * None.
6697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
6717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * voices that have had deferred note-off requests are now put into release
6727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * gsSynthObject.m_sVoice[i].m_nFlags has the VOICE_FLAG_DEFER_MIDI_NOTE_OFF
6737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *  cleared
6747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
6767df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMDeferredStopNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth);
6777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
6787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
6797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetSynthPolyphony()
6807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
6827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the synth to a new polyphony value. Value must be >= 1 and
6837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * <= MAX_SYNTH_VOICES. This function will pin the polyphony at those limits
6847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
6867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
6877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * synth			synthesizer number (0 = onboard, 1 = DSP)
6887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * polyphonyCount	desired polyphony count
6897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
6917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
6937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
6947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
6957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
6967df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetSynthPolyphony (S_VOICE_MGR *pVoiceMgr, EAS_I32 synth, EAS_I32 polyphonyCount);
6977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
6987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
6997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetSynthPolyphony()
7007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
7027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the synth to a new polyphony value. Value must be >= 1 and
7037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * <= MAX_SYNTH_VOICES. This function will pin the polyphony at those limits
7047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
7067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
7077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * synth			synthesizer number (0 = onboard, 1 = DSP)
7087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * polyphonyCount	desired polyphony count
7097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
7117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
7137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
7167df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMGetSynthPolyphony (S_VOICE_MGR *pVoiceMgr, EAS_I32 synth, EAS_I32 *pPolyphonyCount);
7177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
7187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
7197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetPolyphony()
7207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
7227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the virtual synth polyphony. 0 = no limit (i.e. can use
7237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * all available voices).
7247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
7267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
7277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * polyphonyCount	desired polyphony count
7287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pSynth			pointer to virtual synth
7297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
7317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns error code
7327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
7347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
7377df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 polyphonyCount);
7387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
7397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
7407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetPolyphony()
7417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
7437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns the current polyphony setting
7447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
7467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
7477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pSynth			pointer to virtual synth
7487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pPolyphonyCount	pointer to variable to receive data
7497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
7517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
7537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
7567df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMGetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPolyphonyCount);
7577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
7587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
7597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetPriority()
7607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
7627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the virtual synth priority
7637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
7657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
7667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * priority			new priority
7677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pSynth			pointer to virtual synth
7687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
7707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns error code
7717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
7737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
7767df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 priority);
7777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
7787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
7797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetPriority()
7807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
7827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Get the virtual synth priority
7837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
7857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr		pointer to synthesizer data
7867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pPriority		pointer to variable to hold priority
7877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pSynth			pointer to virtual synth
7887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
7907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns error code
7917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
7937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
7947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
7957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
7967df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMGetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPriority);
7977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
7987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
7997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetVolume()
8007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
8027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the master volume for this sequence
8037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
8057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * nSynthVolume - the desired master volume
8067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
8077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
8097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
8127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * overrides any previously set master volume from sysex
8137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8167df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMSetVolume (S_SYNTH *pSynth, EAS_U16 masterVolume);
8177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
8187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
8197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetPitchBendRange()
8207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Set the pitch bend range for the given channel.
8227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8247df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMSetPitchBendRange (S_SYNTH *pSynth, EAS_INT channel, EAS_I16 pitchBendRange);
8257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
8267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
8277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetEASLib()
8287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
8307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Sets the pointer to the sound library
8317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
8337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
8347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
8367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8397df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetGlobalEASLib (S_VOICE_MGR *pVoiceMgr, EAS_SNDLIB_HANDLE pEAS);
8407df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetEASLib (S_SYNTH *pSynth, EAS_SNDLIB_HANDLE pEAS);
8417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
8427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#ifdef DLS_SYNTHESIZER
8437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
8447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetDLSLib()
8457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
8477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Sets the pointer to the sound library
8487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
8507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
8517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
8537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8567df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetGlobalDLSLib (EAS_DATA_HANDLE pEASData, EAS_DLSLIB_HANDLE pDLS);
8577df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMSetDLSLib (S_SYNTH *pSynth, EAS_DLSLIB_HANDLE pDLS);
8587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#endif
8597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
8607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
8617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetTranposition()
8627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
8647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Sets the global key transposition used by the synthesizer.
8657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Transposes all melodic instruments up or down by the specified
8667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * amount. Range is limited to +/-12 semitones.
8677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
8697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData	 	- pointer to overall EAS data structure
8707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * transposition	- transpose amount (+/-12)
8717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
8737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
8767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8797df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMSetTranposition (S_SYNTH *pSynth, EAS_I32 transposition);
8807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
8817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
8827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetTranposition()
8837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
8857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Gets the global key transposition used by the synthesizer.
8867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Transposes all melodic instruments up or down by the specified
8877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * amount. Range is limited to +/-12 semitones.
8887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
8907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
8917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
8937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8957df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
8967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
8977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
8987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
8997df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMGetTranposition (S_SYNTH *pSynth, EAS_I32 *pTransposition);
9007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetNoteCount()
9037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project* Returns the total note count
9057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*----------------------------------------------------------------------------
9067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9077df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_I32 VMGetNoteCount (S_SYNTH *pSynth);
9087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMRender()
9117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
9137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * This routine renders a frame of audio
9147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
9167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData 		- pointer to overall EAS data structure
9177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
9197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoicesRendered	- number of voices rendered this frame
9207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
9227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * sets psMidiObject->m_nMaxWorkloadPerFrame
9237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9267df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_RESULT VMRender (S_VOICE_MGR *pVoiceMgr, EAS_I32 numSamples, EAS_I32 *pMixBuffer, EAS_I32 *pVoicesRendered);
9277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMInitWorkload()
9307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
9327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Clears the workload counter
9337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
9357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr			- pointer to instance data
9367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
9387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
9407df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9437df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMInitWorkload (S_VOICE_MGR *pVoiceMgr);
9447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMSetWorkload()
9477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9487df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
9497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Sets the max workload for a single frame.
9507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
9527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr			- pointer to instance data
9537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
9557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
9577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9607df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMSetWorkload (S_VOICE_MGR *pVoiceMgr, EAS_I32 maxWorkLoad);
9617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMCheckWorkload()
9647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
9667df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Checks to see if work load has been exceeded on this frame.
9677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
9697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pVoiceMgr			- pointer to instance data
9707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
9727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
9747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9777df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_BOOL VMCheckWorkload (S_VOICE_MGR *pVoiceMgr);
9787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMActiveVoices()
9817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9827df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
9837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns the number of active voices in the synthesizer.
9847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
9867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * pEASData			- pointer to instance data
9877df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9887df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
9897df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns the number of active voices
9907df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9917df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
9927df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
9937df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
9947df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
9957df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_I32 VMActiveVoices (S_SYNTH *pSynth);
9967df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
9977df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
9987df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMMIDIShutdown()
9997df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10007df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
10017df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Clean up any Synth related system issues.
10027df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10037df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
10047df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
10057df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10067df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
10077df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * None
10087df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10097df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
10107df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10137df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMMIDIShutdown (S_EAS_DATA *pEASData, S_SYNTH *pSynth);
10147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
10167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMShutdown()
10177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
10197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Clean up any Synth related system issues.
10207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
10227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * psEASData - pointer to overall EAS data structure
10237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
10257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * None
10267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
10287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10317df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMShutdown (S_EAS_DATA *pEASData);
10327df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10337df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#ifdef EXTERNAL_AUDIO
10347df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
10357df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * EAS_RegExtAudioCallback()
10367df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10377df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Register a callback for external audio processing
10387df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10397df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10407df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMRegExtAudioCallback (S_SYNTH *pSynth, EAS_VOID_PTR pInstData, EAS_EXT_PRG_CHG_FUNC cbProgChgFunc, EAS_EXT_EVENT_FUNC cbEventFunc);
10417df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10427df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
10437df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMGetMIDIControllers()
10447df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10457df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Returns the MIDI controller values on the specified channel
10467df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10477df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10487df30109963092559d3760c0661a020f9daf1030The Android Open Source Projectvoid VMGetMIDIControllers (S_SYNTH *pSynth, EAS_U8 channel, S_MIDI_CONTROLLERS *pControl);
10497df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#endif
10507df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10517df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#ifdef _SPLIT_ARCHITECTURE
10527df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
10537df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMStartFrame()
10547df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10557df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
10567df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Starts an audio frame
10577df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10587df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
10597df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10607df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
10617df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10627df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
10637df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10647df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10657df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10667df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_BOOL VMStartFrame (S_EAS_DATA *pEASData);
10677df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10687df30109963092559d3760c0661a020f9daf1030The Android Open Source Project/*----------------------------------------------------------------------------
10697df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * VMEndFrame()
10707df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10717df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Purpose:
10727df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Stops an audio frame
10737df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10747df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Inputs:
10757df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10767df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Outputs:
10777df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10787df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Side Effects:
10797df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
10807df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *----------------------------------------------------------------------------
10817df30109963092559d3760c0661a020f9daf1030The Android Open Source Project*/
10827df30109963092559d3760c0661a020f9daf1030The Android Open Source ProjectEAS_BOOL VMEndFrame (S_EAS_DATA *pEASData);
10837df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#endif
10847df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
10857df30109963092559d3760c0661a020f9daf1030The Android Open Source Project#endif /* #ifdef _EAS_VM_PROTOS_H */
10867df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
1087