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