From: <rel...@us...> - 2009-01-03 13:36:08
|
Revision: 240 http://modplug.svn.sourceforge.net/modplug/?rev=240&view=rev Author: relabsoluness Date: 2009-01-03 13:36:02 +0000 (Sat, 03 Jan 2009) Log Message: ----------- + Pattern: MIDI controllers can now be used to input smooth MIDI macro commands to pattern (setup->MIDI). Modified Paths: -------------- trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/Mainfrm.h =================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h 2008-12-21 13:30:05 UTC (rev 239) +++ trunk/OpenMPT/mptrack/Mainfrm.h 2009-01-03 13:36:02 UTC (rev 240) @@ -228,6 +228,7 @@ #define MIDISETUP_RECORDNOTEOFF 0x10 #define MIDISETUP_RESPONDTOPLAYCONTROLMSGS 0x20 #define MIDISETUP_AMPLIFYVELOCITY 0x40 +#define MIDISETUP_MIDIMACROCONTROL 0x80 Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2008-12-21 13:30:05 UTC (rev 239) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2009-01-03 13:36:02 UTC (rev 240) @@ -1090,6 +1090,7 @@ ON_COMMAND(IDC_CHECK3, OnSettingsChanged) ON_COMMAND(IDC_CHECK4, OnSettingsChanged) ON_COMMAND(IDC_MIDI_TO_PLUGIN, OnSettingsChanged) + ON_COMMAND(IDC_MIDI_MACRO_CONTROL, OnSettingsChanged) ON_COMMAND(IDC_MIDIVOL_TO_NOTEVOL, OnSettingsChanged) ON_COMMAND(IDC_MIDIPLAYCONTROL, OnSettingsChanged) END_MESSAGE_MAP() @@ -1119,6 +1120,7 @@ if (m_dwMidiSetup & MIDISETUP_AMPLIFYVELOCITY) CheckDlgButton(IDC_CHECK3, MF_CHECKED); if (m_dwMidiSetup & MIDISETUP_TRANSPOSEKEYBOARD) CheckDlgButton(IDC_CHECK4, MF_CHECKED); if (m_dwMidiSetup & MIDISETUP_MIDITOPLUG) CheckDlgButton(IDC_MIDI_TO_PLUGIN, MF_CHECKED); + if (m_dwMidiSetup & MIDISETUP_MIDIMACROCONTROL) CheckDlgButton(IDC_MIDI_MACRO_CONTROL, MF_CHECKED); if (m_dwMidiSetup & MIDISETUP_MIDIVOL_TO_NOTEVOL) CheckDlgButton(IDC_MIDIVOL_TO_NOTEVOL, MF_CHECKED); if (m_dwMidiSetup & MIDISETUP_RESPONDTOPLAYCONTROLMSGS) CheckDlgButton(IDC_MIDIPLAYCONTROL, MF_CHECKED); // Midi In Device @@ -1154,6 +1156,7 @@ if (IsDlgButtonChecked(IDC_CHECK3)) m_dwMidiSetup |= MIDISETUP_AMPLIFYVELOCITY; if (IsDlgButtonChecked(IDC_CHECK4)) m_dwMidiSetup |= MIDISETUP_TRANSPOSEKEYBOARD; if (IsDlgButtonChecked(IDC_MIDI_TO_PLUGIN)) m_dwMidiSetup |= MIDISETUP_MIDITOPLUG; + if (IsDlgButtonChecked(IDC_MIDI_MACRO_CONTROL)) m_dwMidiSetup |= MIDISETUP_MIDIMACROCONTROL; if (IsDlgButtonChecked(IDC_MIDIVOL_TO_NOTEVOL)) m_dwMidiSetup |= MIDISETUP_MIDIVOL_TO_NOTEVOL; if (IsDlgButtonChecked(IDC_MIDIPLAYCONTROL)) m_dwMidiSetup |= MIDISETUP_RESPONDTOPLAYCONTROLMSGS; Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2008-12-21 13:30:05 UTC (rev 239) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-01-03 13:36:02 UTC (rev 240) @@ -2953,6 +2953,21 @@ break; } + // Checking whether to record MIDI controller change as MIDI macro change. + if((CMainFrame::m_dwMidiSetup & MIDISETUP_MIDIMACROCONTROL) && IsEditingEnabled()) + { + CModDoc* const pModdoc = GetDocument(); + if(pModDoc != 0) + { + MODCOMMAND *p = pModdoc->GetSoundFile()->Patterns[m_nPattern].GetpModCommand(m_nRow, GetChanFromCursor(m_dwCursor)); + if(p->command == 0 || p->command == CMD_SMOOTHMIDI) + { // Write command only if there's no existing command or already a smooth midi macro command. + p->command = CMD_SMOOTHMIDI; + p->param = nByte2; + } + } + } + default: if(CMainFrame::m_dwMidiSetup & MIDISETUP_RESPONDTOPLAYCONTROLMSGS) { @@ -3574,7 +3589,7 @@ CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); CModDoc *pModDoc = GetDocument(); - if ((pModDoc) && (pMainFrm)) + if ((pModDoc) && (pMainFrm) && (IsEditingEnabled_bmsg())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); @@ -3602,8 +3617,8 @@ p->command = (p->param <= maxspd) ? CMD_SPEED : CMD_TEMPO; } - if (IsEditingEnabled_bmsg()) - { + //if (IsEditingEnabled_bmsg()) + //{ DWORD sel = (m_nRow << 16) | m_dwCursor; SetCurSel(sel, sel); sel &= ~7; @@ -3613,8 +3628,8 @@ InvalidateArea(sel, sel+5); UpdateIndicator(); } - } - } // end if mainframe & moddoc exist + //} + } // end if mainframe & moddoc exist & editing enabled } @@ -3624,7 +3639,7 @@ CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); CModDoc *pModDoc = GetDocument(); - if ((pModDoc) && (pMainFrm)) + if ((pModDoc) && (pMainFrm) && (IsEditingEnabled_bmsg())) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); MODCOMMAND oldcmd; // This is the command we are about to overwrite @@ -3660,8 +3675,8 @@ p->command = (p->param <= maxspd) ? CMD_SPEED : CMD_TEMPO; } - if (IsEditingEnabled()) - { + //if (IsEditingEnabled()) + //{ DWORD sel = (m_nRow << 16) | m_dwCursor; SetCurSel(sel, sel); sel &= ~7; @@ -3671,7 +3686,7 @@ InvalidateArea(sel, sel+5); UpdateIndicator(); } - } + //} } } void CViewPattern::TempStopNote(int note, bool fromMidi) Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2008-12-21 13:30:05 UTC (rev 239) +++ trunk/OpenMPT/mptrack/mptrack.rc 2009-01-03 13:36:02 UTC (rev 240) @@ -458,12 +458,12 @@ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,63,136,10 END -IDD_MIDISETUP DIALOGEX 0, 0, 240, 180 +IDD_MIDISETUP DIALOGEX 0, 0, 240, 191 STYLE DS_SETFONT | DS_3DLOOK | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Midi" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "",IDC_STATIC,5,3,235,174 + GROUPBOX "",IDC_STATIC,5,14,235,174 LTEXT "Midi Input Device:",IDC_STATIC,13,14,67,8 COMBOBOX IDC_COMBO1,13,24,144,74,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -472,13 +472,13 @@ COMBOBOX IDC_COMBO2,13,54,144,73,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP CONTROL "Transpose external midi keyboard",IDC_CHECK4,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,11,81,126,10 + BS_AUTOCHECKBOX | WS_TABSTOP,11,82,126,9 CONTROL "Amplify Midi Velocity",IDC_CHECK3,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,11,94,113,10 + BS_AUTOCHECKBOX | WS_TABSTOP,11,93,113,9 CONTROL "Record note velocity",IDC_CHECK1,"Button", - BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,11,108,132,10 + BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,11,104,132,9 CONTROL "Record Note Off (Instruments Only)",IDC_CHECK2,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,11,134,130,10 + BS_AUTOCHECKBOX | WS_TABSTOP,11,126,130,9 GROUPBOX "File import",IDC_STATIC,176,14,53,74 LTEXT "Speed:",IDC_STATIC,183,26,24,8 EDITTEXT IDC_EDIT1,183,37,39,12,ES_AUTOHSCROLL | ES_NUMBER @@ -492,13 +492,16 @@ 11,14 CONTROL "Pass MIDI to active instrument plugin (experimental)", IDC_MIDI_TO_PLUGIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 11,148,222,8 + 11,148,222,9 CONTROL "Combine midi volume to note velocity", IDC_MIDIVOL_TO_NOTEVOL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,11,121,139,10 + WS_TABSTOP,11,115,139,9 CONTROL "Respond to play/continue/stop song messages (untested)", IDC_MIDIPLAYCONTROL,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,11,161,202,9 + WS_TABSTOP,11,172,202,9 + CONTROL "Record MIDI controller changes as MIDI macro changes (in pattern)", + IDC_MIDI_MACRO_CONTROL,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,11,160,226,9 END IDD_LOADRAWSAMPLE DIALOG 0, 0, 168, 84 @@ -1990,7 +1993,7 @@ IDD_MIDISETUP, DIALOG BEGIN - BOTTOMMARGIN, 177 + BOTTOMMARGIN, 188 END IDD_CONTROL_COMMENTS, DIALOG Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2008-12-21 13:30:05 UTC (rev 239) +++ trunk/OpenMPT/mptrack/resource.h 2009-01-03 13:36:02 UTC (rev 240) @@ -823,6 +823,7 @@ #define IDC_EQ_WARNING 2333 #define IDC_TEXT_STRETCHPARAMS 2337 #define IDC_EDIT_STRETCHPARAMS 2338 +#define IDC_MIDI_MACRO_CONTROL 2339 #define ID_FILE_NEWMOD 32771 #define ID_FILE_NEWXM 32772 #define ID_FILE_NEWS3M 32773 @@ -1054,7 +1055,7 @@ #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 516 #define _APS_NEXT_COMMAND_VALUE 59212 -#define _APS_NEXT_CONTROL_VALUE 2339 +#define _APS_NEXT_CONTROL_VALUE 2340 #define _APS_NEXT_SYMED_VALUE 901 #endif #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |