Lines Matching defs:pVoiceMgr

195 static void IncVoicePoolCount (S_VOICE_MGR *pVoiceMgr, S_SYNTH_VOICE *pVoice)
206 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
211 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
228 static void DecVoicePoolCount (S_VOICE_MGR *pVoiceMgr, S_SYNTH_VOICE *pVoice)
239 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
244 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
269 S_VOICE_MGR *pVoiceMgr;
274 pVoiceMgr = EAS_CMEnumData(EAS_CM_SYNTH_DATA);
276 pVoiceMgr = EAS_HWMalloc(pEASData->hwInstData, sizeof(S_VOICE_MGR));
277 if (!pVoiceMgr)
282 EAS_HWMemSet(pVoiceMgr, 0, sizeof(S_VOICE_MGR));
285 pVoiceMgr->pGlobalEAS = (S_EAS*) &easSoundLib;
286 pVoiceMgr->maxPolyphony = (EAS_U16) MAX_SYNTH_VOICES;
289 pVoiceMgr->maxPolyphonyPrimary = NUM_PRIMARY_VOICES;
290 pVoiceMgr->maxPolyphonySecondary = NUM_SECONDARY_VOICES;
294 pVoiceMgr->maxWorkLoad = 0;
298 InitVoice(&pVoiceMgr->voices[i]);
302 pPrimarySynth->pfInitialize(pVoiceMgr);
307 pSecondarySynth->pfInitialize(pVoiceMgr);
310 pEASData->pVoiceMgr = pVoiceMgr;
337 if (pEASData->pVoiceMgr->pSynth[0] != NULL)
352 if (pEASData->pVoiceMgr->pSynth[virtualSynthNum] == NULL)
371 if ((result = VMSetEASLib(pSynth, pEASData->pVoiceMgr->pGlobalEAS)) != EAS_SUCCESS)
379 if (pEASData->pVoiceMgr->pGlobalDLS)
381 pSynth->pDLS = pEASData->pVoiceMgr->pGlobalDLS;
391 pSynth->poolAlloc[0] = (EAS_U8) pEASData->pVoiceMgr->maxPolyphony;
393 VMInitializeAllChannels(pEASData->pVoiceMgr, pSynth);
396 pEASData->pVoiceMgr->pSynth[virtualSynthNum] = pSynth;
440 void VMReset (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_BOOL force)
450 pVoiceMgr->activeVoices -= pSynth->numActiveVoices;
452 VMInitializeAllVoices(pVoiceMgr, pSynth->vSynthNum);
455 VMMuteAllVoices(pVoiceMgr, pSynth);
466 VMInitializeAllChannels(pVoiceMgr, pSynth);
471 if (pSynth->maxPolyphony < pVoiceMgr->maxPolyphony)
472 pSynth->poolAlloc[0] = (EAS_U8) pVoiceMgr->maxPolyphony;
497 void VMInitializeAllChannels (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
523 VMProgramChange(pVoiceMgr, pSynth, (EAS_U8) i, DEFAULT_SYNTH_PROGRAM_NUMBER);
586 void VMInitializeAllVoices (S_VOICE_MGR *pVoiceMgr, EAS_INT vSynthNum)
593 if (pVoiceMgr->voices[i].voiceState != eVoiceStateStolen)
595 if (GET_VSYNTH(pVoiceMgr->voices[i].channel) == vSynthNum)
596 InitVoice(&pVoiceMgr->voices[i]);
600 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) == vSynthNum)
601 InitVoice(&pVoiceMgr->voices[i]);
612 void VMMuteVoice (S_VOICE_MGR *pVoiceMgr, EAS_I32 voiceNum)
618 pVoice = &pVoiceMgr->voices[voiceNum];
623 DecVoicePoolCount(pVoiceMgr, pVoice);
625 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
626 GetSynthPtr(voiceNum)->pfMuteVoice(pVoiceMgr, pSynth, pVoice, GetAdjustedVoiceNum(voiceNum));
637 void VMReleaseVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 voiceNum)
639 S_SYNTH_VOICE *pVoice = &pVoiceMgr->voices[voiceNum];
649 VMMuteVoice(pVoiceMgr, voiceNum);
652 GetSynthPtr(voiceNum)->pfReleaseVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum));
685 /*lint -esym(715, pVoiceMgr) reserved for future use */
686 void VMSetMIPEntry (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 priority, EAS_U8 mip)
709 void VMMIPUpdateChannelMuting (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
725 maxPolyphony = pVoiceMgr->maxPolyphony;
746 if (pVoiceMgr->voices[i].voiceState == eVoiceStateFree)
750 if (pVoiceMgr->voices[i].voiceState != eVoiceStateStolen)
752 vSynthNum = GET_VSYNTH(pVoiceMgr->voices[i].channel);
753 channel = GET_CHANNEL(pVoiceMgr->voices[i].channel);
757 vSynthNum = GET_VSYNTH(pVoiceMgr->voices[i].nextChannel);
758 channel = GET_CHANNEL(pVoiceMgr->voices[i].nextChannel);
772 if (pVoiceMgr->voices[i].voiceState == eVoiceStateStolen)
773 pVoiceMgr->voices[i].voiceState = eVoiceStateMuting;
776 else if (pVoiceMgr->voices[i].voiceState != eVoiceStateMuting)
778 VMReleaseVoice(pVoiceMgr, pSynth, i);
799 /*lint -esym(715, pVoiceMgr) reserved for future use */
800 void VMUpdateMIPTable (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
854 VMMIPUpdateChannelMuting (pVoiceMgr, pSynth);
874 void VMMuteAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
885 if (pVoiceMgr->voices[i].voiceState == eVoiceStateStolen)
887 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) == pSynth->vSynthNum)
888 VMMuteVoice(pVoiceMgr, i);
891 else if (pSynth->vSynthNum == GET_VSYNTH(pVoiceMgr->voices[i].channel))
892 VMMuteVoice(pVoiceMgr, i);
915 void VMReleaseAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
924 VMReleaseAllDeferredNoteOffs(pVoiceMgr, pSynth, (EAS_U8) i);
933 switch (pVoiceMgr->voices[i].voiceState)
938 if (GET_VSYNTH(pVoiceMgr->voices[i].channel) == pSynth->vSynthNum)
939 VMReleaseVoice(pVoiceMgr, pSynth, i);
943 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) == pSynth->vSynthNum)
944 VMMuteVoice(pVoiceMgr, i);
956 pVoiceMgr->voices[i].voiceState); */ }
980 void VMAllNotesOff (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
995 pVoiceMgr->workload += WORKLOAD_AMOUNT_SMALL_INCREMENT;
1001 pVoice = &pVoiceMgr->voices[voiceNum];
1008 GetSynthPtr(voiceNum)->pfMuteVoice(pVoiceMgr, pSynth, pVoice, GetAdjustedVoiceNum(voiceNum));
1033 void VMDeferredStopNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
1044 if (pVoiceMgr->voices[voiceNum].voiceFlags & VOICE_FLAG_DEFER_MIDI_NOTE_OFF)
1047 if (pVoiceMgr->voices[voiceNum].voiceState == eVoiceStateStolen)
1070 pVoiceMgr->voices[voiceNum].nextChannel,
1071 pVoiceMgr->voices[voiceNum].note); */ }
1074 if (0 != pVoiceMgr->voices[voiceNum].gain)
1084 pVoiceMgr->voices[voiceNum].voiceFlags ^=
1090 pVoiceMgr->voices[voiceNum].nextChannel,
1091 pVoiceMgr->voices[voiceNum].note); */ }
1094 channel = pVoiceMgr->voices[voiceNum].channel & 15;
1099 GetSynthPtr(voiceNum)->pfSustainPedal(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], &pSynth->channels[channel], GetAdjustedVoiceNum(voiceNum));
1104 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
1140 void VMReleaseAllDeferredNoteOffs (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
1155 pVoiceMgr->workload += WORKLOAD_AMOUNT_SMALL_INCREMENT;
1162 pVoice = &pVoiceMgr->voices[voiceNum];
1170 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
1201 void VMCatchNotesForSustainPedal (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
1214 pVoiceMgr->workload += WORKLOAD_AMOUNT_SMALL_INCREMENT;
1220 if (channel == pVoiceMgr->voices[voiceNum].channel)
1222 if (eVoiceStateRelease == pVoiceMgr->voices[voiceNum].voiceState)
1223 GetSynthPtr(voiceNum)->pfSustainPedal(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], &pSynth->channels[channel], GetAdjustedVoiceNum(voiceNum));
1243 void VMUpdateAllNotesAge (S_VOICE_MGR *pVoiceMgr, EAS_U16 age)
1249 if (age - pVoiceMgr->voices[i].age > 0)
1250 pVoiceMgr->voices[i].age++;
1271 static void VMStolenVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 voiceNum, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity, EAS_U16 regionIndex)
1273 S_SYNTH_VOICE *pVoice = &pVoiceMgr->voices[voiceNum];
1276 DecVoicePoolCount(pVoiceMgr, pVoice);
1279 GetSynthPtr(voiceNum)->pfMuteVoice(pVoiceMgr, pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)], &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum));
1289 IncVoicePoolCount(pVoiceMgr, pVoice);
1298 VMUpdateAllNotesAge(pVoiceMgr, pVoice->age);
1301 pVoice->age = pVoiceMgr->age++;
1318 static void VMFreeVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, S_SYNTH_VOICE *pVoice)
1330 DecVoicePoolCount(pVoiceMgr, pVoice);
1338 pVoiceMgr->activeVoices--;
1343 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_INFO, "VMFreeVoice: free voice %d\n", pVoice - pVoiceMgr->voices); */ }
1347 VMUpdateAllNotesAge(pVoiceMgr, pVoice->age);
1364 static EAS_BOOL VMRetargetStolenVoice (S_VOICE_MGR *pVoiceMgr, EAS_I32 voiceNum)
1373 pVoice = &pVoiceMgr->voices[voiceNum];
1374 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
1376 pNextSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
1390 VMFreeVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum]);
1418 pVoiceMgr->workload += WORKLOAD_AMOUNT_START_NOTE;
1424 GetSynthPtr(voiceNum)->pfStartVoice(pVoiceMgr, pNextSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum), pVoice->regionIndex);
1447 void VMCheckKeyGroup (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U16 keyGroup, EAS_U8 channel)
1453 pVoiceMgr->workload += WORKLOAD_AMOUNT_KEY_GROUP;
1459 if (pVoiceMgr->voices[voiceNum].voiceState != eVoiceStateStolen)
1462 if (channel == pVoiceMgr->voices[voiceNum].channel)
1465 pRegion = GetRegionPtr(pSynth, pVoiceMgr->voices[voiceNum].regionIndex);
1473 if (pVoiceMgr->voices[voiceNum].voiceFlags & VOICE_FLAG_NO_SAMPLES_SYNTHESIZED_YET)
1474 pVoiceMgr->voices[voiceNum].voiceFlags |= VOICE_FLAG_DEFER_MUTE;
1478 VMMuteVoice(pVoiceMgr, voiceNum);
1487 if (channel == pVoiceMgr->voices[voiceNum].nextChannel)
1490 pRegion = GetRegionPtr(pSynth, pVoiceMgr->voices[voiceNum].nextRegionIndex);
1498 if (pVoiceMgr->voices[voiceNum].voiceFlags & VOICE_FLAG_NO_SAMPLES_SYNTHESIZED_YET)
1499 pVoiceMgr->voices[voiceNum].voiceFlags |= VOICE_FLAG_DEFER_MUTE;
1503 VMMuteVoice(pVoiceMgr, voiceNum);
1535 EAS_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)
1543 pVoiceMgr->workload += WORKLOAD_AMOUNT_POLY_LIMIT;
1554 if (pVoiceMgr->voices[voiceNum].voiceState != eVoiceStateStolen)
1558 if ((channel == pVoiceMgr->voices[voiceNum].channel) && (note == pVoiceMgr->voices[voiceNum].note))
1561 age = pVoiceMgr->age - pVoiceMgr->voices[voiceNum].age;
1576 if ((channel == pVoiceMgr->voices[voiceNum].nextChannel) && (note == pVoiceMgr->voices[voiceNum].nextNote))
1592 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "VMCheckPolyphonyLimiting: polyphony limiting requires shutting down note %d \n", pVoiceMgr->voices[oldestVoiceNum].note); */ }
1594 VMStolenVoice(pVoiceMgr, pSynth, oldestVoiceNum, channel, note, velocity, regionIndex);
1610 void VMStartVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity, EAS_U16 regionIndex)
1646 pVoiceMgr->workload+= WORKLOAD_AMOUNT_START_NOTE;
1655 VMCheckKeyGroup(pVoiceMgr, pSynth, keyGroup, channel);
1660 if (VMCheckPolyphonyLimiting(pVoiceMgr, pSynth, channel, note, velocity, regionIndex, lowVoice, highVoice) == EAS_TRUE)
1666 if ((pSynth->maxPolyphony == 0) || (pVoiceMgr->maxPolyphony < pSynth->maxPolyphony))
1667 maxSynthPoly = pVoiceMgr->maxPolyphony;
1672 if ((pVoiceMgr->activeVoices < pVoiceMgr->maxPolyphony) &&
1674 (EAS_SUCCESS == VMFindAvailableVoice(pVoiceMgr, &voiceNum, lowVoice, highVoice)))
1676 S_SYNTH_VOICE *pVoice = &pVoiceMgr->voices[voiceNum];
1683 pVoiceMgr->activeVoices++;
1692 pVoiceMgr->voices[voiceNum].channel = VSynthToChannel(pSynth, channel);
1693 pVoiceMgr->voices[voiceNum].note = note;
1694 pVoiceMgr->voices[voiceNum].velocity = velocity;
1697 pVoiceMgr->voices[voiceNum].age = pVoiceMgr->age++;
1700 pVoiceMgr->voices[voiceNum].voiceState = eVoiceStateStart;
1703 IncVoicePoolCount(pVoiceMgr, pVoice);
1707 GetSynthPtr(voiceNum)->pfStartVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum), regionIndex);
1712 if (VMStealVoice(pVoiceMgr, pSynth, &voiceNum, channel, note, lowVoice, highVoice) == EAS_SUCCESS)
1713 VMStolenVoice(pVoiceMgr, pSynth, voiceNum, channel, note, velocity, regionIndex);
1747 void VMStartNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity)
1809 VMStartVoice(pVoiceMgr, pSynth, channel, note, velocity, regionIndex);
1833 VMStartVoice(pVoiceMgr, pSynth, channel, note, velocity, regionIndex);
1868 void VMStopNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 note, EAS_U8 velocity)
1889 pVoiceMgr->workload += WORKLOAD_AMOUNT_STOP_NOTE;
1897 if (eVoiceStateStolen != pVoiceMgr->voices[voiceNum].voiceState)
1901 if ((channel == pVoiceMgr->voices[voiceNum].channel) && (note == pVoiceMgr->voices[voiceNum].note))
1911 pVoiceMgr->voices[voiceNum].voiceFlags |= VOICE_FLAG_SUSTAIN_PEDAL_DEFER_NOTE_OFF;
1916 if (pVoiceMgr->voices[voiceNum].voiceFlags & VOICE_FLAG_NO_SAMPLES_SYNTHESIZED_YET)
1921 pVoiceMgr->voices[voiceNum].voiceFlags |= VOICE_FLAG_DEFER_MIDI_NOTE_OFF;
1927 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
1933 else if ((channel == pVoiceMgr->voices[voiceNum].nextChannel) && (note == pVoiceMgr->voices[voiceNum].nextNote))
1940 pVoiceMgr->voices[voiceNum].voiceFlags |= VOICE_FLAG_DEFER_MIDI_NOTE_OFF;
1960 EAS_RESULT VMFindAvailableVoice (S_VOICE_MGR *pVoiceMgr, EAS_INT *pVoiceNumber, EAS_I32 lowVoice, EAS_I32 highVoice)
1968 if ( pVoiceMgr->voices[voiceNum].voiceState == eVoiceStateFree)
2013 EAS_RESULT VMStealVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_INT *pVoiceNumber, EAS_U8 channel, EAS_U8 note, EAS_I32 lowVoice, EAS_I32 highVoice)
2030 pCurrVoice = &pVoiceMgr->voices[voiceNum];
2039 pCurrSynth = pVoiceMgr->pSynth[GET_VSYNTH(pCurrVoice->nextChannel)];
2045 pCurrSynth = pVoiceMgr->pSynth[GET_VSYNTH(pCurrVoice->channel)];
2109 if (pVoiceMgr->voices[bestCandidate].voiceState == eVoiceStateStolen)
2113 pVoiceMgr->voices[bestCandidate].nextChannel,
2114 pVoiceMgr->voices[bestCandidate].nextNote,
2115 pVoiceMgr->voices[bestCandidate].nextVelocity); */ }
2213 void VMControlChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 controller, EAS_U8 value)
2288 VMReleaseAllDeferredNoteOffs(pVoiceMgr, pSynth, channel);
2312 VMCatchNotesForSustainPedal(pVoiceMgr, pSynth, channel);
2381 VMAllNotesOff(pVoiceMgr, pSynth, channel);
2513 void VMUpdateStaticChannelParameters (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
2528 pSecondarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2530 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2532 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2552 pSecondarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2554 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2556 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2686 /*lint -esym(715, pVoiceMgr) reserved for future use */
2687 void VMProgramChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 program)
2790 EAS_I32 VMAddSamples (S_VOICE_MGR *pVoiceMgr, EAS_I32 *pMixBuffer, EAS_I32 numSamples)
2810 if ((pVoiceMgr->voices[voiceNum].voiceState == eVoiceStateStolen) && (pVoiceMgr->voices[voiceNum].gain <= 0))
2811 VMRetargetStolenVoice(pVoiceMgr, voiceNum);
2814 pSynth = pVoiceMgr->pSynth[pVoiceMgr->voices[voiceNum].channel >> 4];
2817 if (pVoiceMgr->voices[voiceNum].voiceState != eVoiceStateFree)
2819 done = GetSynthPtr(voiceNum)->pfUpdateVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum), pMixBuffer, numSamples);
2826 if (pVoiceMgr->voices[voiceNum].voiceState == eVoiceStateStolen)
2827 pVoiceMgr->voices[voiceNum].gain = 0;
2831 VMFreeVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum]);
2835 if (pVoiceMgr->voices[voiceNum].voiceFlags & VOICE_FLAG_DEFER_MUTE)
2837 pVoiceMgr->voices[voiceNum].voiceFlags &= ~(VOICE_FLAG_DEFER_MUTE | VOICE_FLAG_DEFER_MIDI_NOTE_OFF);
2838 VMMuteVoice(pVoiceMgr, voiceNum);
2842 if (pVoiceMgr->voices[voiceNum].voiceState == eVoiceStateStart)
2843 pVoiceMgr->voices[voiceNum].voiceState = eVoiceStatePlay;
2866 EAS_RESULT VMRender (S_VOICE_MGR *pVoiceMgr, EAS_I32 numSamples, EAS_I32 *pMixBuffer, EAS_I32 *pVoicesRendered)
2873 SanityCheck(pVoiceMgr);
2880 if (pVoiceMgr->pSynth[i] != NULL)
2881 VMUpdateStaticChannelParameters(pVoiceMgr, pVoiceMgr->pSynth[i]);
2885 *pVoicesRendered = VMAddSamples(pVoiceMgr, pMixBuffer, numSamples);
2896 pSynth = pVoiceMgr->pSynth[i];
2902 VMDeferredStopNote(pVoiceMgr, pSynth);
2916 VMInitializeAllChannels(pVoiceMgr, pSynth);
2917 VMInitializeAllVoices(pVoiceMgr, pSynth->vSynthNum);
2930 SanityCheck(pVoiceMgr);
2943 * pVoiceMgr - pointer to instance data
2951 void VMInitWorkload (S_VOICE_MGR *pVoiceMgr)
2953 pVoiceMgr->workload = 0;
2963 * pVoiceMgr - pointer to instance data
2971 void VMSetWorkload (S_VOICE_MGR *pVoiceMgr, EAS_I32 maxWorkLoad)
2973 pVoiceMgr->maxWorkLoad = maxWorkLoad;
2983 * pVoiceMgr - pointer to instance data
2991 EAS_BOOL VMCheckWorkload (S_VOICE_MGR *pVoiceMgr)
2993 if (pVoiceMgr->maxWorkLoad > 0)
2994 return (EAS_BOOL) (pVoiceMgr->workload >= pVoiceMgr->maxWorkLoad);
3027 * pVoiceMgr pointer to synthesizer data
3038 EAS_RESULT VMSetSynthPolyphony (S_VOICE_MGR *pVoiceMgr, EAS_I32 synth, EAS_I32 polyphonyCount)
3053 if (pVoiceMgr->maxPolyphonyPrimary == polyphonyCount)
3055 pVoiceMgr->maxPolyphonyPrimary = (EAS_U16) polyphonyCount;
3061 if (pVoiceMgr->maxPolyphonySecondary == polyphonyCount)
3063 pVoiceMgr->maxPolyphonySecondary = (EAS_U16) polyphonyCount;
3069 pVoiceMgr->maxPolyphony = pVoiceMgr->maxPolyphonyPrimary + pVoiceMgr->maxPolyphonySecondary;
3081 if (pVoiceMgr->maxPolyphony == polyphonyCount)
3084 pVoiceMgr->maxPolyphony = (EAS_U16) polyphonyCount;
3090 if (pVoiceMgr->pSynth[i])
3092 if (pVoiceMgr->pSynth[i]->synthFlags & SYNTH_FLAG_SP_MIDI_ON)
3093 VMMIPUpdateChannelMuting(pVoiceMgr, pVoiceMgr->pSynth[i]);
3095 pVoiceMgr->pSynth[i]->poolAlloc[0] = (EAS_U8) polyphonyCount;
3100 if (pVoiceMgr->activeVoices <= polyphonyCount)
3109 if ((pVoiceMgr->voices[i].voiceState != eVoiceStateFree) && (pVoiceMgr->voices[i].voiceState != eVoiceStateMuting))
3126 pVoice = &pVoiceMgr->voices[i];
3132 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
3177 VMMuteVoice(pVoiceMgr, bestCandidate);
3191 * pVoiceMgr pointer to synthesizer data
3201 EAS_RESULT VMGetSynthPolyphony (S_VOICE_MGR *pVoiceMgr, EAS_I32 synth, EAS_I32 *pPolyphonyCount)
3206 *pPolyphonyCount = pVoiceMgr->maxPolyphonyPrimary;
3208 *pPolyphonyCount = pVoiceMgr->maxPolyphonySecondary;
3214 *pPolyphonyCount = pVoiceMgr->maxPolyphony;
3227 * pVoiceMgr pointer to synthesizer data
3238 EAS_RESULT VMSetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 polyphonyCount)
3258 if (polyphonyCount > pVoiceMgr->maxPolyphony)
3259 polyphonyCount = pVoiceMgr->maxPolyphony;
3263 VMMIPUpdateChannelMuting(pVoiceMgr, pSynth);
3276 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) != pSynth->vSynthNum)
3280 if ((pVoiceMgr->voices[i].voiceState != eVoiceStateFree) && (pVoiceMgr->voices[i].voiceState != eVoiceStateMuting))
3295 pVoice = &pVoiceMgr->voices[i];
3340 VMMuteVoice(pVoiceMgr, bestCandidate);
3354 * pVoiceMgr pointer to synthesizer data
3365 /*lint -esym(715, pVoiceMgr) reserved for future use */
3366 EAS_RESULT VMGetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPolyphonyCount)
3379 * pVoiceMgr pointer to synthesizer data
3390 /*lint -esym(715, pVoiceMgr) reserved for future use */
3391 EAS_RESULT VMSetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 priority)
3404 * pVoiceMgr pointer to synthesizer data
3415 /*lint -esym(715, pVoiceMgr) reserved for future use */
3416 EAS_RESULT VMGetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPriority)
3523 EAS_RESULT VMSetGlobalEASLib (S_VOICE_MGR *pVoiceMgr, EAS_SNDLIB_HANDLE pEAS)
3531 pVoiceMgr->pGlobalEAS = pEAS;
3583 if (pEASData->pVoiceMgr->pGlobalDLS)
3584 DLSCleanup(pEASData->hwInstData, pEASData->pVoiceMgr->pGlobalDLS);
3586 pEASData->pVoiceMgr->pGlobalDLS = pDLS;
3708 VMReset(pEASData->pVoiceMgr, pSynth, EAS_TRUE);
3715 pEASData->pVoiceMgr->pSynth[vSynthNum] = NULL;
3738 if (pEASData->pVoiceMgr == NULL)
3743 if (pEASData->pVoiceMgr->pGlobalDLS)
3745 DLSCleanup(pEASData->hwInstData, pEASData->pVoiceMgr->pGlobalDLS);
3746 pEASData->pVoiceMgr->pGlobalDLS = NULL;
3752 EAS_HWFree(pEASData->hwInstData, pEASData->pVoiceMgr);
3753 pEASData->pVoiceMgr = NULL;
3815 pVoiceMgr->numVoiceStarts = 0;
3818 return pFrameInterface->pfStartFrame(pEASData->pVoiceMgr->pFrameBuffer);
3839 return pFrameInterface->pfEndFrame(pEASData->pVoiceMgr->pFrameBuffer, pEASData->pMixBuffer, pEASData->masterGain);
3871 pVoice = &pEASData->pVoiceMgr->voices[i];
3881 pSynth = pEASData->pVoiceMgr->pSynth[vSynthNum];
3898 pSynth = pEASData->pVoiceMgr->pSynth[vSynthNum];
3937 if (pEASData->pVoiceMgr->activeVoices != activeVoices)
3940 pEASData->pVoiceMgr->activeVoices, activeVoices); */ }
3947 if (pEASData->pVoiceMgr->pSynth[i] == NULL)
3950 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "Synth %d numActiveVoices: %d\n", i, pEASData->pVoiceMgr->pSynth[i]->numActiveVoices); */ }
3951 if (pEASData->pVoiceMgr->pSynth[i]->numActiveVoices > MAX_SYNTH_VOICES)
3953 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "VMSanityCheck: Synth %d illegal count for numActiveVoices: %d\n", i, pEASData->pVoiceMgr->pSynth[i]->numActiveVoices); */ }
3958 if (poolCount[i][j] != pEASData->pVoiceMgr->pSynth[i]->poolCount[j])
3961 i, j, pEASData->pVoiceMgr->pSynth[i]->poolCount[j], poolCount[i][j]); */ }