TMIDICue::TMIDICue(entry_ref &theRef, int16 id, TCueChannel* parent, BRect bounds, uint32 startTime) : TCueView(id, parent, bounds, startTime, "MIDICue") { // Init member variables fEditor = NULL; // // Attempt to load data file // BNode theNode(&theRef); if (theNode.InitCheck() != B_OK) return; BNodeInfo nodeInfo(&theNode); if (nodeInfo.InitCheck() != B_OK) return; // First, make sure we have a valid ref if ( IsMIDI(nodeInfo) ) { // Create a BMessage that includes the entry_ref to send to our open routine BMessage* theMessage = new BMessage(B_REFS_RECEIVED); theMessage->AddRef("refs", &theRef); bool retVal = LoadMIDIFile(theMessage); // We are succesful. Init the cue if (retVal) { Init(); } // If we have an error, ask the user to locate a new data file else{ ShowPanel(); } } }
void CMackieControlBase::ConfParameterTrack(SONAR_MIXER_STRIP eMixerStrip, DWORD dwStripNum, DWORD dwPluginNum, DWORD dwIndex, DWORD dwModifiers, CMixParam *pParam) { if (m_bBindMuteSoloArm) // Include Mute/Solo/Arm? { // Insert them after Pan switch (dwIndex) { case 2: pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_MUTE, 0); pParam->SetAttribs(DT_BOOL); return; case 3: pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_SOLO, 0); pParam->SetAttribs(DT_BOOL); return; case 4: pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_RECORD_ARM, 0); pParam->SetAttribs(DT_BOOL); pParam->SetAlternateLabel("RecRdy"); return; default: break; } // Fake the indexes for the remaining entries if (dwIndex > 4) dwIndex -= 3; } if (IsMIDI(eMixerStrip, dwStripNum)) // MIDI { switch (dwIndex) { case IDX_DEFAULT_FADER: case 0: // Volume ConfigureVolume(eMixerStrip, dwStripNum, true, pParam); break; case 1: // Pan pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_PAN, 0); pParam->SetAttribs(DT_PAN, PAN_CENTER, PAN_STEP_SIZE); break; case 2: // Output ConfigureParamOutput(eMixerStrip, dwStripNum, false, pParam); pParam->SetAlternateLabel("Output"); break; case 3: // Input ConfigureParamInput(eMixerStrip, dwStripNum, true, pParam); pParam->SetAlternateLabel("Input"); break; case 4: // Bank pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_BANK, 0); pParam->SetAttribs(DT_SELECTOR, NO_DEFAULT, 1.0f, 0.0f, 127.0f); break; case 5: // Patch pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_PATCH, 0); pParam->SetAttribs(DT_SELECTOR, NO_DEFAULT, 1.0f, 0.0f, 127.0f); break; case 8: // Chorus pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_SEND_VOL, 0); pParam->SetAttribs(DT_LEVEL, VOL_MIDI_DEFAULT, VOL_MIDI_STEP_SIZE); pParam->SetAlternateLabel("Chorus"); break; case 12: // Reverb pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_SEND_VOL, 1); pParam->SetAttribs(DT_LEVEL, VOL_MIDI_DEFAULT, VOL_MIDI_STEP_SIZE); pParam->SetAlternateLabel("Reverb"); break; default: pParam->ClearBinding(); break; } } else // Audio { switch (dwIndex) { case IDX_DEFAULT_FADER: case 0: // Volume ConfigureVolume(eMixerStrip, dwStripNum, false, pParam); break; case 1: // Pan pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_PAN, 0); pParam->SetAttribs(DT_PAN, PAN_CENTER, PAN_STEP_SIZE); break; case 2: // Output ConfigureParamOutput(eMixerStrip, dwStripNum, false, pParam); pParam->SetAlternateLabel("Output"); break; case 3: // Input ConfigureParamInput(eMixerStrip, dwStripNum, true, pParam); pParam->SetAlternateLabel("Input"); break; case 4: // Phase pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_PHASE, 0); pParam->SetAttribs(DT_BOOL, 1.0f); break; case 5: // Mono/Stereo pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_INTERLEAVE, 0); pParam->SetAttribs(DT_INTERLEAVE, 2.0f, 1.0f, 1.0f, 2.0f); pParam->SetAlternateLabel("MonStr"); break; case 6: // Input Echo if (m_cState.HaveInputEcho()) { pParam->SetParams(eMixerStrip, dwStripNum, MIX_PARAM_INPUT_ECHO, 0); pParam->SetAttribs(DT_BOOL, 0.0f); } else { pParam->ClearBinding(); } break; default: // Aux Sends ConfigureAuxSends(eMixerStrip, dwStripNum, dwIndex - 7, pParam); break; } } }