Esempio n. 1
0
static void ShowGroove(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    if(me->isGrooveEmpty())
    {
        MessageBox(GetMainHwnd(), __LOCALIZE("No groove loaded!","sws_mbox"), __LOCALIZE("FNG - Error","sws_mbox"),0);
        return;
    }
    MessageBox(GetMainHwnd(), me->GrooveToString().c_str(), __LOCALIZE("Groove","sws_mbox"), 0);
}
Esempio n. 2
0
void GrooveDialog::OnGrooveFolderButton(WORD wParam, LPARAM lParam)
{
    if (wParam != BN_CLICKED)
        return;
    char cDir[256];
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    if (BrowseForDirectory(__LOCALIZE("Select folder containing grooves","sws_DLG_157"), me->GetGrooveDir().c_str(), cDir, 256))
    {
        currentDir = cDir;
        me->SetGrooveDir(currentDir);
        RefreshGrooveList();
    }
}
Esempio n. 3
0
static void LoadGrooveFromFile(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    char* cFilename = BrowseForFiles("Select groove template", me->GetGrooveDir().c_str(), NULL, false,
                                     "Reaper Groove Templates (*.rgt)\0*.rgt\0All Files (*.*)\0*.*\0");
    if (cFilename)
    {
        std::string errMessage;
        std::string fName = cFilename;
        if(!me->LoadGroove(fName, errMessage))
            MessageBox(GetMainHwnd(), errMessage.c_str(), __LOCALIZE("FNG - Error","sws_mbox"), 0);
        free(cFilename);
    }
}
Esempio n. 4
0
static void SaveGrooveToFile(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    if(me->isGrooveEmpty())
    {
        MessageBox(GetMainHwnd(), __LOCALIZE("No groove loaded!","sws_mbox"), __LOCALIZE("FNG - Error","sws_mbox"), 0);
        return;
    }
    
    char cFilename[256];
    if (BrowseForSaveFile(__LOCALIZE("Select groove template","sws_mbox"), me->GetGrooveDir().c_str(), NULL,
                          "Reaper Groove Templates (*.rgt)\0*.rgt\0All Files (*.*)\0*.*\0", cFilename, 256))
    {
        std::string errMessage;
        std::string fName = cFilename;
        if(!me->SaveGroove(fName, errMessage))
            MessageBox(GetMainHwnd(), errMessage.c_str(), __LOCALIZE("FNG - Error","sws_mbox"), 0);
        else
            me->GetGrooveDialog()->Refresh();
    }
}
Esempio n. 5
0
void GrooveDialog::ApplySelectedGroove()
{
    int index = (int)SendDlgItemMessage(m_hwnd, IDC_GROOVELIST, LB_GETCURSEL, 0, 0);
    std::string grooveName = __LOCALIZE("** User Groove **","sws_DLG_157");
    GrooveTemplateMemento memento = GrooveTemplateHandler::GetMemento();

    if(index > 0) {
        std::string itemLocation;
        char itemText[MAX_PATH];
        SendDlgItemMessage(m_hwnd, IDC_GROOVELIST, LB_GETTEXT, index, (LPARAM)itemText);
        grooveName = itemText;
        itemLocation = currentDir;
        itemLocation += PATH_SEP;
        itemLocation += grooveName;
        itemLocation += ".rgt";


        GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();

        std::string errMessage;
        if(!me->LoadGroove(itemLocation, errMessage))
            MessageBox(GetMainHwnd(), errMessage.c_str(), __LOCALIZE("FNG - Error","sws_DLG_157"), 0);
    }
    if(index >= 0) {

        GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
        int beatDivider = me->GetGrooveTolerance();

        bool midiEditorTarget = SendDlgItemMessage(m_hwnd, IDC_TARG_NOTES, BM_GETCHECK, 0, 0) == BST_CHECKED;

        HWND editControl = GetDlgItem(m_hwnd, IDC_STRENGTH);
        char percentage[16];
        GetWindowText(editControl, percentage, 16);
        double posStrength = (double)atoi(percentage) / 100.0;
        editControl = GetDlgItem(m_hwnd, IDC_VELSTRENGTH);
        GetWindowText(editControl, percentage, 16);
        double velStrength = (double)atoi(percentage) / 100.0;
        std::string undoMessage = __LOCALIZE("FNG: load and apply groove - ","sws_DLG_157") + grooveName;

        try {
            if(midiEditorTarget)
                me->ApplyGrooveToMidiEditor(beatDivider, posStrength, velStrength);
            else
                me->ApplyGroove(beatDivider, posStrength, velStrength);
            Undo_OnStateChange2(0, undoMessage.c_str());
        } catch(RprLibException &e) {
            if(e.notify()) {
                MessageBox(GetMainHwnd(), e.what(), __LOCALIZE("FNG - Error","sws_DLG_157"), 0);
            }
        }
    }
    GrooveTemplateHandler::SetMemento(memento);
}
Esempio n. 6
0
void GrooveDialog::OnInitDlg()
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    currentDir = me->GetGrooveDir();

    SetWindowText(m_hwnd, __LOCALIZE("Groove tool","sws_DLG_157"));
    SetDlgItemInt(m_hwnd, IDC_STRENGTH, me->GetGrooveStrength(), true);
    SetDlgItemInt(m_hwnd, IDC_VELSTRENGTH, me->GetGrooveVelStrength(), true);

    setSensitivity(m_hwnd, me->GetGrooveTolerance());
    setTarget(m_hwnd, me->GetGrooveTarget() == TARGET_ITEMS);

    m_resize.init_item(IDC_GROOVELIST, 0.0, 0.0, 0.0, 1.0);

    SetWindowLongPtr(GetDlgItem(m_hwnd, IDC_STRENGTH), GWLP_USERDATA, 0xdeadf00b);
    SetWindowLongPtr(GetDlgItem(m_hwnd, IDC_VELSTRENGTH), GWLP_USERDATA, 0xdeadf00b);

    RefreshGrooveList();
}
Esempio n. 7
0
static void MarkGrooveStart(int flags, void *data)
{
    int *start = (int *)data;
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->SetMarkerStart((GrooveTemplateHandler::GrooveMarkerStart)*start);
}
Esempio n. 8
0
static void MarkGroove(int flags, void *data)
{
    int *multiple = (int *)data;
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->MarkGroove(*multiple);
}
Esempio n. 9
0
static void GetGrooveFromMIDIEditor(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->GetGrooveFromMidiEditor();
}
Esempio n. 10
0
static void GetGrooveFromItems(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->GetGrooveFromItems();
}
Esempio n. 11
0
static void ApplyGrooveInMidiEditor(int flags, void *data)
{
    int *beatDivider = (int *)data;
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->ApplyGrooveToMidiEditor(*beatDivider, 1.0, 1.0);
}
Esempio n. 12
0
int IsGrooveDialogOpen()
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    return me->GetGrooveDialog()->IsValidWindow();
}
Esempio n. 13
0
void ShowGrooveDialog(int flags, void *data)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->showGrooveDialog();     
}
Esempio n. 14
0
static void setGrooveTarget(int target)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->SetGrooveTarget(target);
}
Esempio n. 15
0
static void setGrooveTolerance(int tol)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->SetGrooveTolerance(tol);
}
Esempio n. 16
0
void GrooveDialog::OnStrengthChange(WORD wParam, LPARAM lParam)
{
    GrooveTemplateHandler *me = GrooveTemplateHandler::Instance();
    me->SetGrooveStrength(getStrengthValue(m_hwnd, IDC_STRENGTH));
}