Esempio n. 1
0
// 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);
	}
}
Esempio n. 3
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;
}
Esempio n. 4
0
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();
}