Exemple #1
0
void GetTimeSegmentPositions(TimeSegment timeSegment, double &dStartPos, double &dEndPos, MediaItem* item)
{
	double dOrgCursorPos = GetCursorPositionEx(0);
	bool bRefreshCurPos = false;

	switch(timeSegment)
	{
		case eTIMESEGMENT_TIMESEL:
			//Main_OnCommandEx(ID_GOTO_TIMESEL_END, 0, 0);
			//dEndPos = GetCursorPositionEx(0);
			//Main_OnCommandEx(ID_GOTO_TIMESEL_START, 0, 0);
			//dStartPos = GetCursorPositionEx(0);
			GetSet_LoopTimeRange2(0, false, false, &dStartPos, &dEndPos, false);
		break;
		case eTIMESEGMENT_SELITEM:
			if(item != NULL)
			{
				dStartPos = GetMediaItemInfo_Value(item, "D_POSITION");
				dEndPos = dStartPos + GetMediaItemInfo_Value(item, "D_LENGTH");
			}
			else
			{
				Main_OnCommandEx(ID_GOTO_SELITEM_END, 0, 0);
				dEndPos = GetCursorPositionEx(0);
				Main_OnCommandEx(ID_GOTO_SELITEM_START, 0, 0);
				dStartPos = GetCursorPositionEx(0);
				bRefreshCurPos = true;
			}
		break;
		case eTIMESEGMENT_LOOP:
			//Main_OnCommandEx(ID_GOTO_LOOP_END, 0, 0);
			//dEndPos = GetCursorPositionEx(0);
			//Main_OnCommandEx(ID_GOTO_LOOP_START, 0, 0);
			//dStartPos = GetCursorPositionEx(0);
			GetSet_LoopTimeRange2(0, false, true, &dStartPos, &dEndPos, false);
		break;
		case eTIMESEGMENT_PROJECT:
			Main_OnCommandEx(ID_GOTO_PROJECT_END, 0, 0);
			dEndPos = GetCursorPositionEx(0);
			//Main_OnCommandEx(ID_GOTO_PROJECT_START, 0, 0);
			//dStartPos = GetCursorPositionEx(0);
			dStartPos = *(int*)GetConfigVar("projtimeoffs");
			bRefreshCurPos = true;
		break;
		//case eTIMESEGMENT_CURRENTMEASURE:
		//	Main_OnCommandEx(ID_GOTO_CURMEASURE_START, 0, 0);
		//	dStartPos = GetCursorPositionEx(0);
		//	Main_OnCommandEx(ID_GOTO_NEXTMEASURE_START, 0, 0);
		//	dEndPos = GetCursorPositionEx(0);
		//break;
		default:
		break;
	}

	if(bRefreshCurPos)
		SetEditCurPos2(0, dOrgCursorPos, true, false);
}
Exemple #2
0
void GrooveDialog::OnCommand(WPARAM wParam, LPARAM lParam)
{
    switch(LOWORD(wParam))
    {
    case FNG_OPEN_FOLDER:
        OnGrooveFolderButton(HIWORD(wParam), lParam);
        break;
    case FNG_REFRESH:
        RefreshGrooveList();
        break;
    case IDC_GROOVELIST:
        OnGrooveList(HIWORD(wParam), lParam);
        break;
    case IDC_STRENGTH:
        OnStrengthChange(HIWORD(wParam), lParam);
        break;
    case IDC_VELSTRENGTH:
        OnVelStrengthChange(HIWORD(wParam), lParam);
        break;
    case IDC_SENS_32ND:
        setSensitivity(m_hwnd, 32);
        setGrooveTolerance(32);
        break;
    case IDC_SENS_16TH:
        setSensitivity(m_hwnd, 16);
        setGrooveTolerance(16);
        break;
    case IDC_SENS_4TH:
        setSensitivity(m_hwnd, 4);
        setGrooveTolerance(4);
        break;
    case IDC_SENS_8TH:
        setSensitivity(m_hwnd, 8);
        setGrooveTolerance(8);
        break;
    case IDC_TARG_ITEMS:
        setTarget(m_hwnd, true);
        setGrooveTarget(TARGET_ITEMS);
        break;
    case IDC_TARG_NOTES:
        setTarget(m_hwnd, false);
        setGrooveTarget(TARGET_NOTES);
        break;
    case IDC_APPLYGROOVE:
        ApplySelectedGroove();
        break;
    case IDC_STORE:
        if(IsDlgButtonChecked(m_hwnd, IDC_TARG_ITEMS) == BST_CHECKED)
            Main_OnCommandEx(NamedCommandLookup("_FNG_GET_GROOVE"), 0, 0);
        else
            Main_OnCommandEx(NamedCommandLookup("_FNG_GET_GROOVE_MIDI"), 0, 0);
        SendDlgItemMessage(m_hwnd, IDC_GROOVELIST, LB_SETCURSEL, 0, 0);
        break;
    default:
        Main_OnCommand((int)wParam, (int)lParam); // Required when you have reaper commands in the context menu
    }
}
Exemple #3
0
EnvelopeProcessor::ErrorCode EnvelopeProcessor::generateSelectedTrackEnvLfo()
{
	TrackEnvelope* envelope = GetSelectedTrackEnvelope(0);
	if(!envelope)
		return eERRORCODE_NOENVELOPE;

	Undo_BeginBlock2(0);

	//! \todo: use insert/goto actions AFTER error returns
	double dStartPos, dEndPos;
	GetTimeSegmentPositions(_parameters.timeSegment, dStartPos, dEndPos);

	if(dStartPos==dEndPos)
		return eERRORCODE_NULLTIMESELECTION;

	double dOrgCursorPos = GetCursorPositionEx(0);
	SetEditCurPos2(0, dStartPos-EPSILON_TIME, false, false);
	Main_OnCommandEx(ID_ENVELOPE_INSERT_POINT, 0, 0);
	SetEditCurPos2(0, dEndPos+EPSILON_TIME, false, false);
	Main_OnCommandEx(ID_ENVELOPE_INSERT_POINT, 0, 0);
	SetEditCurPos2(0, dOrgCursorPos, false, false);

	//Main_OnCommandEx(ID_MOVE_TIMESEL_NUDGE_LEFTEDGE_LEFT, 0, 0);
	//Main_OnCommandEx(ID_MOVE_TIMESEL_NUDGE_RIGHTEDGE_RIGHT, 0, 0);
	//Main_OnCommandEx(ID_GOTO_TIMESEL_START, 0, 0);
	//Main_OnCommandEx(ID_ENVELOPE_INSERT_POINT, 0, 0);
	//Main_OnCommandEx(ID_GOTO_TIMESEL_END, 0, 0);
	//Main_OnCommandEx(ID_ENVELOPE_INSERT_POINT, 0, 0);
	//Main_OnCommandEx(ID_MOVE_TIMESEL_NUDGE_LEFTEDGE_RIGHT, 0, 0);
	//Main_OnCommandEx(ID_MOVE_TIMESEL_NUDGE_RIGHTEDGE_LEFT, 0, 0);
	//Main_OnCommandEx(ID_ENVELOPE_DELETE_ALL_POINTS_TIMESEL, 0, 0);

	ErrorCode res = generateTrackLfo(envelope, dStartPos, dEndPos, _parameters.waveParams, _parameters.precision);
//UpdateTimeline();

	Undo_EndBlock2(NULL, __LOCALIZE("Track envelope LFO","sws_undo"), UNDO_STATE_TRACKCFG);
	return res;
}
Exemple #4
0
static bool convertToInProjectMidi(RprItemCtrPtr &ctr)
{
    bool hasMidiFile = false;
    for(int i = 0; i < ctr->size(); i++) {
        RprTake take(ctr->getAt(i).getActiveTake());
        if(!take.isMIDI())
            continue;
        if(take.isFile()) {
            hasMidiFile = true;
            break;
        }
    }
    if(hasMidiFile) {
        if(MessageBox(GetMainHwnd(),
            __LOCALIZE("Current selection has takes with MIDI files.\r\nTo apply this action these takes must be converted to in-project takes.\r\nDo you want to continue?","sws_mbox"),
            __LOCALIZE("FNG - Warning","sws_mbox"), MB_YESNO) == IDNO) {
            return false;
        }
        Main_OnCommandEx(40684, 0 , 0);
    }
    return true;
}