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); }
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(); } }
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); } }
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(); } }
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); }
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(); }
static void MarkGrooveStart(int flags, void *data) { int *start = (int *)data; GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->SetMarkerStart((GrooveTemplateHandler::GrooveMarkerStart)*start); }
static void MarkGroove(int flags, void *data) { int *multiple = (int *)data; GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->MarkGroove(*multiple); }
static void GetGrooveFromMIDIEditor(int flags, void *data) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->GetGrooveFromMidiEditor(); }
static void GetGrooveFromItems(int flags, void *data) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->GetGrooveFromItems(); }
static void ApplyGrooveInMidiEditor(int flags, void *data) { int *beatDivider = (int *)data; GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->ApplyGrooveToMidiEditor(*beatDivider, 1.0, 1.0); }
int IsGrooveDialogOpen() { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); return me->GetGrooveDialog()->IsValidWindow(); }
void ShowGrooveDialog(int flags, void *data) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->showGrooveDialog(); }
static void setGrooveTarget(int target) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->SetGrooveTarget(target); }
static void setGrooveTolerance(int tol) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->SetGrooveTolerance(tol); }
void GrooveDialog::OnStrengthChange(WORD wParam, LPARAM lParam) { GrooveTemplateHandler *me = GrooveTemplateHandler::Instance(); me->SetGrooveStrength(getStrengthValue(m_hwnd, IDC_STRENGTH)); }