void CMackieControlBase::ConfigureParamOutput(SONAR_MIXER_STRIP eMixerStrip, DWORD dwStripNum, bool bAllowNone, CMixParam *pParam) { DWORD dwNumOutputs = GetNumOutputs(eMixerStrip, dwStripNum); if (0 == dwNumOutputs) { pParam->ClearBinding(); return; } float fMin = bAllowNone ? -1.0f : 0.0f; pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_OUTPUT, 0); pParam->SetAttribs(DT_SELECTOR, NO_DEFAULT, 1.0f, fMin, dwNumOutputs - 1.0f); }
SInt64 ReflectorSession::Run() { EventFlags events = this->GetEvents(); if (events & Task::kKillEvent) { return -1; } SInt64 sNowTime = OS::Milliseconds(); SInt64 sNoneTime = GetNoneOutputStartTimeMS(); if ((GetNumOutputs() == 0) && (sNowTime - sNoneTime >= /*QTSServerInterface::GetServer()->GetPrefs()->GetRTPSessionTimeoutInSecs()*/35 * 1000)) { QTSS_RoleParams theParams; theParams.easyStreamInfoParams.inStreamName = fSessionName.Ptr; theParams.easyStreamInfoParams.inChannel = fChannelNum; auto numModules = QTSServerInterface::GetNumModulesInRole(QTSSModule::kEasyCMSFreeStreamRole); for (UInt32 currentModule = 0; currentModule < numModules; currentModule++) { auto theModule = QTSServerInterface::GetModule(QTSSModule::kEasyCMSFreeStreamRole, currentModule); (void)theModule->CallDispatch(Easy_CMSFreeStream_Role, &theParams); } } else { QTSS_RoleParams theParams; theParams.easyStreamInfoParams.inStreamName = fSessionName.Ptr; theParams.easyStreamInfoParams.inChannel = fChannelNum; theParams.easyStreamInfoParams.inNumOutputs = fNumOutputs; theParams.easyStreamInfoParams.inBitrate = GetBitRate(); theParams.easyStreamInfoParams.inAction = easyRedisActionSet; auto numModules = QTSServerInterface::GetNumModulesInRole(QTSSModule::kRedisUpdateStreamInfoRole); for (UInt32 currentModule = 0; currentModule < numModules; currentModule++) { auto theModule = QTSServerInterface::GetModule(QTSSModule::kRedisUpdateStreamInfoRole, currentModule); (void)theModule->CallDispatch(Easy_RedisUpdateStreamInfo_Role, &theParams); } } return 20 *1000; }
void IPlugProcess::EffectInit() { TRACE; if (mPlug) { AddControl(new CPluginControl_OnOff('bypa', "Master Bypass\nMastrByp\nMByp\nByp", false, true)); // Default to off DefineMasterBypassControlIndex(1); int paramCount = mPlug->NParams(); for (int i=0; i<paramCount; i++) { IParam *p = mPlug->GetParam(i); switch (p->Type()) { case IParam::kTypeDouble: AddControl(new CPluginControl_Linear(' ld '+i, p->GetNameForHost(), p->GetMin(), p->GetMax(), p->GetStep(), p->GetDefault(), p->GetCanAutomate())); break; case IParam::kTypeInt: AddControl(new CPluginControl_Discrete(' ld '+i, p->GetNameForHost(), (long) p->GetMin(), (long) p->GetMax(), (long) p->GetDefault(), p->GetCanAutomate())); break; case IParam::kTypeEnum: case IParam::kTypeBool: { std::vector<std::string> displayTexts; for (int j=0; j<p->GetNDisplayTexts(); j++) { displayTexts.push_back(p->GetDisplayTextAtIdx(j)); } assert(displayTexts.size()); AddControl(new CPluginControl_List(' ld '+i, p->GetNameForHost(), displayTexts, (long) p->GetDefault(), p->GetCanAutomate())); break; } default: break; } } #if PLUG_DOES_MIDI if (!IsAS()) { ComponentResult result = noErr; Cmn_Int32 requestedVersion = 7; std::string midiNodeName(PLUG_NAME" Midi"); while (requestedVersion) { result = DirectMidi_RegisterClient(requestedVersion, this, reinterpret_cast<Cmn_UInt32>(this), (void **)&mDirectMidiInterface); if (result == noErr && mDirectMidiInterface != NULL) { mDirectMidiInterface->CreateRTASBufferedMidiNode(0, const_cast<char *>(midiNodeName.c_str()), 1); break; } requestedVersion--; } } #endif mPlug->SetIO(GetNumInputs(), GetNumOutputs()); mPlug->SetSampleRate(GetSampleRate()); mPlug->Reset(); } }