//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // HSPad::Initialize //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OSStatus HSPad::Initialize() { OSStatus ret = noErr; ret = AUMonotimbralInstrumentBase::Initialize(); if (ret != noErr) return ret; SetNotes(kNumNotes, kMaxActiveNotes, mHSNotes, sizeof(HSNote)); wavetable = new HSWavetable(kNumWavetables, GetOutput(0)->GetStreamFormat().mSampleRate, kNumSamplesPerWavetable, Globals()->GetParameter(kParameter_HarmonicBandwidth), Globals()->GetParameter(kParameter_HarmonicProfile), // Harmonic bandwidth scale Globals()->GetParameter(kParameter_HarmonicsAmount), Globals()->GetParameter(kParameter_HarmonicsCurveSteepness), Globals()->GetParameter(kParameter_HarmonicsBalance), kHarmonicsCompensation); if (0 == parameterListener) { ret = AUListenerCreate(MyEventListenerProc, this, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 0.5, ¶meterListener); if (ret != noErr) { return ret; } } for (int i=0; i<kNumParametersThatAreRelevantToWavetable; i++) { AudioUnitParameter parameter; parameter.mAudioUnit = GetComponentInstance(); parameter.mParameterID = kParametersThatAreRelevantToWavetable[i]; parameter.mScope = kAudioUnitScope_Global; parameter.mElement = 0; ret = AUListenerAddParameter(parameterListener, this, ¶meter); if (ret != noErr) { return ret; } } return ret; }
void HSPad::Cleanup() { for (int i=0; i<kNumParametersThatAreRelevantToWavetable; i++) { AudioUnitParameter parameter; parameter.mAudioUnit = GetComponentInstance(); parameter.mParameterID = kParametersThatAreRelevantToWavetable[i]; parameter.mScope = kAudioUnitScope_Global; parameter.mElement = 0; AUListenerRemoveParameter(parameterListener, 0, ¶meter); } delete wavetable; wavetable = 0; AUMonotimbralInstrumentBase::Cleanup(); }
void CComponentProxyManager::ResolveDependency() { for (uint32_t i = 0; i < m_pDependencyResolver->size(); ++i) { SDependencyResolver* pDependencyResolver = (*m_pDependencyResolver)[i]; CComponentBase* pComponentToBeLink = GetComponentInstance(pDependencyResolver->uInstanceId, pDependencyResolver->uGuid); BEATS_ASSERT(pComponentToBeLink != NULL, _T("Resolve dependency failed, Comopnent id %d guid 0x%x doesn't exist!"), pDependencyResolver->uInstanceId, pDependencyResolver->uGuid); BEATS_ASSERT(pDependencyResolver->pDescription != NULL); BEATS_ASSERT(pDependencyResolver->pVariableAddress == NULL, "pVariableAddress should be null in proxy mode"); BEATS_ASSERT(pComponentToBeLink != NULL, _T("Component %s id %d can't resolve its dependency %s to component guid 0x%x id %d, have you deleted that component recently?"), pDependencyResolver->pDescription->GetOwner()->GetClassStr(), pDependencyResolver->pDescription->GetOwner()->GetId(), pDependencyResolver->pDescription->GetDisplayName(), pDependencyResolver->uGuid, pDependencyResolver->uInstanceId); BEATS_ASSERT(pDependencyResolver->pDescription->GetDependencyLine(pDependencyResolver->uIndex)->GetConnectedComponent() == NULL); pDependencyResolver->pDescription->SetDependency(pDependencyResolver->uIndex, static_cast<CComponentProxy*>(pComponentToBeLink)); } BEATS_SAFE_DELETE_VECTOR(*m_pDependencyResolver); }
void CComponentInstanceManager::ResolveDependency() { for (uint32_t i = 0; i < m_pDependencyResolver->size(); ++i) { SDependencyResolver* pDependencyResolver = (*m_pDependencyResolver)[i]; CComponentBase* pComponentToBeLink = GetComponentInstance(pDependencyResolver->uInstanceId, pDependencyResolver->uGuid); BEATS_ASSERT(pComponentToBeLink != NULL, _T("Resolve dependency failed, Comopnent id %d guid 0x%x doesn't exist!"), pDependencyResolver->uInstanceId, pDependencyResolver->uGuid); BEATS_ASSERT(pDependencyResolver->pDescription == NULL); if (pDependencyResolver->pVariableAddress != NULL) { if (pDependencyResolver->bIsList) { pDependencyResolver->pAddFunc(pDependencyResolver->pVariableAddress, pComponentToBeLink); } else { BEATS_ASSERT(*(ptrdiff_t*)pDependencyResolver->pVariableAddress == 0, "the variable of address should be cleared."); *(ptrdiff_t*)pDependencyResolver->pVariableAddress = (ptrdiff_t)pComponentToBeLink; } } } BEATS_SAFE_DELETE_VECTOR(*m_pDependencyResolver); }