// get a track from a project by selected track count index // rmk: to be used with SNM_CountSelectedTracks() and not the API's // CountSelectedTracks() which does not take the master into account.. MediaTrack* SNM_GetSelectedTrack(ReaProject* _proj, int _idx, bool _withMaster) { if (_withMaster) { MediaTrack* mtr = GetMasterTrack(_proj); if (mtr && *(int*)GetSetMediaTrackInfo(mtr, "I_SELECTED", NULL)) { if (!_idx) return mtr; else return GetSelectedTrack(_proj, _idx-1); } } return GetSelectedTrack(_proj, _idx); }
void CACTController::UpdateToolbarText() { CString strText; switch (m_eStripType) { case MIX_STRIP_TRACK: strText = "Trks"; break; case MIX_STRIP_AUX: strText = "Auxs"; break; case MIX_STRIP_BUS: strText = "Bus"; break; case MIX_STRIP_MAIN: strText = "VMns"; break; case MIX_STRIP_MASTER: strText = "Mstr"; break; default: strText = "Err"; break; } CString strBuf; strBuf.Format(" %u-%u", GetStripNum() + 1, GetStripNum() + NUM_SLIDERS); strText += strBuf; strBuf.Format(", Sel %u", GetSelectedTrack() + 1); strText += strBuf; strBuf.Format(", ACT %s", m_bUseDynamicMappings ? m_strOn : m_strOff); strText += strBuf; strBuf.Format(" %d%d%d", m_iRotaryBank + 1, m_iSliderBank + 1, m_iButtonBank + 1); strText += strBuf; if (m_strToolbarText != strText) { m_strToolbarText = strText; if (m_pProject) m_pProject->OnNewStatus(0); } }
RprTrackCtrPtr RprTrackCollec::getSelected() { int count = CountSelectedTracks(0); RprTrackCtrPtr ctr(new RprTrackCtr); for(int i = 0; i < count; i++) { RprTrack track(GetSelectedTrack(0, i)); ctr->add(track); } ctr->sort(); return ctr; }
bool SaveSelectedTracks() { if (g_savedSelectedTracks) return false; g_savedSelectedTracks = new (nothrow)vector < MediaTrack* > ; if (g_savedSelectedTracks) { for (int i = 0; i < CountSelectedTracks(NULL); ++i) if (MediaTrack* tr = GetSelectedTrack(NULL, i)) g_savedSelectedTracks->push_back(tr); return true; } return false; }
void CACTController::UpdateBindings() { TRACE("CACTController::UpdateBindings()\n"); int m, n, id; BuildDynControlsList(); id = 0; for (m = 0; m < NUM_BANKS; m++) { if (GetRotariesACTMode(m)) { for (n = 0; n < NUM_KNOBS; n++) BindToACT(&m_SwKnob[m][n], MASK_KNOB(id++)); } else { if (m_eRotariesMode == MCS_ASSIGNMENT_MUTLI_CHANNEL) { DWORD dwNumStrips = GetStripCount(m_eStripType); for (n = 0; n < NUM_KNOBS; n++) { DWORD dwStripNum = GetStripNum() + n; if (dwStripNum < dwNumStrips) BindParamToBinding(&m_SwKnob[m][n], m_eStripType, dwStripNum, m_dwKnobsBinding[m_iRotaryBank]); else m_SwKnob[m][n].ClearBinding(); } } else { for (n = 0; n < NUM_KNOBS; n++) BindNthParam(&m_SwKnob[m][n], m_eStripType, GetSelectedTrack(), n); } } } id = 0; for (m = 0; m < NUM_BANKS; m++) { if (GetSlidersACTMode(m)) { for (n = 0; n < NUM_SLIDERS; n++) BindToACT(&m_SwSlider[m][n], MASK_SLIDER(id++)); } else { DWORD dwNumStrips = GetStripCount(m_eStripType); for (n = 0; n < NUM_SLIDERS; n++) { DWORD dwStripNum = GetStripNum() + n; if (dwStripNum < dwNumStrips) BindParamToBinding(&m_SwSlider[m][n], m_eStripType, dwStripNum, m_dwSlidersBinding[m_iSliderBank]); else m_SwSlider[m][n].ClearBinding(); } } } id = 0; for (m = 0; m < NUM_BANKS; m++) { for (n = 0; n < NUM_VIRTUAL_BUTTONS; n++) { if (GetButtonACTMode(m, (VirtualButton)n)) BindToACT(&m_SwButton[m][n], MASK_BUTTON(id++)); else m_SwButton[m][n].ClearBinding(); } } m_dwUpdateCount++; OnContextSwitch(); }