Exemple #1
0
void ColorTimer()
{
	static int iRulerLaneCol[3];
	static bool bRecording = false;

	if (!bRecording && g_bRecRedRuler && GetPlayState() & 4)
	{
		int iSize;
		ColorTheme* colors = (ColorTheme*)GetColorThemeStruct(&iSize);
		for (int i = 0; i < 3; i++)
		{
			iRulerLaneCol[i] = colors->ruler_lane_bgcolor[i];
			colors->ruler_lane_bgcolor[i] = RGB(0xFF, 0, 0);
		}
		UpdateTimeline();
		bRecording = true;
	}
	else if (bRecording && (!g_bRecRedRuler || !(GetPlayState() & 4)))
	{
		int iSize;
		ColorTheme* colors = (ColorTheme*)GetColorThemeStruct(&iSize);
		for (int i = 0; i < 3; i++)
			colors->ruler_lane_bgcolor[i] = iRulerLaneCol[i];
		UpdateTimeline();
		bRecording = false;
	}
}
Exemple #2
0
void RMSNormalizeAll(double dTargetDb, double dWindowSize)
{
	WDL_TypedBuf<MediaItem*> items;
	SWS_GetSelectedMediaItems(&items);
	double dMaxRMS = -DBL_MAX;
	ANALYZE_PCM a;
	memset(&a, 0, sizeof(a));
	a.dWindowSize = dWindowSize;

	for (int i = 0; i < items.GetSize(); i++)
	{
		MediaItem* mi = items.Get()[i];
		MediaItem_Take* take = GetMediaItemTake(mi, -1);
		if (take && AnalyzeItem(mi, &a) && a.dRMS != 0.0 && a.dRMS > dMaxRMS)
			dMaxRMS = a.dRMS;
	}

	if (dMaxRMS > -DBL_MAX)
	{
		for (int i = 0; i < items.GetSize(); i++)
		{
			MediaItem* mi = items.Get()[i];
			MediaItem_Take* take = GetMediaItemTake(mi, -1);
			if (take)
			{
				double dVol = *(double*)GetSetMediaItemTakeInfo(take, "D_VOL", NULL);
				dVol *= DB2VAL(dTargetDb) / dMaxRMS;
				GetSetMediaItemTakeInfo(take, "D_VOL", &dVol);
			}
		}
		UpdateTimeline();
		Undo_OnStateChangeEx(__LOCALIZE("Normalize items to RMS","sws_undo"), UNDO_STATE_ITEMS, -1);
	}
}
Exemple #3
0
void SelULItem(COMMAND_T* = NULL)
{
	UnselOnTracks();
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		int iNumItems = GetTrackNumMediaItems(tr);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL) && iNumItems)
		{
			MediaItem* pUL = GetTrackMediaItem(tr, 0);
			double dFirstPos = *(double*)GetSetMediaItemInfo(pUL, "D_POSITION", NULL);
			float fFIPMy = *(float*)GetSetMediaItemInfo(pUL, "F_FREEMODE_Y", NULL);
			for (int j = 1; j < iNumItems; j++)
			{
				if (dFirstPos != *(double*)GetSetMediaItemInfo(GetTrackMediaItem(tr, j), "D_POSITION", NULL))
					break;
				if (fFIPMy > *(float*)GetSetMediaItemInfo(GetTrackMediaItem(tr, j), "F_FREEMODE_Y", NULL))
				{
					pUL = GetTrackMediaItem(tr, j);
					fFIPMy = *(float*)GetSetMediaItemInfo(pUL, "F_FREEMODE_Y", NULL);
				}
			}
			GetSetMediaItemInfo(pUL, "B_UISEL", &g_bTrue);
		}
	}
	UpdateTimeline();
}
Exemple #4
0
void SelPrevItem(COMMAND_T* ctx)
{
	// Find the last selected
	MediaItem* prevMi = NULL;
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (GetTrackVis(tr) & 2)
		{
			for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
			{
				MediaItem* mi = GetTrackMediaItem(tr, j);
				if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
				{
					if (prevMi)
					{
						if (ctx->user == 0)
							Main_OnCommand(40289, 0); // Unselect all items
						GetSetMediaItemInfo(prevMi, "B_UISEL", &g_bTrue);
						UpdateTimeline();
						return;
					}
				}
				prevMi = mi;
			}
		}
	}
}
Exemple #5
0
void ItemGradient(COMMAND_T* = NULL)
{
	int iCurPos = 0;
	int iNumSel = 0;
	// First, must count the number of selected items 
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
			if (*(bool*)GetSetMediaItemInfo(GetTrackMediaItem(tr, j), "B_UISEL", NULL))
				iNumSel++;
	}
	// Now, set the colors
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
			{
				COLORREF cr = CalcGradient(g_crGradStart, g_crGradEnd, (double)iCurPos++ / (iNumSel-1)) | 0x1000000;
				GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &cr);
			}
		}
	}
	Undo_OnStateChange(__LOCALIZE("Set selected item(s) to color gradient","sws_undo"));
	UpdateTimeline();
}
Exemple #6
0
void CustomColorAll(COMMAND_T*)
{	
	// Get the first selected track
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
		{
			Undo_BeginBlock();
			Main_OnCommand(40357, 0); // Set track(s) to one custom color
			// Assume the user clicked 'OK' in the color picker!
			COLORREF cr = *(COLORREF*)GetSetMediaTrackInfo(tr, "I_CUSTOMCOLOR", NULL);
			for (int i = 1; i <= GetNumTracks(); i++)
			{
				tr = CSurf_TrackFromID(i, false);
				for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
				{
					MediaItem* mi = GetTrackMediaItem(tr, j);
					if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
						GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &cr);
				}
			}
			UpdateTimeline();
			Undo_EndBlock(__LOCALIZE("Set selected track(s)/item(s) to custom color","sws_undo"), UNDO_STATE_ALL);
			return;
		}
	}
	// No tracks selected so just run the item action
	Main_OnCommand(40704, 0); // Set item(s) to one custom color
}
Exemple #7
0
void TakeRandomCols(COMMAND_T* = NULL)
{
	COLORREF cr;
	// All black check
	if (AllBlack())
		return;
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
			{
				for (int h = 0; h < CountTakes(mi); h++)
				{
					while (!(cr = g_custColors[rand() % 16]));
					cr |= 0x1000000;
					GetSetMediaItemTakeInfo(GetTake(mi, h), "I_CUSTOMCOLOR", &cr);
				}
			}
		}
	}
	Undo_OnStateChange(__LOCALIZE("Set takes in selected item(s) to random custom color(s)","sws_undo"));
	UpdateTimeline();
}
Exemple #8
0
void RegionsFromItems(COMMAND_T* ct)
{
	// Ignore the fact that the user may have items selected with the exact same times.  Just blindly create regions!
	WDL_TypedBuf<MediaItem*> items;
	SWS_GetSelectedMediaItems(&items);
	bool bUndo = false;
	for (int i = 0; i < items.GetSize(); i++)
	{
		MediaItem_Take* take = GetActiveTake(items.Get()[i]);
		if (take)
		{
			char* cName = (char*)GetSetMediaItemTakeInfo(take, "P_NAME", NULL);
			double dStart = *(double*)GetSetMediaItemInfo(items.Get()[i], "D_POSITION", NULL);
			double dEnd = *(double*)GetSetMediaItemInfo(items.Get()[i], "D_LENGTH", NULL) + dStart;
			AddProjectMarker(NULL, true, dStart, dEnd, cName, -1);
			bUndo = true;
		}
		else if (!CountTakes(items.Get()[i]))  /* In case of an empty item there is no take so process item instead */
		{
			double dStart = *(double*)GetSetMediaItemInfo(items.Get()[i], "D_POSITION", NULL);
			double dEnd = *(double*)GetSetMediaItemInfo(items.Get()[i], "D_LENGTH", NULL) + dStart;
			AddProjectMarker(NULL, true, dStart, dEnd, NULL, -1);
			bUndo = true;
		}
	}
	if (bUndo)
	{
		UpdateTimeline();
		Undo_OnStateChangeEx(SWS_CMD_SHORTNAME(ct), UNDO_STATE_MISCCFG, -1);
	}
}
Exemple #9
0
void HideAll(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
		SetTrackVis(CSurf_TrackFromID(i, false), 0);
	TrackList_AdjustWindows(MAJORADJUST);
	UpdateTimeline();
	Undo_OnStateChangeEx(__LOCALIZE("Hide all tracks","sws_undo"), UNDO_STATE_TRACKCFG, -1);
}
Exemple #10
0
bool FilteredVisState::UpdateReaper(bool bHideFiltered)
{
	bool bChanged = false;

	// Remove tracks from filteredOut that aren't in the project
	for (int i = 0; i < m_filteredOut.GetSize(); i++)
		if (CSurf_TrackToID(m_filteredOut.Get(i)->tr, false) <= 0)
			m_filteredOut.Delete(i--, true);

	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		int iVis = GetTrackVis(tr);
		int iNewVis = iVis;
		bool bShow = !bHideFiltered || MatchesFilter(tr);

		// Is this track in the filteredOut list?
		int j;
		for (j = 0; j < m_filteredOut.GetSize(); j++)
			if (m_filteredOut.Get(j)->tr == tr)
				break;
		
		if (j < m_filteredOut.GetSize())
		{
			if (bShow)
			{
				iNewVis = m_filteredOut.Get(j)->iVis;
				m_filteredOut.Delete(j, true);
			}
			else
				iNewVis = 0;
		}
		else if (!bShow)
		{
			iNewVis = 0;
			TrackVisState* tvs = m_filteredOut.Add(new TrackVisState);
			tvs->tr = tr;
			tvs->iVis = iVis;
		}

		if (iVis != iNewVis)
		{
			SetTrackVis(tr, iNewVis);
			bChanged = true;
		}
	}

	if (bChanged)
	{
		TrackList_AdjustWindows(false);
		UpdateTimeline();
	}

	return bChanged;
}
Exemple #11
0
void MinimizeTracks(COMMAND_T* = NULL)
{
	for (int i = 0; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			GetSetMediaTrackInfo(tr, "I_HEIGHTOVERRIDE", &g_i1);
	}
	TrackList_AdjustWindows(false);
	UpdateTimeline();
}
Exemple #12
0
void UnselOnTracks(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
				GetSetMediaItemInfo(GetTrackMediaItem(tr, j), "B_UISEL", &g_bFalse);
	}
	UpdateTimeline();
}
Exemple #13
0
void ShowAllTCP(COMMAND_T*)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		SetTrackVis(tr, GetTrackVis(tr) | 2);
	}
	TrackList_AdjustWindows(MAJORADJUST);
	UpdateTimeline();
	Undo_OnStateChangeEx(__LOCALIZE("Show all tracks in TCP","sws_undo"), UNDO_STATE_TRACKCFG, -1);
}
Exemple #14
0
void ToggleHide(COMMAND_T*)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			SetTrackVis(tr, GetTrackVis(tr) ? 0 : 3);
	}
	TrackList_AdjustWindows(MAJORADJUST);
	UpdateTimeline();
	Undo_OnStateChangeEx(__LOCALIZE("Toggle selected tracks fully visible/hidden","sws_undo"), UNDO_STATE_TRACKCFG, -1);
}
Exemple #15
0
void HideUnSel(COMMAND_T*)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (!*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			SetTrackVis(tr, 0);
	}
	TrackList_AdjustWindows(MAJORADJUST);
	UpdateTimeline();
	Undo_OnStateChangeEx(__LOCALIZE("Hide unselected tracks","sws_undo"), UNDO_STATE_TRACKCFG, -1);
}
Exemple #16
0
void SelMutedItems(COMMAND_T* ct)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			bool sel = *(bool*)GetSetMediaItemInfo(mi, "B_MUTE", NULL);
			if ((int)ct->user == 0) sel = !sel;
			GetSetMediaItemInfo(mi, "B_UISEL", &sel);
		}
	}
	UpdateTimeline();
}
Exemple #17
0
void MarkerList::UpdateReaper()
{	// Function to take content of list and update Reaper environment
	// First delete all markers/regions, then regen from list
	bool bReg;
	int iID;
	while (EnumProjectMarkers(0, &bReg, NULL, NULL, NULL, &iID))
		DeleteProjectMarker(NULL, iID, bReg);

	SWS_SectionLock lock(&m_mutex);

	for (int i = 0; i < m_items.GetSize(); i++)
		m_items.Get(i)->AddToProject();

	UpdateTimeline();
}
Exemple #18
0
void OrganizeByVol(COMMAND_T* ct)
{
	for (int iTrack = 1; iTrack <= GetNumTracks(); iTrack++)
	{
		WDL_TypedBuf<MediaItem*> items;
		SWS_GetSelectedMediaItemsOnTrack(&items, CSurf_TrackFromID(iTrack, false));
		if (items.GetSize() > 1)
		{
			double dStart = *(double*)GetSetMediaItemInfo(items.Get()[0], "D_POSITION", NULL);
			double* pVol = new double[items.GetSize()];
			ANALYZE_PCM a;
			memset(&a, 0, sizeof(a));
			if (ct->user == 2)
			{	// Windowed mode, set the window size
				char str[100];
				GetPrivateProfileString(SWS_INI, SWS_RMS_KEY, "-20,0.1", str, 100, get_ini_file());
				char* pWindow = strchr(str, ',');
				a.dWindowSize = pWindow ? atof(pWindow+1) : 0.1;
			}
			for (int i = 0; i < items.GetSize(); i++)
			{
				pVol[i] = -1.0;
				if (AnalyzeItem(items.Get()[i], &a))
					pVol[i] = ct->user ? a.dRMS : a.dPeakVal;
			}
			// Sort and arrange items from min to max RMS
			while (true)
			{
				int iItem = -1;
				double dMinVol = 1e99;
				for (int i = 0; i < items.GetSize(); i++)
					if (pVol[i] >= 0.0 && pVol[i] < dMinVol)
					{
						dMinVol = pVol[i];
						iItem = i;
					}
				if (iItem == -1)
					break;
				pVol[iItem] = -1.0;
				GetSetMediaItemInfo(items.Get()[iItem], "D_POSITION", &dStart);
				dStart += *(double*)GetSetMediaItemInfo(items.Get()[iItem], "D_LENGTH", NULL);
			}
			delete [] pVol;
			UpdateTimeline();
			Undo_OnStateChangeEx(SWS_CMD_SHORTNAME(ct), UNDO_STATE_ITEMS, -1);
		}
	}
}
Exemple #19
0
void SelLockedItems(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(char*)GetSetMediaItemInfo(mi, "C_LOCK", NULL))
				GetSetMediaItemInfo(mi, "B_UISEL", &g_i1);
			else
				GetSetMediaItemInfo(mi, "B_UISEL", &g_i0);
		}
	}
	UpdateTimeline();
}
Exemple #20
0
void ShowInTCPEx(COMMAND_T*)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		int iVis = GetTrackVis(tr);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			SetTrackVis(tr, iVis | 2);
		else
			SetTrackVis(tr, iVis & 1);

	}
	TrackList_AdjustWindows(MAJORADJUST);
	UpdateTimeline();
	Undo_OnStateChangeEx(__LOCALIZE("Show selected tracks in TCP, hide others","sws_undo"), UNDO_STATE_TRACKCFG, -1);
}
Exemple #21
0
void BlackItem(COMMAND_T* = NULL)
{
	int iBlack = 0x1000000 | RGB(0, 0, 0);
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
				GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &iBlack);
		}
	}
	Undo_OnStateChange(__LOCALIZE("Set item(s) color black","sws_undo"));
	UpdateTimeline();
}
Exemple #22
0
EnvelopeProcessor::ErrorCode EnvelopeProcessor::processTakeEnv(MediaItem_Take* take, double dStartPos, double dEndPos, TakeEnvType tTakeEnvType, EnvModType envModType, double dStrength, double dOffset)
{
	double dValMin = 0.0;
	double dValMax = 1.0;
	bool bNeedUpdate = false;
	switch(tTakeEnvType)
	{
		case eTAKEENV_VOLUME :
			dValMax = 2.0;
			bNeedUpdate = ShowTakeEnvVol(take);
		break;
		case eTAKEENV_PAN :
			dValMin = -1.0;
			bNeedUpdate = ShowTakeEnvPan(take);
		break;
		case eTAKEENV_MUTE :
			bNeedUpdate = ShowTakeEnvMute(take);
		break;
		case eTAKEENV_PITCH :
			dValMax = (double)GetPitchTakeEnvRangeFromPrefs();
			dValMin = dValMax * (-1);
			bNeedUpdate = ShowTakeEnvPitch(take);
		break;
		default:
		break;
	}

	if(bNeedUpdate)
		UpdateTimeline();

	TrackEnvelope* envelope = SWS_GetTakeEnvelopeByName(take, GetTakeEnvelopeStr(tTakeEnvType));
	if(!envelope)
		return eERRORCODE_NOENVELOPE;

	char* envState = PadresGetEnvelopeState(envelope);
	string newState;
	ErrorCode res = processPoints(envState, newState, dStartPos, dEndPos, dValMin, dValMax, envModType, dStrength, dOffset);
	free(envState);

	if(!newState.size() || !GetSetEnvelopeState(envelope, (char*)newState.c_str(), (int)newState.size()))
		res = eERRORCODE_UNKNOWN;

/*JFB
	Undo_OnStateChangeEx("Take Envelope LFO", UNDO_STATE_ALL, -1);
*/
	return res;
}
Exemple #23
0
void ShrinkSelectedTakes(int nbSamples, bool bActiveOnly)
{
	list<MediaItem*> items;
	MidiItemProcessor::getSelectedMediaItems(items);
	for(list<MediaItem*>::iterator item = items.begin(); item != items.end(); item++)
	{
		double itemLength = *(double*)GetSetMediaItemInfo(*item, "D_LENGTH", NULL);
		int itemLengthSamples = (int)(MIDIITEMPROC_DEFAULT_SAMPLERATE * itemLength);
		itemLengthSamples -= nbSamples;
		itemLength = (double)(itemLengthSamples)/MIDIITEMPROC_DEFAULT_SAMPLERATE;
		GetSetMediaItemInfo(*item, "D_LENGTH", &itemLength);

		UpdateItemInProject(*item);
	}
	Undo_OnStateChangeEx(__LOCALIZE("Item Processor: shrink","sws_undo"), UNDO_STATE_ITEMS, -1);
	UpdateTimeline();
}
Exemple #24
0
void ItemToTrackCol(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		COLORREF cr = *(COLORREF*)GetSetMediaTrackInfo(tr, "I_CUSTOMCOLOR", NULL);

		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
				GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &cr);
		}
	}
	Undo_OnStateChange(__LOCALIZE("Set selected item(s) to respective track color","sws_undo"));
	UpdateTimeline();
}
Exemple #25
0
void UnselNotRender(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (GetMediaItemNumTakes(mi))
			{
				PCM_source* src = (PCM_source*)GetSetMediaItemTakeInfo(GetMediaItemTake(mi, -1), "P_SOURCE", NULL);
				if (src && src->GetFileName() && !strstr(src->GetFileName(), "render"))
					GetSetMediaItemInfo(mi, "B_UISEL", &g_bFalse);
			}
		}
	}
	UpdateTimeline();
}
Exemple #26
0
void TogItemSel(COMMAND_T* = NULL)
{	// Toggle item's selection states on selected tracks
	bool bSel;
	MediaTrack* tr;
	MediaItem* mi;
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
			for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
			{
				mi = GetTrackMediaItem(tr, j);
				bSel = !*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL);
				GetSetMediaItemInfo(mi, "B_UISEL", &bSel);
			}
	}
	UpdateTimeline();
}
Exemple #27
0
void InsertTrkAbove(COMMAND_T* = NULL)
{
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		if (*(int*)GetSetMediaTrackInfo(tr, "I_SELECTED", NULL))
		{
			InsertTrackAtIndex(i-1, false);
			ClearSelected();
			tr = CSurf_TrackFromID(i, false);
			TrackList_AdjustWindows(false);
			GetSetMediaTrackInfo(tr, "I_SELECTED", &g_i1);
			UpdateTimeline();
			Undo_OnStateChangeEx(__LOCALIZE("Insert track above selected track","sws_undo"), UNDO_STATE_ALL, -1);
			return;
		}
	}
}
Exemple #28
0
void RenumberRegions(COMMAND_T* ct)
{
	MarkerList ml(NULL, true);
	DeleteAllRegions();
	int iID = 1;
	for (int i = 0; i < ml.m_items.GetSize(); i++)
	{
		MarkerItem* mi = ml.m_items.Get(i);
		if (mi->IsRegion())
		{
			mi->SetNum(iID++);
			mi->AddToProject();
		}
	}
	g_pMarkerList->Update();
	UpdateTimeline();
	Undo_OnStateChangeEx2(NULL, SWS_CMD_SHORTNAME(ct), UNDO_STATE_MISCCFG, -1);
}
Exemple #29
0
void ItemCustomColor(int iCustColor)
{
	COLORREF cr;
	UpdateCustomColors();
	cr = g_custColors[iCustColor] | 0x1000000;
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
				GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &cr);
		}
	}
	char cUndoText[100];
	sprintf(cUndoText, __LOCALIZE_VERFMT("Set item(s) to custom color %d","sws_undo"), iCustColor+1);
	Undo_OnStateChange(cUndoText);
	UpdateTimeline();
}
Exemple #30
0
void ItemOrderedCol(COMMAND_T* = NULL)
{
	int iCurPos = 0;
	UpdateCustomColors();
	for (int i = 1; i <= GetNumTracks(); i++)
	{
		MediaTrack* tr = CSurf_TrackFromID(i, false);
		for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
		{
			MediaItem* mi = GetTrackMediaItem(tr, j);
			if (*(bool*)GetSetMediaItemInfo(mi, "B_UISEL", NULL))
			{
				COLORREF cr = g_custColors[iCurPos++ % 16] | 0x1000000;
				GetSetMediaItemInfo(mi, "I_CUSTOMCOLOR", &cr);
			}
		}
	}
	Undo_OnStateChange(__LOCALIZE("Set selected item(s) to ordered custom colors","sws_undo"));
	UpdateTimeline();
}