Home | History | Annotate | Download | only in lib_src

Lines Matching refs:pSynth

125 EAS_INLINE const S_REGION* GetRegionPtr (S_SYNTH *pSynth, EAS_U16 regionIndex)
129 return &pSynth->pDLS->pDLSRegions[regionIndex & REGION_INDEX_MASK].wtRegion.region;
133 return &pSynth->pEAS->pFMRegions[regionIndex & REGION_INDEX_MASK].region;
135 return &pSynth->pEAS->pWTRegions[regionIndex].region;
137 return &pSynth->pEAS->pWTRegions[regionIndex].region;
139 return &pSynth->pEAS->pFMRegions[regionIndex].region;
165 EAS_INLINE EAS_U8 VSynthToChannel (S_SYNTH *pSynth, EAS_U8 channel)
168 return channel | (pSynth->vSynthNum << 4);
197 S_SYNTH *pSynth;
206 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
207 pool = pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool;
211 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
212 pool = pSynth->channels[GET_CHANNEL(pVoice->channel)].pool;
215 pSynth->poolCount[pool]++;
218 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "IncVoicePoolCount: Synth=%d pool=%d\n", pSynth->vSynthNum, pool); */ }
230 S_SYNTH *pSynth;
239 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
240 pool = pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool;
244 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
245 pool = pSynth->channels[GET_CHANNEL(pVoice->channel)].pool;
248 pSynth->poolCount[pool]--;
251 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "DecVoicePoolCount: Synth=%d pool=%d\n", pSynth->vSynthNum, pool); */ }
329 S_SYNTH *pSynth;
337 if (pEASData->pVoiceMgr->pSynth[0] != NULL)
344 pSynth = EAS_CMEnumData(EAS_CM_MIDI_DATA);
352 if (pEASData->pVoiceMgr->pSynth[virtualSynthNum] == NULL)
359 pSynth = EAS_HWMalloc(pEASData->hwInstData, sizeof(S_SYNTH));
363 if (pSynth == NULL)
368 EAS_HWMemSet(pSynth, 0, sizeof(S_SYNTH));
371 if ((result = VMSetEASLib(pSynth, pEASData->pVoiceMgr->pGlobalEAS)) != EAS_SUCCESS)
373 VMMIDIShutdown(pEASData, pSynth);
381 pSynth->pDLS = pEASData->pVoiceMgr->pGlobalDLS;
382 DLSAddRef(pSynth->pDLS);
387 pSynth->synthFlags = DEFAULT_SYNTH_FLAGS;
388 pSynth->masterVolume = DEFAULT_SYNTH_MASTER_VOLUME;
389 pSynth->refCount = 1;
390 pSynth->priority = DEFAULT_SYNTH_PRIORITY;
391 pSynth->poolAlloc[0] = (EAS_U8) pEASData->pVoiceMgr->maxPolyphony;
393 VMInitializeAllChannels(pEASData->pVoiceMgr, pSynth);
395 pSynth->vSynthNum = (EAS_U8) virtualSynthNum;
396 pEASData->pVoiceMgr->pSynth[virtualSynthNum] = pSynth;
398 *ppSynth = pSynth;
408 void VMIncRefCount (S_SYNTH *pSynth)
410 pSynth->refCount++;
440 void VMReset (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_BOOL force)
450 pVoiceMgr->activeVoices -= pSynth->numActiveVoices;
451 pSynth->numActiveVoices = 0;
452 VMInitializeAllVoices(pVoiceMgr, pSynth->vSynthNum);
455 VMMuteAllVoices(pVoiceMgr, pSynth);
458 if (pSynth->numActiveVoices == 0)
466 VMInitializeAllChannels(pVoiceMgr, pSynth);
468 pSynth->poolCount[i] = 0;
471 if (pSynth->maxPolyphony < pVoiceMgr->maxPolyphony)
472 pSynth->poolAlloc[0] = (EAS_U8) pVoiceMgr->maxPolyphony;
474 pSynth->poolAlloc[0] = (EAS_U8) pSynth->maxPolyphony;
477 pSynth->synthFlags &= ~SYNTH_FLAG_RESET_IS_REQUESTED;
482 pSynth->synthFlags |= SYNTH_FLAG_RESET_IS_REQUESTED;
497 void VMInitializeAllChannels (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
502 VMResetControllers(pSynth);
505 pChannel = pSynth->channels;
523 VMProgramChange(pVoiceMgr, pSynth, (EAS_U8) i, DEFAULT_SYNTH_PROGRAM_NUMBER);
540 void VMResetControllers (S_SYNTH *pSynth)
545 pChannel = pSynth->channels;
556 pSynth->channels[i].reverbSend = DEFAULT_REVERB_SEND;
560 pSynth->channels[i].chorusSend = DEFAULT_CHORUS_SEND;
614 S_SYNTH *pSynth;
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)
652 GetSynthPtr(voiceNum)->pfReleaseVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum));
662 void VMInitMIPTable (S_SYNTH *pSynth)
671 pSynth->synthFlags &= ~SYNTH_FLAG_SP_MIDI_ON;
674 pSynth->channels[i].pool = 0;
675 pSynth->channels[i].mip = 0;
686 void VMSetMIPEntry (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 priority, EAS_U8 mip)
696 pSynth->channels[channel].pool = priority;
697 pSynth->channels[channel].mip = mip;
709 void VMMIPUpdateChannelMuting (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
722 if (pSynth->maxPolyphony)
723 maxPolyphony = pSynth->maxPolyphony;
732 if ((pSynth->channels[i].mip != 0) && (pSynth->channels[i].mip <= maxPolyphony))
733 pSynth->channels[i].channelFlags &= ~CHANNEL_FLAG_MUTE;
735 pSynth->channels[i].channelFlags |= CHANNEL_FLAG_MUTE;
738 pSynth->poolCount[i] = 0;
762 if (vSynthNum != pSynth->vSynthNum)
766 pool = pSynth->channels[channel].pool;
769 if (pSynth->channels[channel].channelFlags & CHANNEL_FLAG_MUTE)
778 VMReleaseVoice(pVoiceMgr, pSynth, i);
779 pSynth->poolCount[pool]++;
785 pSynth->poolCount[pool]++;
800 void VMUpdateMIPTable (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
813 pSynth->synthFlags |= SYNTH_FLAG_SP_MIDI_ON;
820 if (pSynth->channels[i].pool != DEFAULT_SP_MIDI_PRIORITY)
821 priority[pSynth->channels[i].pool] = i;
833 pChannel = &pSynth->channels[priority[i]];
845 pSynth->poolAlloc[currentPool] = (EAS_U8) (pChannel->mip - currentMIP);
851 pSynth->synthFlags |= SYNTH_FLAG_SP_MIDI_ON;
854 VMMIPUpdateChannelMuting (pVoiceMgr, pSynth);
874 void VMMuteAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
887 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) == pSynth->vSynthNum)
891 else if (pSynth->vSynthNum == GET_VSYNTH(pVoiceMgr->voices[i].channel))
915 void VMReleaseAllVoices (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
922 if (pSynth->channels[ i ].channelFlags & CHANNEL_FLAG_SUSTAIN_PEDAL)
924 VMReleaseAllDeferredNoteOffs(pVoiceMgr, pSynth, (EAS_U8) i);
925 pSynth->channels[i].channelFlags &= ~CHANNEL_FLAG_SUSTAIN_PEDAL;
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)
980 void VMAllNotesOff (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
998 channel = VSynthToChannel(pSynth, channel);
1008 GetSynthPtr(voiceNum)->pfMuteVoice(pVoiceMgr, pSynth, pVoice, GetAdjustedVoiceNum(voiceNum));
1033 void VMDeferredStopNote (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
1097 if (pSynth->channels[channel].channelFlags & CHANNEL_FLAG_SUSTAIN_PEDAL)
1099 GetSynthPtr(voiceNum)->pfSustainPedal(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], &pSynth->channels[channel], GetAdjustedVoiceNum(voiceNum));
1104 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
1114 pSynth->synthFlags ^= SYNTH_FLAG_DEFERRED_MIDI_NOTE_OFF_PENDING;
1140 void VMReleaseAllDeferredNoteOffs (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
1158 channel = VSynthToChannel(pSynth, channel);
1170 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
1201 void VMCatchNotesForSustainPedal (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel)
1215 channel = VSynthToChannel(pSynth, channel);
1223 GetSynthPtr(voiceNum)->pfSustainPedal(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], &pSynth->channels[channel], GetAdjustedVoiceNum(voiceNum));
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)
1279 GetSynthPtr(voiceNum)->pfMuteVoice(pVoiceMgr, pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)], &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum));
1283 pVoice->nextChannel = VSynthToChannel(pSynth, channel);
1318 static void VMFreeVoice (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, S_SYNTH_VOICE *pVoice)
1334 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "VMFreeVoice: Synth=%d\n", pSynth->vSynthNum); */ }
1339 pSynth->numActiveVoices--;
1369 S_SYNTH *pSynth;
1374 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
1375 pMIDIChannel = &pSynth->channels[pVoice->channel & 15];
1376 pNextSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->nextChannel)];
1387 if ((pSynth->synthFlags & SYNTH_FLAG_SP_MIDI_ON) &&
1390 VMFreeVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum]);
1400 pSynth->numActiveVoices--;
1447 void VMCheckKeyGroup (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U16 keyGroup, EAS_U8 channel)
1456 channel = VSynthToChannel(pSynth, channel);
1465 pSynth, pVoiceMgr->voices[voiceNum].regionIndex);
1490 pRegion = GetRegionPtr(pSynth, pVoiceMgr->voices[voiceNum].nextRegionIndex);
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)
1548 channel = VSynthToChannel(pSynth, channel);
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)
1619 pChannel = &pSynth->channels[channel];
1620 pRegion = GetRegionPtr(pSynth, regionIndex);
1649 if (pSynth->poolCount[pChannel->pool] != 0)
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))
1669 maxSynthPoly = pSynth->maxPolyphony;
1673 (pSynth->numActiveVoices < maxSynthPoly) &&
1679 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "VMStartVoice: Synth=%d\n", pSynth->vSynthNum); */ }
1684 pSynth->numActiveVoices++;
1692 pVoiceMgr->voices[voiceNum].channel = VSynthToChannel(pSynth, channel);
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)
1754 pSynth->totalNoteCount++;
1756 pChannel = &pSynth->channels[channel];
1764 if ((pChannel->channelFlags & CHANNEL_FLAG_EXTERNAL_AUDIO) && (pSynth->cbEventFunc != NULL))
1771 if (pSynth->cbEventFunc(pSynth->pExtAudioInstData, &event))
1784 adjustedNote += pChannel->coarsePitch + pSynth->globalTranspose;
1803 const S_DLS_REGION *pDLSRegion = (S_DLS_REGION*) GetRegionPtr(pSynth, regionIndex);
1809 VMStartVoice(pVoiceMgr, pSynth, channel, note, velocity, regionIndex);
1828 const S_REGION *pRegion = GetRegionPtr(pSynth, 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)
1873 pChannel = &(pSynth->channels[channel]);
1876 if ((pChannel->channelFlags & CHANNEL_FLAG_EXTERNAL_AUDIO) && (pSynth->cbEventFunc != NULL))
1883 if (pSynth->cbEventFunc(pSynth->pExtAudioInstData, &event))
1891 channel = VSynthToChannel(pSynth, channel);
1922 pSynth->synthFlags |= SYNTH_FLAG_DEFERRED_MIDI_NOTE_OFF_PENDING;
1927 VMReleaseVoice(pVoiceMgr, pSynth, voiceNum);
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)
2039 pCurrSynth = pVoiceMgr->pSynth[GET_VSYNTH(pCurrVoice->nextChannel)];
2045 pCurrSynth = pVoiceMgr->pSynth[GET_VSYNTH(pCurrVoice->channel)];
2051 if (pSynth->priority > pCurrSynth->priority)
2054 // { /* dpp: EAS_ReportEx(_EAS_SEVERITY_INFO, "VMStealVoice: New priority = %d exceeds old priority = %d\n", pSynth->priority, pCurrSynth->priority); */ }
2075 if (pSynth->synthFlags & SYNTH_FLAG_SP_MIDI_ON)
2079 if (pSynth->poolCount[pChannel->pool] >= pSynth->poolAlloc[pChannel->pool])
2080 currentPriority += (pSynth->poolCount[pChannel->pool] -pSynth->poolAlloc[pChannel->pool] + 1) << CHANNEL_POLY_STEAL_WEIGHT;
2139 void VMChannelPressure (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 value)
2143 pChannel = &(pSynth->channels[channel]);
2181 void VMPitchBend (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 nPitchLSB, EAS_U8 nPitchMSB)
2185 pChannel = &(pSynth->channels[channel]);
2213 void VMControlChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 controller, EAS_U8 value)
2217 pChannel = &(pSynth->channels[channel]);
2288 VMReleaseAllDeferredNoteOffs(pVoiceMgr, pSynth, channel);
2312 VMCatchNotesForSustainPedal(pVoiceMgr, pSynth, channel);
2323 pSynth->channels[channel].reverbSend = value;
2329 pSynth->channels[channel].chorusSend = value;
2371 VMUpdateRPNStateMachine(pSynth, channel, controller, value);
2381 VMAllNotesOff(pVoiceMgr, pSynth, channel);
2422 EAS_RESULT VMUpdateRPNStateMachine (S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 controller, EAS_U8 value)
2435 pChannel = &(pSynth->channels[channel]);
2513 void VMUpdateStaticChannelParameters (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth)
2517 if (pSynth->synthFlags & SYNTH_FLAG_UPDATE_ALL_CHANNEL_PARAMETERS)
2527 if (pSynth->channels[channel].regionIndex & FLAG_RGN_IDX_FM_SYNTH)
2528 pSecondarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2530 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2532 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2540 pSynth->synthFlags &= ~SYNTH_FLAG_UPDATE_ALL_CHANNEL_PARAMETERS;
2548 if ( 0 != (pSynth->channels[channel].channelFlags & CHANNEL_FLAG_UPDATE_CHANNEL_PARAMETERS))
2551 if (pSynth->channels[channel].regionIndex & FLAG_RGN_IDX_FM_SYNTH)
2552 pSecondarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2554 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2556 pPrimarySynth->pfUpdateChannel(pVoiceMgr, pSynth, (EAS_U8) channel);
2687 void VMProgramChange (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_U8 channel, EAS_U8 program)
2694 { /* dpp: EAS_ReportEx(_EAS_SEVERITY_DETAIL, "VMProgramChange: vSynthNum=%d, channel=%d, program=%d\n", pSynth->vSynthNum, channel, program); */ }
2698 pChannel = &pSynth->channels[channel];
2717 if (pSynth->cbProgChgFunc != NULL)
2723 if (pSynth->cbProgChgFunc(pSynth->pExtAudioInstData, &prgChg))
2732 if (VMFindDLSProgram(pSynth->pDLS, bank, program, &regionIndex) != EAS_SUCCESS)
2739 if (VMFindProgram(pSynth->pEAS, bank, program, &regionIndex) != EAS_SUCCESS)
2743 if (pSynth->channels[channel].channelFlags & CHANNEL_FLAG_RHYTHM_CHANNEL)
2748 if (VMFindProgram(pSynth->pEAS, bank, program, &regionIndex) != EAS_SUCCESS)
2752 if (VMFindProgram(pSynth->pEAS, bank, 0, &regionIndex) != EAS_SUCCESS)
2792 S_SYNTH *pSynth;
2814 pSynth = pVoiceMgr->pSynth[pVoiceMgr->voices[voiceNum].channel >> 4];
2819 done = GetSynthPtr(voiceNum)->pfUpdateVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum], GetAdjustedVoiceNum(voiceNum), pMixBuffer, numSamples);
2831 VMFreeVoice(pVoiceMgr, pSynth, &pVoiceMgr->voices[voiceNum]);
2868 S_SYNTH *pSynth;
2880 if (pVoiceMgr->pSynth[i] != NULL)
2881 VMUpdateStaticChannelParameters(pVoiceMgr, pVoiceMgr->pSynth[i]);
2896 pSynth = pVoiceMgr->pSynth[i];
2898 if (pSynth== NULL)
2901 if (pSynth->synthFlags & SYNTH_FLAG_DEFERRED_MIDI_NOTE_OFF_PENDING)
2902 VMDeferredStopNote(pVoiceMgr, pSynth);
2905 if ((pSynth->synthFlags & SYNTH_FLAG_RESET_IS_REQUESTED) &&
2906 (pSynth->numActiveVoices == 0))
2916 VMInitializeAllChannels(pVoiceMgr, pSynth);
2917 VMInitializeAllVoices(pVoiceMgr, pSynth->vSynthNum);
2920 pSynth->synthFlags &= ~SYNTH_FLAG_RESET_IS_REQUESTED;
2925 pSynth->channels[channel].channelFlags &= ~CHANNEL_FLAG_UPDATE_CHANNEL_PARAMETERS;
3014 EAS_I32 VMActiveVoices (S_SYNTH *pSynth)
3016 return pSynth->numActiveVoices;
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;
3116 S_SYNTH *pSynth;
3132 pSynth = pVoiceMgr->pSynth[GET_VSYNTH(pVoice->channel)];
3141 currentPriority += pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool << CHANNEL_PRIORITY_STEAL_WEIGHT;
3154 currentPriority += pSynth->channels[GET_CHANNEL(pVoice->channel)].pool << CHANNEL_PRIORITY_STEAL_WEIGHT;
3158 currentPriority += pSynth->priority << SYNTH_PRIORITY_WEIGHT;
3176 /*lint -e{771} pSynth is initialized if bestCandidate >= 0 */
3229 * pSynth pointer to virtual synth
3238 EAS_RESULT VMSetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 polyphonyCount)
3250 pSynth->maxPolyphony = 0;
3255 pSynth->maxPolyphony = (EAS_U16) polyphonyCount;
3262 if (pSynth->synthFlags & SYNTH_FLAG_SP_MIDI_ON)
3263 VMMIPUpdateChannelMuting(pVoiceMgr, pSynth);
3265 pSynth->poolAlloc[0] = (EAS_U8) polyphonyCount;
3268 if (pSynth->numActiveVoices <= polyphonyCount)
3276 if (GET_VSYNTH(pVoiceMgr->voices[i].nextChannel) != pSynth->vSynthNum)
3298 if (GET_VSYNTH(pVoice->nextChannel) != pSynth->vSynthNum)
3308 currentPriority += pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool << CHANNEL_PRIORITY_STEAL_WEIGHT;
3321 currentPriority += pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool << CHANNEL_PRIORITY_STEAL_WEIGHT;
3356 * pSynth pointer to virtual synth
3366 EAS_RESULT VMGetPolyphony (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPolyphonyCount)
3368 *pPolyphonyCount = (EAS_U16) pSynth->maxPolyphony;
3381 * pSynth pointer to virtual synth
3391 EAS_RESULT VMSetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 priority)
3393 pSynth->priority = (EAS_U8) priority ;
3406 * pSynth pointer to virtual synth
3416 EAS_RESULT VMGetPriority (S_VOICE_MGR *pVoiceMgr, S_SYNTH *pSynth, EAS_I32 *pPriority)
3418 *pPriority = pSynth->priority;
3440 void VMSetVolume (S_SYNTH *pSynth, EAS_U16 masterVolume)
3442 pSynth->masterVolume = masterVolume;
3443 pSynth->synthFlags |= SYNTH_FLAG_UPDATE_ALL_CHANNEL_PARAMETERS;
3452 void VMSetPitchBendRange (S_SYNTH *pSynth, EAS_INT channel, EAS_I16 pitchBendRange)
3454 pSynth->channels[channel].pitchBendSensitivity = pitchBendRange;
3551 EAS_RESULT VMSetEASLib (S_SYNTH *pSynth, EAS_SNDLIB_HANDLE pEAS)
3559 pSynth->pEAS = pEAS;
3606 EAS_RESULT VMSetDLSLib (S_SYNTH *pSynth, EAS_DLSLIB_HANDLE pDLS)
3608 pSynth->pDLS = pDLS;
3631 void VMSetTranposition (S_SYNTH *pSynth, EAS_I32 transposition)
3633 pSynth->globalTranspose = (EAS_I8) transposition;
3654 void VMGetTranposition (S_SYNTH *pSynth, EAS_I32 *pTransposition)
3656 *pTransposition = pSynth->globalTranspose;
3665 EAS_I32 VMGetNoteCount (S_SYNTH *pSynth)
3667 return pSynth->totalNoteCount;
3686 void VMMIDIShutdown (S_EAS_DATA *pEASData, S_SYNTH *pSynth)
3691 if (--pSynth->refCount > 0)
3694 vSynthNum = pSynth->vSynthNum;
3699 if (pSynth->pDLS != NULL)
3702 if ((result = DLSCleanup(pEASData->hwInstData, pSynth->pDLS)) != EAS_SUCCESS)
3704 pSynth->pDLS = NULL;
3708 VMReset(pEASData->pVoiceMgr, pSynth, EAS_TRUE);
3712 EAS_HWFree(pEASData->hwInstData, pSynth);
3715 pEASData->pVoiceMgr->pSynth[vSynthNum] = NULL;
3763 void VMRegExtAudioCallback (S_SYNTH *pSynth, EAS_VOID_PTR pInstData, EAS_EXT_PRG_CHG_FUNC cbProgChgFunc, EAS_EXT_EVENT_FUNC cbEventFunc)
3765 pSynth->pExtAudioInstData = pInstData;
3766 pSynth->cbProgChgFunc = cbProgChgFunc;
3767 pSynth->cbEventFunc = cbEventFunc;
3776 void VMGetMIDIControllers (S_SYNTH *pSynth, EAS_U8 channel, S_MIDI_CONTROLLERS *pControl)
3778 pControl->modWheel = pSynth->channels[channel].modWheel;
3779 pControl->volume = pSynth->channels[channel].volume;
3780 pControl->pan = pSynth->channels[channel].pan;
3781 pControl->expression = pSynth->channels[channel].expression;
3782 pControl->channelPressure = pSynth->channels[channel].channelPressure;
3785 pControl->reverbSend = pSynth->channels[channel].reverbSend;
3789 pControl->chorusSend = pSynth->channels[channel].chorusSend;
3851 S_SYNTH *pSynth;
3881 pSynth = pEASData->pVoiceMgr->pSynth[vSynthNum];
3898 pSynth = pEASData->pVoiceMgr->pSynth[vSynthNum];
3901 poolCount[vSynthNum][pSynth->channels[GET_CHANNEL(pVoice->nextChannel)].pool]++;
3908 poolCount[vSynthNum][pSynth->channels[GET_CHANNEL(pVoice->channel)].pool]++;
3914 poolCount[vSynthNum][pSynth->channels[GET_CHANNEL(pVoice->channel)].pool]++;
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]); */ }