You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
| 2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
| 2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
| 2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
| 2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
| 2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
| 2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
| 2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
| 2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
| 2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
| 2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
| 2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
| 2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
| 2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
| 2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
| 2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
| 2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
| 2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
| 2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(213) |
Aug
(203) |
Sep
(148) |
Oct
(109) |
Nov
(191) |
Dec
(209) |
| 2026 |
Jan
(127) |
Feb
(123) |
Mar
(160) |
Apr
(141) |
May
(49) |
Jun
(55) |
Jul
(91) |
Aug
(191) |
Sep
|
Oct
(68) |
Nov
|
Dec
|
|
From: <sag...@us...> - 2009-07-29 22:18:31
|
Revision: 310
http://modplug.svn.sourceforge.net/modplug/?rev=310&view=rev
Author: saga-games
Date: 2009-07-29 22:18:17 +0000 (Wed, 29 Jul 2009)
Log Message:
-----------
[Ref] VS2008 decided once again to completely rewrite mptrack.rc
[Ref] Renamed the midi setup dialog resource so it fits in the current scheme
[Fix] Playback: Process pattern break commands on last pattern properly
[Imp] Playback: Added option to not reset all channels and variables when looping a module. This might become a song-specific variable, though.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Mainfrm.h
trunk/OpenMPT/mptrack/Moptions.cpp
trunk/OpenMPT/mptrack/Mpdlgs.h
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.h
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-29 22:18:17 UTC (rev 310)
@@ -429,6 +429,8 @@
m_dwPatternSetup = GetPrivateProfileDWord("Pattern Editor", "PatternSetup", m_dwPatternSetup, iniFile);
if(gcsPreviousVersion != "" && MptVersion::ToNum(gcsPreviousVersion) < MAKE_VERSION_NUMERIC(1,17,02,50))
m_dwPatternSetup |= PATTERN_NOTEFADE;
+ if(gcsPreviousVersion != "" && MptVersion::ToNum(gcsPreviousVersion) < MAKE_VERSION_NUMERIC(1,17,03,01))
+ m_dwPatternSetup |= PATTERN_RESETCHANNELS;
m_nRowSpacing = GetPrivateProfileDWord("Pattern Editor", "RowSpacing", 16, iniFile);
m_nRowSpacing2 = GetPrivateProfileDWord("Pattern Editor", "RowSpacing2", 4, iniFile);
@@ -563,6 +565,7 @@
RegQueryValueEx(key, "MidiDevice", NULL, &dwREG_DWORD, (LPBYTE)&m_nMidiDevice, &dwDWORDSize);
RegQueryValueEx(key, "PatternSetup", NULL, &dwREG_DWORD, (LPBYTE)&m_dwPatternSetup, &dwDWORDSize);
m_dwPatternSetup |= PATTERN_NOTEFADE; // Set flag to maintain old behaviour(was changed in 1.17.02.50).
+ m_dwPatternSetup |= PATTERN_RESETCHANNELS; // Set flag to reset channels on loop was changed in 1.17.03.01).
RegQueryValueEx(key, "RowSpacing", NULL, &dwREG_DWORD, (LPBYTE)&m_nRowSpacing, &dwDWORDSize);
RegQueryValueEx(key, "RowSpacing2", NULL, &dwREG_DWORD, (LPBYTE)&m_nRowSpacing2, &dwDWORDSize);
RegQueryValueEx(key, "LoopSong", NULL, &dwREG_DWORD, (LPBYTE)&gbLoopSong, &dwDWORDSize);
Modified: trunk/OpenMPT/mptrack/Mainfrm.h
===================================================================
--- trunk/OpenMPT/mptrack/Mainfrm.h 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/Mainfrm.h 2009-07-29 22:18:17 UTC (rev 310)
@@ -169,30 +169,30 @@
#define NUM_VUMETER_PENS 32
// Pattern Setup (contains also non-pattern related settings)
-#define PATTERN_PLAYNEWNOTE 0x01
-#define PATTERN_LARGECOMMENTS 0x02
-#define PATTERN_STDHIGHLIGHT 0x04
-#define PATTERN_SMALLFONT 0x08
-#define PATTERN_CENTERROW 0x10
-#define PATTERN_WRAP 0x20
-#define PATTERN_EFFECTHILIGHT 0x40
-#define PATTERN_HEXDISPLAY 0x80
-#define PATTERN_FLATBUTTONS 0x100
-#define PATTERN_CREATEBACKUP 0x200
-#define PATTERN_SINGLEEXPAND 0x400
-#define PATTERN_AUTOSPACEBAR 0x800
-#define PATTERN_NOEXTRALOUD 0x1000
-#define PATTERN_DRAGNDROPEDIT 0x2000
-#define PATTERN_2NDHIGHLIGHT 0x4000
-#define PATTERN_MUTECHNMODE 0x8000
-#define PATTERN_SHOWPREVIOUS 0x10000
-#define PATTERN_CONTSCROLL 0x20000
-#define PATTERN_KBDNOTEOFF 0x40000
-#define PATTERN_FOLLOWSONGOFF 0x80000 //rewbs.noFollow
+#define PATTERN_PLAYNEWNOTE 0x01
+#define PATTERN_LARGECOMMENTS 0x02
+#define PATTERN_STDHIGHLIGHT 0x04
+#define PATTERN_SMALLFONT 0x08
+#define PATTERN_CENTERROW 0x10
+#define PATTERN_WRAP 0x20
+#define PATTERN_EFFECTHILIGHT 0x40
+#define PATTERN_HEXDISPLAY 0x80
+#define PATTERN_FLATBUTTONS 0x100
+#define PATTERN_CREATEBACKUP 0x200
+#define PATTERN_SINGLEEXPAND 0x400
+#define PATTERN_AUTOSPACEBAR 0x800
+#define PATTERN_NOEXTRALOUD 0x1000
+#define PATTERN_DRAGNDROPEDIT 0x2000
+#define PATTERN_2NDHIGHLIGHT 0x4000
+#define PATTERN_MUTECHNMODE 0x8000
+#define PATTERN_SHOWPREVIOUS 0x10000
+#define PATTERN_CONTSCROLL 0x20000
+#define PATTERN_KBDNOTEOFF 0x40000
+#define PATTERN_FOLLOWSONGOFF 0x80000 //rewbs.noFollow
// -> CODE#0017
// -> DESC="midi in record mode setup option"
-#define PATTERN_MIDIRECORD 0x100000
+#define PATTERN_MIDIRECORD 0x100000
// -! BEHAVIOUR_CHANGE#0017
// -> CODE#0022
@@ -201,14 +201,15 @@
// rewbs: this options is now available under song settings. It is therefore saved with the song.
// -! NEW_FEATURE#0022
-#define PATTERN_HILITETIMESIGS 0x400000
+#define PATTERN_HILITETIMESIGS 0x400000
-#define PATTERN_OLDCTXMENUSTYLE 0x800000
-#define PATTERN_SYNCMUTE 0x1000000
-#define PATTERN_AUTODELAY 0x2000000
-#define PATTERN_NOTEFADE 0x4000000
-#define PATTERN_ECHOPASTE 0x8000000
+#define PATTERN_OLDCTXMENUSTYLE 0x800000
+#define PATTERN_SYNCMUTE 0x1000000
+#define PATTERN_AUTODELAY 0x2000000
+#define PATTERN_NOTEFADE 0x4000000
+#define PATTERN_ECHOPASTE 0x8000000
#define PATTERN_POSITIONAWARETIMER 0x10000000
+#define PATTERN_RESETCHANNELS 0x20000000
// Keyboard Setup
Modified: trunk/OpenMPT/mptrack/Moptions.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moptions.cpp 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/Moptions.cpp 2009-07-29 22:18:17 UTC (rev 310)
@@ -607,6 +607,7 @@
OPTGEN_PATNOTEFADE,
OPTGEN_ECHOPASTE,
OPTGEN_POSITIONAWARETIMER,
+ OPTGEN_RESETCHANNELS,
OPTGEN_MAXOPTIONS
};
@@ -645,6 +646,7 @@
{"Note fade on key up", "Enable to fade/stop notes on key up in pattern tab." },
{"Echo paste mode", "Wrap pasted pattern data into next pattern. This is useful for creating echo channels."},
{"Position aware timer", "If enabled, timer will show the playback position time if possible instead of running timer."},
+ {"Reset channels on loop", "If enabled, channels will be reset to their initial state when song looping is enabled.\nNote: This does not affect manual song loops (i.e. triggered by pattern commands)"},
};
@@ -709,6 +711,7 @@
case OPTGEN_PATNOTEFADE: bCheck = (CMainFrame::m_dwPatternSetup & PATTERN_NOTEFADE); break;
case OPTGEN_ECHOPASTE: bCheck = (CMainFrame::m_dwPatternSetup & PATTERN_ECHOPASTE); break;
case OPTGEN_POSITIONAWARETIMER: bCheck = (CMainFrame::m_dwPatternSetup & PATTERN_POSITIONAWARETIMER); break;
+ case OPTGEN_RESETCHANNELS: bCheck = (CMainFrame::m_dwPatternSetup & PATTERN_RESETCHANNELS); break;
}
m_CheckList.SetCheck(i, (bCheck) ? TRUE : FALSE);
}
@@ -777,6 +780,7 @@
case OPTGEN_PATNOTEFADE: mask = PATTERN_NOTEFADE; break;
case OPTGEN_ECHOPASTE: mask = PATTERN_ECHOPASTE; break;
case OPTGEN_POSITIONAWARETIMER: mask = PATTERN_POSITIONAWARETIMER; break;
+ case OPTGEN_RESETCHANNELS: mask = PATTERN_RESETCHANNELS; break;
}
if (bCheck) CMainFrame::m_dwPatternSetup |= mask; else CMainFrame::m_dwPatternSetup &= ~mask;
Modified: trunk/OpenMPT/mptrack/Mpdlgs.h
===================================================================
--- trunk/OpenMPT/mptrack/Mpdlgs.h 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/Mpdlgs.h 2009-07-29 22:18:17 UTC (rev 310)
@@ -158,7 +158,7 @@
CSpinButtonCtrl m_SpinSpd, m_SpinPat;
public:
- CMidiSetupDlg(DWORD d, LONG n):CPropertyPage(IDD_MIDISETUP)
+ CMidiSetupDlg(DWORD d, LONG n):CPropertyPage(IDD_OPTIONS_MIDI)
{ m_dwMidiSetup = d; m_nMidiDevice = n; }
protected:
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-29 22:18:17 UTC (rev 310)
@@ -68,218 +68,8 @@
#pragma code_page(1252)
#endif //_WIN32
-#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif\r\n"
- "#include ""res\\mptrack.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
- "#include ""afxres.rc"" // Standard components\r\n"
- "#endif\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDR_MAINFRAME ICON "res\\mptrack.ico"
-IDR_MODULETYPE ICON "res\\moddoc.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_MPTRACK BITMAP "res\\mptrack.bmp"
-IDB_IMAGELIST BITMAP "res\\img_list.bmp"
-IDB_PATTERNS BITMAP "res\\patterns.bmp"
-IDB_PATTERNVIEW BITMAP "res\\view_pat.bmp"
-IDB_COLORSETUP BITMAP "res\\colors.bmp"
-IDB_VUMETERS BITMAP "res\\vumeters.bmp"
-IDB_ENVTOOLBAR BITMAP "res\\envbar.bmp"
-IDB_SMPTOOLBAR BITMAP "res\\smptoolb.bmp"
-IDB_VISNODE BITMAP "res\\bitmap1.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_MAINFRAME MENU
-BEGIN
- POPUP "&File"
- BEGIN
- POPUP "&New\tCtrl+N"
- BEGIN
- MENUITEM "&IT", ID_FILE_NEWIT
- MENUITEM "&XM", ID_FILE_NEWXM
- MENUITEM "&S3M", ID_FILE_NEWS3M
- MENUITEM "M&OD", ID_FILE_NEWMOD
- MENUITEM "IT &Project", ID_NEW_ITPROJECT
- MENUITEM "&MPTM (experimental)", ID_NEW_MPT
- END
- MENUITEM "&Open...\tCtrl+O", 57601
- MENUITEM "&Close", ID_FILE_CLOSE
- MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE
- MENUITEM "Save &As...", ID_FILE_SAVE_AS
- MENUITEM "Save as &Wave...", ID_FILE_SAVEASWAVE
- MENUITEM "Save as M&P3...", ID_FILE_SAVEASMP3
- MENUITEM "Export as M&IDI...", ID_FILE_SAVEMIDI
- MENUITEM "Export &unraped...", ID_FILE_SAVECOMPAT
- MENUITEM SEPARATOR
- MENUITEM "Import &MIDI Library...", ID_IMPORT_MIDILIB
- MENUITEM "Add Sound &Bank...", ID_ADD_SOUNDBANK
- MENUITEM SEPARATOR
- MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED
- MENUITEM SEPARATOR
- MENUITEM "E&xit", ID_APP_EXIT
- END
- POPUP "P&layer"
- BEGIN
- MENUITEM "&Play\tF5", ID_PLAYER_PLAY
- MENUITEM "P&lay from start\tF6", ID_PLAYER_PLAYFROMSTART
- MENUITEM "&Stop\tESC", ID_PLAYER_STOP
- MENUITEM "P&ause\tF8", ID_PLAYER_PAUSE
- MENUITEM "&MIDI Record\tF9", ID_MIDI_RECORD
- MENUITEM SEPARATOR
- MENUITEM "&Estimate song length", ID_ESTIMATESONGLENGTH
- MENUITEM "Approx. real &BPM", ID_APPROX_BPM
- END
- POPUP "&Edit"
- BEGIN
- MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO
- MENUITEM SEPARATOR
- MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
- MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
- MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
- MENUITEM "&Mix Paste\tCtrl+M", ID_EDIT_PASTE_SPECIAL
- MENUITEM "Select &All\tCtrl+5", ID_EDIT_SELECT_ALL
- MENUITEM SEPARATOR
- POPUP "C&leanup"
- BEGIN
- MENUITEM "&Rearrange Patterns", ID_CLEANUP_REARRANGE
- MENUITEM "&Cleanup Instruments", ID_CLEANUP_INSTRUMENTS
- MENUITEM "Clean&up Samples", ID_CLEANUP_SAMPLES
- MENUITEM "Cleanup Pa&tterns", ID_CLEANUP_PATTERNS
- MENUITEM "Cleanup S&ong", ID_CLEANUP_SONG
- MENUITEM "Remove &All Instruments", ID_INSTRUMENTS_REMOVEALL
- MENUITEM "Cleanup &Plugins", ID_CLEANUP_PLUGS
- MENUITEM "Co&mpo Cleanup", ID_CLEANUP_COMPO
- END
- MENUITEM SEPARATOR
- MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND
- MENUITEM "Find Next\tF3", ID_EDIT_FINDNEXT
- MENUITEM "Go to...", ID_EDIT_GOTO_MENU
- END
- POPUP "&View"
- BEGIN
- MENUITEM "&Globals\tAlt+G", ID_VIEW_GLOBALS
- MENUITEM "&Patterns\tAlt+P", ID_VIEW_PATTERNS
- MENUITEM "&Samples\tAlt+S", ID_VIEW_SAMPLES
- MENUITEM "&Instruments\tAlt+N", ID_VIEW_INSTRUMENTS
- MENUITEM "&Comments\tShift+F9", ID_VIEW_COMMENTS
- MENUITEM SEPARATOR
- POPUP "&Toolbars"
- BEGIN
- MENUITEM "&Main", ID_VIEW_TOOLBAR
- MENUITEM "&Tree", IDD_TREEVIEW
- END
- MENUITEM SEPARATOR
- MENUITEM "Set&up...", ID_VIEW_OPTIONS
- MENUITEM "Add &Plugin...", ID_PLUGIN_SETUP
- MENUITEM "Channel &Manager...", ID_CHANNEL_MANAGER
- MENUITEM "Song Properties...", ID_VIEW_SONGPROPERTIES
- MENUITEM "MIDI mapping...", ID_VIEW_MIDIMAPPING
- END
- POPUP "&Window"
- BEGIN
- MENUITEM "&New Window", ID_WINDOW_NEW
- MENUITEM SEPARATOR
- MENUITEM "&Cascade", ID_WINDOW_CASCADE
- MENUITEM "&Tile Horizontal", ID_WINDOW_TILE_HORZ
- MENUITEM "Tile &Vertical", ID_WINDOW_TILE_VERT
- MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE
- MENUITEM "S&plit", ID_WINDOW_SPLIT
- END
- POPUP "&Help"
- BEGIN
- MENUITEM "&Contents", ID_HELP_FINDER
- MENUITEM "&Search...", ID_HELP_SEARCH
- MENUITEM "&Report a bug", ID_REPORT_BUG
- MENUITEM SEPARATOR
- POPUP "&Internet"
- BEGIN
- MENUITEM "Modplug Central &Forums", ID_NETLINK_FORUMS
- MENUITEM "OpenMPT Wiki", ID_NETLINK_OPENMPTWIKI
- MENUITEM "OpenMPT Wiki (German)", ID_NETLINK_OPENMPTWIKI_GERMAN
- MENUITEM "MPT-FR", ID_NETLINK_MPTFR
- MENUITEM "&Kvr Audio (plugins)", ID_NETLINK_PLUGINS
- MENUITEM "The Mod Archive", ID_NETLINK_MODARCHIVE
- END
- MENUITEM SEPARATOR
- MENUITEM "&About OpenMPT...", ID_APP_ABOUT
- END
-END
-
-IDR_TOOLBARS MENU
-BEGIN
- POPUP "&ToolBars"
- BEGIN
- MENUITEM "&Main", ID_VIEW_TOOLBAR
- MENUITEM "&Tree", IDD_TREEVIEW
- END
-END
-
-IDR_ENVELOPES MENU
-BEGIN
- POPUP "&Envelope"
- BEGIN
- MENUITEM "&Loop", ID_ENVELOPE_SETLOOP
- MENUITEM "&Sustain", ID_ENVELOPE_SUSTAIN
- MENUITEM "C&arry envelope", ID_ENVELOPE_CARRY
- MENUITEM "&Insert Point", ID_ENVELOPE_INSERTPOINT
- MENUITEM "&Remove Point", ID_ENVELOPE_REMOVEPOINT
- MENUITEM "&Toggle Release Node", ID_ENVELOPE_TOGGLERELEASENODE
- MENUITEM SEPARATOR
- MENUITEM "&Copy envelope", ID_EDIT_COPY
- MENUITEM "&Paste envelope", ID_EDIT_PASTE
- MENUITEM SEPARATOR
- MENUITEM "Scale points...", ID_ENVELOPE_SCALEPOINTS
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
// Dialog
//
@@ -451,7 +241,7 @@
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,75,136,10
END
-IDD_MIDISETUP DIALOGEX 0, 0, 272, 281
+IDD_OPTIONS_MIDI DIALOGEX 0, 0, 272, 281
STYLE DS_SETFONT | DS_3DLOOK | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "MIDI"
FONT 8, "MS Sans Serif", 0, 0, 0x0
@@ -1610,7 +1400,7 @@
BOTTOMMARGIN, 151
END
- IDD_MIDISETUP, DIALOG
+ IDD_OPTIONS_MIDI, DIALOG
BEGIN
RIGHTMARGIN, 240
BOTTOMMARGIN, 278
@@ -1853,8 +1643,218 @@
#endif // APSTUDIO_INVOKED
+#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 9, 1\r\n"
+ "#pragma code_page(1252)\r\n"
+ "#endif\r\n"
+ "#include ""res\\mptrack.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
+ "#include ""afxres.rc"" // Standard components\r\n"
+ "#endif\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDR_MAINFRAME ICON "res\\mptrack.ico"
+IDR_MODULETYPE ICON "res\\moddoc.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_MPTRACK BITMAP "res\\mptrack.bmp"
+IDB_IMAGELIST BITMAP "res\\img_list.bmp"
+IDB_PATTERNS BITMAP "res\\patterns.bmp"
+IDB_PATTERNVIEW BITMAP "res\\view_pat.bmp"
+IDB_COLORSETUP BITMAP "res\\colors.bmp"
+IDB_VUMETERS BITMAP "res\\vumeters.bmp"
+IDB_ENVTOOLBAR BITMAP "res\\envbar.bmp"
+IDB_SMPTOOLBAR BITMAP "res\\smptoolb.bmp"
+IDB_VISNODE BITMAP "res\\bitmap1.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAINFRAME MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ POPUP "&New\tCtrl+N"
+ BEGIN
+ MENUITEM "&IT", ID_FILE_NEWIT
+ MENUITEM "&XM", ID_FILE_NEWXM
+ MENUITEM "&S3M", ID_FILE_NEWS3M
+ MENUITEM "M&OD", ID_FILE_NEWMOD
+ MENUITEM "IT &Project", ID_NEW_ITPROJECT
+ MENUITEM "&MPTM (experimental)", ID_NEW_MPT
+ END
+ MENUITEM "&Open...\tCtrl+O", 57601
+ MENUITEM "&Close", ID_FILE_CLOSE
+ MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE
+ MENUITEM "Save &As...", ID_FILE_SAVE_AS
+ MENUITEM "Save as &Wave...", ID_FILE_SAVEASWAVE
+ MENUITEM "Save as M&P3...", ID_FILE_SAVEASMP3
+ MENUITEM "Export as M&IDI...", ID_FILE_SAVEMIDI
+ MENUITEM "Export &unraped...", ID_FILE_SAVECOMPAT
+ MENUITEM SEPARATOR
+ MENUITEM "Import &MIDI Library...", ID_IMPORT_MIDILIB
+ MENUITEM "Add Sound &Bank...", ID_ADD_SOUNDBANK
+ MENUITEM SEPARATOR
+ MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_APP_EXIT
+ END
+ POPUP "P&layer"
+ BEGIN
+ MENUITEM "&Play\tF5", ID_PLAYER_PLAY
+ MENUITEM "P&lay from start\tF6", ID_PLAYER_PLAYFROMSTART
+ MENUITEM "&Stop\tESC", ID_PLAYER_STOP
+ MENUITEM "P&ause\tF8", ID_PLAYER_PAUSE
+ MENUITEM "&MIDI Record\tF9", ID_MIDI_RECORD
+ MENUITEM SEPARATOR
+ MENUITEM "&Estimate song length", ID_ESTIMATESONGLENGTH
+ MENUITEM "Approx. real &BPM", ID_APPROX_BPM
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO
+ MENUITEM SEPARATOR
+ MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
+ MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
+ MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
+ MENUITEM "&Mix Paste\tCtrl+M", ID_EDIT_PASTE_SPECIAL
+ MENUITEM "Select &All\tCtrl+5", ID_EDIT_SELECT_ALL
+ MENUITEM SEPARATOR
+ POPUP "C&leanup"
+ BEGIN
+ MENUITEM "&Rearrange Patterns", ID_CLEANUP_REARRANGE
+ MENUITEM "&Cleanup Instruments", ID_CLEANUP_INSTRUMENTS
+ MENUITEM "Clean&up Samples", ID_CLEANUP_SAMPLES
+ MENUITEM "Cleanup Pa&tterns", ID_CLEANUP_PATTERNS
+ MENUITEM "Cleanup S&ong", ID_CLEANUP_SONG
+ MENUITEM "Remove &All Instruments", ID_INSTRUMENTS_REMOVEALL
+ MENUITEM "Cleanup &Plugins", ID_CLEANUP_PLUGS
+ MENUITEM "Co&mpo Cleanup", ID_CLEANUP_COMPO
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND
+ MENUITEM "Find Next\tF3", ID_EDIT_FINDNEXT
+ MENUITEM "Go to...", ID_EDIT_GOTO_MENU
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Globals\tAlt+G", ID_VIEW_GLOBALS
+ MENUITEM "&Patterns\tAlt+P", ID_VIEW_PATTERNS
+ MENUITEM "&Samples\tAlt+S", ID_VIEW_SAMPLES
+ MENUITEM "&Instruments\tAlt+N", ID_VIEW_INSTRUMENTS
+ MENUITEM "&Comments\tShift+F9", ID_VIEW_COMMENTS
+ MENUITEM SEPARATOR
+ POPUP "&Toolbars"
+ BEGIN
+ MENUITEM "&Main", ID_VIEW_TOOLBAR
+ MENUITEM "&Tree", IDD_TREEVIEW
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "Set&up...", ID_VIEW_OPTIONS
+ MENUITEM "Add &Plugin...", ID_PLUGIN_SETUP
+ MENUITEM "Channel &Manager...", ID_CHANNEL_MANAGER
+ MENUITEM "Song Properties...", ID_VIEW_SONGPROPERTIES
+ MENUITEM "MIDI mapping...", ID_VIEW_MIDIMAPPING
+ END
+ POPUP "&Window"
+ BEGIN
+ MENUITEM "&New Window", ID_WINDOW_NEW
+ MENUITEM SEPARATOR
+ MENUITEM "&Cascade", ID_WINDOW_CASCADE
+ MENUITEM "&Tile Horizontal", ID_WINDOW_TILE_HORZ
+ MENUITEM "Tile &Vertical", ID_WINDOW_TILE_VERT
+ MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE
+ MENUITEM "S&plit", ID_WINDOW_SPLIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&Contents", ID_HELP_FINDER
+ MENUITEM "&Search...", ID_HELP_SEARCH
+ MENUITEM "&Report a bug", ID_REPORT_BUG
+ MENUITEM SEPARATOR
+ POPUP "&Internet"
+ BEGIN
+ MENUITEM "Modplug Central &Forums", ID_NETLINK_FORUMS
+ MENUITEM "OpenMPT Wiki", ID_NETLINK_OPENMPTWIKI
+ MENUITEM "OpenMPT Wiki (German)", ID_NETLINK_OPENMPTWIKI_GERMAN
+ MENUITEM "MPT-FR", ID_NETLINK_MPTFR
+ MENUITEM "&Kvr Audio (plugins)", ID_NETLINK_PLUGINS
+ MENUITEM "The Mod Archive", ID_NETLINK_MODARCHIVE
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&About OpenMPT...", ID_APP_ABOUT
+ END
+END
+
+IDR_TOOLBARS MENU
+BEGIN
+ POPUP "&ToolBars"
+ BEGIN
+ MENUITEM "&Main", ID_VIEW_TOOLBAR
+ MENUITEM "&Tree", IDD_TREEVIEW
+ END
+END
+
+IDR_ENVELOPES MENU
+BEGIN
+ POPUP "&Envelope"
+ BEGIN
+ MENUITEM "&Loop", ID_ENVELOPE_SETLOOP
+ MENUITEM "&Sustain", ID_ENVELOPE_SUSTAIN
+ MENUITEM "C&arry envelope", ID_ENVELOPE_CARRY
+ MENUITEM "&Insert Point", ID_ENVELOPE_INSERTPOINT
+ MENUITEM "&Remove Point", ID_ENVELOPE_REMOVEPOINT
+ MENUITEM "&Toggle Release Node", ID_ENVELOPE_TOGGLERELEASENODE
+ MENUITEM SEPARATOR
+ MENUITEM "&Copy envelope", ID_EDIT_COPY
+ MENUITEM "&Paste envelope", ID_EDIT_PASTE
+ MENUITEM SEPARATOR
+ MENUITEM "Scale points...", ID_ENVELOPE_SCALEPOINTS
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
// Cursor
//
@@ -2218,55 +2218,6 @@
/////////////////////////////////////////////////////////////////////////////
//
-// Bitmap
-//
-
-IDB_SPLASHNOFOLDFIN BITMAP "res\\splashno.bmp"
-IDB_MAINBAR BITMAP "res\\MAINBAR.BMP"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_VSTMENU MENU
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "&Load Preset...", ID_PRESET_LOAD
- MENUITEM "&Save Preset As...", ID_PRESET_SAVE
- MENUITEM SEPARATOR
- MENUITEM "&Randomize Params", ID_PRESET_RANDOM
- END
- POPUP "&Info"
- BEGIN
- MENUITEM "I&nputs", ID_INFO_INPUTS36015
- MENUITEM "Ou&tputs", ID_INFO_OUPUTS
- MENUITEM "&Macros", ID_INFO_MACROS36017
- END
- POPUP "&Options"
- BEGIN
- MENUITEM "&Bypass", ID_PLUG_BYPASS
- MENUITEM "Record &Params", ID_PLUG_RECORDAUTOMATION
- END
-END
-
-IDR_PLUGINMENU MENU
-BEGIN
- POPUP "File"
- BEGIN
- MENUITEM "Open", ID_FILE_OPENPRESET
- MENUITEM "Save", ID_FILE_SAVEPRESET
- END
- POPUP "Factory preset"
- BEGIN
- MENUITEM SEPARATOR
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
// Dialog
//
@@ -2510,6 +2461,55 @@
/////////////////////////////////////////////////////////////////////////////
//
+// Bitmap
+//
+
+IDB_SPLASHNOFOLDFIN BITMAP "res\\splashno.bmp"
+IDB_MAINBAR BITMAP "res\\MAINBAR.BMP"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_VSTMENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load Preset...", ID_PRESET_LOAD
+ MENUITEM "&Save Preset As...", ID_PRESET_SAVE
+ MENUITEM SEPARATOR
+ MENUITEM "&Randomize Params", ID_PRESET_RANDOM
+ END
+ POPUP "&Info"
+ BEGIN
+ MENUITEM "I&nputs", ID_INFO_INPUTS36015
+ MENUITEM "Ou&tputs", ID_INFO_OUPUTS
+ MENUITEM "&Macros", ID_INFO_MACROS36017
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Bypass", ID_PLUG_BYPASS
+ MENUITEM "Record &Params", ID_PLUG_RECORDAUTOMATION
+ END
+END
+
+IDR_PLUGINMENU MENU
+BEGIN
+ POPUP "File"
+ BEGIN
+ MENUITEM "Open", ID_FILE_OPENPRESET
+ MENUITEM "Save", ID_FILE_SAVEPRESET
+ END
+ POPUP "Factory preset"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
// Dialog Info
//
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/mptrack/resource.h 2009-07-29 22:18:17 UTC (rev 310)
@@ -10,7 +10,7 @@
#define IDD_PROGRESS 106
#define IDD_OPTIONS_KEYBOARD 108
#define IDD_OPTIONS_COLORS 109
-#define IDD_MIDISETUP 111
+#define IDD_OPTIONS_MIDI 111
#define IDD_OPTIONS_PATTERN 112
#define IDD_LOADRAWSAMPLE 113
#define IDD_CONTROL_GLOBALS 114
@@ -106,7 +106,6 @@
#define IDD_MIDIPARAMCONTROL 515
#define IDD_MSGBOX_HIDABLE 516
#define IDD_ADDSILENCE 517
-#define IDD_DIALOG4 518
#define IDD_MODLOADING_WARNINGS 518
#define IDC_BUTTON1 1001
#define IDC_BUTTON2 1002
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-29 22:18:17 UTC (rev 310)
@@ -1846,6 +1846,8 @@
BOOL bNoLoop = FALSE;
if (nPosJump < 0) nPosJump = m_nCurrentPattern+1;
if (nBreakRow < 0) nBreakRow = 0;
+
+ if(nBreakRow >= 0) m_bPatternBreak = true;
// Modplug Tracker & ModPlugin allow backward jumps
#ifndef FASTSOUNDLIB
if ((nPosJump < (int)m_nCurrentPattern)
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2009-07-29 22:18:17 UTC (rev 310)
@@ -883,6 +883,7 @@
BYTE m_nMixLevels;
UINT m_nMusicSpeed, m_nMusicTempo;
UINT m_nNextRow, m_nRow;
+ BOOL m_bPatternBreak; // Will be set if "break to row" happened
UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos, m_nSeqOverride;
//NOTE: m_nCurrentPattern and m_nNextPattern refer to order index - not pattern index.
bool m_bPatternTransitionOccurred;
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-29 12:20:51 UTC (rev 309)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-29 22:18:17 UTC (rev 310)
@@ -643,9 +643,16 @@
{
if (!m_nRepeatCount) return FALSE;
- if (!m_nRestartPos)
+
+ if(CMainFrame::GetMainFrame())
{
+ // If channel resetting is disabled, we will emulate a pattern break
+ if(!(CMainFrame::GetMainFrame()->m_dwPatternSetup & PATTERN_RESETCHANNELS))
+ m_bPatternBreak = true;
+ }
+ if (!m_nRestartPos && !m_bPatternBreak)
+ {
//rewbs.instroVSTi: stop all VSTi at end of song, if looping.
StopAllVsti();
m_nMusicSpeed = m_nDefaultSpeed;
@@ -683,7 +690,8 @@
//Handle Repeat position
if (m_nRepeatCount > 0) m_nRepeatCount--;
m_nCurrentPattern = m_nRestartPos;
- m_nRow = 0;
+ //m_nRow = 0;
+ m_bPatternBreak = false;
//If restart pos points to +++, move along
while (Order[m_nCurrentPattern] == Order.GetIgnoreIndex()) {
m_nCurrentPattern++;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-29 14:08:48
|
Revision: 309
http://modplug.svn.sourceforge.net/modplug/?rev=309&view=rev
Author: saga-games
Date: 2009-07-29 12:20:51 +0000 (Wed, 29 Jul 2009)
Log Message:
-----------
[Imp] Sample editor: If sample length is 0, the "add silence / resize sample" dialog will switch into "resize" mode automatically (not a real difference, but looks cleaner)
[Imp] Format conversion: \xx is converted to Zxx when converting to / saving S3M files or "compatible" IT files
[Imp] S3M Loader: Recognize OpenMPT version in S3M header
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/dlg_misc.h
trunk/OpenMPT/soundlib/Fastmix.cpp
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Sndfile.h
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-29 12:20:51 UTC (rev 309)
@@ -380,6 +380,7 @@
{
case CMD_PANNING8:
m->param = (m->param + 1) >> 1;
+ break;
case CMD_S3MCMDEX:
if(m->param == 0x91)
{
@@ -387,6 +388,10 @@
m->command = CMD_PANNING8;
m->param = 0xA4;
}
+ break;
+ case CMD_SMOOTHMIDI:
+ m->command = CMD_MIDI;
+ break;
default:
break;
}
Modified: trunk/OpenMPT/mptrack/dlg_misc.h
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-29 12:20:51 UTC (rev 309)
@@ -354,12 +354,26 @@
DECLARE_MESSAGE_MAP()
public:
- UINT m_nSamples;
- UINT m_nLength;
- char m_nEditOption; // 1 = add at beginning, 2 = add at end, 3 = resize
+ UINT m_nSamples; // Add x samples (also containes the return value in all cases)
+ UINT m_nLength; // Set size to x samples (init value: current sample size)
+ char m_nEditOption; // 1 = add at beginning, 2 = add at end, 3 = resize
public:
- CAddSilenceDlg(CWnd *parent, UINT nSamples = 32, UINT nOrigLength = 1024):CDialog(IDD_ADDSILENCE, parent) { m_nSamples = nSamples; m_nLength = nOrigLength; m_nEditOption = 2; }
+ CAddSilenceDlg(CWnd *parent, UINT nSamples = 32, UINT nOrigLength = 64) : CDialog(IDD_ADDSILENCE, parent)
+ {
+ m_nSamples = nSamples;
+ if(nOrigLength > 0)
+ {
+ m_nLength = nOrigLength;
+ m_nEditOption = 2;
+ }
+ else
+ {
+ m_nLength = 64;
+ m_nEditOption = 3;
+ }
+ }
+
virtual BOOL OnInitDialog();
virtual void OnOK();
};
Modified: trunk/OpenMPT/soundlib/Fastmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Fastmix.cpp 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/soundlib/Fastmix.cpp 2009-07-29 12:20:51 UTC (rev 309)
@@ -1478,6 +1478,8 @@
LONG nDeltaLo = 0x10000 - (pChn->nPosLo & 0xffff);
pChn->nPos = pChn->nLength - nDeltaHi - (nDeltaLo>>16);
pChn->nPosLo = nDeltaLo & 0xffff;
+ // Impulse Tracker's software mixer would put a -2 (instead of -1) in the following line (doesn't happen on a GUS)
+ // TODO: How can we add IT compatibility here without slowing down the mixing routines?
if ((pChn->nPos <= pChn->nLoopStart) || (pChn->nPos >= pChn->nLength)) pChn->nPos = pChn->nLength-1;
} else
{
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-29 12:20:51 UTC (rev 309)
@@ -2858,7 +2858,7 @@
if (vol != 0xFF) b |= 4;
if (command)
{
- S3MSaveConvert(&command, ¶m, TRUE);
+ S3MSaveConvert(&command, ¶m, true, true);
if (command) b |= 8;
}
// Packing information
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-29 12:20:51 UTC (rev 309)
@@ -12,9 +12,7 @@
#include "sndfile.h"
#include "../mptrack/moddoc.h"
#include "../mptrack/misc_util.h"
-#ifndef MODPLUG_NO_FILESAVE
#include "../mptrack/version.h"
-#endif
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -154,8 +152,8 @@
}
-void CSoundFile::S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT) const
-//---------------------------------------------------------------------
+void CSoundFile::S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT, BOOL bCompatible) const
+//---------------------------------------------------------------------------------------
{
UINT command = *pcmd;
UINT param = *pprm;
@@ -186,20 +184,25 @@
case CMD_GLOBALVOLSLIDE: command = 'W'; break;
case CMD_PANNING8:
command = 'X';
- if ((bIT) && (!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) && (m_nType != MOD_TYPE_XM))
+ if (bIT && !(m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)))
{
if (param == 0xA4) { command = 'S'; param = 0x91; } else
if (param <= 0x80) { param <<= 1; if (param > 255) param = 255; } else
command = param = 0;
} else
- if ((!bIT) && ((m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)) || (m_nType == MOD_TYPE_XM)))
+ if (!bIT && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)))
{
param >>= 1;
}
break;
case CMD_PANBRELLO: command = 'Y'; break;
case CMD_MIDI: command = 'Z'; break;
- case CMD_SMOOTHMIDI: command = '\\'; break; //rewbs.smoothVST
+ case CMD_SMOOTHMIDI: //rewbs.smoothVST
+ if(bCompatible)
+ command = 'Z';
+ else
+ command = '\\';
+ break;
case CMD_VELOCITY: command = ':'; break; //rewbs.velocity
case CMD_XFINEPORTAUPDOWN:
if (param & 0x0F) switch(param & 0xF0)
@@ -262,6 +265,9 @@
psfh.scrm = LittleEndian(psfh.scrm);
psfh.special = LittleEndianW(psfh.special);
+ if((psfh.cwtv & 0xF000) == 0x5000) // OpenMPT Version number (Major.Minor)
+ m_dwLastSavedWithVersion = (psfh.cwtv & 0x0FFF) << 16;
+
if ((!lpStream) || (dwMemLength <= sizeof(S3MFILEHEADER)+sizeof(S3MSAMPLESTRUCT)+64)) return FALSE;
if (psfh.scrm != 0x4D524353) return FALSE;
dwMemPos = 0x60;
@@ -362,7 +368,6 @@
if (insfile[iSmp] > dwMemLength) insfile[iSmp] &= 0xFFFF;
if ((Ins[iSmp].nLoopStart >= Ins[iSmp].nLoopEnd) || (Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart < 1))
Ins[iSmp].nLoopStart = Ins[iSmp].nLoopEnd = 0;
- UINT iLooplength = Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart;
Ins[iSmp].nPan = 0x80;
//ASSERT(iLooplength == 0 || iLooplength > 4);
}
@@ -515,10 +520,10 @@
// Version info following: ST3.20 = 0x1320
// Most significant nibble: 1 = ST3, 2 = Orpheus, 3 = IT, 4 = Schism, 5 = MPT
- // Following: One nibble = Major version, one byte = Minor version
+ // Following: One nibble = Major version, one byte = Minor version (hex)
MptVersion::VersionNum vVersion = MptVersion::num;
header[0x28] = (BYTE)((vVersion >> 16) & 0xFF); // the "17" in OpenMPT 1.17
- header[0x29] = 0x50 | (BYTE)((vVersion >> 24) & 0x0F); // the "1" in OpenMPT 1.17 + OpenMPT Identifier 5 (works only for versions up to 15.255 :))
+ header[0x29] = 0x50 | (BYTE)((vVersion >> 24) & 0x0F); // the "1" in OpenMPT 1.17 + OpenMPT Identifier 5 (works only for versions up to 15.99 :))
header[0x2A] = 0x02; // Version = 1 => Signed samples
header[0x2B] = 0x00;
header[0x2C] = 'S';
@@ -606,7 +611,7 @@
if (volcmd == VOLCMD_PANNING) { vol |= 0x80; b |= 0x40; }
if (command)
{
- S3MSaveConvert(&command, ¶m, FALSE);
+ S3MSaveConvert(&command, ¶m, false, true);
if (command) b |= 0x80;
}
if (b & 0xE0)
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2009-07-28 13:34:18 UTC (rev 308)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2009-07-29 12:20:51 UTC (rev 309)
@@ -1055,7 +1055,7 @@
UINT GetSaveFormats() const;
void ConvertModCommand(MODCOMMAND *) const;
void S3MConvert(MODCOMMAND *m, BOOL bIT) const;
- void S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT) const;
+ void S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT, BOOL bCompatible = false) const;
WORD ModSaveCommand(const MODCOMMAND *m, BOOL bXM) const;
public:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-28 13:35:10
|
Revision: 308
http://modplug.svn.sourceforge.net/modplug/?rev=308&view=rev
Author: saga-games
Date: 2009-07-28 13:34:18 +0000 (Tue, 28 Jul 2009)
Log Message:
-----------
[Fix] S3M Saving: Patterns are now saved correctly. Previously, the last few rows might have come up as garbage in ST3, especially (only?) when they were empty.
[Imp] S3M Saving: Using an own version number in the header now, just like all the other trackers.
[Fix] IT Compatibility: Pattern loop count won't be reset on pattern transition (fixes gm-trippy01.it)
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-27 21:02:38 UTC (rev 307)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-28 13:34:18 UTC (rev 308)
@@ -12,6 +12,9 @@
#include "sndfile.h"
#include "../mptrack/moddoc.h"
#include "../mptrack/misc_util.h"
+#ifndef MODPLUG_NO_FILESAVE
+#include "../mptrack/version.h"
+#endif
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -509,8 +512,13 @@
header[0x25] = nbp >> 8;
if (m_dwSongFlags & SONG_FASTVOLSLIDES) header[0x26] |= 0x40;
if ((m_nMaxPeriod < 20000) || (m_dwSongFlags & SONG_AMIGALIMITS)) header[0x26] |= 0x10;
- header[0x28] = 0x20;
- header[0x29] = 0x13;
+
+ // Version info following: ST3.20 = 0x1320
+ // Most significant nibble: 1 = ST3, 2 = Orpheus, 3 = IT, 4 = Schism, 5 = MPT
+ // Following: One nibble = Major version, one byte = Minor version
+ MptVersion::VersionNum vVersion = MptVersion::num;
+ header[0x28] = (BYTE)((vVersion >> 16) & 0xFF); // the "17" in OpenMPT 1.17
+ header[0x29] = 0x50 | (BYTE)((vVersion >> 24) & 0x0F); // the "1" in OpenMPT 1.17 + OpenMPT Identifier 5 (works only for versions up to 15.255 :))
header[0x2A] = 0x02; // Version = 1 => Signed samples
header[0x2B] = 0x00;
header[0x2C] = 'S';
@@ -558,11 +566,11 @@
ofs1 = ftell(f);
fwrite(insex, nbi, 0x50, f);
// Packing patterns
- ofs += nbi*0x50;
- for (i=0; i<nbp; i++)
+ ofs += nbi * 0x50;
+ for (i = 0; i < nbp; i++)
{
WORD len = 64;
- vector<BYTE> buffer(5*1024, 0);
+ vector<BYTE> buffer(5 * 1024, 0);
patptr[i] = ofs / 16;
if (Patterns[i])
{
@@ -581,16 +589,18 @@
UINT param = m->param;
if ((note) || (m->instr)) b |= 0x20;
- if (!note) note = 0xFF; else
- if (note >= 0xFE) note = 0xFE; else
- if (note < 13) note = 0; else note -= 13;
+
+ if (!note) note = 0xFF; // no note
+ else if (note >= NOTE_MIN_SPECIAL) note = 0xFE; // special notes (notecut, noteoff etc)
+ else if (note < 13) note = 0; // too low
+ else note -= 13;
+
if (note < 0xFE) note = (note % 12) + ((note / 12) << 4);
if (command == CMD_VOLUME)
{
command = 0;
- if (param > 64) param = 64;
volcmd = VOLCMD_VOLUME;
- vol = param;
+ vol = min(param, 64);
}
if (volcmd == VOLCMD_VOLUME) b |= 0x40; else
if (volcmd == VOLCMD_PANNING) { vol |= 0x80; b |= 0x40; }
@@ -629,9 +639,9 @@
}
}
}
- buffer[0] = (len - 2) & 0xFF;
- buffer[1] = (len - 2) >> 8;
- len = (len+15) & (~0x0F);
+ buffer[0] = (len) & 0xFF;
+ buffer[1] = (len) >> 8;
+ len = (len + 15) & (~0x0F);
fwrite(&buffer[0], len, 1, f);
ofs += len;
}
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-27 21:02:38 UTC (rev 307)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-28 13:34:18 UTC (rev 308)
@@ -1568,7 +1568,7 @@
}
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
- //IT compatibility 15. Retrigger
+ // IT compatibility 15. Retrigger
if (param)
pChn->nRetrigParam = (BYTE)(param & 0xFF);
@@ -1581,7 +1581,7 @@
}
else
{
- //MPT Retrig
+ // XM Retrig
if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF); else param = pChn->nRetrigParam;
//rewbs.volOffset
//RetrigNote(nChn, param);
@@ -1875,7 +1875,7 @@
//end rewbs.fix
&& ((nPosJump != (int)m_nCurrentPattern) || (nBreakRow != (int)m_nRow)))
{
- if (nPosJump != (int)m_nCurrentPattern)
+ if (nPosJump != (int)m_nCurrentPattern && !((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY)))
{
for (UINT i=0; i<m_nChannels; i++) Chn[i].nPatternLoopCount = 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-27 21:02:47
|
Revision: 307
http://modplug.svn.sourceforge.net/modplug/?rev=307&view=rev
Author: saga-games
Date: 2009-07-27 21:02:38 +0000 (Mon, 27 Jul 2009)
Log Message:
-----------
[Imp] Mod Specs: It is now possible to have modules with 1-3 channels, as this only seems to cause trouble with MOD files (so they still have 4 channels minimum of course). Adjusted some of the module readers for that reason.
[Imp] IT Loading: Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT
[Imp] XM Loading: Doing the same for XM files now
[Imp] XM Loading: Less hacky implementation of the instrument loader. Still works correctly with "normal" XM modules and BoobieSqueezed XMs.
[Imp] XM Saving: Setting "Open ModPlug Tracker" in the "made with" field (as any other tracker put their signature in here as well)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_gen.cpp
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/soundlib/LOAD_AMF.CPP
trunk/OpenMPT/soundlib/LOAD_DBM.CPP
trunk/OpenMPT/soundlib/LOAD_DMF.CPP
trunk/OpenMPT/soundlib/LOAD_DSM.CPP
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -235,7 +235,7 @@
// -! NEW_FEATURE#0023
}
- wsprintf(s, "%s, %d channels", pszModType, m_pSndFile->m_nChannels);
+ wsprintf(s, "%s, %d channel%s", pszModType, m_pSndFile->m_nChannels, (m_pSndFile->m_nChannels != 1) ? "s" : "");
m_EditModType.SetWindowText(s);
}
if (dwHint & HINT_MPTSETUP)
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -3349,10 +3349,13 @@
if (!ChangeModType(dlg.m_nType)) return;
bShowLog = TRUE;
}
- if ((dlg.m_nChannels >= 4) && (dlg.m_nChannels != GetSoundFile()->m_nChannels))
+
+ UINT nNewChannels = CLAMP(dlg.m_nChannels, m_SndFile.GetModSpecifications().channelsMin, m_SndFile.GetModSpecifications().channelsMax);
+
+ if (nNewChannels != GetSoundFile()->m_nChannels)
{
const bool showCancelInRemoveDlg = m_SndFile.GetModSpecifications().channelsMax >= m_SndFile.GetNumChannels();
- if(ChangeNumChannels(dlg.m_nChannels, showCancelInRemoveDlg)) bShowLog = TRUE;
+ if(ChangeNumChannels(nNewChannels, showCancelInRemoveDlg)) bShowLog = TRUE;
}
if (bShowLog) ShowLog("Conversion Status", CMainFrame::GetMainFrame());
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -2516,7 +2516,7 @@
CSoundFile* pSndFile;
if (pModDoc == 0 || (pSndFile = pModDoc->GetSoundFile()) == 0) return;
- if(pSndFile->m_nChannels <= 4)
+ if(pSndFile->m_nChannels <= pSndFile->GetModSpecifications().channelsMin)
{
CMainFrame::GetMainFrame()->MessageBox("No channel removed - channel number already at minimum.", "Remove channel", MB_OK | MB_ICONINFORMATION);
return;
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -229,7 +229,7 @@
m_ChannelsBox.ResetContent();
for (CHANNELINDEX i=minChans; i<=maxChans; i++)
{
- wsprintf(s, "%d Channels", i);
+ wsprintf(s, "%d Channel%s", i, (i != 1) ? "s" : "");
m_ChannelsBox.SetItemData(m_ChannelsBox.AddString(s), i);
}
if(currChanSel > maxChans)
@@ -581,7 +581,7 @@
}
if (m_nRemove > 0) {
- wsprintf(label, "Select %d channels to remove:", m_nRemove);
+ wsprintf(label, "Select %d channel%s to remove:", m_nRemove, (m_nRemove != 1) ? "s" : "");
} else {
wsprintf(label, "Select channels to remove (the minimum number of remaining channels is %d)", m_pSndFile->GetModSpecifications().channelsMin);
}
Modified: trunk/OpenMPT/soundlib/LOAD_AMF.CPP
===================================================================
--- trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2009-07-27 21:02:38 UTC (rev 307)
@@ -268,7 +268,7 @@
|| (pfh->version < 10) || (pfh->version > 14) || (!LittleEndianW(pfh->numtracks))
|| (!pfh->numorders) || (pfh->numorders > MAX_PATTERNS)
|| (!pfh->numsamples) || (pfh->numsamples > MAX_SAMPLES)
- || (pfh->numchannels < 4) || (pfh->numchannels > 32))
+ || (pfh->numchannels < 1) || (pfh->numchannels > 32))
return FALSE;
memcpy(m_szNames[0], pfh->title, 31);
dwMemPos = sizeof(AMFFILEHEADER);
Modified: trunk/OpenMPT/soundlib/LOAD_DBM.CPP
===================================================================
--- trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2009-07-27 21:02:38 UTC (rev 307)
@@ -116,7 +116,7 @@
nPatterns = BigEndianW(pfh->patterns);
m_nType = MOD_TYPE_DBM;
m_nChannels = BigEndianW(pfh->channels);
- if (m_nChannels < 4) m_nChannels = 4;
+ if (m_nChannels < 1) m_nChannels = 1;
if (m_nChannels > 64) m_nChannels = 64;
memcpy(m_szNames[0], (pfh->songname[0]) ? pfh->songname : pfh->songname2, 32);
m_szNames[0][31] = 0;
Modified: trunk/OpenMPT/soundlib/LOAD_DMF.CPP
===================================================================
--- trunk/OpenMPT/soundlib/LOAD_DMF.CPP 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/LOAD_DMF.CPP 2009-07-27 21:02:38 UTC (rev 307)
@@ -164,7 +164,7 @@
m_nChannels = patt->tracks;
if (m_nChannels < patt->firstpatinfo) m_nChannels = patt->firstpatinfo;
if (m_nChannels > 32) m_nChannels = 32;
- if (m_nChannels < 4) m_nChannels = 4;
+ if (m_nChannels < 1) m_nChannels = 1;
for (UINT npat=0; npat<numpat; npat++)
{
DMFTRACK *pt = (DMFTRACK *)(lpStream+dwPos);
Modified: trunk/OpenMPT/soundlib/LOAD_DSM.CPP
===================================================================
--- trunk/OpenMPT/soundlib/LOAD_DSM.CPP 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/LOAD_DSM.CPP 2009-07-27 21:02:38 UTC (rev 307)
@@ -101,7 +101,7 @@
dwMemPos = sizeof(DSMFILEHEADER) + pfh->song_len;
m_nType = MOD_TYPE_DSM;
m_nChannels = psong->numtrk;
- if (m_nChannels < 4) m_nChannels = 4;
+ if (m_nChannels < 1) m_nChannels = 1;
if (m_nChannels > 16) m_nChannels = 16;
m_nSamples = psong->numsmp;
if (m_nSamples > MAX_SAMPLES) m_nSamples = MAX_SAMPLES;
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -963,7 +963,7 @@
//TODO: Check whether above interpretation is reasonable especially for
//values 0x217 and 0x200 which are the values used in 1.16.
if(pifh->cwtv == 0x217 && pifh->cmwt == 0x200)
- m_dwCreatedWithVersion = MAKE_VERSION_NUMERIC(1, 16, 0, 0);
+ m_dwLastSavedWithVersion = MAKE_VERSION_NUMERIC(1, 16, 0, 0);
}
}
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -291,7 +291,7 @@
ChnSettings[ich].dwFlags = 0;
}
}
- if (m_nChannels < 4) m_nChannels = 4;
+ if (m_nChannels < 1) m_nChannels = 1;
if ((psfh.cwtv < 0x1320) || (psfh.flags & 0x40)) m_dwSongFlags |= SONG_FASTVOLSLIDES;
// Reading pattern order
UINT iord = psfh.ordnum;
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-27 21:02:38 UTC (rev 307)
@@ -39,16 +39,16 @@
typedef struct tagXMINSTRUMENTHEADER
{
- DWORD size;
+ DWORD size; // size of XMINSTRUMENTHEADER + XMSAMPLEHEADER
CHAR name[22];
- BYTE type;
+ BYTE type; // should always be 0
WORD samples;
} XMINSTRUMENTHEADER;
typedef struct tagXMSAMPLEHEADER
{
- DWORD shsize;
+ DWORD shsize; // size of XMSAMPLESTRUCT
BYTE snum[96];
WORD venv[24];
WORD penv[24];
@@ -315,21 +315,18 @@
if ((nsamples = pih->samples) > 0)
{
- if (dwMemPos + sizeof(XMINSTRUMENTHEADER) + sizeof(DWORD) >= dwMemLength) return TRUE;
- DWORD shsize = LittleEndian(*((DWORD *)(lpStream + dwMemPos + sizeof(XMINSTRUMENTHEADER))));
+ /* we have sample, so let's read the rest of this instrument
+ the header that is being read here is not the sample header, though,
+ it's rather the instrument settings. */
+ if (dwMemPos + ihsize >= dwMemLength)
+ return TRUE;
+
memset(&xmsh, 0, sizeof(XMSAMPLEHEADER));
-
- // *very* dirty, but it works!
- DWORD dwReadLength = sizeof(XMSAMPLEHEADER);
- if(ihsize == 38 && (int)(shsize - ihsize) >= 0) // BoobieSqueezer compressed - ihsize = 38, shsize = 40
- dwReadLength = shsize - ihsize;
+ memcpy(&xmsh,
+ lpStream + dwMemPos + sizeof(XMINSTRUMENTHEADER),
+ min(ihsize - sizeof(XMINSTRUMENTHEADER), sizeof(XMSAMPLEHEADER)));
- if (dwMemPos + sizeof(XMINSTRUMENTHEADER) + dwReadLength >= dwMemLength || shsize > sizeof(XMSAMPLEHEADER))
- return TRUE;
- else
- memcpy(&xmsh, lpStream + dwMemPos + sizeof(XMINSTRUMENTHEADER), dwReadLength);
-
xmsh.shsize = LittleEndian(xmsh.shsize);
for (int i = 0; i < 24; ++i) {
@@ -628,7 +625,11 @@
bMadeWithModPlug = true;
}
- SetModFlag(MSF_COMPATIBLE_PLAY, !bMadeWithModPlug);
+ if(bMadeWithModPlug)
+ {
+ SetModFlag(MSF_COMPATIBLE_PLAY, false);
+ m_dwLastSavedWithVersion = MAKE_VERSION_NUMERIC(1, 16, 0, 0);
+ }
// -> CODE#0027
// -> DESC="per-instrument volume ramping setup (refered as attack)"
@@ -670,7 +671,7 @@
fwrite("Extended Module: ", 17, 1, f);
fwrite(m_szNames[0], 20, 1, f);
s[0] = 0x1A;
- lstrcpy((LPSTR)&s[1], (nPacking) ? "MOD Plugin packed " : "Open ModPlugTracker ");
+ lstrcpy((LPSTR)&s[1], (nPacking) ? "MOD Plugin packed " : "Open ModPlug Tracker");
s[21] = 0x04;
s[22] = 0x01;
fwrite(&s[0], 23, 1, f);
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-27 17:27:59 UTC (rev 306)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-27 21:02:38 UTC (rev 307)
@@ -9,15 +9,15 @@
struct CModSpecifications
//=======================
{
- // Return true iff format supports given note.
+ // Return true if format supports given note.
bool HasNote(MODCOMMAND::NOTE note) const;
//NOTE: If changing order, update all initializations below.
char fileExtension[6]; // File extension without dot.
MODCOMMAND::NOTE noteMin; // Minimum note index (index starts from 1)
MODCOMMAND::NOTE noteMax; // Maximum note index (index starts from 1)
- bool hasNoteCut; // True iff format has notecut.
- bool hasNoteOff; // True iff format has noteoff.
+ bool hasNoteCut; // True if format has notecut.
+ bool hasNoteOff; // True if format has noteoff.
PATTERNINDEX patternsMax;
ORDERINDEX ordersMax;
CHANNELINDEX channelsMin; // Minimum number of editable channels in pattern.
@@ -53,7 +53,7 @@
true, //Has noteoff.
4000, //Pattern max.
4000, //Order max.
- 4, //Channel min
+ 1, //Channel min
127, //Channel max
32, //Min tempo
512, //Max tempo
@@ -132,7 +132,7 @@
true, //Has noteoff.
64, //Pattern max.
128, //Order max.
- 4, //Channel min
+ 1, //Channel min
32, //Channel max
32, //Min tempo
255, //Max tempo
@@ -158,7 +158,7 @@
true, //Has noteoff.
240, //Pattern max.
256, //Order max.
- 4, //Channel min
+ 1, //Channel min
127, //Channel max
32, //Min tempo
512, //Max tempo
@@ -183,7 +183,7 @@
false, //No noteoff.
240, //Pattern max.
256, //Order max.
- 4, //Channel min
+ 1, //Channel min
32, //Channel max
32, //Min tempo
255, //Max tempo
@@ -209,7 +209,7 @@
false, //No noteoff.
240, //Pattern max.
256, //Order max.
- 4, //Channel min
+ 1, //Channel min
32, //Channel max
32, //Min tempo
255, //Max tempo
@@ -234,7 +234,7 @@
true, //Has noteoff.
240, //Pattern max.
200, //Order max.
- 4, //Channel min
+ 1, //Channel min
64, //Channel max
32, //Min tempo
255, //Max tempo
@@ -259,7 +259,7 @@
true, //Has noteoff.
240, //Pattern max.
256, //Order max.
- 4, //Channel min
+ 1, //Channel min
127, //Channel max
32, //Min tempo
512, //Max tempo
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-27 17:28:07
|
Revision: 306
http://modplug.svn.sourceforge.net/modplug/?rev=306&view=rev
Author: saga-games
Date: 2009-07-27 17:27:59 +0000 (Mon, 27 Jul 2009)
Log Message:
-----------
[Imp] Autosave: If a module has not been changed since the last autosave, it will not be autosaved.
[Imp] Directory handling: Setting the default directory won't update the working directory now ONLY if it has not changed.
[Fix] MP3 / Wav export: Default directories should now *really* work
[Fix] XM loader: Various changes to make XMs that have been compressed with BoobieSqueezer load correctly. Should not break anything, but I call it "experimental".
Modified Paths:
--------------
trunk/OpenMPT/mptrack/AutoSaver.cpp
trunk/OpenMPT/mptrack/Ctrl_gen.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/Moddoc.h
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/AutoSaver.cpp
===================================================================
--- trunk/OpenMPT/mptrack/AutoSaver.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/mptrack/AutoSaver.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -72,12 +72,12 @@
while (posDocument) { //for all open documents
pModDoc = (CModDoc*)(pDocTemplate->GetNextDoc(posDocument));
- if (pModDoc && pModDoc->IsModified()) {
+ if (pModDoc && pModDoc->ModifiedSinceLastAutosave()) {
if (SaveSingleFile(pModDoc)) {
CleanUpBackups(pModDoc);
} else {
m_bEnabled=false;
- AfxMessageBox("Warning: autosave failed and has been disabled. Please:\r\n\r\n- Review your autosave paths\r\n- Check available diskspace & filesystem access rights\r\n- If you are using the ITP format, ensure all instruments exist as independant .iti files");
+ AfxMessageBox("Warning: Autosave failed and has been disabled. Please:\n- Review your autosave paths\n- Check available diskspace & filesystem access rights\n- If you are using the ITP format, ensure all instruments exist as independant .iti files");
success = false;
}
}
Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -341,7 +341,8 @@
m_EditTempo.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = CLAMP(atoi(s), m_pSndFile->GetModSpecifications().tempoMin, m_pSndFile->GetModSpecifications().tempoMax);
+ UINT n = atoi(s);
+ n = CLAMP(n, m_pSndFile->GetModSpecifications().tempoMin, m_pSndFile->GetModSpecifications().tempoMax);
if (n != m_pSndFile->m_nDefaultTempo)
{
m_bEditsLocked=true;
@@ -367,7 +368,8 @@
m_EditSpeed.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = CLAMP(atoi(s), m_pSndFile->GetModSpecifications().speedMin, m_pSndFile->GetModSpecifications().speedMax);
+ UINT n = atoi(s);
+ n = CLAMP(n, m_pSndFile->GetModSpecifications().speedMin, m_pSndFile->GetModSpecifications().speedMax);
if (n != m_pSndFile->m_nDefaultSpeed) {
m_bEditsLocked=true;
m_EditSpeed.SetModify(FALSE);
@@ -389,7 +391,8 @@
if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) {
m_EditVSTiVol.GetWindowText(s, sizeof(s));
if (s[0]) {
- int n = CLAMP(atoi(s), 0, 2000);
+ int n = atoi(s);
+ n = CLAMP(n, 0, 2000);
if (n != m_pSndFile->m_nVSTiVolume) {
m_bEditsLocked=true;
m_pSndFile->m_nVSTiVolume = n;
@@ -410,7 +413,8 @@
if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) {
m_EditSamplePA.GetWindowText(s, sizeof(s));
if (s[0]) {
- int n = CLAMP(atoi(s), 0, 2000);
+ int n = atoi(s);
+ n = CLAMP(n, 0, 2000);
if (n != m_pSndFile->m_nSamplePreAmp) {
m_bEditsLocked=true;
m_pSndFile->m_nSamplePreAmp = n;
@@ -432,7 +436,8 @@
m_EditGlobalVol.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = CLAMP(atoi(s), 0, 128);
+ UINT n = atoi(s);
+ n = CLAMP(n, 0, 128);
if (n != (m_pSndFile->m_nDefaultGlobalVolume >> 1))
{
m_bEditsLocked=true;
@@ -458,7 +463,8 @@
m_EditRestartPos.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = CLAMP(atoi(s), 0, m_pSndFile->Order.size());
+ UINT n = atoi(s);
+ n = CLAMP(n, 0, m_pSndFile->Order.size());
for (ORDERINDEX i = 0; i <= n; i++)
if (m_pSndFile->Order[i] == m_pSndFile->Order.GetInvalidPatIndex()) return;
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -3051,11 +3051,17 @@
_tcscpy(szPath, szFilenameFrom);
}
+ TCHAR szOldDir[sizeof(directories[dir])]; // for comparison
+ _tcscpy(szOldDir, directories[dir]);
+
_tcscpy(directories[dir], szPath);
- // When updating default directory, also update the working directory (if it hasn't been set yet).
- if(szPath[0] && directories == m_szDefaultDirectory && !m_szWorkingDirectory[dir][0])
- SetWorkingDirectory(szPath, dir);
+ // When updating default directory, also update the working directory.
+ if(szPath[0] && directories == m_szDefaultDirectory)
+ {
+ if(_tcscmp(szOldDir, szPath) != 0) // update only if default directory has changed
+ SetWorkingDirectory(szPath, dir);
+ }
}
void CMainFrame::SetDefaultDirectory(const LPCTSTR szFilenameFrom, Directory dir, bool bStripFilename)
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -1363,15 +1363,12 @@
void CModDoc::OnFileWaveConvert()
//-------------------------------
{
- CHAR path[_MAX_PATH]="", drive[_MAX_DRIVE]="";
- CHAR s[_MAX_PATH], fname[_MAX_FNAME]="";
+ TCHAR fname[_MAX_FNAME]="";
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
if ((!pMainFrm) || (!m_SndFile.GetType())) return;
- _splitpath(GetPathName(), drive, path, fname, NULL);
- strcpy(s, fname);
- strcat(s, ".wav");
- CFileDialog dlg(FALSE, "wav", s,
+ _splitpath(GetPathName(), NULL, NULL, fname, NULL);
+ CFileDialog dlg(FALSE, "wav", fname,
OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_NOREADONLYRETURN,
"Wave Files (*.wav)|*.wav||", pMainFrm);
dlg.m_ofn.lpstrInitialDir = CMainFrame::GetWorkingDirectory(DIR_EXPORT);
@@ -1383,6 +1380,7 @@
// will set default dir here because there's no setup option for export dir yet (feel free to add one...)
pMainFrm->SetDefaultDirectory(dlg.GetPathName(), DIR_EXPORT, true);
+ TCHAR s[_MAX_PATH];
strcpy(s, dlg.GetPathName());
// Saving as wave file
@@ -1492,16 +1490,12 @@
void CModDoc::OnFileMP3Convert()
//------------------------------
{
- CHAR path[_MAX_PATH]="", drive[_MAX_DRIVE]="";
- CHAR s[_MAX_PATH], fname[_MAX_FNAME]="", fext[_MAX_EXT] = "";
+ TCHAR sFName[_MAX_FNAME] = "";
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
if ((!pMainFrm) || (!m_SndFile.GetType())) return;
- _splitpath(GetPathName(), drive, path, fname, NULL);
- strcpy(s, drive);
- strcat(s, path);
- strcat(s, fname);
- CFileDialog dlg(FALSE, "mp3", s,
+ _splitpath(GetPathName(), NULL, NULL, sFName, NULL);
+ CFileDialog dlg(FALSE, "mp3", sFName,
OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_NOREADONLYRETURN,
"MPEG Layer III Files (*.mp3)|*.mp3|Layer3 Wave Files (*.wav)|*.wav||", pMainFrm);
dlg.m_ofn.nFilterIndex = 0;
@@ -1516,6 +1510,7 @@
// will set default dir here because there's no setup option for export dir yet (feel free to add one...)
pMainFrm->SetDefaultDirectory(dlg.GetPathName(), DIR_EXPORT, true);
+ TCHAR s[_MAX_PATH], fext[_MAX_EXT];
strcpy(s, dlg.GetPathName());
_splitpath(s, NULL, NULL, NULL, fext);
if (strlen(fext) <= 1)
Modified: trunk/OpenMPT/mptrack/Moddoc.h
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.h 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/mptrack/Moddoc.h 2009-07-27 17:27:59 UTC (rev 306)
@@ -125,6 +125,8 @@
DWORD m_dwNotifyType;
PATTERNUNDOBUFFER PatternUndo[MAX_UNDO_LEVEL];
+ bool bModifiedAutosave; // Modified since last autosave?
+
bool m_ShowSavedialog;
// -> CODE#0015
@@ -142,7 +144,8 @@
void InitPlayer();
CSoundFile *GetSoundFile() { return &m_SndFile; }
void SetPause(BOOL bPause) { m_bPaused = bPause; }
- void SetModified(BOOL bModified=TRUE) { SetModifiedFlag(bModified); }
+ void SetModified(BOOL bModified=TRUE) { SetModifiedFlag(bModified); bModifiedAutosave = bModified; }
+ BOOL ModifiedSinceLastAutosave() { bool bRetval = bModifiedAutosave; bModifiedAutosave = false; return bRetval; } // return "IsModified" value and reset it until the next SetModified() (as this is only used for polling)
void SetShowSaveDialog(bool b) {m_ShowSavedialog = b;}
void PostMessageToAllViews(UINT uMsg, WPARAM wParam=0, LPARAM lParam=0);
void SendMessageToActiveViews(UINT uMsg, WPARAM wParam=0, LPARAM lParam=0);
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -42,8 +42,7 @@
DWORD size;
CHAR name[22];
BYTE type;
- BYTE samples;
- BYTE samplesh;
+ WORD samples;
} XMINSTRUMENTHEADER;
@@ -97,9 +96,11 @@
UINT unused_samples;
bool bMadeWithModPlug = false;
+ // set this here already because XMs compressed with BoobieSqueezer will exit the function early
+ SetModFlag(MSF_COMPATIBLE_PLAY, true);
m_nChannels = 0;
- if ((!lpStream) || (dwMemLength < 0x200)) return FALSE;
+ if ((!lpStream) || (dwMemLength < 0xAA)) return FALSE; // the smallest XM I know is 174 Bytes
if (_strnicmp((LPCSTR)lpStream, "Extended Module", 15)) return FALSE;
memcpy(m_szNames[0], lpStream + 17, 20);
dwHdrSize = LittleEndian(*((DWORD *)(lpStream+60)));
@@ -298,8 +299,11 @@
UINT samplemap[32];
WORD nsamples;
- if (dwMemPos + sizeof(XMINSTRUMENTHEADER) >= dwMemLength) return TRUE;
- pih = (XMINSTRUMENTHEADER *)(lpStream+dwMemPos);
+ if (dwMemPos + sizeof(DWORD) >= dwMemLength) return TRUE;
+ DWORD ihsize = LittleEndian(*((DWORD *)(lpStream + dwMemPos)));
+ if (dwMemPos + ihsize >= dwMemLength) return TRUE;
+
+ pih = (XMINSTRUMENTHEADER *)(lpStream + dwMemPos);
if (dwMemPos + LittleEndian(pih->size) > dwMemLength) return TRUE;
if ((Headers[iIns] = new INSTRUMENTHEADER) == NULL) continue;
memset(Headers[iIns], 0, sizeof(INSTRUMENTHEADER));
@@ -308,14 +312,29 @@
Headers[iIns]->nPluginVolumeHandling = PLUGIN_VOLUMEHANDLING_IGNORE;
memcpy(Headers[iIns]->name, pih->name, 22);
+
if ((nsamples = pih->samples) > 0)
{
- if (dwMemPos + sizeof(XMSAMPLEHEADER) > dwMemLength) return TRUE;
- memcpy(&xmsh, lpStream+dwMemPos+sizeof(XMINSTRUMENTHEADER), sizeof(XMSAMPLEHEADER));
+ if (dwMemPos + sizeof(XMINSTRUMENTHEADER) + sizeof(DWORD) >= dwMemLength) return TRUE;
+ DWORD shsize = LittleEndian(*((DWORD *)(lpStream + dwMemPos + sizeof(XMINSTRUMENTHEADER))));
+
+ memset(&xmsh, 0, sizeof(XMSAMPLEHEADER));
+
+ // *very* dirty, but it works!
+ DWORD dwReadLength = sizeof(XMSAMPLEHEADER);
+ if(ihsize == 38 && (int)(shsize - ihsize) >= 0) // BoobieSqueezer compressed - ihsize = 38, shsize = 40
+ dwReadLength = shsize - ihsize;
+
+ if (dwMemPos + sizeof(XMINSTRUMENTHEADER) + dwReadLength >= dwMemLength || shsize > sizeof(XMSAMPLEHEADER))
+ return TRUE;
+ else
+ memcpy(&xmsh, lpStream + dwMemPos + sizeof(XMINSTRUMENTHEADER), dwReadLength);
+
xmsh.shsize = LittleEndian(xmsh.shsize);
+
for (int i = 0; i < 24; ++i) {
- xmsh.venv[i] = LittleEndianW(xmsh.venv[i]);
- xmsh.penv[i] = LittleEndianW(xmsh.penv[i]);
+ xmsh.venv[i] = LittleEndianW(xmsh.venv[i]);
+ xmsh.penv[i] = LittleEndianW(xmsh.penv[i]);
}
xmsh.volfade = LittleEndianW(xmsh.volfade);
xmsh.res = LittleEndianW(xmsh.res);
@@ -609,8 +628,7 @@
bMadeWithModPlug = true;
}
- if(bMadeWithModPlug == false)
- SetModFlag(MSF_COMPATIBLE_PLAY, true);
+ SetModFlag(MSF_COMPATIBLE_PLAY, !bMadeWithModPlug);
// -> CODE#0027
// -> DESC="per-instrument volume ramping setup (refered as attack)"
@@ -618,14 +636,14 @@
// Leave if no extra instrument settings are available (end of file reached)
if(dwMemPos >= dwMemLength) return TRUE;
- bool bInterpretMptMade = false;
+ bool bInterpretOpenMPTMade = false; // specific for OpenMPT 1.17+ (bMadeWithModPlug is also for MPT 1.16)
LPCBYTE ptr = lpStream + dwMemPos;
if(m_nInstruments)
- ptr = LoadExtendedInstrumentProperties(ptr, lpStream+dwMemLength, &bInterpretMptMade);
+ ptr = LoadExtendedInstrumentProperties(ptr, lpStream+dwMemLength, &bInterpretOpenMPTMade);
- LoadExtendedSongProperties(GetType(), ptr, lpStream, dwMemLength, &bInterpretMptMade);
+ LoadExtendedSongProperties(GetType(), ptr, lpStream, dwMemLength, &bInterpretOpenMPTMade);
- if(bInterpretMptMade && m_dwLastSavedWithVersion < MAKE_VERSION_NUMERIC(1, 17, 2, 50))
+ if(bInterpretOpenMPTMade && m_dwLastSavedWithVersion < MAKE_VERSION_NUMERIC(1, 17, 2, 50))
SetModFlag(MSF_MIDICC_BUGEMULATION, true);
return TRUE;
@@ -652,7 +670,7 @@
fwrite("Extended Module: ", 17, 1, f);
fwrite(m_szNames[0], 20, 1, f);
s[0] = 0x1A;
- lstrcpy((LPSTR)&s[1], (nPacking) ? "MOD Plugin packed " : "FastTracker v2.00 ");
+ lstrcpy((LPSTR)&s[1], (nPacking) ? "MOD Plugin packed " : "Open ModPlugTracker ");
s[21] = 0x04;
s[22] = 0x01;
fwrite(&s[0], 23, 1, f);
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-26 23:50:13 UTC (rev 305)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-27 17:27:59 UTC (rev 306)
@@ -1965,7 +1965,7 @@
UINT CSoundFile::ReadSample(MODINSTRUMENT *pIns, UINT nFlags, LPCSTR lpMemFile, DWORD dwMemLength, const WORD format)
//-----------------------------------------------------------------------------------------------------------------------
{
- if ((!pIns) || (pIns->nLength < 4) || (!lpMemFile)) return 0;
+ if ((!pIns) || (pIns->nLength < 2) || (!lpMemFile)) return 0;
if(pIns->nLength > MAX_SAMPLE_LENGTH)
pIns->nLength = MAX_SAMPLE_LENGTH;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-26 23:50:27
|
Revision: 305
http://modplug.svn.sourceforge.net/modplug/?rev=305&view=rev
Author: saga-games
Date: 2009-07-26 23:50:13 +0000 (Sun, 26 Jul 2009)
Log Message:
-----------
[Imp] Mod Compatibility: Moved loop length check from compatibility export to normal save, as it does not break/change any MPT-made MOD file.
[Fix] Mod Specifications: Accidentally changed a wrong value in revision 304
[Fix] IT Compatibility: Unbreaking compatible retrigger (line was missing)
Revision Links:
--------------
http://modplug.svn.sourceforge.net/modplug/?rev=304&view=rev
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_mod.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/soundlib/Load_mod.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-26 21:59:23 UTC (rev 304)
+++ trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-26 23:50:13 UTC (rev 305)
@@ -419,7 +419,7 @@
bTab[26] = pins->nLoopStart >> 9;
bTab[27] = pins->nLoopStart >> 1;
UINT replen = pins->nLoopEnd - pins->nLoopStart;
- if(bCompatibilityExport && replen < 2) // ensure PT will load it properly
+ if(replen < 2) // ensure PT will load it properly
replen = 2;
bTab[28] = replen >> 9;
bTab[29] = replen >> 1;
@@ -504,7 +504,7 @@
for (UINT ismpd=1; ismpd<=31; ismpd++) if (inslen[ismpd])
{
MODINSTRUMENT *pins = &Ins[insmap[ismpd]];
- if(bCompatibilityExport == true)
+ if(bCompatibilityExport == true) // first two bytes have to be 0 due to PT's one-shot loop ("no loop")
{
if(pins->nLength > 0) pins->pSample[0] = 0;
if(pins->nLength > 1) pins->pSample[1] = 0;
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-26 21:59:23 UTC (rev 304)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-26 23:50:13 UTC (rev 305)
@@ -1569,6 +1569,9 @@
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
//IT compatibility 15. Retrigger
+ if (param)
+ pChn->nRetrigParam = (BYTE)(param & 0xFF);
+
if (volcmd == VOLCMD_OFFSET)
RetrigNote(nChn, pChn->nRetrigParam, vol << 3);
else if (volcmd == VOLCMD_VELOCITY)
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-26 21:59:23 UTC (rev 304)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-26 23:50:13 UTC (rev 305)
@@ -157,7 +157,7 @@
false, //No notecut.
true, //Has noteoff.
240, //Pattern max.
- 255, //Order max.
+ 256, //Order max.
4, //Channel min
127, //Channel max
32, //Min tempo
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-26 21:59:51
|
Revision: 304
http://modplug.svn.sourceforge.net/modplug/?rev=304&view=rev
Author: saga-games
Date: 2009-07-26 21:59:23 +0000 (Sun, 26 Jul 2009)
Log Message:
-----------
[Fix] Wav Export / Channel Manager / Pattern Editor: Pattern names with leading space char are now accepted
[Fix] MOD/XM Saver: F20 won't turn into G20
[Ref] Code refactoring: Added "CLAMP" macro - similar to Limit(), but returns a value. Changed many routines in sndmix, snd_fx and mod loaders to use CLAMP.
[Fix] General tab / Main bar / Loaders / Conversion: Fixed arbitrary speed limits (64 on general tab, 127 on main bar). Added speedMin and speedMax to ModSpecs as they are different for MOD/XM and S3M/IT/MPTM.
[Imp] Default dirs: Don't overwrite working directory when updating the default directory
[Ref] S3M Loader: Less arbitrary value limits, code refactoring
[Fix] IT / XM Compatiblity: Tempo slides won't exceed 255 BPM in compatible mode.
[Fix] XM Compatiblity: In compatible mode, old retrigger routines are used again (as MPT's default retrigger algorithm actually represents FT2's retrigger algorithm). Additionally, a retrigger bug from FT2 is emulated (retrigger with vxx on the same channel would always reset the retriggered note's volume)
[Fix] IT Compatibility: Allow OpenMPT's new volume colum commands (offset etc.) to be used together with Retrigger in compatible mode again
Modified Paths:
--------------
trunk/OpenMPT/mptrack/ChannelManagerDlg.cpp
trunk/OpenMPT/mptrack/Ctrl_gen.cpp
trunk/OpenMPT/mptrack/Draw_pat.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Mainbar.cpp
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/mptrack/dlg_misc.h
trunk/OpenMPT/mptrack/misc_util.h
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/Load_mod.cpp
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
trunk/OpenMPT/soundlib/Sndmix.cpp
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/mptrack/ChannelManagerDlg.cpp
===================================================================
--- trunk/OpenMPT/mptrack/ChannelManagerDlg.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/ChannelManagerDlg.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -775,7 +775,7 @@
ii = pattern[i];
- if(m_pSndFile->ChnSettings[ii].szName[0] > 0x20)
+ if(m_pSndFile->ChnSettings[ii].szName[0] >= 0x20)
wsprintf(s, "%d: %s", (ii+1), m_pSndFile->ChnSettings[ii].szName);
else
wsprintf(s, "Channel %d", ii+1);
Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -7,11 +7,12 @@
#include "ctrl_gen.h"
#include "view_gen.h"
#include "math.h"
+#include "misc_util.h"
// -> CODE#0015
// -> DESC="channels management dlg"
#include "Ctrl_pat.h"
-#include ".\ctrl_gen.h"
+#include "ctrl_gen.h"
// -! NEW_FEATURE#0015
BEGIN_MESSAGE_MAP(CCtrlGeneral, CModControlDlg)
@@ -91,9 +92,8 @@
// -> CODE#0016
// -> DESC="default tempo update"
// m_SpinTempo.SetRange(32, 255); // 255 bpm max
- //m_SpinTempo.SetRange(32, 512);
- m_SpinTempo.SetRange(specs.tempoMin, specs.tempoMax);
- m_SpinSpeed.SetRange(1, 64);
+ m_SpinTempo.SetRange((short)specs.tempoMin, (short)specs.tempoMax);
+ m_SpinSpeed.SetRange((short)specs.speedMin, (short)specs.speedMax);
// -! BEHAVIOUR_CHANGE#0016
m_SpinGlobalVol.SetRange(0, 128);
m_SpinSamplePA.SetRange(0, 2000);
@@ -341,9 +341,8 @@
m_EditTempo.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = atoi(s);
- CModSpecifications specs = m_pSndFile->GetModSpecifications();
- if ((n >= specs.tempoMin) && (n <= specs.tempoMax) && (n != m_pSndFile->m_nDefaultTempo))
+ UINT n = CLAMP(atoi(s), m_pSndFile->GetModSpecifications().tempoMin, m_pSndFile->GetModSpecifications().tempoMax);
+ if (n != m_pSndFile->m_nDefaultTempo)
{
m_bEditsLocked=true;
m_EditTempo.SetModify(FALSE);
@@ -368,8 +367,8 @@
m_EditSpeed.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = atoi(s);
- if ((n >= 1) && (n <= 64) && (n != m_pSndFile->m_nDefaultSpeed)) {
+ UINT n = CLAMP(atoi(s), m_pSndFile->GetModSpecifications().speedMin, m_pSndFile->GetModSpecifications().speedMax);
+ if (n != m_pSndFile->m_nDefaultSpeed) {
m_bEditsLocked=true;
m_EditSpeed.SetModify(FALSE);
m_pSndFile->m_nDefaultSpeed = n;
@@ -390,8 +389,8 @@
if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) {
m_EditVSTiVol.GetWindowText(s, sizeof(s));
if (s[0]) {
- int n = atoi(s);
- if ((n >= 0) && (n <= 2000) && (n != m_pSndFile->m_nVSTiVolume)) {
+ int n = CLAMP(atoi(s), 0, 2000);
+ if (n != m_pSndFile->m_nVSTiVolume) {
m_bEditsLocked=true;
m_pSndFile->m_nVSTiVolume = n;
m_pSndFile->RecalculateGainForAllPlugs();
@@ -411,8 +410,8 @@
if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) {
m_EditSamplePA.GetWindowText(s, sizeof(s));
if (s[0]) {
- int n = atoi(s);
- if ((n >= 0) && (n <= 2000) && (n != m_pSndFile->m_nSamplePreAmp)) {
+ int n = CLAMP(atoi(s), 0, 2000);
+ if (n != m_pSndFile->m_nSamplePreAmp) {
m_bEditsLocked=true;
m_pSndFile->m_nSamplePreAmp = n;
m_pModDoc->SetModified();
@@ -433,21 +432,17 @@
m_EditGlobalVol.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = atoi(s);
- if (n <= 128)
- {
- UINT n0 = m_pSndFile->m_nDefaultGlobalVolume / 2;
- if (n != n0)
- {
- m_bEditsLocked=true;
- m_EditGlobalVol.SetModify(FALSE);
- m_pSndFile->m_nDefaultGlobalVolume = n << 1;
- m_pSndFile->m_nGlobalVolume = n << 1;
- m_pModDoc->SetModified();
- m_pModDoc->UpdateAllViews(NULL, HINT_MODGENERAL, this);
- UpdateView(HINT_MODGENERAL, NULL);
- m_bEditsLocked=false;
- }
+ UINT n = CLAMP(atoi(s), 0, 128);
+ if (n != (m_pSndFile->m_nDefaultGlobalVolume >> 1))
+ {
+ m_bEditsLocked=true;
+ m_EditGlobalVol.SetModify(FALSE);
+ m_pSndFile->m_nDefaultGlobalVolume = n << 1;
+ m_pSndFile->m_nGlobalVolume = n << 1;
+ m_pModDoc->SetModified();
+ m_pModDoc->UpdateAllViews(NULL, HINT_MODGENERAL, this);
+ UpdateView(HINT_MODGENERAL, NULL);
+ m_bEditsLocked=false;
}
}
}
@@ -463,17 +458,16 @@
m_EditRestartPos.GetWindowText(s, sizeof(s));
if (s[0])
{
- UINT n = atoi(s);
- if(n < m_pSndFile->Order.size())
+ UINT n = CLAMP(atoi(s), 0, m_pSndFile->Order.size());
+ for (ORDERINDEX i = 0; i <= n; i++)
+ if (m_pSndFile->Order[i] == m_pSndFile->Order.GetInvalidPatIndex()) return;
+
+ if (n != m_pSndFile->m_nRestartPos)
{
- for (ORDERINDEX i=0; i<=n; i++) if (m_pSndFile->Order[i] == m_pSndFile->Order.GetInvalidPatIndex()) return;
- if (n != m_pSndFile->m_nRestartPos)
- {
- m_EditRestartPos.SetModify(FALSE);
- m_pSndFile->m_nRestartPos = n;
- m_pModDoc->SetModified();
- m_pModDoc->UpdateAllViews(NULL, HINT_MODGENERAL, this);
- }
+ m_EditRestartPos.SetModify(FALSE);
+ m_pSndFile->m_nRestartPos = n;
+ m_pModDoc->SetModified();
+ m_pModDoc->UpdateAllViews(NULL, HINT_MODGENERAL, this);
}
}
}
@@ -490,25 +484,6 @@
//----------------------------------
{
m_pModDoc->SongProperties();
- /*
- CModTypeDlg dlg(m_pSndFile, this);
- if (dlg.DoModal() == IDOK)
- {
- BOOL bShowLog = FALSE;
- m_pModDoc->ClearLog();
- if(dlg.m_nType) {
- if (!m_pModDoc->ChangeModType(dlg.m_nType)) return;
- bShowLog = TRUE;
- }
- if ((dlg.m_nChannels >= 4) && (dlg.m_nChannels != m_pSndFile->m_nChannels)) {
- if(m_pModDoc->ChangeNumChannels(dlg.m_nChannels)) bShowLog = TRUE;
- if(CChannelManagerDlg::sharedInstance(FALSE) && CChannelManagerDlg::sharedInstance()->IsDisplayed())
- CChannelManagerDlg::sharedInstance()->Update();
- }
- if (bShowLog) m_pModDoc->ShowLog("Conversion Status", this);
- m_pModDoc->SetModified();
- }
- */
}
@@ -732,13 +707,10 @@
for (int ry=rect.bottom-1; ry>rect.top; ry-=2)
{
int y0 = rect.bottom - ry;
- int n = (y0 * NUM_VUMETER_PENS) / cy;
- if (n < 0) n = 0;
- if (n >= NUM_VUMETER_PENS) n = NUM_VUMETER_PENS-1;
+ int n = CLAMP((y0 * NUM_VUMETER_PENS) / cy, 0, NUM_VUMETER_PENS - 1);
if (vu < y0)
- {
n += NUM_VUMETER_PENS;
- }
+
SelectObject(hdc, CMainFrame::gpenVuMeter[n]);
MoveToEx(hdc, rect.left, ry, NULL);
LineTo(hdc, rect.right, ry);
Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Draw_pat.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -479,7 +479,7 @@
const char *pszfmt = pSndFile->m_bChannelMuteTogglePending[ncolhdr]? "[Channel %d]" : "Channel %d";
// const char *pszfmt = pModDoc->IsChannelRecord(ncolhdr) ? "Channel %d " : "Channel %d";
// -! NEW_FEATURE#0012
- if ((pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) && ((BYTE)pSndFile->ChnSettings[ncolhdr].szName[0] > 0x20))
+ if ((pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) && ((BYTE)pSndFile->ChnSettings[ncolhdr].szName[0] >= 0x20))
pszfmt = pSndFile->m_bChannelMuteTogglePending[ncolhdr]?"%d: [%s]":"%d: %s";
else if (m_nDetailLevel < 2) pszfmt = pSndFile->m_bChannelMuteTogglePending[ncolhdr]?"[Ch%d]":"Ch%d";
else if (m_nDetailLevel < 3) pszfmt = pSndFile->m_bChannelMuteTogglePending[ncolhdr]?"[Chn %d]":"Chn %d";
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -3053,8 +3053,8 @@
_tcscpy(directories[dir], szPath);
- // When updating default directory, also update the working directory.
- if(szPath[0] && directories == m_szDefaultDirectory)
+ // When updating default directory, also update the working directory (if it hasn't been set yet).
+ if(szPath[0] && directories == m_szDefaultDirectory && !m_szWorkingDirectory[dir][0])
SetWorkingDirectory(szPath, dir);
}
Modified: trunk/OpenMPT/mptrack/Mainbar.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mainbar.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/Mainbar.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -495,9 +495,9 @@
if ((n = (short int)m_SpinTempo.GetPos()) != 0)
{
if (n < 0)
- pSndFile->SetTempo(nCurrentTempo - 1, true);
+ pSndFile->SetTempo(max(nCurrentTempo - 1, pSndFile->GetModSpecifications().tempoMin), true);
else
- pSndFile->SetTempo(nCurrentTempo + 1, true);
+ pSndFile->SetTempo(min(nCurrentTempo + 1, pSndFile->GetModSpecifications().tempoMax), true);
m_SpinTempo.SetPos(0);
}
@@ -505,16 +505,10 @@
{
if (n < 0)
{
- if (nCurrentSpeed > 1)
- {
- pSndFile->m_nMusicSpeed = nCurrentSpeed - 1;
- }
+ pSndFile->m_nMusicSpeed = max(nCurrentSpeed - 1, pSndFile->GetModSpecifications().speedMin);
} else
{
- if (nCurrentSpeed < 0x7F)
- {
- pSndFile->m_nMusicSpeed = nCurrentSpeed + 1;
- }
+ pSndFile->m_nMusicSpeed = min(nCurrentSpeed + 1, pSndFile->GetModSpecifications().speedMax);
}
m_SpinSpeed.SetPos(0);
}
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -1448,7 +1448,7 @@
// Channel mode
if(wsdlg.m_bChannelMode){
// Add channel number & name (if available) to path string
- if(m_SndFile.ChnSettings[i].szName[0] > 0x20)
+ if(m_SndFile.ChnSettings[i].szName[0] >= 0x20)
wsprintf(channel, "-%03d_%s.wav", i+1,m_SndFile.ChnSettings[i].szName);
else
wsprintf(channel, "-%03d.wav", i+1);
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -8,6 +8,7 @@
#include "dlg_misc.h"
#include "dlsbank.h"
#include "modsmp_ctrl.h"
+#include "misc_util.h"
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -419,6 +420,11 @@
}
//end rewbs.cutomKeys
+ // Check mod specifications
+ const CModSpecifications& specs = m_SndFile.GetModSpecifications();
+ m_SndFile.m_nDefaultTempo = CLAMP(m_SndFile.m_nDefaultTempo, specs.tempoMin, specs.tempoMax);
+ m_SndFile.m_nDefaultSpeed = CLAMP(m_SndFile.m_nDefaultSpeed, specs.speedMin, specs.speedMax);
+
SetModified();
ClearUndo();
UpdateAllViews(NULL, HINT_MODTYPE);
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -571,7 +571,7 @@
CDialog::OnInitDialog();
for (UINT n = 0; n < m_nChannels; n++)
{
- if(m_pSndFile->ChnSettings[n].szName[0] > 0x20)
+ if(m_pSndFile->ChnSettings[n].szName[0] >= 0x20)
wsprintf(label, "Channel %d: %s", (n + 1), m_pSndFile->ChnSettings[n].szName);
else
wsprintf(label, "Channel %d", n + 1);
@@ -1635,11 +1635,13 @@
char cNewEditOption = GetEditMode();
if(cNewEditOption != 3 && m_nEditOption == 3)
{
+ // switch to "add silenece"
m_nLength = GetDlgItemInt(IDC_EDIT_ADDSILENCE);
SetDlgItemInt(IDC_EDIT_ADDSILENCE, m_nSamples);
}
else if(cNewEditOption == 3 && m_nEditOption != 3)
{
+ // "switch to "resize"
m_nSamples = GetDlgItemInt(IDC_EDIT_ADDSILENCE);
SetDlgItemInt(IDC_EDIT_ADDSILENCE, m_nLength);
}
Modified: trunk/OpenMPT/mptrack/dlg_misc.h
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-26 21:59:23 UTC (rev 304)
@@ -356,7 +356,7 @@
public:
UINT m_nSamples;
UINT m_nLength;
- char m_nEditOption; //0 = add at beginning, 1 = add at end, 2 = resize
+ char m_nEditOption; // 1 = add at beginning, 2 = add at end, 3 = resize
public:
CAddSilenceDlg(CWnd *parent, UINT nSamples = 32, UINT nOrigLength = 1024):CDialog(IDD_ADDSILENCE, parent) { m_nSamples = nSamples; m_nLength = nOrigLength; m_nEditOption = 2; }
Modified: trunk/OpenMPT/mptrack/misc_util.h
===================================================================
--- trunk/OpenMPT/mptrack/misc_util.h 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/misc_util.h 2009-07-26 21:59:23 UTC (rev 304)
@@ -72,4 +72,10 @@
}
+// Like Limit, but returns value
+#ifndef CLAMP
+#define CLAMP(number, low, high) min(high, max(low, number))
#endif
+
+
+#endif
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-26 21:59:23 UTC (rev 304)
@@ -13,6 +13,53 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
+// Deutsch (Deutschland) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
+#ifdef _WIN32
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_MODLOADING_WARNINGS DIALOGEX 0, 0, 316, 178
+STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "module.it - Warnings"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,258,156,50,14
+ EDITTEXT IDC_EDIT_MODLOADING_WARNINGS,6,18,300,132,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY
+ LTEXT "The following problems have been encountered when loading this module:",IDC_STATIC,6,6,237,8
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_MODLOADING_WARNINGS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 309
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 171
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#endif // Deutsch (Deutschland) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
// Englisch (USA) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
@@ -493,14 +540,14 @@
CTEXT "Not saved with song!",IDC_STATIC,262,73,60,17
CONTROL "",IDC_VUMETER_LEFT,"Static",SS_BLACKRECT | SS_SUNKEN,325,1,15,91
CONTROL "",IDC_VUMETER_RIGHT,"Static",SS_BLACKRECT | SS_SUNKEN,343,1,15,91
- GROUPBOX "Player Settings (not saved in song!)",IDC_STATIC,414,31,147,63,NOT WS_VISIBLE
- CONTROL "Bass Expansion",IDC_CHECK_BASS,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,43,65,10
- CONTROL "Reverb",IDC_CHECK_REVERB,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,55,46,10
- CONTROL "Surround",IDC_CHECK_SURROUND,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,67,48,10
- COMBOBOX IDC_COMBO_RESAMPLING,490,76,67,74,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_TABSTOP
- LTEXT "Resampling:",IDC_STATIC,491,67,43,8,NOT WS_VISIBLE
- CONTROL "Graphic EQ",IDC_CHECK_EQ,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,79,58,10
- CONTROL "AGC",IDC_CHECK_AGC,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,491,43,31,10
+ GROUPBOX "Player Settings (not saved in song!)",IDC_STATIC,366,6,150,66,NOT WS_VISIBLE
+ CONTROL "Bass Expansion",IDC_CHECK_BASS,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,372,18,65,10
+ CONTROL "Reverb",IDC_CHECK_REVERB,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,372,30,46,10
+ CONTROL "Surround",IDC_CHECK_SURROUND,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,372,42,48,10
+ COMBOBOX IDC_COMBO_RESAMPLING,444,54,67,74,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_TABSTOP
+ LTEXT "Resampling:",IDC_STATIC,444,42,43,8,NOT WS_VISIBLE
+ CONTROL "Graphic EQ",IDC_CHECK_EQ,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,372,54,58,10
+ CONTROL "AGC",IDC_CHECK_AGC,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,444,18,31,10
END
IDD_CONTROL_COMMENTS DIALOGEX 0, 0, 435, 119
@@ -2312,10 +2359,9 @@
LTEXT "Static",IDC_TUNINGTYPE_DESC,109,134,179,20,0,WS_EX_STATICEDGE
END
-IDD_CHANNELMANAGER DIALOGEX 0, 0, 523, 231
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_TOOLWINDOW
-CAPTION "Channel manager"
+IDD_CHANNELMANAGER DIALOGEX 0, 0, 524, 231
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Channel Manager"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
CONTROL "",IDC_TAB1,"SysTabControl32",TCS_MULTILINE,0,0,523,18,WS_EX_CLIENTEDGE
@@ -2422,6 +2468,11 @@
BOTTOMMARGIN, 236
END
+ IDD_CHANNELMANAGER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 523
+ END
+
IDD_DEFAULTPLUGINEDITOR, DIALOG
BEGIN
LEFTMARGIN, 7
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/mptrack/resource.h 2009-07-26 21:59:23 UTC (rev 304)
@@ -106,6 +106,8 @@
#define IDD_MIDIPARAMCONTROL 515
#define IDD_MSGBOX_HIDABLE 516
#define IDD_ADDSILENCE 517
+#define IDD_DIALOG4 518
+#define IDD_MODLOADING_WARNINGS 518
#define IDC_BUTTON1 1001
#define IDC_BUTTON2 1002
#define IDC_BUTTON3 1003
@@ -875,6 +877,7 @@
#define IDC_RADIO_ADDSILENCE_END 2381
#define IDC_SPIN_ADDSILENCE 2382
#define IDC_RADIO_RESIZETO 2384
+#define IDC_EDIT_MODLOADING_WARNINGS 2385
#define ID_FILE_NEWMOD 32771
#define ID_FILE_NEWXM 32772
#define ID_FILE_NEWS3M 32773
@@ -1112,9 +1115,9 @@
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
-#define _APS_NEXT_RESOURCE_VALUE 518
+#define _APS_NEXT_RESOURCE_VALUE 519
#define _APS_NEXT_COMMAND_VALUE 59227
-#define _APS_NEXT_CONTROL_VALUE 2385
+#define _APS_NEXT_CONTROL_VALUE 2386
#define _APS_NEXT_SYMED_VALUE 901
#endif
#endif
Modified: trunk/OpenMPT/soundlib/Load_mod.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -116,7 +116,7 @@
case CMD_PATTERNBREAK: command = 0x0D; param = ((param / 10) << 4) | (param % 10); break;
case CMD_MODCMDEX: command = 0x0E; break;
case CMD_SPEED: command = 0x0F; if (param > 0x20) param = 0x20; break;
- case CMD_TEMPO: if (param > 0x20) { command = 0x0F; break; }
+ case CMD_TEMPO: if (param >= 0x20) { command = 0x0F; break; }
case CMD_GLOBALVOLUME: command = 'G' - 55; break;
case CMD_GLOBALVOLSLIDE: command = 'H' - 55; break;
case CMD_KEYOFF: command = 'K' - 55; break;
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -11,6 +11,7 @@
#include "stdafx.h"
#include "sndfile.h"
#include "../mptrack/moddoc.h"
+#include "../mptrack/misc_util.h"
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -266,12 +267,10 @@
memcpy(m_szNames[0], psfh.name, 28);
// Speed
m_nDefaultSpeed = psfh.speed;
- if (m_nDefaultSpeed < 1) m_nDefaultSpeed = 6;
- if (m_nDefaultSpeed > 0x1F) m_nDefaultSpeed = 0x1F;
+ if (!m_nDefaultSpeed) m_nDefaultSpeed = 6;
// Tempo
m_nDefaultTempo = psfh.tempo;
- if (m_nDefaultTempo < 40) m_nDefaultTempo = 40;
- if (m_nDefaultTempo > 240) m_nDefaultTempo = 240;
+ m_nDefaultTempo = CLAMP(m_nDefaultTempo, 32, 255);
// Global Volume
m_nDefaultGlobalVolume = psfh.globalvol << 2;
if ((!m_nDefaultGlobalVolume) || (m_nDefaultGlobalVolume > 256)) m_nDefaultGlobalVolume = 256;
@@ -296,8 +295,7 @@
if ((psfh.cwtv < 0x1320) || (psfh.flags & 0x40)) m_dwSongFlags |= SONG_FASTVOLSLIDES;
// Reading pattern order
UINT iord = psfh.ordnum;
- if (iord<1) iord = 1;
- if (iord > MAX_ORDERS) iord = MAX_ORDERS;
+ iord = CLAMP(iord, 1, MAX_ORDERS);
if (iord)
{
Order.ReadAsByte(lpStream+dwMemPos, iord, dwMemLength-dwMemPos);
@@ -343,27 +341,19 @@
lstrcpy(m_szNames[iSmp], (LPCSTR)&s[0x30]);
if ((s[0]==1) && (s[0x4E]=='R') && (s[0x4F]=='S'))
{
- UINT j = LittleEndian(*((LPDWORD)(s+0x10)));
- if (j > MAX_SAMPLE_LENGTH) j = MAX_SAMPLE_LENGTH;
- if (j < 4) j = 0;
- Ins[iSmp].nLength = j;
- j = LittleEndian(*((LPDWORD)(s+0x14)));
- if (j >= Ins[iSmp].nLength) j = Ins[iSmp].nLength - 1;
- Ins[iSmp].nLoopStart = j;
- j = LittleEndian(*((LPDWORD)(s+0x18)));
- if (j > MAX_SAMPLE_LENGTH) j = MAX_SAMPLE_LENGTH;
- if (j < 4) j = 0;
- if (j > Ins[iSmp].nLength) j = Ins[iSmp].nLength;
- Ins[iSmp].nLoopEnd = j;
- j = s[0x1C];
- if (j > 64) j = 64;
- Ins[iSmp].nVolume = j << 2;
+ Ins[iSmp].nLength = CLAMP(LittleEndian(*((LPDWORD)(s + 0x10))), 4, MAX_SAMPLE_LENGTH);
+ Ins[iSmp].nLoopStart = CLAMP(LittleEndian(*((LPDWORD)(s + 0x14))), 0, Ins[iSmp].nLength - 1);
+ Ins[iSmp].nLoopEnd = CLAMP(LittleEndian(*((LPDWORD)(s+0x18))), 4, Ins[iSmp].nLength);
+ Ins[iSmp].nVolume = CLAMP(s[0x1C], 0, 64) << 2;
Ins[iSmp].nGlobalVol = 64;
- if (s[0x1F]&1) Ins[iSmp].uFlags |= CHN_LOOP;
- j = LittleEndian(*((LPDWORD)(s+0x20)));
- if (!j) j = 8363;
- if (j < 1024) j = 1024;
- Ins[iSmp].nC4Speed = j;
+ if (s[0x1F] & 1) Ins[iSmp].uFlags |= CHN_LOOP;
+
+ UINT c4speed;
+ c4speed = LittleEndian(*((LPDWORD)(s+0x20)));
+ if (!c4speed) c4speed = 8363;
+ if (c4speed < 1024) c4speed = 1024;
+ Ins[iSmp].nC4Speed = c4speed;
+
insfile[iSmp] = ((DWORD)LittleEndianW(*((LPWORD)(s+0x0E)))) << 4;
insfile[iSmp] += ((DWORD)(BYTE)s[0x0D]) << 20;
if (insfile[iSmp] > dwMemLength) insfile[iSmp] &= 0xFFFF;
@@ -528,9 +518,9 @@
header[0x2E] = 'R';
header[0x2F] = 'M';
header[0x30] = m_nDefaultGlobalVolume >> 2;
- header[0x31] = m_nDefaultSpeed;
- header[0x32] = m_nDefaultTempo;
- header[0x33] = min(max(0x20, m_nSamplePreAmp), 0x7F); // Stereo
+ header[0x31] = CLAMP(m_nDefaultSpeed, 1, 255);
+ header[0x32] = CLAMP(m_nDefaultTempo, 32, 255);
+ header[0x33] = CLAMP(m_nSamplePreAmp, 0x10, 0x7F); // Stereo
header[0x35] = 0xFC;
for (i=0; i<32; i++)
{
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -9,6 +9,7 @@
#include "stdafx.h"
#include "sndfile.h"
#include "../mptrack/version.h"
+#include "../mptrack/misc_util.h"
////////////////////////////////////////////////////////
// FastTracker II XM file support
@@ -84,7 +85,7 @@
XMSAMPLESTRUCT xmss;
DWORD dwMemPos, dwHdrSize;
WORD norders=0, restartpos=0, channels=0, patterns=0, instruments=0;
- WORD xmflags=0, deftempo=125, defspeed=6;
+ WORD xmflags=0;
BYTE InstUsed[256];
// -> CODE#0006
// -> DESC="misc quantity changes"
@@ -100,7 +101,7 @@
m_nChannels = 0;
if ((!lpStream) || (dwMemLength < 0x200)) return FALSE;
if (_strnicmp((LPCSTR)lpStream, "Extended Module", 15)) return FALSE;
- memcpy(m_szNames[0], lpStream+17, 20);
+ memcpy(m_szNames[0], lpStream + 17, 20);
dwHdrSize = LittleEndian(*((DWORD *)(lpStream+60)));
norders = LittleEndianW(*((WORD *)(lpStream+64)));
if ((!norders) || (norders > MAX_ORDERS)) return FALSE;
@@ -116,23 +117,19 @@
m_nMaxPeriod = 54784;
m_nChannels = channels;
if (restartpos < norders) m_nRestartPos = restartpos;
- patterns = LittleEndianW(*((WORD *)(lpStream+70)));
- if (patterns > 256) patterns = 256;
+ patterns = CLAMP(LittleEndianW(*((WORD *)(lpStream+70))), 0, 256);
instruments = LittleEndianW(*((WORD *)(lpStream+72)));
if (instruments >= MAX_INSTRUMENTS) instruments = MAX_INSTRUMENTS-1;
m_nInstruments = instruments;
m_nSamples = 0;
- memcpy(&xmflags, lpStream+74, 2);
+ memcpy(&xmflags, lpStream + 74, 2);
xmflags = LittleEndianW(xmflags);
if (xmflags & 1) m_dwSongFlags |= SONG_LINEARSLIDES;
if (xmflags & 0x1000) m_dwSongFlags |= SONG_EXFILTERRANGE;
- defspeed = LittleEndianW(*((WORD *)(lpStream+76)));
- deftempo = LittleEndianW(*((WORD *)(lpStream+78)));
+ m_nDefaultSpeed = CLAMP(LittleEndianW(*((WORD *)(lpStream+76))), 1, 31);
// -> CODE#0016
// -> DESC="default tempo update"
-// if ((deftempo >= 32) && (deftempo < 256)) m_nDefaultTempo = deftempo;
- if ((deftempo >= 32) && (deftempo <= 512)) m_nDefaultTempo = deftempo;
- if ((defspeed > 0) && (defspeed < 40)) m_nDefaultSpeed = defspeed;
+ m_nDefaultTempo = CLAMP(LittleEndianW(*((WORD *)(lpStream+78))), 32, 512);
// -! BEHAVIOUR_CHANGE#0016
Order.ReadAsByte(lpStream+80, norders, dwMemLength-80);
memset(InstUsed, 0, sizeof(InstUsed));
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -14,6 +14,7 @@
#include "../mptrack/mptrack.h"
#include "../mptrack/moddoc.h"
#include "../mptrack/MainFrm.h"
+#include "../mptrack/misc_util.h"
// -! NEW_FEATURE#0022
#pragma warning(disable:4244)
@@ -111,6 +112,7 @@
nCurrentPattern = nNextPattern = 0;
nPattern = Order[0];
nRow = nNextRow = 0;
+
for (;;)
{
UINT nSpeedCount = 0;
@@ -243,16 +245,17 @@
if ((param & 0xF0) == 0x10)
{
nMusicTempo += (param & 0x0F) * (nMusicSpeed-1); //rewbs.tempoSlideFix
-// -> CODE#0010
-// -> DESC="add extended parameter mechanism to pattern effects"
-// if (nMusicTempo > 255) nMusicTempo = 255;
- if (nMusicTempo > 512) nMusicTempo = 512;
-// -! NEW_FEATURE#0010
} else
{
nMusicTempo -= (param & 0x0F) * (nMusicSpeed-1); //rewbs.tempoSlideFix
- if (nMusicTempo < 32) nMusicTempo = 32;
}
+// -> CODE#0010
+// -> DESC="add extended parameter mechanism to pattern effects"
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ nMusicTempo = CLAMP(nMusicTempo, 32, 255);
+ else
+ nMusicTempo = CLAMP(nMusicTempo, GetModSpecifications().tempoMin, GetModSpecifications().tempoMax);
+// -! NEW_FEATURE#0010
break;
// Pattern Delay
case CMD_S3MCMDEX:
@@ -344,8 +347,7 @@
if (!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) param <<= 1;
nGlbVol -= param * nMusicSpeed;
}
- if (nGlbVol < 0) nGlbVol = 0;
- if (nGlbVol > 256) nGlbVol = 256;
+ nGlbVol = CLAMP(nGlbVol, 0, 256);
break;
case CMD_CHANNELVOLUME:
if (param <= 64) chnvols[nChn] = param;
@@ -367,7 +369,7 @@
param = (param & 0x0F) * nMusicSpeed;
param = (chnvols[nChn] > param) ? chnvols[nChn] - param : 0;
} else param = ((param & 0xF0) >> 4) * nMusicSpeed + chnvols[nChn];
- if (param > 64) param = 64;
+ param = min(param, 64);
chnvols[nChn] = param;
break;
}
@@ -667,9 +669,8 @@
}
}
- if (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2|MOD_TYPE_MED)) note += pChn->nTranspose;
- if (note < 1) note = 1;
- if (note > 132) note = 132;
+ if (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2|MOD_TYPE_MED)) note += pChn->nTranspose;
+ note = CLAMP(note, 1, 132);
pChn->nNote = note;
pChn->m_CalculateFreq = true;
@@ -745,9 +746,9 @@
pChn->nLeftVU = pChn->nRightVU = 0xFF;
pChn->dwFlags &= ~CHN_FILTER;
pChn->dwFlags |= CHN_FASTVOLRAMP;
- if(!GetModFlag(MSF_COMPATIBLE_PLAY))
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
- //IT compatibility 15. Retrigger (Tremor doesn't store anything here, so we just don't reset this as well)
+ //IT compatibility 15. Retrigger will not be reset (Tremor doesn't store anything here, so we just don't reset this as well)
pChn->nRetrigCount = 0;
pChn->nTremorCount = 0;
}
@@ -1565,25 +1566,30 @@
if (!(param & 0x0F)) param |= pChn->nRetrigParam & 0x0F;
param |= 0x100; // increment retrig count on first row
}
- if(!GetModFlag(MSF_COMPATIBLE_PLAY))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
+ //IT compatibility 15. Retrigger
+ if (volcmd == VOLCMD_OFFSET)
+ RetrigNote(nChn, pChn->nRetrigParam, vol << 3);
+ else if (volcmd == VOLCMD_VELOCITY)
+ RetrigNote(nChn, pChn->nRetrigParam, 48 - (vol << 3));
+ else
+ RetrigNote(nChn, pChn->nRetrigParam);
+ }
+ else
+ {
+ //MPT Retrig
if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF); else param = pChn->nRetrigParam;
//rewbs.volOffset
//RetrigNote(nChn, param);
if (volcmd == VOLCMD_OFFSET)
- RetrigNote(nChn, param, vol<<3);
+ RetrigNote(nChn, param, vol << 3);
else if (volcmd == VOLCMD_VELOCITY)
- RetrigNote(nChn, param, 48-(vol << 3));
+ RetrigNote(nChn, param, 48 - (vol << 3));
else
RetrigNote(nChn, param);
//end rewbs.volOffset:
}
- else
- {
- //IT compatibility 15. Retrigger
- if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF);
- RetrigNote(nChn, pChn->nRetrigParam);
- }
break;
// Tremor
@@ -2277,8 +2283,7 @@
else newvolume += (int)((param & 0xF0) >> 2);
if (m_nType & MOD_TYPE_MOD) pChn->dwFlags |= CHN_FASTVOLRAMP;
}
- if (newvolume < 0) newvolume = 0;
- if (newvolume > 256) newvolume = 256;
+ newvolume = CLAMP(newvolume, 0, 256);
pChn->nVolume = newvolume;
}
@@ -2324,8 +2329,7 @@
if (nPanSlide)
{
nPanSlide += pChn->nPan;
- if (nPanSlide < 0) nPanSlide = 0;
- if (nPanSlide > 256) nPanSlide = 256;
+ nPanSlide = CLAMP(nPanSlide, 0, 256);
pChn->nPan = nPanSlide;
pChn->nRestorePanOnNewNote = 0;
}
@@ -2390,8 +2394,7 @@
if (nChnSlide)
{
nChnSlide += pChn->nGlobalVol;
- if (nChnSlide < 0) nChnSlide = 0;
- if (nChnSlide > 64) nChnSlide = 64;
+ nChnSlide = CLAMP(nChnSlide, 0, 64);
pChn->nGlobalVol = nChnSlide;
}
}
@@ -3046,12 +3049,18 @@
if (dv)
{
int vol = pChn->nVolume;
- if (retrigTable1[dv])
- vol = (vol * retrigTable1[dv]) >> 4;
- else
- vol += ((int)retrigTable2[dv]) << 2;
- if (vol < 0) vol = 0;
- if (vol > 256) vol = 256;
+
+ // FT2 compatibility: Retrig + volume will not change volume of retrigged notes
+ if(!(m_nType & MOD_TYPE_XM) || !(pChn->nRowVolCmd == VOLCMD_VOLUME) || !GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ if (retrigTable1[dv])
+ vol = (vol * retrigTable1[dv]) >> 4;
+ else
+ vol += ((int)retrigTable2[dv]) << 2;
+ }
+
+ vol = CLAMP(vol, 0, 256);
+
pChn->nVolume = vol;
pChn->dwFlags |= CHN_FASTVOLRAMP;
}
@@ -3236,7 +3245,7 @@
void CSoundFile::SetTempo(UINT param, bool setAsNonModcommand)
-//-----------------------------------
+//------------------------------------------------------------
{
const CModSpecifications& specs = GetModSpecifications();
if(setAsNonModcommand)
@@ -3258,18 +3267,17 @@
else if (param < 0x20 && m_nTickCount) //rewbs.tempoSlideFix: only slide if (T0x or T1x) and tick is not 0
{
if ((param & 0xF0) == 0x10)
- {
m_nMusicTempo += (param & 0x0F); //rewbs.tempoSlideFix: no *2
- // -> CODE#0016
- // -> DESC="default tempo update"
- // if (m_nMusicTempo > 255) m_nMusicTempo = 255;
- if (m_nMusicTempo > specs.tempoMax) m_nMusicTempo = specs.tempoMax;
- // -! BEHAVIOUR_CHANGE#0016
- } else
- {
+ else
m_nMusicTempo -= (param & 0x0F); //rewbs.tempoSlideFix: no *2
- if ((LONG)m_nMusicTempo < specs.tempoMin) m_nMusicTempo = specs.tempoMin;
- }
+
+ // -> CODE#0016
+ // -> DESC="default tempo update"
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ m_nMusicTempo = CLAMP(m_nMusicTempo, 32, 255);
+ else
+ m_nMusicTempo = CLAMP(m_nMusicTempo, specs.tempoMin, specs.tempoMax);
+ // -! BEHAVIOUR_CHANGE#0016
}
}
}
@@ -3339,8 +3347,7 @@
{
if (!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) nGlbSlide *= 2;
nGlbSlide += m_nGlobalVolume;
- if (nGlbSlide < 0) nGlbSlide = 0;
- if (nGlbSlide > 256) nGlbSlide = 256;
+ nGlbSlide = CLAMP(nGlbSlide, 0, 256);
m_nGlobalVolume = nGlbSlide;
}
}
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -637,7 +637,7 @@
Chn[ich].nVolume = 256;
Chn[ich].nCutOff = 0x7F;
//IT compatibility 15. Retrigger
- if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
Chn[ich].nRetrigParam = 1;
Chn[ich].nRetrigCount = 0;
@@ -1188,7 +1188,7 @@
Chn[j].nPatternLoopCount = 0;
Chn[j].nPatternLoop = 0;
//IT compatibility 15. Retrigger
- if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
Chn[j].nRetrigCount = 0;
Chn[j].nRetrigParam = 1;
@@ -1454,7 +1454,7 @@
Chn[i].nFadeOutVol = 0;
Chn[i].dwFlags |= CHN_KEYOFF|CHN_NOTEFADE;
//IT compatibility 15. Retrigger
- if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
Chn[i].nRetrigParam = 1;
Chn[i].nRetrigCount = 0;
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-26 21:59:23 UTC (rev 304)
@@ -14,6 +14,7 @@
#include "../mptrack/mptrack.h"
#include "../mptrack/moddoc.h"
#include "../mptrack/MainFrm.h"
+#include "../mptrack/misc_util.h"
// -! NEW_FEATURE#0022
#include "sndfile.h"
#include "midi.h"
@@ -954,8 +955,7 @@
}
}
- if (vol < 0) vol = 0;
- if (vol > 256) vol = 256;
+ vol = CLAMP(vol, 0, 256);
// Tremolo
if (pChn->dwFlags & CHN_TREMOLO)
@@ -994,7 +994,7 @@
{
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
- // Original IT behaviour
+ // IT compatibility 12: Tremor
if(pChn->nTremorOn)
pChn->nTremorOn--;
if(!pChn->nTremorOn) {
@@ -1040,10 +1040,8 @@
pChn->dwFlags |= CHN_FASTVOLRAMP;
}
- // Clip volume
- if (vol < 0) vol = 0;
- if (vol > 0x100) vol = 0x100;
- vol <<= 6;
+ // Clip volume and multiply
+ vol = CLAMP(vol, 0, 256) << 6;
// Process Envelopes
if (pChn->pHeader)
@@ -1073,10 +1071,7 @@
int relativeVolumeChange = (envvol-envValueAtReleaseNode)*2;
envvol = envValueAtReleaseJump + relativeVolumeChange;
}
- if (envvol < 0) envvol = 0;
- if (envvol > 512)
- envvol = 512;
- vol = (vol * envvol) >> 8;
+ vol = (vol * CLAMP(envvol, 0, 512)) >> 8;
}
// Panning Envelope
if ((pChn->dwFlags & CHN_PANENV) && (penv->nPanEnv))
@@ -1111,8 +1106,8 @@
{
envpan += ((envpos - x1) * (y2 - envpan)) / (x2 - x1);
}
- if (envpan < 0) envpan = 0;
- if (envpan > 64) envpan = 64;
+
+ envpan = CLAMP(envpan, 0, 64);
int pan = pChn->nPan;
if (pan >= 128)
{
@@ -1121,9 +1116,8 @@
{
pan += ((envpan - 32) * (pan)) / 32;
}
- if (pan < 0) pan = 0;
- if (pan > 256) pan = 256;
- pChn->nRealPan = pan;
+
+ pChn->nRealPan = CLAMP(pan, 0, 256);
}
// FadeOut volume
if (pChn->dwFlags & CHN_NOTEFADE)
@@ -1144,9 +1138,7 @@
if ((penv->nPPS) && (pChn->nRealPan) && (pChn->nNote))
{
int pandelta = (int)pChn->nRealPan + (int)((int)(pChn->nNote - penv->nPPC - 1) * (int)penv->nPPS) / (int)8;
- if (pandelta < 0) pandelta = 0;
- if (pandelta > 256) pandelta = 256;
- pChn->nRealPan = pandelta;
+ pChn->nRealPan = CLAMP(pandelta, 0, 256);
}
} else
{
@@ -1227,11 +1219,9 @@
}
}
+ // Preserve Amiga freq limits
if (m_dwSongFlags & SONG_AMIGALIMITS)
- {
- if (period < 113*4) period = 113*4;
- if (period > 856*4) period = 856*4;
- }
+ period = CLAMP(period, 113 * 4, 856 * 4);
// Pitch/Filter Envelope
if ((pChn->pHeader) && (pChn->dwFlags & CHN_PITCHENV) && (pChn->pHeader->nPitchEnv))
@@ -1269,8 +1259,7 @@
int envpitchdest = (((int)penv->PitchEnv[pt]) - 32) * 8;
envpitch += ((envpos - x1) * (envpitchdest - envpitch)) / (x2 - x1);
}
- if (envpitch < -256) envpitch = -256;
- if (envpitch > 256) envpitch = 256;
+ envpitch = CLAMP(envpitch, -256, 256);
// Filter Envelope: controls cutoff frequency
if (penv->dwFlags & ENV_FILTER)
{
@@ -1397,9 +1386,8 @@
pChn->nPanbrelloPos += pChn->nPanbrelloSpeed;
pdelta = ((pdelta * (int)pChn->nPanbrelloDepth) + 2) >> 3;
pdelta += pChn->nRealPan;
- if (pdelta < 0) pdelta = 0;
- if (pdelta > 256) pdelta = 256;
- pChn->nRealPan = pdelta;
+
+ pChn->nRealPan = CLAMP(pdelta, 0, 256);
}
int nPeriodFrac = 0;
// Instrument Auto-Vibrato
@@ -1691,8 +1679,7 @@
pan *= (int)m_nStereoSeparation;
pan /= 128;
pan += 128;
- if (pan < 0) pan = 0;
- if (pan > 256) pan = 256;
+ pan = CLAMP(pan, 0, 256);
#ifndef FASTSOUNDLIB
if (gdwSoundSetup & SNDMIX_REVERSESTEREO) pan = 256 - pan;
#endif
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-25 15:39:19 UTC (rev 303)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-26 21:59:23 UTC (rev 304)
@@ -31,6 +31,8 @@
INSTRUMENTINDEX instrumentsMax;
BYTE defaultMixLevels;
BYTE MIDIMappingDirectivesMax;
+ UINT speedMin;
+ UINT speedMax;
};
@@ -61,7 +63,9 @@
4000, //SamplesMax
256, //instrumentMax
mixLevels_117RC3, //defaultMixLevels
- 200 //Max MIDI mapping directives
+ 200, //Max MIDI mapping directives
+ 1, //Min Speed
+ 255, //Max Speed
};
@@ -80,7 +84,7 @@
4, //Channel min
4, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
64, //Min pattern rows
64, //Max pattern rows
20, //Max mod name length
@@ -88,6 +92,8 @@
0, //instrumentMax
mixLevels_original, //defaultMixLevels
0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 31, //Max Speed
};
// MOD with MPT extensions.
@@ -104,14 +110,16 @@
4, //Channel min
32, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
64, //Min pattern rows
64, //Max pattern rows
20, //Max mod name length
31, //SamplesMax
0, //instrumentMax
mixLevels_original, //defaultMixLevels
- 0 //Max MIDI mapping directives
+ 0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 31, //Max Speed
};
const CModSpecifications xm =
@@ -127,14 +135,16 @@
4, //Channel min
32, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
4, //Min pattern rows
256, //Max pattern rows
20, //Max mod name length
31, //SamplesMax
200, //instrumentMax
mixLevels_original, //defaultMixLevels
- 0 //Max MIDI mapping directives
+ 0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 31, //Max Speed
};
// XM with MPT extensions
@@ -147,7 +157,7 @@
false, //No notecut.
true, //Has noteoff.
240, //Pattern max.
- 256, //Order max.
+ 255, //Order max.
4, //Channel min
127, //Channel max
32, //Min tempo
@@ -158,7 +168,9 @@
4000, //SamplesMax
256, //instrumentMax
mixLevels_117RC3, //defaultMixLevels
- 200 //Max MIDI mapping directives
+ 200, //Max MIDI mapping directives
+ 1, //Min Speed
+ 31, //Max Speed
};
const CModSpecifications s3m =
@@ -174,14 +186,16 @@
4, //Channel min
32, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
64, //Min pattern rows
64, //Max pattern rows
27, //Max mod name length
99, //SamplesMax
0, //instrumentMax
mixLevels_original, //defaultMixLevels
- 0 //Max MIDI mapping directives
+ 0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 255, //Max Speed
};
// S3M with MPT extensions
@@ -198,14 +212,16 @@
4, //Channel min
32, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
64, //Min pattern rows
64, //Max pattern rows
27, //Max mod name length
99, //SamplesMax
0, //instrumentMax
mixLevels_original, //defaultMixLevels
- 0 //Max MIDI mapping directives
+ 0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 255, //Max Speed
};
const CModSpecifications it =
@@ -221,14 +237,16 @@
4, //Channel min
64, //Channel max
32, //Min tempo
- 256, //Max tempo
+ 255, //Max tempo
4, //Min pattern rows
256, //Max pattern rows
25, //Max mod name length
256, //SamplesMax
200, //instrumentMax
mixLevels_original, //defaultMixLevels
- 0 //Max MIDI mapping directives
+ 0, //Max MIDI mapping directives
+ 1, //Min Speed
+ 255, //Max Speed
};
const CModSpecifications itEx =
@@ -251,7 +269,9 @@
4000, //SamplesMax
256, //instrumentMax
mixLevels_117RC3, //defaultMixLevels
- 200 //Max MIDI mapping directives
+ 200, //Max MIDI mapping directives
+ 1, //Min Speed
+ 255, //Max Speed
};
} //namespace ModSpecs
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-25 15:39:29
|
Revision: 303
http://modplug.svn.sourceforge.net/modplug/?rev=303&view=rev
Author: saga-games
Date: 2009-07-25 15:39:19 +0000 (Sat, 25 Jul 2009)
Log Message:
-----------
[Imp] General tab: "Modtype" dialog will revert mod flags to previous values if user presses the Cancel button
[Imp] Sample tab: It is now possible to resize samples to a given sample size. You can do this using the already existing "add silence" dialog.
[Fix] S3M loader: Samples with very short loops (2 bytes) will now load correctly. This fixes for example 94hitmix.s3m and spectral.s3m. After using this patch for a long time, it seems to not break anything else.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/View_smp.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/mptrack/dlg_misc.h
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
trunk/OpenMPT/soundlib/modsmp_ctrl.h
Modified: trunk/OpenMPT/mptrack/View_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_smp.cpp 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/mptrack/View_smp.cpp 2009-07-25 15:39:19 UTC (rev 303)
@@ -2415,14 +2415,14 @@
void CViewSample::OnAddSilence()
//------------------------------
{
- CAddSilenceDlg dlg(this);
- if (dlg.DoModal() != IDOK) return;
-
CModDoc *pModDoc = GetDocument();
if (!pModDoc) return;
CSoundFile *pSndFile = pModDoc->GetSoundFile();
if (!pSndFile) return;
+ CAddSilenceDlg dlg(this, 32, pSndFile->Ins[m_nSample].nLength);
+ if (dlg.DoModal() != IDOK) return;
+
const ctrlSmp::SmpLength nOldLength = pSndFile->Ins[m_nSample].nLength;
if( MAX_SAMPLE_LENGTH - nOldLength < dlg.m_nSamples )
@@ -2432,7 +2432,16 @@
return;
}
- ctrlSmp::InsertSilence(pSndFile->Ins[m_nSample], dlg.m_nSamples, (dlg.m_bAddAtEnd) ? pSndFile->Ins[m_nSample].nLength : 0, pSndFile);
+ if(dlg.m_nEditOption == 3)
+ {
+ // resize
+ ctrlSmp::ResizeSample(pSndFile->Ins[m_nSample], dlg.m_nSamples, pSndFile);
+ }
+ else
+ {
+ // add silence
+ ctrlSmp::InsertSilence(pSndFile->Ins[m_nSample], dlg.m_nSamples, (dlg.m_nEditOption == 2) ? pSndFile->Ins[m_nSample].nLength : 0, pSndFile);
+ }
if(nOldLength != pSndFile->Ins[m_nSample].nLength)
{
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-25 15:39:19 UTC (rev 303)
@@ -138,6 +138,7 @@
CDialog::OnInitDialog();
m_nType = m_pSndFile->m_nType;
m_nChannels = m_pSndFile->m_nChannels;
+ m_dwSongFlags = m_pSndFile->m_dwSongFlags;
SetDlgItemInt(IDC_ROWSPERBEAT, m_pSndFile->m_nRowsPerBeat);
SetDlgItemInt(IDC_ROWSPERMEASURE, m_pSndFile->m_nRowsPerMeasure);
@@ -489,7 +490,15 @@
CDialog::OnOK();
}
+void CModTypeDlg::OnCancel()
+//--------------------------
+{
+ // Reset mod flags
+ m_pSndFile->m_dwSongFlags = m_dwSongFlags;
+ CDialog::OnCancel();
+}
+
//////////////////////////////////////////////////////////////////////////////
// CShowLogDlg
@@ -1568,19 +1577,45 @@
// Add silence to a sample
+BEGIN_MESSAGE_MAP(CAddSilenceDlg, CDialog)
+ ON_COMMAND(IDC_RADIO_ADDSILENCE_BEGIN, OnEditModeChanged)
+ ON_COMMAND(IDC_RADIO_ADDSILENCE_END, OnEditModeChanged)
+ ON_COMMAND(IDC_RADIO_RESIZETO, OnEditModeChanged)
+END_MESSAGE_MAP()
+
+
BOOL CAddSilenceDlg::OnInitDialog()
//---------------------------------
{
CDialog::OnInitDialog();
- CSpinButtonCtrl *spin = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1);
+
+ CSpinButtonCtrl *spin = (CSpinButtonCtrl *)GetDlgItem(IDC_SPIN_ADDSILENCE);
if (spin)
{
spin->SetRange(0, int16_max);
spin->SetPos(m_nSamples);
}
- CButton *radio2 = (CButton *)GetDlgItem(IDC_RADIO2);
- radio2->SetCheck(m_bAddAtEnd);
- SetDlgItemInt(IDC_EDIT1, m_nSamples);
+
+ int iRadioButton;
+ switch(m_nEditOption)
+ {
+ case 1:
+ iRadioButton = IDC_RADIO_ADDSILENCE_BEGIN;
+ break;
+ case 2:
+ default:
+ iRadioButton = IDC_RADIO_ADDSILENCE_END;
+ break;
+ case 3:
+ iRadioButton = IDC_RADIO_RESIZETO;
+ break;
+
+ }
+ CButton *radioEnd = (CButton *)GetDlgItem(iRadioButton);
+ radioEnd->SetCheck(true);
+
+ SetDlgItemInt(IDC_EDIT_ADDSILENCE, (m_nEditOption == 3) ? m_nLength : m_nSamples);
+
return TRUE;
}
@@ -1588,12 +1623,39 @@
void CAddSilenceDlg::OnOK()
//-------------------------
{
- m_nSamples = GetDlgItemInt(IDC_EDIT1);
- m_bAddAtEnd = (IsDlgButtonChecked(IDC_RADIO2) != 0);
+ m_nSamples = GetDlgItemInt(IDC_EDIT_ADDSILENCE);
+ m_nEditOption = GetEditMode();
CDialog::OnOK();
}
+void CAddSilenceDlg::OnEditModeChanged()
+//------------------------------------------------
+{
+ char cNewEditOption = GetEditMode();
+ if(cNewEditOption != 3 && m_nEditOption == 3)
+ {
+ m_nLength = GetDlgItemInt(IDC_EDIT_ADDSILENCE);
+ SetDlgItemInt(IDC_EDIT_ADDSILENCE, m_nSamples);
+ }
+ else if(cNewEditOption == 3 && m_nEditOption != 3)
+ {
+ m_nSamples = GetDlgItemInt(IDC_EDIT_ADDSILENCE);
+ SetDlgItemInt(IDC_EDIT_ADDSILENCE, m_nLength);
+ }
+ m_nEditOption = cNewEditOption;
+}
+
+
+char CAddSilenceDlg::GetEditMode()
+{
+ if(IsDlgButtonChecked(IDC_RADIO_ADDSILENCE_BEGIN)) return 1;
+ else if(IsDlgButtonChecked(IDC_RADIO_ADDSILENCE_END)) return 2;
+ else if(IsDlgButtonChecked(IDC_RADIO_RESIZETO)) return 3;
+ return 0;
+}
+
+
////////////////////////////////////////////////////////////////////////////////
// Sound Bank Information
Modified: trunk/OpenMPT/mptrack/dlg_misc.h
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-25 15:39:19 UTC (rev 303)
@@ -15,6 +15,7 @@
CEdit m_EditFlag;
CSoundFile *m_pSndFile;
UINT m_nChannels, m_nType;
+ DWORD m_dwSongFlags;
// -> CODE#0023
// -> DESC="IT project files (.itp)"
@@ -36,6 +37,7 @@
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
virtual void OnOK();
+ virtual void OnCancel();
//}}AFX_VIRTUAL
//{{AFX_MSG(CModTypeDlg)
@@ -346,12 +348,18 @@
class CAddSilenceDlg: public CDialog
//===========================
{
+protected:
+ char GetEditMode();
+ afx_msg void OnEditModeChanged();
+ DECLARE_MESSAGE_MAP()
+
public:
UINT m_nSamples;
- bool m_bAddAtEnd;
+ UINT m_nLength;
+ char m_nEditOption; //0 = add at beginning, 1 = add at end, 2 = resize
public:
- CAddSilenceDlg(CWnd *parent, UINT nSamples=32):CDialog(IDD_ADDSILENCE, parent) { m_nSamples = nSamples; m_bAddAtEnd = true; }
+ CAddSilenceDlg(CWnd *parent, UINT nSamples = 32, UINT nOrigLength = 1024):CDialog(IDD_ADDSILENCE, parent) { m_nSamples = nSamples; m_nLength = nOrigLength; m_nEditOption = 2; }
virtual BOOL OnInitDialog();
virtual void OnOK();
};
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-25 15:39:19 UTC (rev 303)
@@ -1482,19 +1482,21 @@
LTEXT "around current",IDC_STATIC,156,84,49,8
END
-IDD_ADDSILENCE DIALOGEX 0, 0, 175, 71
+IDD_ADDSILENCE DIALOGEX 0, 0, 184, 82
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Insert Silence"
+CAPTION "Add Silence / Resize"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- GROUPBOX "",IDC_STATIC,6,6,108,60
- DEFPUSHBUTTON "OK",IDOK,120,12,50,14
- PUSHBUTTON "Cancel",IDCANCEL,120,30,50,14
- EDITTEXT IDC_EDIT1,12,18,40,14,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,44,18,11,14
- LTEXT "samples",IDC_STATIC,59,21,35,8
- CONTROL "At beginning of sample",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,12,36,97,10
- CONTROL "At end of sample",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,48,97,10
+ GROUPBOX "",IDC_STATIC,6,6,114,72
+ DEFPUSHBUTTON "OK",IDOK,126,12,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,126,30,50,14
+ EDITTEXT IDC_EDIT_ADDSILENCE,12,18,60,14,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "",IDC_SPIN_ADDSILENCE,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,60,18,11,14
+ LTEXT "samples",IDC_STATIC,78,21,35,8
+ CONTROL "Add a beginning of sample",IDC_RADIO_ADDSILENCE_BEGIN,
+ "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,12,36,102,12
+ CONTROL "Add at end of sample",IDC_RADIO_ADDSILENCE_END,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,48,102,12
+ CONTROL "Resize to",IDC_RADIO_RESIZETO,"Button",BS_AUTORADIOBUTTON,12,60,102,12
END
IDD_PATTERNRANDOMIZER_EFFECT DIALOGEX 0, 0, 235, 172
@@ -1790,9 +1792,9 @@
IDD_ADDSILENCE, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 168
+ RIGHTMARGIN, 177
TOPMARGIN, 7
- BOTTOMMARGIN, 64
+ BOTTOMMARGIN, 75
END
IDD_PATTERNRANDOMIZER_EFFECT, DIALOG
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/mptrack/resource.h 2009-07-25 15:39:19 UTC (rev 303)
@@ -869,6 +869,12 @@
#define IDC_EDIT_SAVEDWITH 2375
#define IDC_FRAME_MODFLAGS 2376
#define IDC_FRAME_MODTYPE 2377
+#define IDC_EDIT_ADDSILENCE 2378
+#define IDC_EDIT_RESIZESAMPLE 2379
+#define IDC_RADIO_ADDSILENCE_BEGIN 2380
+#define IDC_RADIO_ADDSILENCE_END 2381
+#define IDC_SPIN_ADDSILENCE 2382
+#define IDC_RADIO_RESIZETO 2384
#define ID_FILE_NEWMOD 32771
#define ID_FILE_NEWXM 32772
#define ID_FILE_NEWS3M 32773
@@ -1108,7 +1114,7 @@
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 518
#define _APS_NEXT_COMMAND_VALUE 59227
-#define _APS_NEXT_CONTROL_VALUE 2378
+#define _APS_NEXT_CONTROL_VALUE 2385
#define _APS_NEXT_SYMED_VALUE 901
#endif
#endif
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-25 15:39:19 UTC (rev 303)
@@ -370,9 +370,8 @@
if ((Ins[iSmp].nLoopStart >= Ins[iSmp].nLoopEnd) || (Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart < 1))
Ins[iSmp].nLoopStart = Ins[iSmp].nLoopEnd = 0;
UINT iLooplength = Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart;
- if(iLooplength > 0 && iLooplength < 8) Ins[iSmp].nLoopEnd = Ins[iSmp].nLoopStart + 8;
Ins[iSmp].nPan = 0x80;
- // ASSERT(iLooplength == 0 || iLooplength > 10);
+ //ASSERT(iLooplength == 0 || iLooplength > 4);
}
}
// Reading patterns
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-25 15:39:19 UTC (rev 303)
@@ -650,7 +650,7 @@
if (pins->pSample)
{
if (pins->nLoopEnd > pins->nLength) pins->nLoopEnd = pins->nLength;
- if (pins->nLoopStart + 3 >= pins->nLoopEnd)
+ if (pins->nLoopStart >= pins->nLoopEnd)
{
pins->nLoopStart = 0;
pins->nLoopEnd = 0;
@@ -2447,7 +2447,7 @@
{
if ((!pIns->pSample) || (!pIns->nLength)) return;
if (pIns->nLoopEnd > pIns->nLength) pIns->nLoopEnd = pIns->nLength;
- if (pIns->nLoopStart+2 >= pIns->nLoopEnd)
+ if (pIns->nLoopStart >= pIns->nLoopEnd)
{
pIns->nLoopStart = pIns->nLoopEnd = 0;
pIns->uFlags &= ~CHN_LOOP;
Modified: trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
===================================================================
--- trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-25 15:39:19 UTC (rev 303)
@@ -23,7 +23,7 @@
}
-SmpLength InsertSilence(MODINSTRUMENT& smp, const SmpLength nSilenceLength, const SmpLength nStartFrom, CSoundFile* pSndFile)
+SmpLength InsertSilence(MODINSTRUMENT& smp, const SmpLength nSilenceLength, const SmpLength nStartFrom, CSoundFile* pSndFile)
//----------------------------------------------------------------------------------------------------------------------------
{
if(nSilenceLength == 0 || nSilenceLength >= MAX_SAMPLE_LENGTH || smp.nLength > MAX_SAMPLE_LENGTH - nSilenceLength)
@@ -66,6 +66,49 @@
return smp.nLength;
}
+SmpLength ResizeSample(MODINSTRUMENT& smp, const SmpLength nNewLength, CSoundFile* pSndFile)
+//----------------------------------------------------------------------------------------
+{
+ // Invalid sample size
+ if(nNewLength > MAX_SAMPLE_LENGTH || nNewLength == smp.nLength)
+ return smp.nLength;
+
+ // New sample will be bigger so we'll just use "InsertSilence" as it's already there.
+ if(nNewLength > smp.nLength)
+ return InsertSilence(smp, nNewLength - smp.nLength, smp.nLength, pSndFile);
+
+ // Else: Shrink sample
+
+ const SmpLength nNewSmpBytes = nNewLength * smp.GetElementarySampleSize() * smp.GetNumChannels();
+
+ LPSTR pNewSmp = 0;
+ pNewSmp = CSoundFile::AllocateSample(nNewSmpBytes);
+ if(pNewSmp == 0)
+ return smp.nLength; //Sample allocation failed.
+
+ // Copy over old data and replace sample by the new one
+ memcpy(pNewSmp, smp.pSample, nNewSmpBytes);
+ ReplaceSample(smp, pNewSmp, nNewLength);
+
+ // Adjust loops
+ if(smp.nLoopStart > nNewLength)
+ {
+ smp.nLoopStart = smp.nLoopEnd = 0;
+ smp.uFlags &= ~CHN_LOOP;
+ }
+ if(smp.nLoopEnd > nNewLength) smp.nLoopEnd = nNewLength;
+ if(smp.nSustainStart > nNewLength)
+ {
+ smp.nSustainStart = smp.nSustainEnd = 0;
+ smp.uFlags &= ~CHN_SUSTAINLOOP;
+ }
+ if(smp.nSustainEnd > nNewLength) smp.nSustainEnd = nNewLength;
+
+ AdjustEndOfSample(smp, pSndFile);
+
+ return smp.nLength;
+}
+
namespace // Unnamed namespace for local implementation functions.
{
Modified: trunk/OpenMPT/soundlib/modsmp_ctrl.h
===================================================================
--- trunk/OpenMPT/soundlib/modsmp_ctrl.h 2009-07-25 13:27:30 UTC (rev 302)
+++ trunk/OpenMPT/soundlib/modsmp_ctrl.h 2009-07-25 15:39:19 UTC (rev 303)
@@ -20,8 +20,13 @@
// Insert silence to given location.
// Note: Is currently implemented only for inserting silence to the beginning and to the end of the sample.
// Return: Length of the new sample.
-SmpLength InsertSilence(MODINSTRUMENT& smp, const SmpLength nSilenceLength, const SmpLength nStartFrom, CSoundFile* pSndFile = 0);
+SmpLength InsertSilence(MODINSTRUMENT& smp, const SmpLength nSilenceLength, const SmpLength nStartFrom, CSoundFile* pSndFile = nullptr);
+// Change sample size.
+// Note: If resized sample is bigger, silence will be added to the sample's tail.
+// Return: Length of the new sample.
+SmpLength ResizeSample(MODINSTRUMENT& smp, const SmpLength nNewLength, CSoundFile* pSndFile = nullptr);
+
// Replaces sample in 'smp' with given sample and frees the old sample.
void ReplaceSample(MODINSTRUMENT& smp, const LPSTR pNewSample, const SmpLength nNewLength);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-25 13:27:42
|
Revision: 302
http://modplug.svn.sourceforge.net/modplug/?rev=302&view=rev
Author: saga-games
Date: 2009-07-25 13:27:30 +0000 (Sat, 25 Jul 2009)
Log Message:
-----------
[Imp] Mixing: It's now possible to go down to 1ms latency (works with ASIO)
[Fix] Pattern editor: Reverted the "loop pattern" fix from one of the latest revisions until a solution is found that doesn't break anything
[Fix] Pattern editor: Unbroke "remove channels" dialog when being called from the channel context menu
[Imp] General tab: Further improvements to the "mod type" dialog (some options are removed when using MOD/S3M formats)... Still too big, though.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Mpdlgs.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/SNDDEV.H
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2009-07-25 13:27:30 UTC (rev 302)
@@ -138,6 +138,8 @@
m_CbnBufferLength.SetWindowText(s);
// -> CODE#0006
// -> DESC="misc quantity changes"
+ m_CbnBufferLength.AddString("1 ms");
+ m_CbnBufferLength.AddString("5 ms");
m_CbnBufferLength.AddString("10 ms");
m_CbnBufferLength.AddString("20 ms");
// -! BEHAVIOUR_CHANGE#0006
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-25 13:27:30 UTC (rev 302)
@@ -116,8 +116,8 @@
//{{AFX_DATA_MAP(CModTypeDlg)
DDX_Control(pDX, IDC_COMBO1, m_TypeBox);
DDX_Control(pDX, IDC_COMBO2, m_ChannelsBox);
- DDX_Control(pDX, IDC_COMBO3, m_TempoModeBox);
- DDX_Control(pDX, IDC_COMBO4, m_PlugMixBox);
+ DDX_Control(pDX, IDC_COMBO_TEMPOMODE, m_TempoModeBox);
+ DDX_Control(pDX, IDC_COMBO_MIXLEVELS, m_PlugMixBox);
DDX_Control(pDX, IDC_CHECK1, m_CheckBox1);
DDX_Control(pDX, IDC_CHECK2, m_CheckBox2);
DDX_Control(pDX, IDC_CHECK3, m_CheckBox3);
@@ -196,11 +196,11 @@
default: m_PlugMixBox.SetCurSel(0); break;
}
- SetDlgItemText(IDC_STATIC_CREATEDWITH, "Created with:");
- SetDlgItemText(IDC_STATIC_SAVEDWITH, "Last saved with:");
+ SetDlgItemText(IDC_TEXT_CREATEDWITH, "Created with:");
+ SetDlgItemText(IDC_TEXT_SAVEDWITH, "Last saved with:");
- SetDlgItemText(IDC_EDIT1, MptVersion::ToStr(m_pSndFile->m_dwCreatedWithVersion));
- SetDlgItemText(IDC_EDIT2, MptVersion::ToStr(m_pSndFile->m_dwLastSavedWithVersion));
+ SetDlgItemText(IDC_EDIT_CREATEDWITH, MptVersion::ToStr(m_pSndFile->m_dwCreatedWithVersion));
+ SetDlgItemText(IDC_EDIT_SAVEDWITH, MptVersion::ToStr(m_pSndFile->m_dwLastSavedWithVersion));
m_EditFlag.SetLimitText(16);
@@ -270,6 +270,7 @@
const bool ITorMPT = ((m_TypeBox.GetItemData(m_TypeBox.GetCurSel()) & (MOD_TYPE_IT | MOD_TYPE_MPT)) != 0);
const bool XM = m_TypeBox.GetItemData(m_TypeBox.GetCurSel()) == MOD_TYPE_XM;
+ // Misc Flags box
CWnd* p = GetDlgItem(IDC_EDIT_FLAGS);
if(p) p->ShowWindow(XMorITorMPT);
p = GetDlgItem(IDC_FLAG_EXPLANATIONS);
@@ -284,8 +285,9 @@
"2. Unused\n"
"3. Plugin volume command bug");
}
- p = GetDlgItem(IDC_FLAGEDITTITLE);
- if(p) p->ShowWindow(XMorITorMPT);
+
+ GetDlgItem(IDC_FLAGEDITTITLE)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_FRAME_MPTEXT)->ShowWindow(XMorITorMPT);
if(XMorITorMPT)
{
char str[17] = "0000000000000000";
@@ -299,11 +301,37 @@
SetDlgItemText(IDC_EDIT_FLAGS, str);
}
- m_TempoModeBox.EnableWindow((m_pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) ? TRUE : FALSE);
- GetDlgItem(IDC_ROWSPERBEAT)->EnableWindow((m_pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) ? TRUE : FALSE);
- GetDlgItem(IDC_ROWSPERMEASURE)->EnableWindow((m_pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) ? TRUE : FALSE);
+ // Mixmode Box
+ GetDlgItem(IDC_TEXT_MIXMODE)->ShowWindow(XMorITorMPT);
+ m_PlugMixBox.ShowWindow(XMorITorMPT);
+
+ // Tempo mode box
+ m_TempoModeBox.ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_ROWSPERBEAT)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_ROWSPERMEASURE)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_TEXT_ROWSPERBEAT)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_TEXT_ROWSPERMEASURE)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_TEXT_TEMPOMODE)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_FRAME_TEMPOMODE)->ShowWindow(XMorITorMPT);
- m_PlugMixBox.EnableWindow((m_pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)) ? TRUE : FALSE);
+ // Version info
+ GetDlgItem(IDC_FRAME_MPTVERSION)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_TEXT_CREATEDWITH)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_TEXT_SAVEDWITH)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_EDIT_CREATEDWITH)->ShowWindow(XMorITorMPT);
+ GetDlgItem(IDC_EDIT_SAVEDWITH)->ShowWindow(XMorITorMPT);
+
+ // Window height - some parts of the dialog won't be visible for all formats
+ RECT rWindow;
+ GetWindowRect(&rWindow);
+
+ UINT iHeight;
+ int nItemID = (XMorITorMPT) ? IDC_FRAME_MPTVERSION : IDC_FRAME_MODFLAGS;
+ RECT rFrame;
+ GetDlgItem(nItemID)->GetWindowRect(&rFrame);
+ iHeight = rFrame.bottom - rWindow.top + 12;
+ MoveWindow(rWindow.left, rWindow.top, rWindow.right - rWindow.left, iHeight);
+
}
@@ -530,7 +558,7 @@
BOOL CRemoveChannelsDlg::OnInitDialog()
//-------------------------------------
{
- CHAR label[20 + MAX_CHANNELNAME];
+ CHAR label[max(100, 20 + MAX_CHANNELNAME)];
CDialog::OnInitDialog();
for (UINT n = 0; n < m_nChannels; n++)
{
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-25 13:27:30 UTC (rev 302)
@@ -378,10 +378,10 @@
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
COMBOBOX IDC_COMBO1,15,25,134,109,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Primary highlight",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,91,74,10
- EDITTEXT IDC_PRIMARYHILITE,101,90,21,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Secondary highlight",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,103,80,10
- EDITTEXT IDC_SECONDARYHILITE,101,102,21,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Primary highlight",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,91,74,10
+ EDITTEXT IDC_PRIMARYHILITE,114,90,21,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Secondary highlight",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,109,80,10
+ EDITTEXT IDC_SECONDARYHILITE,114,108,21,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Enable effect highlighting",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,60,114,10
CONTROL "Use small font",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,102,10
PUSHBUTTON "MPT",IDC_BUTTON5,159,26,22,12
@@ -396,9 +396,9 @@
LTEXT "Highlight:",IDC_TEXT3,169,185,61,8
GROUPBOX "",IDC_STATIC,5,5,260,220
LTEXT "Select color for:",IDC_STATIC,15,15,63,8
- LTEXT "rows",IDC_STATIC,125,92,16,8
+ LTEXT "rows",IDC_STATIC,138,92,16,8
LTEXT "Presets:",IDC_STATIC,159,15,28,8
- LTEXT "rows",IDC_STATIC,125,104,16,8
+ LTEXT "rows",IDC_STATIC,138,110,16,8
CONTROL "",IDC_BUTTON4,"Button",BS_OWNERDRAW | BS_FLAT,65,130,114,43
CONTROL "Set highlights to songs' time signatures",IDC_CHECK5,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,75,136,10
@@ -715,34 +715,34 @@
BEGIN
DEFPUSHBUTTON "OK",IDOK,204,6,50,14
PUSHBUTTON "Cancel",IDCANCEL,204,24,50,14
- GROUPBOX "Type",IDC_STATIC,6,6,192,48
+ GROUPBOX "Type",IDC_FRAME_MODTYPE,6,6,192,48
COMBOBOX IDC_COMBO1,12,18,108,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO2,126,18,66,77,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Embed instrument parameters in ITP",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,36,126,8
- GROUPBOX "Playback",IDC_STATIC,6,60,246,54
+ GROUPBOX "Playback",IDC_FRAME_MODFLAGS,6,60,246,54
CONTROL "Linear Frequency Slides",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,72,91,10
CONTROL "Fast Volume Slides",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,84,75,10
CONTROL "Extended filter range",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,96,81,10
CONTROL "IT Old Effects",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,72,76,10
CONTROL "IT Compatible Gxx",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,84,76,10
- GROUPBOX "Extended Playback Options (OpenMPT only)",IDC_STATIC,6,120,246,84
- RTEXT "Mix Levels:",IDC_STATIC,18,134,81,8
- COMBOBOX IDC_COMBO4,108,132,84,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Extended Playback Options (OpenMPT only)",IDC_FRAME_MPTEXT,6,120,246,84
+ RTEXT "Mix Levels:",IDC_TEXT_MIXMODE,18,134,81,8
+ COMBOBOX IDC_COMBO_MIXLEVELS,108,132,84,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT "Miscellaneous flags(0/1):",IDC_FLAGEDITTITLE,18,150,81,12,SS_CENTERIMAGE
EDITTEXT IDC_EDIT_FLAGS,108,150,84,12,ES_AUTOHSCROLL
LTEXT "",IDC_FLAG_EXPLANATIONS,18,168,222,26
- GROUPBOX "OpenMPT Version Info",IDC_STATIC,6,263,246,48
- EDITTEXT IDC_EDIT1,78,276,166,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_STATICEDGE
- EDITTEXT IDC_EDIT2,78,294,166,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_STATICEDGE
- RTEXT "IDC_STATIC_CREATEDWITH",IDC_STATIC_CREATEDWITH,18,278,54,8
- RTEXT "IDC_STATIC_SAVEDWITH",IDC_STATIC_SAVEDWITH,18,295,54,8
- GROUPBOX "Tempo",IDC_STATIC,6,210,246,48
- LTEXT "Mode:",IDC_STATIC,12,224,21,8
- COMBOBOX IDC_COMBO3,36,222,108,77,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "OpenMPT Version Info",IDC_FRAME_MPTVERSION,6,263,246,48
+ EDITTEXT IDC_EDIT_CREATEDWITH,78,276,166,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_STATICEDGE
+ EDITTEXT IDC_EDIT_SAVEDWITH,78,294,166,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_STATICEDGE
+ RTEXT "IDC_TEXT_CREATEDWITH",IDC_TEXT_CREATEDWITH,18,278,54,8
+ RTEXT "IDC_TEXT_SAVEDWITH",IDC_TEXT_SAVEDWITH,18,295,54,8
+ GROUPBOX "Tempo",IDC_FRAME_TEMPOMODE,6,210,246,48
+ LTEXT "Mode:",IDC_TEXT_TEMPOMODE,12,224,21,8
+ COMBOBOX IDC_COMBO_TEMPOMODE,36,222,108,77,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_ROWSPERBEAT,156,222,24,12,ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "Rows/beat",IDC_STATIC,186,224,36,8
+ LTEXT "Rows/beat",IDC_TEXT_ROWSPERBEAT,186,224,36,8
EDITTEXT IDC_ROWSPERMEASURE,156,240,24,12,ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "Rows/measure",IDC_STATIC,186,242,49,8
+ LTEXT "Rows/measure",IDC_TEXT_ROWSPERMEASURE,186,242,49,8
END
IDD_SHOWLOG DIALOG 0, 0, 300, 106
@@ -763,8 +763,8 @@
DEFPUSHBUTTON "OK",IDOK,54,198,50,14
PUSHBUTTON "Cancel",IDCANCEL,114,198,50,14
LISTBOX IDC_REMCHANSLIST,6,36,156,156,LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP
- LTEXT "Channels:",IDC_QUESTION1,6,6,157,11
- LTEXT "Detected unused channels are already selected",IDC_STATIC,6,18,159,10
+ LTEXT "Channels:",IDC_QUESTION1,6,6,157,18
+ LTEXT "Detected unused channels are already selected",IDC_STATIC,6,24,159,10
END
IDD_VIEW_GLOBALS DIALOGEX 0, 0, 471, 337
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/mptrack/resource.h 2009-07-25 13:27:30 UTC (rev 302)
@@ -850,10 +850,25 @@
#define IDC_STATIC_VSTPRESETDIR 2359
#define IDC_BUTTON_DEFAULT_RESAMPLING 2360
#define IDC_STATIC_CREATEDWITH 2361
+#define IDC_TEXT_CREATEDWITH 2361
#define IDC_STATIC_SAVEDWITH 2362
#define IDC_STATIC_VSTNAMEFILTER 2362
+#define IDC_TEXT_SAVEDWITH 2362
#define IDC_TEXT_CURRENT_VSTPLUG 2363
#define IDC_STATIC_SCALE_ENV 2364
+#define IDC_FRAME_MPTEXT 2365
+#define IDC_COMBO_MIXLEVELS 2366
+#define IDC_COMBO_TEMPOMODE 2367
+#define IDC_TEXT_TEMPOMODE 2368
+#define IDC_FRAME_TEMPOMODE 2369
+#define IDC_TEXT_MIXMODE 2370
+#define IDC_TEXT_ROWSPERBEAT 2371
+#define IDC_TEXT_ROWSPERMEASURE 2372
+#define IDC_FRAME_MPTVERSION 2373
+#define IDC_EDIT_CREATEDWITH 2374
+#define IDC_EDIT_SAVEDWITH 2375
+#define IDC_FRAME_MODFLAGS 2376
+#define IDC_FRAME_MODTYPE 2377
#define ID_FILE_NEWMOD 32771
#define ID_FILE_NEWXM 32772
#define ID_FILE_NEWS3M 32773
@@ -1093,7 +1108,7 @@
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 518
#define _APS_NEXT_COMMAND_VALUE 59227
-#define _APS_NEXT_CONTROL_VALUE 2365
+#define _APS_NEXT_CONTROL_VALUE 2378
#define _APS_NEXT_SYMED_VALUE 901
#endif
#endif
Modified: trunk/OpenMPT/soundlib/SNDDEV.H
===================================================================
--- trunk/OpenMPT/soundlib/SNDDEV.H 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/soundlib/SNDDEV.H 2009-07-25 13:27:30 UTC (rev 302)
@@ -31,7 +31,7 @@
#define SNDDEV_MINBUFFERS 2
#define SNDDEV_MAXBUFFERS 16
-#define SNDDEV_MINBUFFERLEN 10 // 10ms
+#define SNDDEV_MINBUFFERLEN 1 // 1ms
#define SNDDEV_MAXBUFFERLEN 1000 // 1sec
#define SNDDEV_OPTIONS_SECONDARY 0x01 // Use secondary buffers (if available)
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-23 21:51:50 UTC (rev 301)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-25 13:27:30 UTC (rev 302)
@@ -1761,14 +1761,12 @@
// Position Jump
case CMD_POSITIONJUMP:
nPosJump = param;
- /* commented this out (http://lpchip.com/modplug/viewtopic.php?t=1808) - I hope it doesn't break anything else.
if((m_dwSongFlags & SONG_PATTERNLOOP && m_nSeqOverride == 0)) {
m_nSeqOverride = param+1;
//Releasing pattern loop after position jump could cause
//instant jumps - modifying behavior so that now position jumps
//occurs also when pattern loop is enabled.
}
- */
// see http://lpchip.com/modplug/viewtopic.php?t=2769 - FastTracker resets Dxx if Bxx is called _after_ Dxx
if(GetType() == MOD_TYPE_XM) nBreakRow = 0;
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-23 21:52:03
|
Revision: 301
http://modplug.svn.sourceforge.net/modplug/?rev=301&view=rev
Author: saga-games
Date: 2009-07-23 21:51:50 +0000 (Thu, 23 Jul 2009)
Log Message:
-----------
[Ref] Misc: Cleaned up a few dialogs (mptrack.rc has been changed drastically due to VS2008)
[New] Setup: Option reset ramping and resampling to default values
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Mpdlgs.cpp
trunk/OpenMPT/mptrack/Mpdlgs.h
trunk/OpenMPT/mptrack/Vstplug.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/Load_mt2.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2009-07-23 13:05:32 UTC (rev 300)
+++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2009-07-23 21:51:50 UTC (rev 301)
@@ -389,6 +389,7 @@
ON_COMMAND(IDC_CHECK5, OnSettingsChanged)
ON_COMMAND(IDC_CHECK6, OnSettingsChanged)
ON_COMMAND(IDC_CHECK7, OnSettingsChanged)
+ ON_COMMAND(IDC_BUTTON_DEFAULT_RESAMPLING, OnDefaultResampling)
END_MESSAGE_MAP()
@@ -561,6 +562,19 @@
OnSettingsChanged();
}
+void COptionsPlayer::OnDefaultResampling()
+{
+ //CMainFrame::gbWFIRType = 7; //WFIR_KAISER4T
+ //CMainFrame::gdWFIRCutoff = 0.97;
+ //CMainFrame::m_nSrcMode = SRCMODE_POLYPHASE
+ //CMainFrame::glVolumeRampSamples = 42;
+ m_CbnResampling.SetCurSel(SRCMODE_POLYPHASE);
+ OnResamplerChanged();
+ m_CEditWFIRCutoff.SetWindowText("97");
+ m_CEditRamping.SetWindowText("42");
+
+}
+
extern VOID SndMixInitializeTables();
//end rewbs.resamplerConf
void COptionsPlayer::OnOK()
Modified: trunk/OpenMPT/mptrack/Mpdlgs.h
===================================================================
--- trunk/OpenMPT/mptrack/Mpdlgs.h 2009-07-23 13:05:32 UTC (rev 300)
+++ trunk/OpenMPT/mptrack/Mpdlgs.h 2009-07-23 21:51:50 UTC (rev 301)
@@ -65,6 +65,7 @@
//rewbs.resamplerConf
afx_msg void OnWFIRTypeChanged();
afx_msg void OnResamplerChanged();
+ afx_msg void OnDefaultResampling();
//end rewbs.resamplerConf
DECLARE_MESSAGE_MAP()
Modified: trunk/OpenMPT/mptrack/Vstplug.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Vstplug.cpp 2009-07-23 13:05:32 UTC (rev 300)
+++ trunk/OpenMPT/mptrack/Vstplug.cpp 2009-07-23 21:51:50 UTC (rev 301)
@@ -571,18 +571,10 @@
return bOk;
} else
{
- // MOVED to CSoundFile::Create
- /*CString message;
- message.Format("This track uses the plugin \"%s\", which could not be found.\n\rSearch for this plug on kvraudio?", pMixPlugin->Info.szLibraryName);
- if (AfxMessageBox(message, MB_YESNO|MB_ICONQUESTION) == IDYES ) {
- CString url;
- url.Format("http://www.kvraudio.com/search.php?q=%s&lq=db", pMixPlugin->Info.szLibraryName);
- CTrackApp::OpenURL(url);
- }*/
-
- #ifdef VST_LOG
- Log("Unknown plugin\n");
- #endif
+ // "plug not found" notification code MOVED to CSoundFile::Create
+ #ifdef VST_LOG
+ Log("Unknown plugin\n");
+ #endif
}
return FALSE;
}
@@ -1356,10 +1348,10 @@
PVSTPLUGINLIB pPlug = (PVSTPLUGINLIB)m_treePlugins.GetItemData(m_treePlugins.GetSelectedItem());
if ((pManager) && (pManager->IsValidPlugin(pPlug)))
{
- SetDlgItemText(IDC_TEXT1, pPlug->szDllPath);
+ SetDlgItemText(IDC_TEXT_CURRENT_VSTPLUG, pPlug->szDllPath);
} else
{
- SetDlgItemText(IDC_TEXT1, "");
+ SetDlgItemText(IDC_TEXT_CURRENT_VSTPLUG, "");
}
if (result) *result = 0;
}
@@ -1443,13 +1435,16 @@
CDialog::OnSize(nType, cx, cy);
if (m_treePlugins) {
- m_treePlugins.MoveWindow(11, 33, cx-105, cy-63, FALSE);
- ::MoveWindow(GetDlgItem(IDC_NAMEFILTER)->m_hWnd, 50, 11, cx-145, 21, FALSE);
- ::MoveWindow(GetDlgItem(IDC_TEXT1)->m_hWnd, 11,cy-25, cx-22, 25, FALSE);
- ::MoveWindow(GetDlgItem(IDOK)->m_hWnd, cx-85, 11, 75, 23, FALSE);
- ::MoveWindow(GetDlgItem(IDCANCEL)->m_hWnd, cx-85, 39, 75, 23, FALSE);
- ::MoveWindow(GetDlgItem(IDC_BUTTON1)->m_hWnd , cx-85, cy-80, 75, 23, FALSE);
- ::MoveWindow(GetDlgItem(IDC_BUTTON2)->m_hWnd, cx-85, cy-52, 75, 23, FALSE);
+ m_treePlugins.MoveWindow(8, 36, cx - 104, cy - 63, FALSE);
+
+ ::MoveWindow(GetDlgItem(IDC_STATIC_VSTNAMEFILTER)->m_hWnd, 8, 11, 40, 21, FALSE);
+ ::MoveWindow(GetDlgItem(IDC_NAMEFILTER)->m_hWnd, 40, 8, cx - 136, 21, FALSE);
+
+ ::MoveWindow(GetDlgItem(IDC_TEXT_CURRENT_VSTPLUG)->m_hWnd, 8, cy - 20, cx - 22, 25, FALSE);
+ ::MoveWindow(GetDlgItem(IDOK)->m_hWnd, cx-85, 8, 75, 23, FALSE);
+ ::MoveWindow(GetDlgItem(IDCANCEL)->m_hWnd, cx-85, 39, 75, 23, FALSE);
+ ::MoveWindow(GetDlgItem(IDC_BUTTON1)->m_hWnd , cx-85, cy-80, 75, 23, FALSE);
+ ::MoveWindow(GetDlgItem(IDC_BUTTON2)->m_hWnd, cx-85, cy-52, 75, 23, FALSE);
Invalidate();
}
}
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-23 13:05:32 UTC (rev 300)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-23 21:51:50 UTC (rev 301)
@@ -196,8 +196,8 @@
default: m_PlugMixBox.SetCurSel(0); break;
}
- SetDlgItemText(IDC_EDIT5, "Created with:");
- SetDlgItemText(IDC_EDIT6, "Last saved with:");
+ SetDlgItemText(IDC_STATIC_CREATEDWITH, "Created with:");
+ SetDlgItemText(IDC_STATIC_SAVEDWITH, "Last saved with:");
SetDlgItemText(IDC_EDIT1, MptVersion::ToStr(m_pSndFile->m_dwCreatedWithVersion));
SetDlgItemText(IDC_EDIT2, MptVersion::ToStr(m_pSndFile->m_dwLastSavedWithVersion));
@@ -280,7 +280,7 @@
p->SetWindowText("1. Enable more IT compatible playback.\n"
"2. Use old random variation behavior for instruments.\n"
"3. Enable plugin volume command bug emulation.");
- else if(XM) p->SetWindowText("1. Enable more XM compatible playback.\n"
+ else if(XM) p->SetWindowText("1. Enable more FT2 compatible playback.\n"
"2. Unused\n"
"3. Plugin volume command bug");
}
@@ -530,11 +530,15 @@
BOOL CRemoveChannelsDlg::OnInitDialog()
//-------------------------------------
{
- CHAR label[128];
+ CHAR label[20 + MAX_CHANNELNAME];
CDialog::OnInitDialog();
- for (UINT n=0; n<m_nChannels; n++)
+ for (UINT n = 0; n < m_nChannels; n++)
{
- wsprintf(label,"Channel %d", n+1);
+ if(m_pSndFile->ChnSettings[n].szName[0] > 0x20)
+ wsprintf(label, "Channel %d: %s", (n + 1), m_pSndFile->ChnSettings[n].szName);
+ else
+ wsprintf(label, "Channel %d", n + 1);
+
m_RemChansList.SetItemData(m_RemChansList.AddString(label), n);
if (m_bChnMask[n]) m_RemChansList.SetSel(n);
}
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-23 13:05:32 UTC (rev 300)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-23 21:51:50 UTC (rev 301)
@@ -13,7 +13,7 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
+// Englisch (USA) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
@@ -194,7 +194,6 @@
MENUITEM "Modplug Central &Forums", ID_NETLINK_FORUMS
MENUITEM "OpenMPT Wiki", ID_NETLINK_OPENMPTWIKI
MENUITEM "OpenMPT Wiki (German)", ID_NETLINK_OPENMPTWIKI_GERMAN
-
MENUITEM "MPT-FR", ID_NETLINK_MPTFR
MENUITEM "&Kvr Audio (plugins)", ID_NETLINK_PLUGINS
MENUITEM "The Mod Archive", ID_NETLINK_MODARCHIVE
@@ -223,7 +222,6 @@
MENUITEM "&Insert Point", ID_ENVELOPE_INSERTPOINT
MENUITEM "&Remove Point", ID_ENVELOPE_REMOVEPOINT
MENUITEM "&Toggle Release Node", ID_ENVELOPE_TOGGLERELEASENODE
-
MENUITEM SEPARATOR
MENUITEM "&Copy envelope", ID_EDIT_COPY
MENUITEM "&Paste envelope", ID_EDIT_PASTE
@@ -239,22 +237,16 @@
//
IDD_ABOUTBOX DIALOGEX 0, 0, 267, 254
-STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE |
- WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "About ModPlug Tracker"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- CONTROL "",IDC_BITMAP1,"Static",SS_BLACKRECT | SS_NOTIFY |
- SS_CENTERIMAGE,5,3,256,81,WS_EX_CLIENTEDGE
+ CONTROL "",IDC_BITMAP1,"Static",SS_BLACKRECT | SS_NOTIFY | SS_CENTERIMAGE,5,3,256,81,WS_EX_CLIENTEDGE
CTEXT "",IDC_CREDITS,5,116,256,72,0,WS_EX_STATICEDGE
DEFPUSHBUTTON "OK",IDOK,229,235,32,14,WS_GROUP
- EDITTEXT IDC_EDIT1,5,194,221,55,ES_CENTER | ES_MULTILINE |
- ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT
- WS_BORDER | WS_VSCROLL,WS_EX_STATICEDGE
- EDITTEXT IDC_EDIT2,15,100,233,12,ES_CENTER | ES_AUTOHSCROLL |
- ES_READONLY | NOT WS_BORDER
- EDITTEXT IDC_EDIT3,26,87,212,12,ES_CENTER | ES_AUTOHSCROLL |
- ES_READONLY | NOT WS_BORDER
+ EDITTEXT IDC_EDIT1,5,194,221,55,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL,WS_EX_STATICEDGE
+ EDITTEXT IDC_EDIT2,15,100,233,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ EDITTEXT IDC_EDIT3,26,87,212,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
END
IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 272, 279
@@ -262,112 +254,82 @@
CAPTION "Player"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- GROUPBOX "Sound Quality",IDC_STATIC,5,165,256,97
- CONTROL "Automatic Gain Control",IDC_CHECK2,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,15,20,97,10
- CONTROL "Noise reduction",IDC_CHECK5,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,32,82,10
- LTEXT "Resampling:",IDC_STATIC,11,179,41,8
- COMBOBOX IDC_COMBO1,54,177,120,56,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Bass Expansion",IDC_CHECK1,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,53,81,10
+ GROUPBOX "Control",IDC_STATIC,6,6,257,150
+ CONTROL "Automatic Gain Control",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,97,10
+ CONTROL "Enable Graphic Equalizer",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,20,107,10
+ CONTROL "Noise reduction",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,82,10
+ CONTROL "Bass Expansion",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,53,81,10
+ CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,65,62,15
LTEXT "Low",IDC_STATIC,17,67,14,8
- CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,33,65,62,15
LTEXT "High",IDC_STATIC,95,67,16,8
- LTEXT "10Hz",IDC_STATIC,131,67,18,8
LTEXT "Range:",IDC_STATIC,169,53,24,8
- CONTROL "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,149,64,62,15
+ CONTROL "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,64,62,15
+ LTEXT "10Hz",IDC_STATIC,131,67,18,8
LTEXT "100Hz",IDC_STATIC,211,66,23,8
- CONTROL "Reverb",IDC_CHECK6,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,84,62,10
+ CONTROL "Reverb",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,84,62,10
+ CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,96,62,15
LTEXT "Low",IDC_STATIC,17,100,14,8
- CONTROL "Slider1",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,33,96,62,15
LTEXT "High",IDC_STATIC,95,100,16,8
CTEXT "Reverb Preset:",IDC_STATIC,149,90,62,8
- CONTROL "Pro-Logic Surround",IDC_CHECK4,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,116,99,10
+ COMBOBOX IDC_COMBO2,135,97,100,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Pro-Logic Surround",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,116,99,10
+ CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,33,129,62,15
LTEXT "Low",IDC_STATIC,17,132,14,8
- CONTROL "Slider1",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,33,129,62,15
LTEXT "High",IDC_STATIC,95,132,16,8
- LTEXT "5ms",IDC_STATIC,131,131,18,8
CTEXT "Front/Rear Delay:",IDC_STATIC,147,118,65,8
- CONTROL "Slider2",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,149,128,62,15
+ CONTROL "Slider2",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,149,128,62,15
+ LTEXT "5ms",IDC_STATIC,131,131,18,8
LTEXT "50ms",IDC_STATIC,211,131,23,8
- COMBOBOX IDC_COMBO2,135,97,100,100,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- GROUPBOX "Control",IDC_STATIC,5,5,257,150
- EDITTEXT IDC_WFIRCUTOFF,154,215,19,14,ES_AUTOHSCROLL | ES_NUMBER
- COMBOBOX IDC_WFIRTYPE,54,196,119,64,CBS_DROPDOWN | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "WFIR type:",IDC_STATIC,11,198,37,8
- LTEXT "WFIR cutoff factor:",IDC_STATIC,12,218,62,8
- LTEXT "%",IDC_STATIC,177,218,8,8
- LTEXT "Sample ramping (click avoidance):",IDC_STATIC,12,238,
- 109,8
- EDITTEXT IDC_RAMPING,149,235,24,14,ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "Samples",IDC_STATIC,176,238,29,8
- LTEXT "(can be overridden by instrument setting)",IDC_STATIC,
- 13,248,128,8
- CONTROL "Enable Graphic Equalizer",IDC_CHECK3,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,135,20,107,10
+ GROUPBOX "Sound Quality",IDC_STATIC,6,162,256,108
+ LTEXT "Resampling:",IDC_STATIC,18,182,42,8
+ COMBOBOX IDC_COMBO1,66,180,114,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "WFIR type:",IDC_STATIC,18,200,42,8
+ COMBOBOX IDC_WFIRTYPE,66,198,114,64,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+ LTEXT "WFIR cutoff factor:",IDC_STATIC,18,219,63,8
+ EDITTEXT IDC_WFIRCUTOFF,156,216,24,14,ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "%",IDC_STATIC,186,219,8,8
+ LTEXT "Sample ramping (click avoidance):",IDC_STATIC,18,238,109,8
+ LTEXT "(can be overridden by instrument setting)",IDC_STATIC,18,248,128,8
+ EDITTEXT IDC_RAMPING,156,235,24,14,ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "Samples",IDC_STATIC,182,238,29,8
+ PUSHBUTTON "Default Settings",IDC_BUTTON_DEFAULT_RESAMPLING,186,180,66,12
END
IDD_WAVECONVERT DIALOGEX 0, 0, 211, 166
-STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE |
- WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Wave Convert"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
DEFPUSHBUTTON "OK",IDOK,155,8,50,14
PUSHBUTTON "Cancel",IDCANCEL,155,28,50,14
GROUPBOX "",IDC_STATIC,4,4,146,157
- CONTROL "Limit file size to: (KBytes)",IDC_CHECK1,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,13,111,10
+ CONTROL "Limit file size to: (KBytes)",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,13,111,10
EDITTEXT IDC_EDIT1,21,24,50,12,ES_AUTOHSCROLL
- CONTROL "Limit song length to: (seconds)",IDC_CHECK2,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,10,40,111,10
+ CONTROL "Limit song length to: (seconds)",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,111,10
EDITTEXT IDC_EDIT2,21,51,50,12,ES_AUTOHSCROLL
LTEXT "Play:",IDC_STATIC,10,67,37,8
- CONTROL "Entire song",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,15,
- 78,104,10
- CONTROL "From position",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,
- 15,91,58,10
- CONTROL "Normalize Output",IDC_CHECK5,"Button",BS_AUTOCHECKBOX |
- NOT WS_VISIBLE | WS_TABSTOP,76,133,73,10
- COMBOBOX IDC_COMBO1,10,106,54,82,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- COMBOBOX IDC_COMBO2,70,106,73,75,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "High quality resampling",IDC_CHECK3,"Button",
- BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,76,122,104,
- 10
+ CONTROL "Entire song",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,15,78,104,10
+ CONTROL "From position",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,15,91,58,10
+ CONTROL "Normalize Output",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,76,133,73,10
+ COMBOBOX IDC_COMBO1,10,106,54,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_COMBO2,70,106,73,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "High quality resampling",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,76,122,104,10
EDITTEXT IDC_EDIT3,75,90,19,12,ES_AUTOHSCROLL | ES_NUMBER
CTEXT "to",IDC_STATIC,99,91,8,8
EDITTEXT IDC_EDIT4,109,90,19,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Channel mode",IDC_CHECK4,"Button",BS_AUTOCHECKBOX |
- BS_LEFTTEXT | WS_TABSTOP,82,66,60,12
- DEFPUSHBUTTON "Change Player Options",IDC_PLAYEROPTIONS,10,124,81,14,
- BS_CENTER
+ CONTROL "Channel mode",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP,82,66,60,12
+ DEFPUSHBUTTON "Change Player Options",IDC_PLAYEROPTIONS,10,124,81,14,BS_CENTER
CONTROL "Slow render (for Kontakt+DFD)",IDC_GIVEPLUGSIDLETIME,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE |
- WS_TABSTOP,10,142,133,17
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE | WS_TABSTOP,10,142,133,17
END
IDD_PROGRESS DIALOG 0, 0, 186, 55
-STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE |
- WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Saving Wave File"
FONT 8, "MS Sans Serif"
BEGIN
PUSHBUTTON "Stop",IDCANCEL,68,34,50,14
- CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,
- 4,19,178,12
+ CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,4,19,178,12
CTEXT "Writing file...",IDC_TEXT1,4,4,178,9
END
@@ -376,33 +338,24 @@
CAPTION "Keyboard"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_KEYCATEGORY,5,16,130,204,CBS_DROPDOWNLIST |
- WS_VSCROLL | WS_TABSTOP
- LISTBOX IDC_COMMAND_LIST,5,32,130,242,LBS_NOINTEGRALHEIGHT |
- WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_CHOICECOMBO,147,16,79,51,CBS_DROPDOWN | WS_VSCROLL |
- WS_TABSTOP
+ COMBOBOX IDC_KEYCATEGORY,5,16,130,204,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LISTBOX IDC_COMMAND_LIST,5,32,130,242,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_CHOICECOMBO,147,16,79,51,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_CUSTHOTKEY,163,31,98,13,ES_AUTOHSCROLL
- CONTROL "On Key Down",IDC_CHECKKEYDOWN,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,147,44,66,14
- CONTROL "On Key Hold",IDC_CHECKKEYHOLD,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,147,57,66,10
- CONTROL "On Key Up",IDC_CHECKKEYUP,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,147,68,66,8
+ CONTROL "On Key Down",IDC_CHECKKEYDOWN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,44,66,14
+ CONTROL "On Key Hold",IDC_CHECKKEYHOLD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,57,66,10
+ CONTROL "On Key Up",IDC_CHECKKEYUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,68,66,8
PUSHBUTTON "Restore",IDC_RESTORE,217,46,43,13
PUSHBUTTON "Delete",IDC_DELETE,217,64,43,13
- EDITTEXT IDC_KEYREPORT,141,94,125,70,ES_MULTILINE |
- ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+ EDITTEXT IDC_KEYREPORT,141,94,125,70,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
PUSHBUTTON "Y",IDC_NOTESREPEAT,235,176,12,9
PUSHBUTTON "N",IDC_NONOTESREPEAT,251,176,12,9
- EDITTEXT IDC_CHORDDETECTWAITTIME,235,189,28,12,ES_AUTOHSCROLL |
- ES_NUMBER,WS_EX_RIGHT
+ EDITTEXT IDC_CHORDDETECTWAITTIME,235,189,28,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
PUSHBUTTON "it",IDC_EFFECTLETTERSIT,103,184,12,9,NOT WS_VISIBLE
PUSHBUTTON "xm",IDC_EFFECTLETTERSXM,119,184,12,9,NOT WS_VISIBLE
PUSHBUTTON "Load Keys...",IDC_LOAD,145,221,54,13
PUSHBUTTON "Save Keys As...",IDC_SAVE,205,221,54,13
- CONTROL "Debug Save",IDC_DEBUGSAVE,"Button",BS_AUTOCHECKBOX |
- NOT WS_VISIBLE | WS_TABSTOP,59,199,56,10
+ CONTROL "Debug Save",IDC_DEBUGSAVE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,59,199,56,10
EDITTEXT IDC_KEYMAPFILE,145,249,114,13,ES_AUTOHSCROLL
LTEXT "Select category:",IDC_STATIC,7,5,74,11
PUSHBUTTON "Set",IDC_SET,225,45,43,13,NOT WS_VISIBLE
@@ -411,12 +364,9 @@
GROUPBOX "Misc",IDC_STATIC,139,167,126,40
GROUPBOX "Multi Config Handling",IDC_STATIC,139,209,126,66
LTEXT "Repeat notes on hold?",IDC_STATIC,143,176,74,11
- LTEXT "Effect letters like:",IDC_STATIC,11,185,73,11,NOT
- WS_VISIBLE
+ LTEXT "Effect letters like:",IDC_STATIC,11,185,73,11,NOT WS_VISIBLE
LTEXT "Chord detect interval (ms):",IDC_STATIC,143,190,88,11
- CONTROL "Save to this file on OK/Apply?",IDC_AUTOSAVE,"Button",
- BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP,153,262,106,
- 10
+ CONTROL "Save to this file on OK/Apply?",IDC_AUTOSAVE,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP,153,262,106,10
LTEXT "Config to load on startup:",IDC_STATIC,145,239,80,8
LTEXT "Log:",IDC_STATIC,141,84,19,10
PUSHBUTTON "Clear Log",IDC_CLEARLOG,227,85,37,9
@@ -427,20 +377,13 @@
CAPTION "Colors"
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_COMBO1,15,25,134,109,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Primary highlight",IDC_CHECK1,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,20,91,74,10
- EDITTEXT IDC_PRIMARYHILITE,101,90,21,12,ES_AUTOHSCROLL |
- ES_NUMBER
- CONTROL "Secondary highlight",IDC_CHECK4,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,20,103,80,10
- EDITTEXT IDC_SECONDARYHILITE,101,102,21,12,ES_AUTOHSCROLL |
- ES_NUMBER
- CONTROL "Enable effect highlighting",IDC_CHECK2,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,15,60,114,10
- CONTROL "Use small font",IDC_CHECK3,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,45,102,10
+ COMBOBOX IDC_COMBO1,15,25,134,109,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Primary highlight",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,91,74,10
+ EDITTEXT IDC_PRIMARYHILITE,101,90,21,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Secondary highlight",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,103,80,10
+ EDITTEXT IDC_SECONDARYHILITE,101,102,21,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Enable effect highlighting",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,60,114,10
+ CONTROL "Use small font",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,102,10
PUSHBUTTON "MPT",IDC_BUTTON5,159,26,22,12
PUSHBUTTON "FT2",IDC_BUTTON6,185,26,22,12
PUSHBUTTON "IT",IDC_BUTTON7,210,25,22,12
@@ -456,8 +399,7 @@
LTEXT "rows",IDC_STATIC,125,92,16,8
LTEXT "Presets:",IDC_STATIC,159,15,28,8
LTEXT "rows",IDC_STATIC,125,104,16,8
- CONTROL "",IDC_BUTTON4,"Button",BS_OWNERDRAW | BS_FLAT,65,130,
- 114,43
+ CONTROL "",IDC_BUTTON4,"Button",BS_OWNERDRAW | BS_FLAT,65,130,114,43
CONTROL "Set highlights to songs' time signatures",IDC_CHECK5,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,75,136,10
END
@@ -469,73 +411,50 @@
BEGIN
GROUPBOX "MIDI Recording",IDC_STATIC,5,5,260,200
LTEXT "MIDI Input Device:",IDC_STATIC,15,20,67,8
- COMBOBOX IDC_COMBO1,15,30,120,74,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "MIDI Output Device:",IDC_STATIC,140,20,65,8,NOT
- WS_VISIBLE
- COMBOBOX IDC_COMBO2,140,30,120,73,CBS_DROPDOWNLIST | NOT
- WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
- CONTROL "Apply Octave Transpose on external MIDI keyboard",
- IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,
- 185,9
- CONTROL "Amplify MIDI velocity",IDC_CHECK3,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,15,90,100,9
- CONTROL "Record note velocity",IDC_CHECK1,"Button",
- BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,15,75,100,9
- CONTROL "Record Note Off (Instruments Only)",IDC_CHECK2,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,15,120,130,9
+ COMBOBOX IDC_COMBO1,15,30,120,74,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "MIDI Output Device:",IDC_STATIC,140,20,65,8,NOT WS_VISIBLE
+ COMBOBOX IDC_COMBO2,140,30,120,73,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Apply Octave Transpose on external MIDI keyboard",IDC_CHECK4,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,185,9
+ CONTROL "Record note velocity",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_TOP | WS_TABSTOP,15,75,100,9
+ CONTROL "Amplify MIDI velocity",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,90,100,9
+ CONTROL "Combine MIDI volume to note velocity",IDC_MIDIVOL_TO_NOTEVOL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,105,139,9
+ CONTROL "Record Note Off (Instruments Only)",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,120,130,9
+ CONTROL "Record MIDI controller changes as MIDI macro changes (in pattern)",IDC_MIDI_MACRO_CONTROL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,140,226,9
+ CONTROL "Pass MIDI to active instrument plugin (experimental)",IDC_MIDI_TO_PLUGIN,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,155,180,9
+ CONTROL "Respond to play/continue/stop song messages (untested)",IDC_MIDIPLAYCONTROL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,170,200,9
+ CONTROL "Continue song as soon as MIDI notes are being received",IDC_MIDIPLAYPATTERNONMIDIIN,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,185,195,10
GROUPBOX "MIDI file import",IDC_STATIC,5,210,260,45
LTEXT "Speed:",IDC_STATIC,15,230,24,8
EDITTEXT IDC_EDIT1,45,230,39,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,79,235,
- 11,14
+ CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,79,235,11,14
LTEXT "Pattern size:",IDC_STATIC,115,230,40,8
EDITTEXT IDC_EDIT2,165,230,39,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,196,232,
- 11,14
- CONTROL "Pass MIDI to active instrument plugin (experimental)",
- IDC_MIDI_TO_PLUGIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
- 15,155,180,9
- CONTROL "Combine MIDI volume to note velocity",
- IDC_MIDIVOL_TO_NOTEVOL,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,105,139,9
- CONTROL "Respond to play/continue/stop song messages (untested)",
- IDC_MIDIPLAYCONTROL,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,170,200,9
- CONTROL "Record MIDI controller changes as MIDI macro changes (in pattern)",
- IDC_MIDI_MACRO_CONTROL,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,140,226,9
- CONTROL "Continue song as soon as MIDI notes are being received",
- IDC_MIDIPLAYPATTERNONMIDIIN,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,15,185,195,10
+ CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,196,232,11,14
END
-IDD_LOADRAWSAMPLE DIALOG 0, 0, 168, 84
+IDD_LOADRAWSAMPLE DIALOGEX 0, 0, 178, 89
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Unknown file type"
-FONT 8, "MS Sans Serif"
+FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- DEFPUSHBUTTON "OK",IDOK,59,65,50,14
- PUSHBUTTON "Cancel",IDCANCEL,114,65,50,14
- GROUPBOX "",IDC_STATIC,4,26,48,34,WS_GROUP
- LTEXT "Load it as a raw sample\nof the following format:",
- IDC_STATIC,10,10,81,17
- CONTROL "8-bit",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,10,34,29,
- 10
- CONTROL "16-bit",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,10,46,33,
- 10
- GROUPBOX "",IDC_STATIC,55,26,54,34,WS_GROUP
- CONTROL "Unsigned",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,59,34,
- 46,10
- CONTROL "Signed",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,59,46,38,
- 10
- GROUPBOX "",IDC_STATIC,113,26,51,34,WS_GROUP
- CONTROL "Mono",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,119,34,34,
- 10
- CONTROL "Stereo",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON,119,46,
- 37,10
+ DEFPUSHBUTTON "OK",IDOK,66,66,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,120,66,50,14
+ GROUPBOX "",IDC_STATIC,6,24,48,34,WS_GROUP
+ LTEXT "Load it as a raw sample of the following format:",IDC_STATIC,6,6,156,12
+ CONTROL "8-bit",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,12,32,29,10
+ CONTROL "16-bit",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,12,44,33,10
+ GROUPBOX "",IDC_STATIC,60,24,54,34,WS_GROUP
+ CONTROL "Unsigned",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,64,32,46,10
+ CONTROL "Signed",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,64,44,38,10
+ GROUPBOX "",IDC_STATIC,120,24,51,34,WS_GROUP
+ CONTROL "Mono",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,126,32,34,10
+ CONTROL "Stereo",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON,126,44,37,10
END
IDD_CONTROL_GLOBALS DIALOGEX 0, 0, 561, 94
@@ -543,84 +462,52 @@
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
EDITTEXT IDC_EDIT_SONGTITLE,2,3,167,12,ES_AUTOHSCROLL
- CTEXT "Type EXT, ## channels",IDC_EDIT_MODTYPE,173,3,149,12,
- SS_CENTERIMAGE,WS_EX_STATICEDGE
+ CTEXT "Type EXT, ## channels",IDC_EDIT_MODTYPE,173,3,149,12,SS_CENTERIMAGE,WS_EX_STATICEDGE
GROUPBOX "",IDC_STATIC,1,14,83,78
LTEXT "Initial tempo:",IDC_STATIC,4,20,44,8
- CONTROL "",IDC_SLIDER_SONGTEMPO,"msctls_trackbar32",TBS_VERT |
- TBS_BOTH | TBS_NOTICKS,11,28,15,50
+ CONTROL "",IDC_SLIDER_SONGTEMPO,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS,11,28,15,50
EDITTEXT IDC_EDIT_TEMPO,5,78,29,12,ES_NUMBER
- CONTROL "",IDC_SPIN_TEMPO,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,27,76,
- 11,14
+ CONTROL "",IDC_SPIN_TEMPO,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,27,76,11,14
LTEXT "Ticks/row:",IDC_STATIC,44,40,35,8
EDITTEXT IDC_EDIT_SPEED,44,51,30,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN_SPEED,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,67,50,
- 11,14
+ CONTROL "Spin1",IDC_SPIN_SPEED,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,67,50,11,14
LTEXT "Restart:",IDC_STATIC,44,70,26,8
EDITTEXT IDC_EDIT_RESTARTPOS,44,78,30,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN_RESTARTPOS,"msctls_updown32",
- UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
- UDS_NOTHOUSANDS,65,77,11,14
+ CONTROL "Spin1",IDC_SPIN_RESTARTPOS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,65,77,11,14
GROUPBOX "",IDC_STATIC,83,14,175,78
LTEXT "Initial global vol:",IDC_STATIC,90,20,52,8
- CONTROL "",IDC_SLIDER_GLOBALVOL,"msctls_trackbar32",TBS_VERT |
- TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,105,28,15,50
+ CONTROL "",IDC_SLIDER_GLOBALVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,105,28,15,50
EDITTEXT IDC_EDIT_GLOBALVOL,95,78,36,12,ES_NUMBER
- CONTROL "",IDC_SPIN_GLOBALVOL,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,120,76,
- 11,14
+ CONTROL "",IDC_SPIN_GLOBALVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,120,76,11,14
LTEXT "VSTi vol:",IDC_STATIC,159,20,33,8
- CONTROL "",IDC_SLIDER_VSTIVOL,"msctls_trackbar32",TBS_VERT |
- TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,164,28,15,50
+ CONTROL "",IDC_SLIDER_VSTIVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,164,28,15,50
EDITTEXT IDC_EDIT_VSTIVOL,156,78,36,12,ES_NUMBER
- CONTROL "",IDC_SPIN_VSTIVOL,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,180,76,
- 11,14
+ CONTROL "",IDC_SPIN_VSTIVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,180,76,11,14
LTEXT "Sample vol:",IDC_STATIC,212,20,38,8
- CONTROL "Slider1",IDC_SLIDER_SAMPLEPREAMP,"msctls_trackbar32",
- TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,221,28,
- 15,50
+ CONTROL "Slider1",IDC_SLIDER_SAMPLEPREAMP,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,221,28,15,50
EDITTEXT IDC_EDIT_SAMPLEPA,212,78,36,12,ES_NUMBER
- CONTROL "",IDC_SPIN_SAMPLEPA,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,238,75,
- 11,14
- PUSHBUTTON "Song Properties...",IDC_BUTTON_MODTYPE,262,18,60,12,NOT
- WS_TABSTOP
- CONTROL "Loop Song",IDC_CHECK_LOOPSONG,"Button",BS_AUTOCHECKBOX |
- BS_FLAT | WS_TABSTOP,263,48,50,10
- PUSHBUTTON "Player Settings...",IDC_BUTTON_PLAYERPROPS,262,59,60,12,
- NOT WS_TABSTOP
+ CONTROL "",IDC_SPIN_SAMPLEPA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,238,75,11,14
+ PUSHBUTTON "Song Properties...",IDC_BUTTON_MODTYPE,262,18,60,12,NOT WS_TABSTOP
+ CONTROL "Loop Song",IDC_CHECK_LOOPSONG,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,263,48,50,10
+ PUSHBUTTON "Player Settings...",IDC_BUTTON_PLAYERPROPS,262,59,60,12,NOT WS_TABSTOP
CTEXT "Not saved with song!",IDC_STATIC,262,73,60,17
- CONTROL "",IDC_VUMETER_LEFT,"Static",SS_BLACKRECT | SS_SUNKEN,
- 325,1,15,91
- CONTROL "",IDC_VUMETER_RIGHT,"Static",SS_BLACKRECT | SS_SUNKEN,
- 343,1,15,91
- GROUPBOX "Player Settings (not saved in song!)",IDC_STATIC,414,31,
- 147,63,NOT WS_VISIBLE
- CONTROL "Bass Expansion",IDC_CHECK_BASS,"Button",BS_AUTOCHECKBOX |
- BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,43,65,10
- CONTROL "Reverb",IDC_CHECK_REVERB,"Button",BS_AUTOCHECKBOX |
- BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,55,46,10
- CONTROL "Surround",IDC_CHECK_SURROUND,"Button",BS_AUTOCHECKBOX |
- BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,67,48,10
- COMBOBOX IDC_COMBO_RESAMPLING,490,76,67,74,CBS_DROPDOWNLIST | NOT
- WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_VUMETER_LEFT,"Static",SS_BLACKRECT | SS_SUNKEN,325,1,15,91
+ CONTROL "",IDC_VUMETER_RIGHT,"Static",SS_BLACKRECT | SS_SUNKEN,343,1,15,91
+ GROUPBOX "Player Settings (not saved in song!)",IDC_STATIC,414,31,147,63,NOT WS_VISIBLE
+ CONTROL "Bass Expansion",IDC_CHECK_BASS,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,43,65,10
+ CONTROL "Reverb",IDC_CHECK_REVERB,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,55,46,10
+ CONTROL "Surround",IDC_CHECK_SURROUND,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,67,48,10
+ COMBOBOX IDC_COMBO_RESAMPLING,490,76,67,74,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_TABSTOP
LTEXT "Resampling:",IDC_STATIC,491,67,43,8,NOT WS_VISIBLE
- CONTROL "Graphic EQ",IDC_CHECK_EQ,"Button",BS_AUTOCHECKBOX |
- BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,79,58,10
- CONTROL "AGC",IDC_CHECK_AGC,"Button",BS_AUTOCHECKBOX | BS_FLAT |
- NOT WS_VISIBLE | WS_TABSTOP,491,43,31,10
+ CONTROL "Graphic EQ",IDC_CHECK_EQ,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,420,79,58,10
+ CONTROL "AGC",IDC_CHECK_AGC,"Button",BS_AUTOCHECKBOX | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,491,43,31,10
END
IDD_CONTROL_COMMENTS DIALOGEX 0, 0, 435, 119
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- EDITTEXT IDC_EDIT_COMMENTS,4,11,426,104,ES_MULTILINE |
- ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL | NOT
- WS_TABSTOP,WS_EX_STATICEDGE
+ EDITTEXT IDC_EDIT_COMMENTS,4,11,426,104,ES_MULTILINE | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,WS_EX_STATICEDGE
LTEXT "Song Message:",IDC_STATIC,4,2,76,8
END
@@ -628,150 +515,92 @@
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- CONTROL "Follow Song",IDC_PATTERN_FOLLOWSONG,"Button",
- BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,432,34,55,10
- COMBOBOX IDC_COMBO_INSTRUMENT,22,74,95,137,CBS_DROPDOWNLIST |
- WS_VSCROLL
- CTEXT "Row spacing",IDC_STATIC,172,32,54,12,SS_CENTERIMAGE,
- WS_EX_STATICEDGE
- EDITTEXT IDC_EDIT_SPACING,225,32,40,12,ES_AUTOHSCROLL | ES_NUMBER |
- NOT WS_TABSTOP
- CONTROL "Spin1",IDC_SPIN_SPACING,"msctls_updown32",UDS_WRAP |
- UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
- UDS_NOTHOUSANDS,256,33,9,11
- PUSHBUTTON "<<",IDC_BUTTON2,2,99,14,15,NOT WS_TABSTOP,
- WS_EX_STATICEDGE
- PUSHBUTTON ">>",IDC_BUTTON1,14,99,14,15,NOT WS_TABSTOP,
- WS_EX_STATICEDGE
- CTEXT "Pattern name",IDC_STATIC,9,32,52,12,SS_CENTERIMAGE,
- WS_EX_STATICEDGE
+ CONTROL "Follow Song",IDC_PATTERN_FOLLOWSONG,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,432,34,55,10
+ COMBOBOX IDC_COMBO_INSTRUMENT,22,74,95,137,CBS_DROPDOWNLIST | WS_VSCROLL
+ CTEXT "Row spacing",IDC_STATIC,172,32,54,12,SS_CENTERIMAGE,WS_EX_STATICEDGE
+ EDITTEXT IDC_EDIT_SPACING,225,32,40,12,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_TABSTOP
+ CONTROL "Spin1",IDC_SPIN_SPACING,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,256,33,9,11
+ PUSHBUTTON "<<",IDC_BUTTON2,2,99,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE
+ PUSHBUTTON ">>",IDC_BUTTON1,14,99,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE
+ CTEXT "Pattern name",IDC_STATIC,9,32,52,12,SS_CENTERIMAGE,WS_EX_STATICEDGE
EDITTEXT IDC_EDIT_PATTERNNAME,60,32,107,12,ES_AUTOHSCROLL
- CONTROL "Toolbar1",IDC_TOOLBAR1,"ToolbarWindow32",WS_GROUP |
- 0x4d,2,4,372,18
- CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",0x0,9,74,9,
- 12
- COMBOBOX IDC_COMBO_SPLITINSTRUMENT,209,74,95,125,CBS_DROPDOWNLIST |
- WS_VSCROLL
- COMBOBOX IDC_COMBO_SPLITNOTE,173,74,32,137,CBS_DROPDOWNLIST |
- WS_VSCROLL
+ CONTROL "Toolbar1",IDC_TOOLBAR1,"ToolbarWindow32",WS_GROUP | 0x4d,2,4,372,18
+ CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",0x0,9,74,9,12
+ COMBOBOX IDC_COMBO_SPLITINSTRUMENT,209,74,95,125,CBS_DROPDOWNLIST | WS_VSCROLL
+ COMBOBOX IDC_COMBO_SPLITNOTE,173,74,32,137,CBS_DROPDOWNLIST | WS_VSCROLL
LTEXT "Note",IDC_STATIC,173,65,35,8
LTEXT "Instrument",IDC_STATIC,209,65,58,8
- CONTROL "Transpose",IDC_PATTERN_OCTAVELINK,"Button",
- BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,438,76,49,10
- COMBOBOX IDC_COMBO_OCTAVEMODIFIER,382,74,52,137,CBS_DROPDOWNLIST |
- WS_VSCROLL
- COMBOBOX IDC_COMBO_SPLITVOLUME,342,74,36,146,CBS_DROPDOWNLIST |
- WS_VSCROLL
+ CONTROL "Transpose",IDC_PATTERN_OCTAVELINK,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,438,76,49,10
+ COMBOBOX IDC_COMBO_OCTAVEMODIFIER,382,74,52,137,CBS_DROPDOWNLIST | WS_VSCROLL
+ COMBOBOX IDC_COMBO_SPLITVOLUME,342,74,36,146,CBS_DROPDOWNLIST | WS_VSCROLL
LTEXT "Volume",IDC_STATIC,342,65,25,8
- PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI,122,74,33,13,0,
- WS_EX_STATICEDGE
- PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI2,308,74,30,13,0,
- WS_EX_STATICEDGE
+ PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI,122,74,33,13,0,WS_EX_STATICEDGE
+ PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI2,308,74,30,13,0,WS_EX_STATICEDGE
GROUPBOX "Main instrument",IDC_STATIC,2,53,160,40
GROUPBOX "Keyboard Split",IDC_STATIC,167,53,328,40
LTEXT "Octave shift",IDC_STATIC,382,65,52,8
GROUPBOX "",IDC_STATIC,2,22,493,27
- CONTROL "Loop Pattern",IDC_PATTERN_LOOP,"Button",BS_AUTOCHECKBOX |
- BS_LEFTTEXT | BS_FLAT | WS_TABSTOP,355,34,57,10
- EDITTEXT IDC_EDIT_ORDERLIST_MARGINS,2,113,28,12,ES_AUTOHSCROLL |
- ES_READONLY
- CONTROL "",IDC_SPIN_ORDERLIST_MARGINS,"msctls_updown32",
- UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
- UDS_NOTHOUSANDS,15,118,11,11
+ CONTROL "Loop Pattern",IDC_PATTERN_LOOP,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT | WS_TABSTOP,355,34,57,10
+ EDITTEXT IDC_EDIT_ORDERLIST_MARGINS,2,113,28,12,ES_AUTOHSCROLL | ES_READONLY
+ CONTROL "",IDC_SPIN_ORDERLIST_MARGINS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,15,118,11,11
END
IDD_CONTROL_SAMPLES DIALOGEX 0, 0, 544, 106
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
- CONTROL "Toolbar1",IDC_TOOLBAR1,"ToolbarWindow32",WS_GROUP |
- 0x4d,4,4,55,17
+ CONTROL "Toolbar1",IDC_TOOLBAR1,"ToolbarWindow32",WS_GROUP | 0x4d,4,4,55,17
EDITTEXT IDC_EDIT_SAMPLE,90,6,35,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin6",IDC_SPIN_SAMPLE,"msctls_updown32",UDS_WRAP |
- UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
- UDS_NOTHOUSANDS,118,4,11,14
+ CONTROL "Spin6",IDC_SPIN_SAMPLE,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,118,4,11,14
COMBOBOX IDC_COMBO_ZOOM,131,6,41,89,CBS_DROPDOWNLIST | WS_VSCROLL
EDITTEXT IDC_EDIT7,57,30,36,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN7,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,29,
- 11,11
+ CONTROL "Spin1",IDC_SPIN7,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,29,11,11
EDITTEXT IDC_EDIT8,57,43,36,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN8,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,42,
- 11,11
- CONTROL "Set Pan",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_FLAT |
- WS_TABSTOP,9,58,42,10
+ CONTROL "Spin1",IDC_SPIN8,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,42,11,11
+ CONTROL "Set Pan",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,58,42,10
EDITTEXT IDC_EDIT9,57,56,36,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN9,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,56,
- 11,11
+ CONTROL "Spin1",IDC_SPIN9,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,56,11,11
EDITTEXT IDC_EDIT5,48,70,45,12,ES_AUTOHSCROLL
- CONTROL "Spin1",IDC_SPIN5,"msctls_updown32",UDS_ALIGNRIGHT |
- UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,69,11,11
- COMBOBOX IDC_COMBO_BASENOTE,48,83,45,89,CBS_DROPDOWNLIST |
- WS_VSCROLL
+ CONTROL "Spin1",IDC_SPIN5,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,69,11,11
+ COMBOBOX IDC_COMBO_BASENOTE,48,83,45,89,CBS_DROPDOWNLIST | WS_VSCROLL
EDITTEXT IDC_SAMPLE_NAME,129,26,135,12,ES_AUTOHSCROLL
EDITTEXT IDC_SAMPLE_FILENAME,292,26,72,13,ES_AUTOHSCROLL
COMBOBOX IDC_COMBO1,130,54,45,46,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_EDIT1,130,70,45,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_ALIGNRIGHT |
- UDS_AUTOBUDDY | UDS_NOTHOUSANDS,169,69,11,11
+ CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,169,69,11,11
EDITTEXT IDC_EDIT2,130,83,45,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_ALIGNRIGHT |
- UDS_AUTOBUDDY | UDS_NOTHOUSANDS,169,84,11,11
+ CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,169,84,11,11
COMBOBOX IDC_COMBO2,212,54,45,46,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_EDIT3,212,70,45,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN3,"msctls_updown32",UDS_ALIGNRIGHT |
- UDS_AUTOBUDDY | UDS_NOTHOUSANDS,253,70,11,11
+ CONTROL "Spin1",IDC_SPIN3,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,253,70,11,11
EDITTEXT IDC_EDIT4,212,83,45,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN4,"msctls_updown32",UDS_ALIGNRIGHT |
- UDS_AUTOBUDDY | UDS_NOTHOUSANDS,253,83,11,11
+ CONTROL "Spin1",IDC_SPIN4,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,253,83,11,11
COMBOBOX IDC_COMBO3,275,59,47,70,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_EDIT15,327,59,32,12,ES_NUMBER
- CONTROL "Depth",IDC_SPIN12,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,59,
- 11,11
+ CONTROL "Depth",IDC_SPIN12,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,59,11,11
EDITTEXT IDC_EDIT14,275,83,38,12,ES_NUMBER
- CONTROL "Sweep",IDC_SPIN11,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,305,84,
- 11,11
+ CONTROL "Sweep",IDC_SPIN11,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,305,84,11,11
EDITTEXT IDC_EDIT16,321,83,38,12,ES_NUMBER
- CONTROL "Rate",IDC_SPIN13,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,83,
- 11,11
- CONTROL "Time stretching",IDC_CHECK3,"Button",BS_AUTOCHECKBOX |
- BS_LEFTTEXT | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,446,
- 36,68,11
- CONTROL "Preview mode",IDC_CHECK2,"Button",BS_AUTOCHECKBOX |
- BS_LEFTTEXT | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,373,
- 83,65,11
- PUSHBUTTON "Restore",IDC_BUTTON4,482,82,33,13,NOT WS_VISIBLE,
- WS_EX_CLIENTEDGE
- COMBOBOX IDC_COMBO4,400,35,39,61,CBS_DROPDOWNLIST | NOT
- WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
- COMBOBOX IDC_COMBO5,400,51,39,86,CBS_DROPDOWNLIST | NOT
- WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
- COMBOBOX IDC_COMBO6,400,67,39,61,CBS_DROPDOWNLIST | NOT
- WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+ CONTROL "Rate",IDC_SPIN13,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,83,11,11
+ CONTROL "Time stretching",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,446,36,68,11
+ CONTROL "Preview mode",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,373,83,65,11
+ PUSHBUTTON "Restore",IDC_BUTTON4,482,82,33,13,NOT WS_VISIBLE,WS_EX_CLIENTEDGE
+ COMBOBOX IDC_COMBO4,400,35,39,61,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+ COMBOBOX IDC_COMBO5,400,51,39,86,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
+ COMBOBOX IDC_COMBO6,400,67,39,61,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP
EDITTEXT IDC_EDIT_STRETCHPARAMS,374,51,64,12,ES_AUTOHSCROLL
- EDITTEXT IDC_EDIT6,446,51,45,12,ES_RIGHT | ES_AUTOHSCROLL | NOT
- WS_VISIBLE,WS_EX_RIGHT
- PUSHBUTTON "...",IDC_BUTTON2,502,51,13,13,NOT WS_VISIBLE,
- WS_EX_CLIENTEDGE
+ EDITTEXT IDC_EDIT6,446,51,45,12,ES_RIGHT | ES_AUTOHSCROLL | NOT WS_VISIBLE,WS_EX_RIGHT
+ PUSHBUTTON "...",IDC_BUTTON2,502,51,13,13,NOT WS_VISIBLE,WS_EX_CLIENTEDGE
RTEXT "Sample",IDC_STATIC,62,8,24,8
- CTEXT "Length: 000000 (16-bit)",IDC_TEXT5,175,6,90,13,
- SS_CENTERIMAGE,WS_EX_STATICEDGE
- CONTROL "Toolbar2",IDC_TOOLBAR2,"ToolbarWindow32",WS_GROUP |
- 0x4d,268,4,186,17
+ CTEXT "Length: 000000 (16-bit)",IDC_TEXT5,175,6,90,13,SS_CENTERIMAGE,WS_EX_STATICEDGE
+ CONTROL "Toolbar2",IDC_TOOLBAR2,"ToolbarWindow32",WS_GROUP | 0x4d,268,4,186,17
GROUPBOX "",IDC_STATIC,3,22,94,78
LTEXT "Default Volume",IDC_STATIC,8,32,49,8
LTEXT "Global Volume",IDC_STATIC,8,45,46,8
LTEXT "FineTune",IDC_TEXT7,8,73,37,8
LTEXT "Transpose",IDC_TEXT6,8,86,38,8
- CTEXT "Name",IDC_STATIC,102,26,28,12,SS_CENTERIMAGE | NOT
- WS_GROUP,WS_EX_STATICEDGE
- CTEXT "File",IDC_STATIC,269,26,23,13,SS_CENTERIMAGE | NOT
- WS_GROUP | WS_TABSTOP,WS_EX_STATICEDGE
+ CTEXT "Name",IDC_STATIC,102,26,28,12,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_STATICEDGE
+ CTEXT "File",IDC_STATIC,269,26,23,13,SS_CENTERIMAGE | NOT WS_GROUP | WS_TABSTOP,WS_EX_STATICEDGE
GROUPBOX "Loop",IDC_STATIC,102,43,79,57
LTEXT "Type",IDC_STATIC,107,57,17,8
LTEXT "Start",IDC_STATIC,107,73,16,8
@@ -785,16 +614,13 @@
LTEXT "Sweep",IDC_STATIC,275,74,23,8
LTEXT "Depth",IDC_STATIC,327,50,20,8
LTEXT "Rate",IDC_STATIC,321,74,16,8
- GROUPBOX "Pitch shifting / Time stretching",
- IDC_GROUPBOX_PITCH_TIME,370,22,150,78,NOT WS_VISIBLE
- PUSHBUTTON "Process",IDC_BUTTON1,448,80,67,16,NOT WS_VISIBLE,
- WS_EX_CLIENTEDGE
+ GROUPBOX "Pitch shifting / Time stretching",IDC_GROUPBOX_PITCH_TIME,370,22,150,78,NOT WS_VISIBLE
+ PUSHBUTTON "Process",IDC_BUTTON1,448,80,67,16,NOT WS_VISIBLE,WS_EX_CLIENTEDGE
LTEXT "Pitch",IDC_TEXT_PITCH,373,36,23,10,NOT WS_VISIBLE
LTEXT "Quality",IDC_TEXT_QUALITY,374,54,23,10,NOT WS_VISIBLE
LTEXT "FFT",IDC_TEXT_FFT,374,68,23,10,NOT WS_VISIBLE
CTEXT "Static",IDC_TEXT_PREVIEW,448,69,67,10,NOT WS_VISIBLE
- PUSHBUTTON "Keep",IDC_BUTTON3,448,82,32,13,NOT WS_VISIBLE,
- WS_EX_CLIENTEDGE
+ PUSHBUTTON "Keep",IDC_BUTTON3,448,82,32,13,NOT WS_VISIBLE,WS_EX_CLIENTEDGE
LTEXT "%",IDC_TEXT_PERCENT,494,53,8,10,NOT WS_VISIBLE
LTEXT "Parameters",IDC_TEXT_STRETCHPARAMS,385,38,39,8
END
@@ -803,219 +629,142 @@
STYLE DS_SETFONT | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_EDIT_INSTRUMENT,87,7,29,12,ES_AUTOHSCROLL |
- ES_NUMBER
- CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",UDS_WRAP |
- UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
- UDS_NOTHOUSANDS | WS_TABSTOP,111,8,11,11
+ EDITTEXT IDC_EDIT_INSTRUMENT,87,7,29,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS | WS_TABSTOP,111,8,11,11
EDITTEXT IDC_SAMPLE_NAME,131,6,151,12,ES_AUTOHSCROLL
EDITTEXT IDC_SAMPLE_FILENAME,324,6,105,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT8,87,36,34,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN8,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,40,
- 8,10
+ CONTROL "Spin1",IDC_SPIN8,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,40,8,10
EDITTEXT IDC_EDIT7,87,53,34,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN7,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,57,
- 8,10
- CONTROL "Pan",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_FLAT |
- WS_TABSTOP,55,71,29,10
+ CONTROL "Spin1",IDC_SPIN7,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,57,8,10
+ CONTROL "Pan",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,55,71,29,10
EDITTEXT IDC_EDIT9,87,70,34,12,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN9,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,74,
- 8,11
+ CONTROL "Spin1",IDC_SPIN9,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,112,74,8,11
EDITTEXT IDC_EDIT15,33,99,27,13,ES_NUMBER
- CONTROL "Spin1",IDC_SPIN12,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,61,103,
- 7,11
- COMBOBOX IDC_COMBO4,95,99,27,91,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS,47,135,36,10
+ CONTROL "Spin1",IDC_SPIN12,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,61,103,7,11
+ COMBOBOX IDC_COMBO4,95,99,27,91,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "",IDC_SLIDER5,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS,47,135,36,10
EDITTEXT IDC_EDIT2,85,133,36,12,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT |
- UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS |
- UDS_NOTHOUSANDS,116,133,8,12
+ CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,116,133,8,12
COMBOBOX IDC_COMBO9,50,151,71,81,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "Reso",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | BS_FLAT |
- WS_TABSTOP,136,37,33,10
- CONTROL "Slider2",IDC_SLIDER4,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,168,37,64,10
- CONTROL "Cutoff",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | BS_FLAT |
- WS_TABSTOP,136,52,35,10
- CONTROL "Slider2",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,168,53,64,10
- COMBOBOX IDC_FILTERMODE,163,70,69,42,CBS_DROPDOWNLIST | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
- CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,172,101,60,10
- CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,172,118,60,10
- CONTROL "",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,172,135,60,10
- CONTROL "",IDC_SLIDER7,"msctls_trackbar32",TBS_BOTH |
- TBS_NOTICKS | WS_TABSTOP,172,152,60,10
+ CONTROL "Reso",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,136,37,33,10
+ CONTROL "Slider2",IDC_SLIDER4,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,168,37,64,10
+ CONTROL "Cutoff",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,136,52,35,10
+ CONTROL "Slider2",IDC_SLIDER3,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,168,53,64,10
+ COMBOBOX IDC_FILTERMODE,163,70,69,42,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,172,101,60,10
+ CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,172,118,60,10
+ CONTROL "",IDC_SLIDER6,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,172,135,60,10
+ CONTROL "",IDC_SLIDER7,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,172,152,60,10
COMBOBOX IDC_COMBO1,308,36,50,54,CBS_DROPDOWNLIST | WS_TABSTOP
COMBOBOX IDC_COMBO2,308,53,50,69,CBS_DROPDOWNLIST | WS_TABSTOP
COMBOBOX IDC_COMBO3,308,70,50,54,CBS_DROPDOWNLIST | WS_TABSTOP
- COMBOBOX IDC_COMBO6,246,99,72,...
[truncated message content] |
|
From: <sag...@us...> - 2009-07-23 13:05:39
|
Revision: 300
http://modplug.svn.sourceforge.net/modplug/?rev=300&view=rev
Author: saga-games
Date: 2009-07-23 13:05:32 +0000 (Thu, 23 Jul 2009)
Log Message:
-----------
Commit 300! \o/
[Imp] Mod conversion: Somewhat decent conversion of Kxx (Key Off) from XM to S3M/IT
[Imp] Pattern editor: Solo/Unmute context menu has a bit more dynamical transition menu points (experimental)
[Imp] Pattern editor: Returned to old pattern looping behaviour when a Bxx effect occours (experimental)
[Fix] FT2 compatibility: More compatible handling of Kxx effect
[Fix] IT compatibility: Random waveforms (vibrato, tremolo, panbrello) (test #19)
[Fix] IT compatibility: Fixed handling of very short pitch / filter envelopes (test #24)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-21 21:33:40 UTC (rev 299)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-23 13:05:32 UTC (rev 300)
@@ -206,6 +206,16 @@
case 0xA0: m->command = CMD_S3MCMDEX; break;
}
break;
+ case CMD_KEYOFF:
+ if(m->note == 0)
+ {
+ m->note = (newTypeIsS3M) ? NOTE_NOTECUT : NOTE_KEYOFF;
+ m->command = CMD_S3MCMDEX;
+ if(m->param == 0)
+ m->instr = 0;
+ m->param = 0xD0 | (m->param & 0x0F);
+ }
+ break;
}
}
}
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-21 21:33:40 UTC (rev 299)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-23 13:05:32 UTC (rev 300)
@@ -4583,19 +4583,25 @@
AppendMenu(hMenu, (pSndFile->ChnSettings[nChn].dwFlags & CHN_MUTE) ?
(MF_STRING|MF_CHECKED) : MF_STRING, ID_PATTERN_MUTE,
"Mute Channel\t" + ih->GetKeyTextFromCommand(kcChannelMute));
- BOOL b, bAll;
- b = FALSE;
- bAll = FALSE;
- for (UINT i=0; i<pSndFile->m_nChannels; i++) {
- if (i != nChn) {
- if (!(pSndFile->ChnSettings[i].dwFlags & CHN_MUTE)) b = TRUE;
- } else {
- if (pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) b = TRUE;
+ BOOL bSolo = false, bUnmuteAll = false;
+ BOOL bSoloPending = false, bUnmuteAllPending = false; // doesn't work perfectly yet
+
+ for (CHANNELINDEX i = 0; i < pSndFile->m_nChannels; i++) {
+ if (i != nChn)
+ {
+ if (!(pSndFile->ChnSettings[i].dwFlags & CHN_MUTE)) bSolo = bSoloPending = true;
+ if (!((~pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) && pSndFile->m_bChannelMuteTogglePending[i])) bSoloPending = true;
}
- if (pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) bAll = TRUE;
+ else
+ {
+ if (pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) bSolo = bSoloPending = true;
+ if ((~pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) && pSndFile->m_bChannelMuteTogglePending[i]) bSoloPending = true;
+ }
+ if (pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) bUnmuteAll = bUnmuteAllPending = true;
+ if ((~pSndFile->ChnSettings[i].dwFlags & CHN_MUTE) && pSndFile->m_bChannelMuteTogglePending[i]) bUnmuteAllPending = true;
}
- if (b) AppendMenu(hMenu, MF_STRING, ID_PATTERN_SOLO, "Solo Channel\t" + ih->GetKeyTextFromCommand(kcChannelSolo));
- if (bAll) AppendMenu(hMenu, MF_STRING, ID_PATTERN_UNMUTEALL, "Unmute All\t" + ih->GetKeyTextFromCommand(kcChannelUnmuteAll));
+ if (bSolo) AppendMenu(hMenu, MF_STRING, ID_PATTERN_SOLO, "Solo Channel\t" + ih->GetKeyTextFromCommand(kcChannelSolo));
+ if (bUnmuteAll) AppendMenu(hMenu, MF_STRING, ID_PATTERN_UNMUTEALL, "Unmute All\t" + ih->GetKeyTextFromCommand(kcChannelUnmuteAll));
AppendMenu(hMenu,
pSndFile->m_bChannelMuteTogglePending[nChn] ?
@@ -4605,8 +4611,8 @@
"On transition: Unmute\t" + ih->GetKeyTextFromCommand(kcToggleChanMuteOnPatTransition) :
"On transition: Mute\t" + ih->GetKeyTextFromCommand(kcToggleChanMuteOnPatTransition));
- AppendMenu(hMenu, MF_STRING, ID_PATTERN_TRANSITION_UNMUTEALL, "On transition: Unmute all\t" + ih->GetKeyTextFromCommand(kcUnmuteAllChnOnPatTransition));
- AppendMenu(hMenu, MF_STRING, ID_PATTERN_TRANSITIONSOLO, "On transition: Solo\t" + ih->GetKeyTextFromCommand(kcSoloChnOnPatTransition));
+ if (bUnmuteAllPending) AppendMenu(hMenu, MF_STRING, ID_PATTERN_TRANSITION_UNMUTEALL, "On transition: Unmute all\t" + ih->GetKeyTextFromCommand(kcUnmuteAllChnOnPatTransition));
+ if (bSoloPending) AppendMenu(hMenu, MF_STRING, ID_PATTERN_TRANSITIONSOLO, "On transition: Solo\t" + ih->GetKeyTextFromCommand(kcSoloChnOnPatTransition));
AppendMenu(hMenu, MF_STRING, ID_PATTERN_CHNRESET, "Reset Channel\t" + ih->GetKeyTextFromCommand(kcChannelReset));
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-21 21:33:40 UTC (rev 299)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-23 13:05:32 UTC (rev 300)
@@ -1109,7 +1109,7 @@
m_MixPlugins[plug-1].pMixPlugin->SetParameter(plugparam, value);
}
- // Process continuous parameter pontrol note.
+ // Process continuous parameter control note.
// Row data is cleared after first tick so on following
// ticks using channels m_nPlugParamValueStep to identify
// the need for parameter control. The condition cmd == 0
@@ -1216,9 +1216,15 @@
{
UINT note = pChn->nRowNote;
if (instr) pChn->nNewIns = instr;
- // XM: Key-Off + Sample == Note Cut
if (m_nType & (MOD_TYPE_MOD|MOD_TYPE_XM|MOD_TYPE_MT2))
{
+ // XM: FT2 ignores a note next to a K00 effect, and a fade-out seems to be done when no volume envelope is present (not exactly the Kxx behaviour)
+ if(cmd == CMD_KEYOFF && param == 0 && GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ note = instr = 0;
+ }
+
+ // XM: Key-Off + Sample == Note Cut
if ((note == NOTE_KEYOFF) && ((!pChn->pHeader) || (!(pChn->pHeader->dwFlags & ENV_VOLUME))))
{
pChn->dwFlags |= CHN_FASTVOLRAMP;
@@ -1357,7 +1363,17 @@
// Volume Column Effect (except volume & panning)
- if ((volcmd > VOLCMD_PANNING) && (m_nTickCount >= nStartTick))
+ /* A few notes, paraphrased from ITTECH.TXT by Storlek (creator of schismtracker):
+ Ex/Fx/Gx are shared with Exx/Fxx/Gxx; Ex/Fx are 4x the 'normal' slide value
+ Gx is linked with Ex/Fx if Compat Gxx is off, just like Gxx is with Exx/Fxx
+ Gx values: 1, 4, 8, 16, 32, 64, 96, 128, 255
+ Ax/Bx/Cx/Dx values are used directly (i.e. D9 == D09), and are NOT shared with Dxx
+ (value is stored into nOldVolParam and used by A0/B0/C0/D0)
+ Hx uses the same value as Hxx and Uxx, and affects the *depth*
+ so... hxx = (hx | (oldhxx & 0xf0)) ???
+ TODO is this done correctly?
+ */
+ if ((volcmd > VOLCMD_PANNING) && (m_nTickCount >= nStartTick))
{
if (volcmd == VOLCMD_TONEPORTAMENTO)
{
@@ -1663,8 +1679,15 @@
// XM: Key-Off + Sample == Note Cut
if ((!pChn->pHeader) || (!(pChn->pHeader->dwFlags & ENV_VOLUME)))
{
- pChn->dwFlags |= CHN_FASTVOLRAMP;
- pChn->nVolume = 0;
+ if(param == 0) // FT2 is weird....
+ {
+ pChn->dwFlags |= CHN_NOTEFADE;
+ }
+ else
+ {
+ pChn->dwFlags |= CHN_FASTVOLRAMP;
+ pChn->nVolume = 0;
+ }
}
KeyOff(nChn);
}
@@ -1738,12 +1761,14 @@
// Position Jump
case CMD_POSITIONJUMP:
nPosJump = param;
+ /* commented this out (http://lpchip.com/modplug/viewtopic.php?t=1808) - I hope it doesn't break anything else.
if((m_dwSongFlags & SONG_PATTERNLOOP && m_nSeqOverride == 0)) {
m_nSeqOverride = param+1;
//Releasing pattern loop after position jump could cause
//instant jumps - modifying behavior so that now position jumps
//occurs also when pattern loop is enabled.
}
+ */
// see http://lpchip.com/modplug/viewtopic.php?t=2769 - FastTracker resets Dxx if Bxx is called _after_ Dxx
if(GetType() == MOD_TYPE_XM) nBreakRow = 0;
break;
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-21 21:33:40 UTC (rev 299)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-23 13:05:32 UTC (rev 300)
@@ -973,7 +973,11 @@
vol += (ModSquareTable[trempos] * (int)pChn->nTremoloDepth) >> tremattn;
break;
case 3:
- vol += (ModRandomTable[trempos] * (int)pChn->nTremoloDepth) >> tremattn;
+ //IT compatibility 19. Use random values
+ if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ vol += (((rand() & 0xFF) - 0x7F) * (int)pChn->nTremoloDepth) >> tremattn;
+ else
+ vol += (ModRandomTable[trempos] * (int)pChn->nTremoloDepth) >> tremattn;
break;
default:
vol += (ModSinusTable[trempos] * (int)pChn->nTremoloDepth) >> tremattn;
@@ -1321,7 +1325,11 @@
vdelta = ModSquareTable[vibpos];
break;
case 3:
- vdelta = ModRandomTable[vibpos];
+ //IT compatibility 19. Use random values
+ if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ vdelta = (rand() & 0xFF) - 0x7F;
+ else
+ vdelta = ModRandomTable[vibpos];
break;
default:
vdelta = ModSinusTable[vibpos];
@@ -1377,7 +1385,11 @@
pdelta = ModSquareTable[panpos];
break;
case 3:
- pdelta = ModRandomTable[panpos];
+ //IT compatibility 19. Use random values
+ if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ pdelta = (rand() & 0xFF) - 0x7F;
+ else
+ pdelta = ModRandomTable[panpos];
break;
default:
pdelta = ModSinusTable[panpos];
@@ -1605,7 +1617,10 @@
// Pitch Loop ?
if (penv->dwFlags & ENV_PITCHLOOP)
{
- if (pChn->nPitchEnvPosition >= penv->PitchPoints[penv->nPitchLoopEnd])
+ UINT pitchloopend = penv->PitchPoints[penv->nPitchLoopEnd];
+ //IT compatibility 24. Short envelope loops
+ if (m_nType != MOD_TYPE_XM && GetModFlag(MSF_COMPATIBLE_PLAY)) pitchloopend++;
+ if (pChn->nPitchEnvPosition == pitchloopend)
pChn->nPitchEnvPosition = penv->PitchPoints[penv->nPitchLoopStart];
}
// Pitch Sustain ?
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-21 21:33:46
|
Revision: 299
http://modplug.svn.sourceforge.net/modplug/?rev=299&view=rev
Author: saga-games
Date: 2009-07-21 21:33:40 +0000 (Tue, 21 Jul 2009)
Log Message:
-----------
[Fix] Keyboard manager: Octave offset for key descriptions is now C, not A
[Fix] Sample editor: Removed tuning from up/downsampling for MOD files which detuned them when saving
[Imp] Module loader: If plugins are missing, a single MessageBox is shown.
[Ref] Using constant instead of number in load_mid.cpp
Modified Paths:
--------------
trunk/OpenMPT/mptrack/CommandSet.cpp
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/mptrack/Vstplug.cpp
trunk/OpenMPT/soundlib/Load_mid.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/CommandSet.cpp
===================================================================
--- trunk/OpenMPT/mptrack/CommandSet.cpp 2009-07-20 21:33:11 UTC (rev 298)
+++ trunk/OpenMPT/mptrack/CommandSet.cpp 2009-07-21 21:33:40 UTC (rev 299)
@@ -418,17 +418,17 @@
commands[kcVPNoteA_1].UID = 1073;
commands[kcVPNoteA_1].isHidden = false;
commands[kcVPNoteA_1].isDummy = false;
- commands[kcVPNoteA_1].Message = "Base octave +1 A";
+ commands[kcVPNoteA_1].Message = "Base octave A";
commands[kcVPNoteAS1].UID = 1074;
commands[kcVPNoteAS1].isHidden = false;
commands[kcVPNoteAS1].isDummy = false;
- commands[kcVPNoteAS1].Message = "Base octave +1 A#";
+ commands[kcVPNoteAS1].Message = "Base octave A#";
commands[kcVPNoteB_1].UID = 1075;
commands[kcVPNoteB_1].isHidden = false;
commands[kcVPNoteB_1].isDummy = false;
- commands[kcVPNoteB_1].Message = "Base octave +1 B";
+ commands[kcVPNoteB_1].Message = "Base octave B";
commands[kcVPNoteC_1].UID = 1076;
commands[kcVPNoteC_1].isHidden = false;
@@ -478,17 +478,17 @@
commands[kcVPNoteA_2].UID = 1085;
commands[kcVPNoteA_2].isHidden = false;
commands[kcVPNoteA_2].isDummy = false;
- commands[kcVPNoteA_2].Message = "Base octave +2 A";
+ commands[kcVPNoteA_2].Message = "Base octave +1 A";
commands[kcVPNoteAS2].UID = 1086;
commands[kcVPNoteAS2].isHidden = false;
commands[kcVPNoteAS2].isDummy = false;
- commands[kcVPNoteAS2].Message = "Base octave +2 A#";
+ commands[kcVPNoteAS2].Message = "Base octave +1 A#";
commands[kcVPNoteB_2].UID = 1087;
commands[kcVPNoteB_2].isHidden = false;
commands[kcVPNoteB_2].isDummy = false;
- commands[kcVPNoteB_2].Message = "Base octave +2 B";
+ commands[kcVPNoteB_2].Message = "Base octave +1 B";
commands[kcVPNoteC_2].UID = 1088;
commands[kcVPNoteC_2].isHidden = false;
@@ -538,7 +538,7 @@
commands[kcVPNoteA_3].UID = 1097;
commands[kcVPNoteA_3].isHidden = false;
commands[kcVPNoteA_3].isDummy = false;
- commands[kcVPNoteA_3].Message = "Base octave +3 A";
+ commands[kcVPNoteA_3].Message = "Base octave +2 A";
commands[kcVPNoteStopC_0].UID = 1098;
commands[kcVPNoteStopC_0].isHidden = true;
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2009-07-20 21:33:11 UTC (rev 298)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2009-07-21 21:33:40 UTC (rev 299)
@@ -1491,8 +1491,11 @@
pins->nLength = dwNewLen;
if (viewstate.dwEndSel <= viewstate.dwBeginSel)
{
- if (pins->nC4Speed < 200000) pins->nC4Speed *= 2;
- if (pins->RelativeTone < 84) pins->RelativeTone += 12;
+ if(!(m_pSndFile->m_nType & MOD_TYPE_MOD))
+ {
+ if (pins->nC4Speed < 200000) pins->nC4Speed *= 2;
+ if (pins->RelativeTone < 84) pins->RelativeTone += 12;
+ }
}
CSoundFile::FreeSample(pOriginal);
END_CRITICAL();
@@ -1614,8 +1617,11 @@
}
if (viewstate.dwEndSel <= viewstate.dwBeginSel)
{
- if (pins->nC4Speed > 2000) pins->nC4Speed /= 2;
- if (pins->RelativeTone > -84) pins->RelativeTone -= 12;
+ if(!(m_pSndFile->m_nType & MOD_TYPE_MOD))
+ {
+ if (pins->nC4Speed > 2000) pins->nC4Speed /= 2;
+ if (pins->RelativeTone > -84) pins->RelativeTone -= 12;
+ }
}
pins->nLength = dwNewLen;
pins->pSample = (LPSTR)pNewSample;
Modified: trunk/OpenMPT/mptrack/Vstplug.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Vstplug.cpp 2009-07-20 21:33:11 UTC (rev 298)
+++ trunk/OpenMPT/mptrack/Vstplug.cpp 2009-07-21 21:33:40 UTC (rev 299)
@@ -571,13 +571,14 @@
return bOk;
} else
{
- CString message;
+ // MOVED to CSoundFile::Create
+ /*CString message;
message.Format("This track uses the plugin \"%s\", which could not be found.\n\rSearch for this plug on kvraudio?", pMixPlugin->Info.szLibraryName);
if (AfxMessageBox(message, MB_YESNO|MB_ICONQUESTION) == IDYES ) {
CString url;
url.Format("http://www.kvraudio.com/search.php?q=%s&lq=db", pMixPlugin->Info.szLibraryName);
CTrackApp::OpenURL(url);
- }
+ }*/
#ifdef VST_LOG
Log("Unknown plugin\n");
Modified: trunk/OpenMPT/soundlib/Load_mid.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mid.cpp 2009-07-20 21:33:11 UTC (rev 298)
+++ trunk/OpenMPT/soundlib/Load_mid.cpp 2009-07-21 21:33:40 UTC (rev 299)
@@ -431,7 +431,7 @@
int mapnote = j+1;
if (nChannel == MIDI_DRUMCHANNEL)
{
- mapnote = 61;
+ mapnote = NOTE_MIDDLEC;
/*mapnote = 61 + j - nNote;
if (mapnote < 1) mapnote = 1;
if (mapnote > 120) mapnote = 120;*/
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-20 21:33:11 UTC (rev 298)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-21 21:33:40 UTC (rev 299)
@@ -704,9 +704,14 @@
if ((m_nRestartPos >= Order.size()) || (Order[m_nRestartPos] >= Patterns.Size())) m_nRestartPos = 0;
// Load plugins only when m_pModDoc != 0. (can be == 0 for example when examining module samples in treeview.
+
+ CString sNotFound;
+ BOOL bSearchIDs[MAX_MIXPLUGINS] = {false};
+ UINT iShowNotFound = 0;
+
if (gpMixPluginCreateProc && GetpModDoc())
{
- for (UINT iPlug=0; iPlug<MAX_MIXPLUGINS; iPlug++)
+ for (UINT iPlug = 0; iPlug < MAX_MIXPLUGINS; iPlug++)
{
if ((m_MixPlugins[iPlug].Info.dwPluginId1)
|| (m_MixPlugins[iPlug].Info.dwPluginId2))
@@ -714,12 +719,50 @@
gpMixPluginCreateProc(&m_MixPlugins[iPlug], this);
if (m_MixPlugins[iPlug].pMixPlugin)
{
+ // plugin has been found
m_MixPlugins[iPlug].pMixPlugin->RestoreAllParameters(m_MixPlugins[iPlug].defaultProgram); //rewbs.plugDefaultProgram: added param
}
+ else
+ {
+ // plugin not found - add to list
+ BOOL bFound = false;
+ for(UINT iPlugFind = 0; iPlugFind < iPlug; iPlugFind++)
+ if(m_MixPlugins[iPlugFind].Info.dwPluginId2 == m_MixPlugins[iPlug].Info.dwPluginId2)
+ bFound = true;
+
+ if(bFound == false)
+ {
+ sNotFound = sNotFound + m_MixPlugins[iPlug].Info.szLibraryName + "\n";
+ bSearchIDs[iPlug] = true; // set this flag so we will find the needed plugins later when calling KVRAudio
+ }
+ iShowNotFound++;
+ }
}
}
}
+ // Display a nice message so the user sees what plugins are missing
+ if(iShowNotFound)
+ {
+ if(iShowNotFound == 1)
+ {
+ sNotFound = "The following plugin has not been found:\n\n" + sNotFound + "\nDo you want to search for it on KVRAudio?";
+ }
+ else
+ {
+ sNotFound = "The following plugins have not been found:\n\n" + sNotFound + "\nDo you want to search for them on KVRAudio?"
+ "\nWARNING: A browser window / tab is opened for every plugin. If you do not want that, you can visit http://www.kvraudio.com/search.php";
+ }
+ if (::MessageBox(0, sNotFound, "OpenMPT - Plugins missing", MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2) == IDYES)
+ for (UINT iPlug = 0; iPlug < MAX_MIXPLUGINS; iPlug++)
+ if (bSearchIDs[iPlug] == true)
+ {
+ CString sUrl;
+ sUrl.Format("http://www.kvraudio.com/search.php?q=%s&lq=db", m_MixPlugins[iPlug].Info.szLibraryName);
+ CTrackApp::OpenURL(sUrl);
+ }
+ }
+
// Set up mix levels
m_pConfig->SetMixLevels(m_nMixLevels);
RecalculateGainForAllPlugs();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-20 21:33:21
|
Revision: 298
http://modplug.svn.sourceforge.net/modplug/?rev=298&view=rev
Author: saga-games
Date: 2009-07-20 21:33:11 +0000 (Mon, 20 Jul 2009)
Log Message:
-----------
[Fix] Pattern editor: Weird combination of context menu shortcut and "always center active row" being disabled (http://lpchip.com/modplug/viewtopic.php?t=3203)
[Fix] Sample editor: Global volume is now also being adjusted for stereo and 16-Bit samples
[Ref] Using constants instead of numbers in two places
Modified Paths:
--------------
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/view_com.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-19 21:41:08 UTC (rev 297)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-20 21:33:11 UTC (rev 298)
@@ -1220,12 +1220,12 @@
//------ Plugin Header Menu --------- :
if ((m_dwStatus & PATSTATUS_PLUGNAMESINHEADERS) &&
- (pt.y > m_szHeader.cy-PLUGNAME_HEIGHT) && (pt.y <= m_szHeader.cy)) {
+ (pt.y > m_szHeader.cy-PLUGNAME_HEIGHT) && (pt.y < m_szHeader.cy)) {
BuildPluginCtxMenu(hMenu, nChn, pSndFile);
}
//------ Channel Header Menu ---------- :
- else if (pt.y <= m_szHeader.cy){
+ else if (pt.y < m_szHeader.cy){
if (ih->ShiftPressed()) {
//Don't bring up menu if shift is pressed, else we won't get button up msg.
} else {
@@ -1237,7 +1237,7 @@
}
//------ Standard Menu ---------- :
- else if ((pt.x >= m_szHeader.cx) && (pt.y > m_szHeader.cy)) {
+ else if ((pt.x >= m_szHeader.cx) && (pt.y >= m_szHeader.cy)) {
/*if (BuildSoloMuteCtxMenu(hMenu, ih, nChn, pSndFile))
AppendMenu(hMenu, MF_SEPARATOR, 0, "");*/
if (BuildSelectionCtxMenu(hMenu, ih))
Modified: trunk/OpenMPT/mptrack/view_com.cpp
===================================================================
--- trunk/OpenMPT/mptrack/view_com.cpp 2009-07-19 21:41:08 UTC (rev 297)
+++ trunk/OpenMPT/mptrack/view_com.cpp 2009-07-20 21:33:11 UTC (rev 298)
@@ -276,7 +276,7 @@
{
wsprintf(s, "%d Hz",
pSndFile->GetFreqFromPeriod(
- pSndFile->GetPeriodFromNote(61, pins->nFineTune, pins->nC4Speed),
+ pSndFile->GetPeriodFromNote(NOTE_MIDDLEC, pins->nFineTune, pins->nC4Speed),
pins->nC4Speed));
}
break;
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-19 21:41:08 UTC (rev 297)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-20 21:33:11 UTC (rev 298)
@@ -3450,7 +3450,7 @@
UINT CSoundFile::GetPeriodFromNote(UINT note, int nFineTune, UINT nC4Speed) const
//-------------------------------------------------------------------------------
{
- if ((!note) || (note > 0xF0)) return 0;
+ if ((!note) || (note >= NOTE_MIN_SPECIAL)) return 0;
if (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT|MOD_TYPE_S3M|MOD_TYPE_STM|MOD_TYPE_MDL|MOD_TYPE_ULT|MOD_TYPE_WAV
|MOD_TYPE_FAR|MOD_TYPE_DMF|MOD_TYPE_PTM|MOD_TYPE_AMS|MOD_TYPE_DBM|MOD_TYPE_AMF|MOD_TYPE_PSM))
{
Modified: trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
===================================================================
--- trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-19 21:41:08 UTC (rev 297)
+++ trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-20 21:33:11 UTC (rev 298)
@@ -280,7 +280,7 @@
RemoveOffsetAndNormalize( reinterpret_cast<int8*>(pins->pSample) + iStart, iEnd - iStart, dOffset, dAmplify);
// step 3: adjust global vol (if available)
- if((modtype & (MOD_TYPE_IT | MOD_TYPE_MPT)) && (iStart == 0) && (iEnd == pins->nLength))
+ if((modtype & (MOD_TYPE_IT | MOD_TYPE_MPT)) && (iStart == 0) && (iEnd == pins->nLength * pins->GetNumChannels()))
pins->nGlobalVol = min((WORD)(pins->nGlobalVol / dAmplify), 64);
AdjustEndOfSample(smp, pSndFile);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-19 21:41:15
|
Revision: 297
http://modplug.svn.sourceforge.net/modplug/?rev=297&view=rev
Author: saga-games
Date: 2009-07-19 21:41:08 +0000 (Sun, 19 Jul 2009)
Log Message:
-----------
[Fix] VST: Default dirs for VST presets were not working properly
[Fix] Pattern editor: Echo paste did not work properly if edit order was different from playback order
[Fix] Pattern editor: Keyboard split note was off by one
[Fix] Instrument editor: No relative values are shown for envelopes with no release node (status bar)
[Fix] Find/Replace: (Hopefully) temporary fix for instrument sorting
[Fix] Compatibility: Pattern loops are now handeled correctly in XM (using compatibility switch) and MOD files
[Ref] Some small code changes (Usage of types PATTERNINDEX, ORDERINDEX, ROWINDEX)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/AbstractVstEditor.cpp
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/Moddoc.h
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/View_ins.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/dlg_misc.cpp
trunk/OpenMPT/mptrack/dlg_misc.h
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp
===================================================================
--- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -115,8 +115,11 @@
CFileDialog dlg(TRUE, "fxp", NULL,
OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_ENABLESIZING | OFN_NOREADONLYRETURN,
"VST Program (*.fxp)|*.fxp||", theApp.m_pMainWnd);
- dlg.m_ofn.lpstrInitialDir = CMainFrame::GetWorkingDirectory(DIR_PLUGINPRESETS);
+ const LPCTSTR pszWdir = CMainFrame::GetWorkingDirectory(DIR_PLUGINPRESETS);
+ if(pszWdir[0])
+ dlg.m_ofn.lpstrInitialDir = pszWdir;
+
if (!(dlg.DoModal() == IDOK)) return;
CMainFrame::SetWorkingDirectory(dlg.GetFileName(), DIR_PLUGINPRESETS, true);
@@ -135,8 +138,13 @@
CFileDialog dlg(FALSE, "fxp", NULL,
OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_ENABLESIZING | OFN_NOREADONLYRETURN,
"VST Program (*.fxp)|*.fxp||", theApp.m_pMainWnd);
+ const LPCTSTR pszWdir = CMainFrame::GetWorkingDirectory(DIR_PLUGINPRESETS);
+ if(pszWdir[0])
+ dlg.m_ofn.lpstrInitialDir = pszWdir;
if (!(dlg.DoModal() == IDOK)) return;
+ CMainFrame::SetWorkingDirectory(dlg.GetFileName(), DIR_PLUGINPRESETS, true);
+
//TODO: exception handling
if (!(m_pVstPlugin->SaveProgram(dlg.GetFileName())))
::AfxMessageBox("Error saving preset.");
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -2877,7 +2877,7 @@
return NULL;
}
-HWND CModDoc::GetEditPosition(UINT &row, UINT &pat, UINT &ord)
+HWND CModDoc::GetEditPosition(ROWINDEX &row, PATTERNINDEX &pat, ORDERINDEX &ord)
//------------------------------------------------------------
{
HWND followSonghWnd;
@@ -3004,7 +3004,11 @@
}
CSoundFile *pSndFile = GetSoundFile();
- UINT nPat,nOrd,nRow;
+
+ ROWINDEX nRow;
+ PATTERNINDEX nPat;
+ ORDERINDEX nOrd;
+
HWND followSonghWnd;
followSonghWnd = GetEditPosition(nRow, nPat, nOrd);
@@ -3060,7 +3064,11 @@
}
CSoundFile *pSndFile = GetSoundFile();
- UINT nRow,nPat,nOrd;
+
+ ROWINDEX nRow;
+ PATTERNINDEX nPat;
+ ORDERINDEX nOrd;
+
HWND followSonghWnd;
followSonghWnd = GetEditPosition(nRow,nPat,nOrd);
@@ -3111,7 +3119,11 @@
}
CSoundFile *pSndFile = GetSoundFile();
- UINT nPat,nOrd,nRow;
+
+ ROWINDEX nRow;
+ PATTERNINDEX nPat;
+ ORDERINDEX nOrd;
+
HWND followSonghWnd;
followSonghWnd = GetEditPosition(nRow,nPat,nOrd);
Modified: trunk/OpenMPT/mptrack/Moddoc.h
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.h 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/Moddoc.h 2009-07-19 21:41:08 UTC (rev 297)
@@ -240,10 +240,10 @@
UINT FindSampleParent(UINT nSmp) const;
UINT FindInstrumentChild(UINT nIns) const;
BOOL MoveOrder(UINT nSourceNdx, UINT nDestNdx, BOOL bUpdate=TRUE, BOOL bCopy=FALSE);
- BOOL ExpandPattern(UINT nPattern);
- BOOL ShrinkPattern(UINT nPattern);
- BOOL CopyPattern(UINT nPattern, DWORD dwBeginSel, DWORD dwEndSel);
- BOOL PastePattern(UINT nPattern, DWORD dwBeginSel, BOOL mix, BOOL ITStyleMix=FALSE); //rewbs.mixpaste
+ BOOL ExpandPattern(PATTERNINDEX nPattern);
+ BOOL ShrinkPattern(PATTERNINDEX nPattern);
+ BOOL CopyPattern(PATTERNINDEX nPattern, DWORD dwBeginSel, DWORD dwEndSel);
+ BOOL PastePattern(PATTERNINDEX nPattern, DWORD dwBeginSel, BOOL mix, BOOL ITStyleMix=FALSE); //rewbs.mixpaste
BOOL CopyEnvelope(UINT nIns, UINT nEnv);
BOOL PasteEnvelope(UINT nIns, UINT nEnv);
@@ -253,7 +253,7 @@
BOOL CanUndo();
LRESULT ActivateView(UINT nIdView, DWORD dwParam);
void UpdateAllViews(CView *pSender, LPARAM lHint=0L, CObject *pHint=NULL);
- HWND GetEditPosition(UINT &row, UINT &pat, UINT &ord); //rewbs.customKeys
+ HWND GetEditPosition(ROWINDEX &row, PATTERNINDEX &pat, ORDERINDEX &ord); //rewbs.customKeys
LRESULT OnCustomKeyMsg(WPARAM, LPARAM); //rewbs.customKeys
void TogglePluginEditor(UINT m_nCurrentPlugin); //rewbs.patPlugNames
void RecordParamChange(int slot, long param);
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -1564,7 +1564,7 @@
}
-BOOL CModDoc::ExpandPattern(UINT nPattern)
+BOOL CModDoc::ExpandPattern(PATTERNINDEX nPattern)
//----------------------------------------
{
// -> CODE#0008
@@ -1578,7 +1578,7 @@
}
-BOOL CModDoc::ShrinkPattern(UINT nPattern)
+BOOL CModDoc::ShrinkPattern(PATTERNINDEX nPattern)
//----------------------------------------
{
if ((nPattern >= m_SndFile.Patterns.Size()) || (!m_SndFile.Patterns[nPattern])) return FALSE;
@@ -1598,7 +1598,7 @@
static LPCSTR lpszClipboardPatternHdr = "ModPlug Tracker %3s\x0D\x0A";
-BOOL CModDoc::CopyPattern(UINT nPattern, DWORD dwBeginSel, DWORD dwEndSel)
+BOOL CModDoc::CopyPattern(PATTERNINDEX nPattern, DWORD dwBeginSel, DWORD dwEndSel)
//------------------------------------------------------------------------
{
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
@@ -1748,7 +1748,7 @@
// -> CODE#0014
// -> DESC="vst wet/dry slider"
//BOOL CModDoc::PastePattern(UINT nPattern, DWORD dwBeginSel)
-BOOL CModDoc::PastePattern(UINT nPattern, DWORD dwBeginSel, BOOL mix, BOOL ITStyleMix)
+BOOL CModDoc::PastePattern(PATTERNINDEX nPattern, DWORD dwBeginSel, BOOL mix, BOOL ITStyleMix)
// -! NEW_FEATURE#0014
//---------------------------------------------------------
{
@@ -1762,18 +1762,22 @@
if ((hCpy) && ((p = (LPSTR)GlobalLock(hCpy)) != NULL))
{
- PrepareUndo(nPattern, 0,0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern]);
+ PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern]);
BYTE spdmax = (m_SndFile.m_nType & MOD_TYPE_MOD) ? 0x20 : 0x1F;
DWORD dwMemSize = GlobalSize(hCpy);
MODCOMMAND *m = m_SndFile.Patterns[nPattern];
UINT nrow = dwBeginSel >> 16;
UINT ncol = (dwBeginSel & 0xFFFF) >> 3;
- ORDERINDEX oCurrentOrder = m_SndFile.GetCurrentOrder(); //jojo.echopaste
UINT col;
BOOL bS3M = FALSE, bOk = FALSE;
UINT len = 0;
MODCOMMAND origModCmd;
+ ORDERINDEX oCurrentOrder; //jojo.echopaste
+ ROWINDEX rTemp;
+ PATTERNINDEX pTemp;
+ GetEditPosition(rTemp, pTemp, oCurrentOrder);
+
if ((nrow >= m_SndFile.PatternSize[nPattern]) || (ncol >= m_SndFile.m_nChannels)) goto PasteDone;
m += nrow * m_SndFile.m_nChannels;
// Search for signature
Modified: trunk/OpenMPT/mptrack/View_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_ins.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/View_ins.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -1739,13 +1739,13 @@
if (nVal < 0) nVal = 0;
if (nVal > 64) nVal = 64;
if (nTick < 0) nTick = 0;
- if (nTick<=EnvGetReleaseNodeTick()+1) {
+ if (nTick <= EnvGetReleaseNodeTick() + 1 || EnvGetReleaseNode() == ENV_RELEASE_NODE_UNSET) {
int displayVal = (m_nEnv != ENV_VOLUME) ? nVal-32 : nVal;
wsprintf(s, "Tick %d, [%d]", nTick, displayVal);
} else {
- int displayVal = (nVal-EnvGetReleaseNodeValue())*2;
- displayVal = (m_nEnv != ENV_VOLUME) ? displayVal-32 : displayVal;
- wsprintf(s, "Tick %d, [Rel%c%d]", nTick, displayVal>0?'+':'-', abs(displayVal));
+ int displayVal = (nVal - EnvGetReleaseNodeValue()) * 2;
+ displayVal = (m_nEnv != ENV_VOLUME) ? displayVal - 32 : displayVal;
+ wsprintf(s, "Tick %d, [Rel%c%d]", nTick, displayVal > 0 ? '+' : '-', abs(displayVal));
}
UpdateIndicator(s);
if ((m_dwStatus & INSSTATUS_DRAGGING) && (m_nDragItem))
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -3870,10 +3870,10 @@
const UINT nTick = pSndFile->m_nTickCount;
const PATTERNINDEX nPatPlayback = pSndFile->m_nPattern;
- const bool isSplit = (note < m_nSplitNote);
+ const bool isSplit = (note <= m_nSplitNote);
+ UINT ins = 0;
if (pModDoc)
{
- UINT ins = 0;
if (isSplit)
{
ins = m_nSplitInstrument;
@@ -3959,7 +3959,7 @@
//Enter note off
p->note = NOTE_KEYOFF;
- p->instr = (bChordMode) ? 0 : GetCurrentInstrument(); //p->instr = 0;
+ p->instr = (bChordMode) ? 0 : ins; //p->instr = 0;
//Writing the instrument as well - probably someone finds this annoying :)
p->volcmd = 0;
p->vol = 0;
@@ -4520,7 +4520,7 @@
bool CViewPattern::HandleSplit(MODCOMMAND* p, int note)
//-----------------------------------------------------
{
- if (note>=m_nSplitNote)
+ if (note>m_nSplitNote)
{
p->note = note;
UINT nins = GetCurrentInstrument();
Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -656,10 +656,10 @@
{
if (pSndFile->m_nInstruments)
{
- wsprintf(s, "%02d:%s", n, (pSndFile->Headers[n]) ? pSndFile->Headers[n]->name : "");
+ wsprintf(s, "%03d:%s", n, (pSndFile->Headers[n]) ? pSndFile->Headers[n]->name : "");
} else
{
- wsprintf(s, "%02d:%s", n, pSndFile->m_szNames[n]);
+ wsprintf(s, "%03d:%s", n, pSndFile->m_szNames[n]);
}
combo->SetItemData(combo->AddString(s), n);
}
Modified: trunk/OpenMPT/mptrack/dlg_misc.h
===================================================================
--- trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/mptrack/dlg_misc.h 2009-07-19 21:41:08 UTC (rev 297)
@@ -534,7 +534,7 @@
ModCompatibilityExportTip = 0,
ItCompatibilityExportTip = 1,
ConfirmSignUnsignWhenPlaying = 2,
- enMsgBoxHidableMessage_count = 3
+ enMsgBoxHidableMessage_count
};
void MsgBoxHidable(enMsgBoxHidableMessage enMsg);
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-16 16:08:49 UTC (rev 296)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-19 21:41:08 UTC (rev 297)
@@ -3262,7 +3262,8 @@
pChn->nPatternLoopCount--;
if(!pChn->nPatternLoopCount)
{
- if(GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ //IT compatibility 10. Pattern loops (+ same fix for XM and MOD files)
+ if((GetType() & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT) && GetModFlag(MSF_COMPATIBLE_PLAY)) || (GetType() & (MOD_TYPE_MOD)))
pChn->nPatternLoop = m_nRow+1;
return -1;
@@ -3270,8 +3271,9 @@
} else
{
MODCHANNEL *p = Chn;
-
- if(!(GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT) && GetModFlag(MSF_COMPATIBLE_PLAY)))
+
+ //IT compatibility 10. Pattern loops (+ same fix for XM and MOD files)
+ if(!((GetType() & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT) && GetModFlag(MSF_COMPATIBLE_PLAY)) || (GetType() & (MOD_TYPE_MOD))))
{
for (UINT i=0; i<m_nChannels; i++, p++) if (p != pChn)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-16 16:08:58
|
Revision: 296
http://modplug.svn.sourceforge.net/modplug/?rev=296&view=rev
Author: saga-games
Date: 2009-07-16 16:08:49 +0000 (Thu, 16 Jul 2009)
Log Message:
-----------
[Fix] Find/Replace: Made comboboxes more convenient to use
[Fix] IT compatibility: Fixed the fix for test #23
Modified Paths:
--------------
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-12 22:21:08 UTC (rev 295)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-16 16:08:49 UTC (rev 296)
@@ -1181,7 +1181,7 @@
CONTROL "Instrument",IDC_CHECK2,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,60,17,49,10
COMBOBOX IDC_COMBO2,60,28,106,103,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ WS_TABSTOP | CBS_SORT
CONTROL "Volume Effect",IDC_CHECK3,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,13,46,60,10
COMBOBOX IDC_COMBO3,13,58,94,77,CBS_DROPDOWNLIST | CBS_SORT |
@@ -1189,7 +1189,7 @@
CONTROL "Volume Data",IDC_CHECK4,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,117,46,56,10
COMBOBOX IDC_COMBO4,117,58,48,77,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ WS_TABSTOP | CBS_SORT
CONTROL "Effect",IDC_CHECK5,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,13,78,35,10
COMBOBOX IDC_COMBO5,13,92,94,71,CBS_DROPDOWNLIST | CBS_SORT |
@@ -1222,13 +1222,13 @@
CONTROL "Instrument",IDC_CHECK2,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,60,31,49,10
COMBOBOX IDC_COMBO2,60,42,106,92,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ WS_TABSTOP | CBS_SORT
CONTROL "Volume Effect",IDC_CHECK3,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,13,60,60,10
COMBOBOX IDC_COMBO3,13,71,94,64,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO4,117,71,48,64,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ WS_TABSTOP | CBS_SORT
CONTROL "Volume Data",IDC_CHECK4,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,117,60,56,10
CONTROL "Effect",IDC_CHECK5,"Button",BS_AUTOCHECKBOX |
@@ -1238,7 +1238,7 @@
COMBOBOX IDC_COMBO5,13,106,94,70,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO6,117,106,48,80,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
+ WS_TABSTOP | CBS_SORT
CONTROL "Replace By:",IDC_CHECK7,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,12,15,63,10
CONTROL "Replace All (No confirmation)",IDC_CHECK8,"Button",
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 22:21:08 UTC (rev 295)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-16 16:08:49 UTC (rev 296)
@@ -1927,10 +1927,6 @@
{
DoFreqSlide(pChn, -(int)(param * 4));
}
-
- //IT compatibility 23. Portamento with no note
- if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
- pChn->nPortamentoDest = 0;
}
@@ -1972,10 +1968,6 @@
if (!(m_dwSongFlags & SONG_FIRSTTICK) || (m_nMusicSpeed == 1)) { //rewbs.PortaA01fix
DoFreqSlide(pChn, (int)(param << 2));
}
-
- //IT compatibility 23. Portamento with no note
- if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
- pChn->nPortamentoDest = 0;
}
void CSoundFile::MidiPortamento(MODCHANNEL *pChn, int param)
@@ -2181,6 +2173,11 @@
if (pChn->nPeriod < pChn->nPortamentoDest) pChn->nPeriod = pChn->nPortamentoDest;
}
}
+
+ //IT compatibility 23. Portamento with no note
+ if(pChn->nPeriod == pChn->nPortamentoDest && ((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT))) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ pChn->nPortamentoDest = 0;
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-12 23:13:06
|
Revision: 295
http://modplug.svn.sourceforge.net/modplug/?rev=295&view=rev
Author: saga-games
Date: 2009-07-12 22:21:08 +0000 (Sun, 12 Jul 2009)
Log Message:
-----------
[Fix] SD0: Fix for S3M in rev. 294 also affected MPTm files
[Fix] IT compatibility: Panning fx (Xxx, S8x, pxx) override pan swing (test #20) - Maybe a more elegant solution can be found here, since the same code exists in at least three places here.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 14:17:41 UTC (rev 294)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 22:21:08 UTC (rev 295)
@@ -1172,7 +1172,7 @@
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
nStartTick = 1;
//ST3 ignores notes with SD0 completely
- else if(m_nType & MOD_TYPE_S3M|MOD_TYPE_MPT)
+ else if(m_nType & MOD_TYPE_S3M)
nStartTick = m_nMusicSpeed;
}
@@ -1344,6 +1344,9 @@
pChn->nPan = vol << 2;
pChn->dwFlags |= CHN_FASTVOLRAMP;
pChn->nRestorePanOnNewNote = 0;
+ //IT compatibility 20. Set pan overrides random pan
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
+ pChn->nPanSwing = 0;
}
//rewbs.VSTnoteDelay
@@ -1620,6 +1623,9 @@
}
pChn->dwFlags |= CHN_FASTVOLRAMP;
pChn->nRestorePanOnNewNote = 0;
+ //IT compatibility 20. Set pan overrides random pan
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
+ pChn->nPanSwing = 0;
break;
// Panning Slide
@@ -2494,6 +2500,10 @@
if (!(m_dwSongFlags & SONG_SURROUNDPAN)) pChn->dwFlags &= ~CHN_SURROUND;
}
pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP;
+
+ //IT compatibility 20. Set pan overrides random pan
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
+ pChn->nPanSwing = 0;
}
break;
// S9x: Sound Control
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-12 14:17:42
|
Revision: 294
http://modplug.svn.sourceforge.net/modplug/?rev=294&view=rev
Author: saga-games
Date: 2009-07-12 14:17:41 +0000 (Sun, 12 Jul 2009)
Log Message:
-----------
[Fix] S3M saving: Clamp sample pre-amp to [32;127] instead of just taking the lower 7 bits. (Default pre-amp value as 128, which resulted in pre-amp 0 when saving)
[Imp] IT loading: Set "created with" version to 1.16 for modules that have been saved with ModPlug 1.16 or older
[Fix] IT compatibility: Improved retrigger compatibility even more (#15)
[Fix] IT compatibility: SD0 / SC0 is now interpreted as SD1 / SC1 in compatibility mode (test #22)
[Fix] S3M compatibility: Notes with SD0 are now ignored, SC0 is completely ignored
[Fix] IT compatibility: Portamento up / down resets the destination of tone portamento (test #23)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-12 12:25:38 UTC (rev 293)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-12 14:17:41 UTC (rev 294)
@@ -2694,7 +2694,11 @@
break;
case 0xC0: // note cut
case 0xD0: // note delay
- strcat(s, " frames");
+ //IT compatibility 22. SD0 == SD1, SC0 == SC1
+ if(((param & 0x0F) == 1) || ((param & 0x0F) == 0 && (m_SndFile.GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT)) && m_SndFile.GetModFlag(MSF_COMPATIBLE_PLAY)))
+ strcpy(s, "1 frame");
+ else
+ strcat(s, " frames");
break;
case 0xE0: // pattern delay (rows)
strcat(s, " rows");
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-12 12:25:38 UTC (rev 293)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-12 14:17:41 UTC (rev 294)
@@ -962,6 +962,8 @@
(pifh->cwtv == 0x217 && pifh->cmwt == 0x200)) interpretModplugmade = true;
//TODO: Check whether above interpretation is reasonable especially for
//values 0x217 and 0x200 which are the values used in 1.16.
+ if(pifh->cwtv == 0x217 && pifh->cmwt == 0x200)
+ m_dwCreatedWithVersion = MAKE_VERSION_NUMERIC(1, 16, 0, 0);
}
}
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-12 12:25:38 UTC (rev 293)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-12 14:17:41 UTC (rev 294)
@@ -531,7 +531,7 @@
header[0x30] = m_nDefaultGlobalVolume >> 2;
header[0x31] = m_nDefaultSpeed;
header[0x32] = m_nDefaultTempo;
- header[0x33] = ((m_nSamplePreAmp < 0x20) ? 0x20 : m_nSamplePreAmp) | 0x80; // Stereo
+ header[0x33] = min(max(0x20, m_nSamplePreAmp), 0x7F); // Stereo
header[0x35] = 0xFC;
for (i=0; i<32; i++)
{
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 12:25:38 UTC (rev 293)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 14:17:41 UTC (rev 294)
@@ -298,7 +298,7 @@
if (!(m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT))) param <<= 1;
if(GetModFlag(MSF_COMPATIBLE_PLAY))
{
- // both FT2 and IT ignore out-of-range values
+ //IT compatibility 16. Both FT2 and IT ignore out-of-range values
if (param <= 128)
nGlbVol = param << 1;
}
@@ -312,6 +312,7 @@
case CMD_GLOBALVOLSLIDE:
if(GetModFlag(MSF_COMPATIBLE_PLAY))
{
+ //IT compatibility 16. Global volume slide params are stored per channel (FT2/IT)
if (param) pChn->nOldGlobalVolSlide = param; else param = pChn->nOldGlobalVolSlide;
}
else
@@ -746,6 +747,7 @@
pChn->dwFlags |= CHN_FASTVOLRAMP;
if(!GetModFlag(MSF_COMPATIBLE_PLAY))
{
+ //IT compatibility 15. Retrigger (Tremor doesn't store anything here, so we just don't reset this as well)
pChn->nRetrigCount = 0;
pChn->nTremorCount = 0;
}
@@ -1164,6 +1166,15 @@
if ((param & 0xF0) == 0xD0)
{
nStartTick = param & 0x0F;
+ if(nStartTick == 0)
+ {
+ //IT compatibility 22. SD0 == SD1
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
+ nStartTick = 1;
+ //ST3 ignores notes with SD0 completely
+ else if(m_nType & MOD_TYPE_S3M|MOD_TYPE_MPT)
+ nStartTick = m_nMusicSpeed;
+ }
//IT compatibility 08. Handling of out-of-range delay command.
if(nStartTick >= m_nMusicSpeed && GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT) && GetModFlag(MSF_COMPATIBLE_PLAY))
@@ -1397,6 +1408,7 @@
break;
case VOLCMD_PORTAUP:
+ //IT compatibility (one of the first - link effect memory)
if((GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
PortamentoUp(pChn, vol << 2, true);
else
@@ -1404,6 +1416,7 @@
break;
case VOLCMD_PORTADOWN:
+ //IT compatibility (one of the first - link effect memory)
if((GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
PortamentoDown(pChn, vol << 2, true);
else
@@ -1535,21 +1548,22 @@
}
if(!GetModFlag(MSF_COMPATIBLE_PLAY))
{
- if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF); else param = pChn->nRetrigParam;
- //rewbs.volOffset
- //RetrigNote(nChn, param);
- if (volcmd == VOLCMD_OFFSET)
- RetrigNote(nChn, param, vol<<3);
- else if (volcmd == VOLCMD_VELOCITY)
- RetrigNote(nChn, param, 48-(vol << 3));
- else
- RetrigNote(nChn, param);
- //end rewbs.volOffset:
+ if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF); else param = pChn->nRetrigParam;
+ //rewbs.volOffset
+ //RetrigNote(nChn, param);
+ if (volcmd == VOLCMD_OFFSET)
+ RetrigNote(nChn, param, vol<<3);
+ else if (volcmd == VOLCMD_VELOCITY)
+ RetrigNote(nChn, param, 48-(vol << 3));
+ else
+ RetrigNote(nChn, param);
+ //end rewbs.volOffset:
}
else
{
- if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF);
- RetrigNote(nChn, pChn->nRetrigParam);
+ //IT compatibility 15. Retrigger
+ if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF);
+ RetrigNote(nChn, pChn->nRetrigParam);
}
break;
@@ -1567,7 +1581,7 @@
if (!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) param <<= 1;
if(GetModFlag(MSF_COMPATIBLE_PLAY))
{
- // both FT2 and IT ignore out-of-range values
+ //IT compatibility 16. Both FT2 and IT ignore out-of-range values
if (param <= 128)
m_nGlobalVolume = param << 1;
}
@@ -1580,6 +1594,7 @@
// Global Volume Slide
case CMD_GLOBALVOLSLIDE:
+ //IT compatibility 16. Saving last global volume slide param per channel (FT2/IT)
if(GetModFlag(MSF_COMPATIBLE_PLAY))
GlobalVolSlide(param, &pChn->nOldGlobalVolSlide);
else
@@ -1636,7 +1651,7 @@
case CMD_KEYOFF:
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)))
{
- // This is how it's supposed to sound...
+ // This is how it's supposed to sound... (in FT2)
if (m_nTickCount == param)
{
// XM: Key-Off + Sample == Note Cut
@@ -1698,6 +1713,7 @@
if(!GetModFlag(MSF_COMPATIBLE_PLAY) || !(m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)))
{
+ // FT2 only sets the position of the Volume envelope
pChn->nPanEnvPosition = param;
pChn->nPitchEnvPosition = param;
if (pChn->pHeader)
@@ -1905,6 +1921,10 @@
{
DoFreqSlide(pChn, -(int)(param * 4));
}
+
+ //IT compatibility 23. Portamento with no note
+ if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ pChn->nPortamentoDest = 0;
}
@@ -1947,6 +1967,9 @@
DoFreqSlide(pChn, (int)(param << 2));
}
+ //IT compatibility 23. Portamento with no note
+ if((m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) && GetModFlag(MSF_COMPATIBLE_PLAY))
+ pChn->nPortamentoDest = 0;
}
void CSoundFile::MidiPortamento(MODCHANNEL *pChn, int param)
@@ -2381,6 +2404,7 @@
//case 0x80: if (!m_nTickCount) { pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP; } break;
case 0x80: if (!m_nTickCount)
{
+ //IT compatibility (Panning always resets surround state)
if( TypeIsIT_MPT_XM() == false || GetModFlag(MSF_COMPATIBLE_PLAY) )
{
if (!(m_dwSongFlags & SONG_SURROUNDPAN)) pChn->dwFlags &= ~CHN_SURROUND;
@@ -2951,7 +2975,7 @@
if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
{
- // IT retrigger behaviour
+ //IT compatibility 15. Retrigger
if (!m_nTickCount && pChn->nRowNote)
{
pChn->nRetrigCount = param & 0xf;
@@ -3075,6 +3099,16 @@
void CSoundFile::NoteCut(UINT nChn, UINT nTick)
//---------------------------------------------
{
+ if(nTick == 0)
+ {
+ //IT compatibility 22. SC0 == SC1
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
+ nTick = 1;
+ // ST3 doesn't cut notes with SC0
+ else if(m_nType & MOD_TYPE_S3M)
+ return;
+ }
+
if (m_nTickCount == nTick)
{
MODCHANNEL *pChn = &Chn[nChn];
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-12 12:25:38 UTC (rev 293)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-12 14:17:41 UTC (rev 294)
@@ -636,6 +636,12 @@
Chn[ich].dwFlags = ChnSettings[ich].dwFlags;
Chn[ich].nVolume = 256;
Chn[ich].nCutOff = 0x7F;
+ //IT compatibility 15. Retrigger
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ Chn[ich].nRetrigParam = 1;
+ Chn[ich].nRetrigCount = 0;
+ }
}
// Checking instruments
MODINSTRUMENT *pins = Ins;
@@ -1135,7 +1141,13 @@
Chn[j].nCommand = 0;
Chn[j].nPatternLoopCount = 0;
Chn[j].nPatternLoop = 0;
- if(!GetModFlag(MSF_COMPATIBLE_PLAY)) Chn[j].nTremorCount = 0;
+ //IT compatibility 15. Retrigger
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ Chn[j].nRetrigCount = 0;
+ Chn[j].nRetrigParam = 1;
+ }
+ Chn[j].nTremorCount = Chn[j].nTremorOn = Chn[j].nTremorOff = 0;
}
if (!nPos)
{
@@ -1395,6 +1407,12 @@
Chn[i].nPatternLoop = 0;
Chn[i].nFadeOutVol = 0;
Chn[i].dwFlags |= CHN_KEYOFF|CHN_NOTEFADE;
+ //IT compatibility 15. Retrigger
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ Chn[i].nRetrigParam = 1;
+ Chn[i].nRetrigCount = 0;
+ }
Chn[i].nTremorCount = Chn[i].nTremorOn = Chn[i].nTremorOff = 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-12 12:25:43
|
Revision: 293
http://modplug.svn.sourceforge.net/modplug/?rev=293&view=rev
Author: saga-games
Date: 2009-07-12 12:25:38 +0000 (Sun, 12 Jul 2009)
Log Message:
-----------
[Fix] Pattern editor: Set max. row spacing / skipping value to 64, visibly clamp values > 64 to 64 in the edit box, skip to next pattern if continuous scroll is enabled
[Fix] Playback: Global volume will be set correctly when skipping around in the module (accidentally broke this in rev. 290)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_pat.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/View_pat.h
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-11 19:18:24 UTC (rev 292)
+++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-12 12:25:38 UTC (rev 293)
@@ -167,7 +167,7 @@
m_EditOrderListMargins.SetParent(this);
m_EditOrderListMargins.SetLimitText(3);
// Spin controls
- m_SpinSpacing.SetRange(0, 16);
+ m_SpinSpacing.SetRange(0, MAX_SPACING);
m_SpinSpacing.SetPos(CMainFrame::gnPatternSpacing);
m_SpinInstrument.SetRange(-1, 1);
@@ -716,7 +716,11 @@
if ((m_EditSpacing.m_hWnd) && (m_EditSpacing.GetWindowTextLength() > 0))
{
CMainFrame::gnPatternSpacing = GetDlgItemInt(IDC_EDIT_SPACING);
- if (CMainFrame::gnPatternSpacing > 16) CMainFrame::gnPatternSpacing = 16;
+ if (CMainFrame::gnPatternSpacing > MAX_SPACING)
+ {
+ CMainFrame::gnPatternSpacing = MAX_SPACING;
+ SetDlgItemInt(IDC_EDIT_SPACING, CMainFrame::gnPatternSpacing, FALSE);
+ }
SendViewMessage(VIEWMSG_SETSPACING, CMainFrame::gnPatternSpacing);
}
}
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-11 19:18:24 UTC (rev 292)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2009-07-12 12:25:38 UTC (rev 293)
@@ -18,7 +18,6 @@
#include "midi.h"
#include <cmath>
-#define MAX_SPACING 16
#define PLUGNAME_HEIGHT 16 //rewbs.patPlugName
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -4167,8 +4166,9 @@
if ( bIsLiveRecord == false )
{
if ((m_nSpacing > 0) && (m_nSpacing <= MAX_SPACING)) {
- if (nRow+m_nSpacing<pSndFile->PatternSize[nPat]) {
- SetCurrentRow(nRow+m_nSpacing);
+
+ if (nRow + m_nSpacing < pSndFile->PatternSize[nPat] || (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL)) {
+ SetCurrentRow(nRow + m_nSpacing, (CMainFrame::m_dwPatternSetup & PATTERN_CONTSCROLL) ? true: false);
m_bLastNoteEntryBlocked=false;
} else {
m_bLastNoteEntryBlocked=true; // if the cursor is block by the end of the pattern here,
Modified: trunk/OpenMPT/mptrack/View_pat.h
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.h 2009-07-11 19:18:24 UTC (rev 292)
+++ trunk/OpenMPT/mptrack/View_pat.h 2009-07-12 12:25:38 UTC (rev 293)
@@ -30,6 +30,9 @@
#define PATSTATUS_PLUGNAMESINHEADERS 0x2000 //rewbs.patPlugName
#define PATSTATUS_PATTERNLOOP 0x4000
+// Row Spacing
+#define MAX_SPACING 64
+
enum {
NOTE_COLUMN=0,
INST_COLUMN,
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-11 19:18:24 UTC (rev 292)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-12 12:25:38 UTC (rev 293)
@@ -295,8 +295,6 @@
break;
// Global Volume
case CMD_GLOBALVOLUME:
- if (m_nTickCount) break;
-
if (!(m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT))) param <<= 1;
if(GetModFlag(MSF_COMPATIBLE_PLAY))
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-11 19:18:34
|
Revision: 292
http://modplug.svn.sourceforge.net/modplug/?rev=292&view=rev
Author: saga-games
Date: 2009-07-11 19:18:24 +0000 (Sat, 11 Jul 2009)
Log Message:
-----------
[Fix] Tremor: Two (not too important) lines were missing
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-11 18:53:31 UTC (rev 291)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-11 19:18:24 UTC (rev 292)
@@ -985,8 +985,6 @@
if (pifh->tempo) m_nDefaultTempo = pifh->tempo;
if(m_nDefaultTempo < 32) m_nDefaultTempo = 32; // tempo 31 is possible. due to conflicts with the rest of the engine, let's just clamp it to 32.
- if(m_nDefaultTempo < 32) m_nDefaultTempo = 32; // tempo 31 is possible. due to conflicts with the rest of the engine, let's just clamp it to 32.
-
m_nSamplePreAmp = pifh->mv & 0x7F;
if (m_nSamplePreAmp<0x20) {
m_nSamplePreAmp=100;
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-11 18:53:31 UTC (rev 291)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-11 19:18:24 UTC (rev 292)
@@ -1135,7 +1135,7 @@
Chn[j].nCommand = 0;
Chn[j].nPatternLoopCount = 0;
Chn[j].nPatternLoop = 0;
- Chn[j].nTremorCount = 0;
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY)) Chn[j].nTremorCount = 0;
}
if (!nPos)
{
@@ -1395,7 +1395,7 @@
Chn[i].nPatternLoop = 0;
Chn[i].nFadeOutVol = 0;
Chn[i].dwFlags |= CHN_KEYOFF|CHN_NOTEFADE;
- Chn[i].nTremorCount = 0;
+ Chn[i].nTremorCount = Chn[i].nTremorOn = Chn[i].nTremorOff = 0;
}
if(resetMask & 4)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-11 18:53:35
|
Revision: 291
http://modplug.svn.sourceforge.net/modplug/?rev=291&view=rev
Author: saga-games
Date: 2009-07-11 18:53:31 +0000 (Sat, 11 Jul 2009)
Log Message:
-----------
[Imp] Note properties: Explanation for Tremor effect
[Fix] Tremor: Sounds like in IT when compatible playback mode is turned on.
[Fix] IT loader: 31 BPM is an allowed default tempo. Tentative fix: Clamp to 32 (instead of 125)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.h
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-11 16:47:56 UTC (rev 290)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2009-07-11 18:53:31 UTC (rev 291)
@@ -2567,6 +2567,28 @@
strcpy(s, "continue");
break;
+ case CMD_TREMOR:
+ if(param)
+ {
+ BYTE ontime = param >> 4, offtime = param & 0x0F;
+ if(m_SndFile.m_dwSongFlags & SONG_ITOLDEFFECTS)
+ {
+ ontime++;
+ offtime++;
+ }
+ else
+ {
+ if(ontime == 0) ontime = 1;
+ if(offtime == 0) offtime = 1;
+ }
+ wsprintf(pszName, "ontime %d, offtime %d", ontime, offtime);
+ }
+ else
+ {
+ strcpy(s, "continue");
+ }
+ break;
+
case CMD_MIDI:
if (param < 0x80)
{
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-11 16:47:56 UTC (rev 290)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-11 18:53:31 UTC (rev 291)
@@ -983,6 +983,10 @@
}
if (pifh->speed) m_nDefaultSpeed = pifh->speed;
if (pifh->tempo) m_nDefaultTempo = pifh->tempo;
+ if(m_nDefaultTempo < 32) m_nDefaultTempo = 32; // tempo 31 is possible. due to conflicts with the rest of the engine, let's just clamp it to 32.
+
+ if(m_nDefaultTempo < 32) m_nDefaultTempo = 32; // tempo 31 is possible. due to conflicts with the rest of the engine, let's just clamp it to 32.
+
m_nSamplePreAmp = pifh->mv & 0x7F;
if (m_nSamplePreAmp<0x20) {
m_nSamplePreAmp=100;
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-11 16:47:56 UTC (rev 290)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-11 18:53:31 UTC (rev 291)
@@ -749,8 +749,8 @@
if(!GetModFlag(MSF_COMPATIBLE_PLAY))
{
pChn->nRetrigCount = 0;
+ pChn->nTremorCount = 0;
}
- pChn->nTremorCount = 0;
if (bResetEnv)
{
pChn->nVolSwing = pChn->nPanSwing = 0;
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2009-07-11 16:47:56 UTC (rev 290)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2009-07-11 18:53:31 UTC (rev 291)
@@ -546,7 +546,7 @@
BYTE nOldOffset, nOldHiOffset;
BYTE nCutOff, nResonance;
BYTE nRetrigCount, nRetrigParam;
- BYTE nTremorCount, nTremorParam;
+ BYTE nTremorCount, nTremorParam, nTremorOn, nTremorOff;
BYTE nPatternLoop, nPatternLoopCount;
BYTE nRowNote, nRowInstr;
BYTE nRowVolCmd, nRowVolume;
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-11 16:47:56 UTC (rev 290)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2009-07-11 18:53:31 UTC (rev 291)
@@ -986,18 +986,53 @@
}
// Tremor
- if (pChn->nCommand == CMD_TREMOR)
+ if(pChn->nCommand == CMD_TREMOR)
{
- UINT n = (pChn->nTremorParam >> 4) + (pChn->nTremorParam & 0x0F);
- UINT ontime = pChn->nTremorParam >> 4;
- if ((!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) || (m_dwSongFlags & SONG_ITOLDEFFECTS)) { n += 2; ontime++; }
- UINT tremcount = (UINT)pChn->nTremorCount;
- if (tremcount >= n) tremcount = 0;
- if ((m_nTickCount) || (m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT)))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
- if (tremcount >= ontime) vol = 0;
- pChn->nTremorCount = (BYTE)(tremcount + 1);
+ // Original IT behaviour
+ if(pChn->nTremorOn)
+ pChn->nTremorOn--;
+ if(!pChn->nTremorOn) {
+ if(pChn->nTremorOff)
+ {
+ vol = 0;
+ pChn->nTremorOff--;
+ }
+ else
+ {
+ pChn->nTremorOn = pChn->nTremorParam >> 4;
+ pChn->nTremorOff = pChn->nTremorParam & 0x0F;
+ if(m_dwSongFlags & SONG_ITOLDEFFECTS)
+ {
+ pChn->nTremorOn++;
+ pChn->nTremorOff++;
+ }
+ else
+ {
+ if (!pChn->nTremorOn) pChn->nTremorOn = 1;
+ if (!pChn->nTremorOff) pChn->nTremorOff = 1;
+ }
+ }
+ }
}
+ else
+ {
+ UINT n = (pChn->nTremorParam >> 4) + (pChn->nTremorParam & 0x0F);
+ UINT ontime = pChn->nTremorParam >> 4;
+ if ((!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) || (m_dwSongFlags & SONG_ITOLDEFFECTS))
+ {
+ n += 2;
+ ontime++;
+ }
+ UINT tremcount = (UINT)pChn->nTremorCount;
+ if (tremcount >= n) tremcount = 0;
+ if ((m_nTickCount) || (m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT)))
+ {
+ if (tremcount >= ontime) vol = 0;
+ pChn->nTremorCount = (BYTE)(tremcount + 1);
+ }
+ }
pChn->dwFlags |= CHN_FASTVOLRAMP;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-11 16:47:58
|
Revision: 290
http://modplug.svn.sourceforge.net/modplug/?rev=290&view=rev
Author: saga-games
Date: 2009-07-11 16:47:56 +0000 (Sat, 11 Jul 2009)
Log Message:
-----------
[Fix] patterns.bmp was broken
[Fix] IT / XM Compatibility: Out of range global volume, local global volume slides (Might need to re-align MODCHANNEL)
[Fix] IT Compatibility: Retrigger effect behaved slightly wrong
Modified Paths:
--------------
trunk/OpenMPT/mptrack/res/patterns.bmp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.h
Modified: trunk/OpenMPT/mptrack/res/patterns.bmp
===================================================================
(Binary files differ)
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-11 16:27:29 UTC (rev 289)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-11 16:47:56 UTC (rev 290)
@@ -295,13 +295,32 @@
break;
// Global Volume
case CMD_GLOBALVOLUME:
+ if (m_nTickCount) break;
+
if (!(m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT))) param <<= 1;
- if (param > 128) param = 128;
- nGlbVol = param << 1;
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ // both FT2 and IT ignore out-of-range values
+ if (param <= 128)
+ nGlbVol = param << 1;
+ }
+ else
+ {
+ if (param > 128) param = 128;
+ nGlbVol = param << 1;
+ }
break;
// Global Volume Slide
case CMD_GLOBALVOLSLIDE:
- if (param) nOldGlbVolSlide = param; else param = nOldGlbVolSlide;
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ if (param) pChn->nOldGlobalVolSlide = param; else param = pChn->nOldGlobalVolSlide;
+ }
+ else
+ {
+ if (param) nOldGlbVolSlide = param; else param = nOldGlbVolSlide;
+
+ }
if (((param & 0x0F) == 0x0F) && (param & 0xF0))
{
param >>= 4;
@@ -727,7 +746,10 @@
pChn->nLeftVU = pChn->nRightVU = 0xFF;
pChn->dwFlags &= ~CHN_FILTER;
pChn->dwFlags |= CHN_FASTVOLRAMP;
- pChn->nRetrigCount = 0;
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ pChn->nRetrigCount = 0;
+ }
pChn->nTremorCount = 0;
if (bResetEnv)
{
@@ -1513,6 +1535,8 @@
if (!(param & 0x0F)) param |= pChn->nRetrigParam & 0x0F;
param |= 0x100; // increment retrig count on first row
}
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF); else param = pChn->nRetrigParam;
//rewbs.volOffset
//RetrigNote(nChn, param);
@@ -1523,6 +1547,12 @@
else
RetrigNote(nChn, param);
//end rewbs.volOffset:
+ }
+ else
+ {
+ if (param) pChn->nRetrigParam = (BYTE)(param & 0xFF);
+ RetrigNote(nChn, pChn->nRetrigParam);
+ }
break;
// Tremor
@@ -1537,13 +1567,25 @@
if (m_nTickCount) break;
if (!(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))) param <<= 1;
- if (param > 128) param = 128;
- m_nGlobalVolume = param << 1;
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ {
+ // both FT2 and IT ignore out-of-range values
+ if (param <= 128)
+ m_nGlobalVolume = param << 1;
+ }
+ else
+ {
+ if (param > 128) param = 128;
+ m_nGlobalVolume = param << 1;
+ }
break;
// Global Volume Slide
case CMD_GLOBALVOLSLIDE:
- GlobalVolSlide(param);
+ if(GetModFlag(MSF_COMPATIBLE_PLAY))
+ GlobalVolSlide(param, &pChn->nOldGlobalVolSlide);
+ else
+ GlobalVolSlide(param, &m_nOldGlbVolSlide);
break;
// Set 8-bit Panning
@@ -2909,26 +2951,43 @@
UINT nRetrigCount = pChn->nRetrigCount;
BOOL bDoRetrig = FALSE;
- if (m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT))
+ if(GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
{
- if (!nRetrigSpeed) nRetrigSpeed = 1;
- if ((nRetrigCount) && (!(nRetrigCount % nRetrigSpeed))) bDoRetrig = TRUE;
- nRetrigCount++;
- } else
+ // IT retrigger behaviour
+ if (!m_nTickCount && pChn->nRowNote)
+ {
+ pChn->nRetrigCount = param & 0xf;
+ }
+ else if (!--pChn->nRetrigCount)
+ {
+ pChn->nRetrigCount = param & 0xf;
+ bDoRetrig = TRUE;
+ }
+ }
+ else
{
- UINT realspeed = nRetrigSpeed;
- if ((param & 0x100) && (pChn->nRowVolCmd == VOLCMD_VOLUME) && (pChn->nRowParam & 0xF0)) realspeed++;
- if ((m_nTickCount) || (param & 0x100))
+ if (m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT))
{
- if (!realspeed) realspeed = 1;
- if ((!(param & 0x100)) && (m_nMusicSpeed) && (!(m_nTickCount % realspeed))) bDoRetrig = TRUE;
+ if (!nRetrigSpeed) nRetrigSpeed = 1;
+ if ((nRetrigCount) && (!(nRetrigCount % nRetrigSpeed))) bDoRetrig = TRUE;
nRetrigCount++;
- } else if (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)) nRetrigCount = 0;
- if (nRetrigCount >= realspeed)
+ } else
{
- if ((m_nTickCount) || ((param & 0x100) && (!pChn->nRowNote))) bDoRetrig = TRUE;
+ UINT realspeed = nRetrigSpeed;
+ if ((param & 0x100) && (pChn->nRowVolCmd == VOLCMD_VOLUME) && (pChn->nRowParam & 0xF0)) realspeed++;
+ if ((m_nTickCount) || (param & 0x100))
+ {
+ if (!realspeed) realspeed = 1;
+ if ((!(param & 0x100)) && (m_nMusicSpeed) && (!(m_nTickCount % realspeed))) bDoRetrig = TRUE;
+ nRetrigCount++;
+ } else if (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)) nRetrigCount = 0;
+ if (nRetrigCount >= realspeed)
+ {
+ if ((m_nTickCount) || ((param & 0x100) && (!pChn->nRowNote))) bDoRetrig = TRUE;
+ }
}
}
+
if (bDoRetrig)
{
UINT dv = (param >> 4) & 0x0F;
@@ -2967,7 +3026,8 @@
SampleOffset(nChn, offset, false);
}
}
- pChn->nRetrigCount = (BYTE)nRetrigCount;
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY) || !(m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)))
+ pChn->nRetrigCount = (BYTE)nRetrigCount;
}
@@ -3191,11 +3251,11 @@
}
-void CSoundFile::GlobalVolSlide(UINT param)
+void CSoundFile::GlobalVolSlide(UINT param, UINT * nOldGlobalVolSlide)
//-----------------------------------------
{
LONG nGlbSlide = 0;
- if (param) m_nOldGlbVolSlide = param; else param = m_nOldGlbVolSlide;
+ if (param) *nOldGlobalVolSlide = param; else param = *nOldGlobalVolSlide;
if (((param & 0x0F) == 0x0F) && (param & 0xF0))
{
if (m_dwSongFlags & SONG_FIRSTTICK) nGlbSlide = (param >> 4) * 2;
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2009-07-11 16:27:29 UTC (rev 289)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2009-07-11 16:47:56 UTC (rev 290)
@@ -530,6 +530,7 @@
LONG nVolSwing, nPanSwing;
LONG nCutSwing, nResSwing;
LONG nRestorePanOnNewNote; //If > 0, nPan should be set to nRestorePanOnNewNote - 1 on new note. Used to recover from panswing.
+ UINT nOldGlobalVolSlide;
// 8-bit members
BYTE nRestoreResonanceOnNewNote; //Like above
BYTE nRestoreCutoffOnNewNote; //Like above
@@ -1160,7 +1161,7 @@
// Global Effects
void SetTempo(UINT param, bool setAsNonModcommand = false);
void SetSpeed(UINT param);
- void GlobalVolSlide(UINT param);
+ void GlobalVolSlide(UINT param, UINT * nOldGlobalVolSlide);
DWORD IsSongFinished(UINT nOrder, UINT nRow) const;
BOOL IsValidBackwardJump(UINT nStartOrder, UINT nStartRow, UINT nJumpOrder, UINT nJumpRow) const;
// Read/Write sample functions
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-11 16:27:33
|
Revision: 289
http://modplug.svn.sourceforge.net/modplug/?rev=289&view=rev
Author: saga-games
Date: 2009-07-11 16:27:29 +0000 (Sat, 11 Jul 2009)
Log Message:
-----------
[Fix] Treeview: Deleting patterns from a module will also reset their names
[Imp] Pattern editor: Echopaste switch
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_pat.cpp
trunk/OpenMPT/mptrack/Ctrl_pat.h
trunk/OpenMPT/mptrack/Ctrl_seq.cpp
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/res/patterns.bmp
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/soundlib/Load_mod.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-07-11 16:27:29 UTC (rev 289)
@@ -52,6 +52,7 @@
ON_COMMAND(ID_PATTERNDETAIL_LO, OnDetailLo)
ON_COMMAND(ID_PATTERNDETAIL_MED, OnDetailMed)
ON_COMMAND(ID_PATTERNDETAIL_HI, OnDetailHi)
+ ON_COMMAND(ID_ECHOPASTE, OnToggleEchoPaste)
ON_CBN_SELCHANGE(IDC_COMBO_INSTRUMENT, OnInstrumentChanged)
// -> CODE#0012
// -> DESC="midi keyboard split"
@@ -157,6 +158,7 @@
m_ToolBar.AddButton(ID_PATTERNDETAIL_MED, 31, TBSTYLE_CHECK, TBSTATE_ENABLED);
m_ToolBar.AddButton(ID_PATTERNDETAIL_HI, 32, TBSTYLE_CHECK, TBSTATE_ENABLED|TBSTATE_CHECKED);
m_ToolBar.AddButton(ID_SEPARATOR, 0, TBSTYLE_SEP);
+ m_ToolBar.AddButton(ID_ECHOPASTE, 38, TBSTYLE_CHECK, ((CMainFrame::m_dwPatternSetup & PATTERN_ECHOPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED);
// Special edit controls -> tab switch to view
m_EditSpacing.SetParent(this);
@@ -295,6 +297,7 @@
// -> CODE#0007
// -> DESC="uncheck follow song checkbox by default"
CheckDlgButton(IDC_PATTERN_FOLLOWSONG, (CMainFrame::m_dwPatternSetup & PATTERN_FOLLOWSONGOFF) ? MF_UNCHECKED : MF_CHECKED);
+ m_ToolBar.SetState(ID_ECHOPASTE, ((CMainFrame::m_dwPatternSetup & PATTERN_ECHOPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED);
// -! BEHAVIOUR_CHANGE#0007
}
if (dwHintMask & (HINT_MODTYPE|HINT_INSNAMES|HINT_SMPNAMES|HINT_PATNAMES))
@@ -1175,6 +1178,13 @@
SwitchToView();
}
+void CCtrlPatterns::OnToggleEchoPaste()
+//-------------------------------------
+{
+ CMainFrame::m_dwPatternSetup ^= PATTERN_ECHOPASTE;
+ UpdateView(HINT_MPTOPTIONS, NULL);
+ SwitchToView();
+}
//rewbs.introVST
void CCtrlPatterns::TogglePluginEditor()
Modified: trunk/OpenMPT/mptrack/Ctrl_pat.h
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_pat.h 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/mptrack/Ctrl_pat.h 2009-07-11 16:27:29 UTC (rev 289)
@@ -215,6 +215,8 @@
afx_msg void OnUpdateRecord(CCmdUI *pCmdUI);
afx_msg void TogglePluginEditor(); //rewbs.instroVST
afx_msg void ToggleSplitPluginEditor(); //rewbs.instroVST
+ afx_msg void OnToggleEchoPaste();
+
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2009-07-11 16:27:29 UTC (rev 289)
@@ -813,12 +813,11 @@
if (m_pModDoc)
{
CSoundFile *pSndFile = m_pModDoc->GetSoundFile();
- const int nSeqLengthMinusOne = pSndFile->Order.size()-1;
- for (int i=m_nScrollPos; i<nSeqLengthMinusOne; i++) pSndFile->Order[i] = pSndFile->Order[i+1];
- pSndFile->Order[pSndFile->Order.size()-1] = pSndFile->Order.GetInvalidPatIndex();
+
+ m_pModDoc->RemoveOrder(m_nScrollPos);
InvalidateRect(NULL, FALSE);
- m_pModDoc->SetModified();
m_pModDoc->UpdateAllViews(NULL, HINT_MODSEQUENCE, this);
+
UINT nNewOrd = pSndFile->Order[m_nScrollPos];
if ((nNewOrd < pSndFile->Patterns.Size()) && (pSndFile->Patterns[nNewOrd]) && (m_pParent))
{
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2009-07-11 16:27:29 UTC (rev 289)
@@ -2579,6 +2579,7 @@
ID_PATTERNDETAIL_MED "Medium pattern detail level\nMedium pattern detail level"
ID_PATTERNDETAIL_HI "High pattern detail level\nHigh pattern detail level"
ID_PATTERN_AMPLIFY "Amplify selection\nAmplify"
+ ID_ECHOPASTE "Toggle echo paste\nToggle echo paste"
END
STRINGTABLE
Modified: trunk/OpenMPT/mptrack/res/patterns.bmp
===================================================================
(Binary files differ)
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/mptrack/resource.h 2009-07-11 16:27:29 UTC (rev 289)
@@ -1078,13 +1078,14 @@
#define ID_CLEANUP_COMPO 59221
#define ID_SAMPLE_DRAW 59224
#define ID_SAMPLE_ADDSILENCE 59225
+#define ID_ECHOPASTE 59226
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 518
-#define _APS_NEXT_COMMAND_VALUE 59226
+#define _APS_NEXT_COMMAND_VALUE 59227
#define _APS_NEXT_CONTROL_VALUE 2360
#define _APS_NEXT_SYMED_VALUE 901
#endif
Modified: trunk/OpenMPT/soundlib/Load_mod.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/soundlib/Load_mod.cpp 2009-07-11 16:27:29 UTC (rev 289)
@@ -41,7 +41,7 @@
case 0x0D: command = CMD_PATTERNBREAK; param = ((param >> 4) * 10) + (param & 0x0F); break;
case 0x0E: command = CMD_MODCMDEX; break;
case 0x0F: command = (param <= (UINT)((m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)) ? 0x1F : 0x20)) ? CMD_SPEED : CMD_TEMPO;
- if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break; //<rewbs> what the hell is this?! :)
+ if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break; //<rewbs> what the hell is this?! :) //<jojo> it's the "stop tune" command! :-P
// Extension for XM extended effects
case 'G' - 55: command = CMD_GLOBALVOLUME; break; //16
case 'H' - 55: command = CMD_GLOBALVOLSLIDE; if (param & 0xF0) param &= 0xF0; break;
@@ -285,7 +285,7 @@
}
if (i >= nbpbuggy2) nbpbuggy2 = i+1;
}
- for (UINT iend=norders; iend<MAX_ORDERS; iend++) Order[iend] = 0xFF;
+ for (UINT iend=norders; iend<MAX_ORDERS; iend++) Order[iend] = Order.GetInvalidPatIndex();
norders--;
m_nRestartPos = pMagic->nRestartPos;
if (m_nRestartPos >= 0x78) m_nRestartPos = 0;
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-08 22:23:42 UTC (rev 288)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-11 16:27:29 UTC (rev 289)
@@ -2585,7 +2585,7 @@
if (!m_lpszPatternNames) m_nPatternNames = 0;
if (nPat >= m_nPatternNames)
{
- if (!lpszName[0]) return TRUE;
+ //if (!lpszName[0]) return TRUE;
UINT len = (nPat+1)*MAX_PATTERNNAME;
CHAR *p = new CHAR[len];
if (!p) return FALSE;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-08 22:24:01
|
Revision: 288
http://modplug.svn.sourceforge.net/modplug/?rev=288&view=rev
Author: saga-games
Date: 2009-07-08 22:23:42 +0000 (Wed, 08 Jul 2009)
Log Message:
-----------
[Fix] Patterns: Reset pattern name when deleting pattern
[Fix] Sample drawing: Disable sample drawing button when the sample is actually empty
[Fix] DC offset removal: Selection detection was buggy
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/View_smp.cpp
trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-08 18:38:38 UTC (rev 287)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-07-08 22:23:42 UTC (rev 288)
@@ -1441,6 +1441,7 @@
BEGIN_CRITICAL();
LPVOID p = m_SndFile.Patterns[n];
m_SndFile.Patterns[n] = NULL;
+ m_SndFile.SetPatternName(n, "");
CSoundFile::FreePattern(p);
END_CRITICAL();
SetModified();
Modified: trunk/OpenMPT/mptrack/View_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_smp.cpp 2009-07-08 18:38:38 UTC (rev 287)
+++ trunk/OpenMPT/mptrack/View_smp.cpp 2009-07-08 22:23:42 UTC (rev 288)
@@ -1087,7 +1087,7 @@
{
case ID_SAMPLE_DRAW:
if(m_bDrawingEnabled) dwStyle |= NCBTNS_CHECKED;
- if(pSndFile->Ins[m_nSample].GetNumChannels() > 1) dwStyle |= NCBTNS_DISABLED;
+ if(pSndFile->Ins[m_nSample].GetNumChannels() > 1 || pSndFile->Ins[m_nSample].pSample == nullptr) dwStyle |= NCBTNS_DISABLED;
break;
}
Modified: trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
===================================================================
--- trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-08 18:38:38 UTC (rev 287)
+++ trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2009-07-08 22:23:42 UTC (rev 288)
@@ -280,7 +280,7 @@
RemoveOffsetAndNormalize( reinterpret_cast<int8*>(pins->pSample) + iStart, iEnd - iStart, dOffset, dAmplify);
// step 3: adjust global vol (if available)
- if((modtype & (MOD_TYPE_IT | MOD_TYPE_MPT)) && (iStart == 0) && (iEnd = pins->nLength))
+ if((modtype & (MOD_TYPE_IT | MOD_TYPE_MPT)) && (iStart == 0) && (iEnd == pins->nLength))
pins->nGlobalVol = min((WORD)(pins->nGlobalVol / dAmplify), 64);
AdjustEndOfSample(smp, pSndFile);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2009-07-08 18:38:42
|
Revision: 287
http://modplug.svn.sourceforge.net/modplug/?rev=287&view=rev
Author: relabsoluness
Date: 2009-07-08 18:38:38 +0000 (Wed, 08 Jul 2009)
Log Message:
-----------
Project settings:
-Added VS2008 project files and a few build directives(see Stdafx.h).
-Configuration change: Debug build will now use DLL libraries.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Stdafx.h
trunk/OpenMPT/mptrack/mptrack.vcproj
Added Paths:
-----------
trunk/OpenMPT/mptrack/MPTRACK_08.sln
trunk/OpenMPT/mptrack/mptrack_08.vcproj
trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
trunk/OpenMPT/unlha/unlha_08.vcproj
trunk/OpenMPT/unrar/unrar_08.vcproj
trunk/OpenMPT/unzip/unzip_08.vcproj
trunk/OpenMPT/xsoundlib/xsoundlib_08.vcproj
Added: trunk/OpenMPT/mptrack/MPTRACK_08.sln
===================================================================
--- trunk/OpenMPT/mptrack/MPTRACK_08.sln (rev 0)
+++ trunk/OpenMPT/mptrack/MPTRACK_08.sln 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,55 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mptrack", "mptrack_08.vcproj", "{21D95071-FB97-4E69-B3B1-050D0D4A5021}"
+ ProjectSection(ProjectDependencies) = postProject
+ {44316F22-904E-48AA-B841-5A3A6AC77319} = {44316F22-904E-48AA-B841-5A3A6AC77319}
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8} = {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896} = {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B} = {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlha", "..\unlha\unlha_08.vcproj", "{FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unrar", "..\unrar\unrar_08.vcproj", "{FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unzip", "..\unzip\unzip_08.vcproj", "{44316F22-904E-48AA-B841-5A3A6AC77319}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xsoundlib", "..\xsoundlib\xsoundlib_08.vcproj", "{DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\soundtouch\soundtouch_08.vcproj", "{CF3C2CA5-5D45-4635-BBA4-C1F435E10896}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Debug|Win32.ActiveCfg = Debug|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Debug|Win32.Build.0 = Debug|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Release|Win32.ActiveCfg = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Release|Win32.Build.0 = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Debug|Win32.Build.0 = Debug|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Release|Win32.ActiveCfg = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Release|Win32.Build.0 = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Debug|Win32.Build.0 = Debug|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Release|Win32.ActiveCfg = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Release|Win32.Build.0 = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Debug|Win32.ActiveCfg = Debug|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Debug|Win32.Build.0 = Debug|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Release|Win32.ActiveCfg = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Release|Win32.Build.0 = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Debug|Win32.Build.0 = Debug|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Release|Win32.ActiveCfg = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Release|Win32.Build.0 = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Debug|Win32.Build.0 = Debug|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Release|Win32.ActiveCfg = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Modified: trunk/OpenMPT/mptrack/Stdafx.h
===================================================================
--- trunk/OpenMPT/mptrack/Stdafx.h 2009-07-08 14:45:05 UTC (rev 286)
+++ trunk/OpenMPT/mptrack/Stdafx.h 2009-07-08 18:38:38 UTC (rev 287)
@@ -29,6 +29,9 @@
#define MMNODRV
#define MMNOMCI
+//#define _CRT_SECURE_NO_WARNINGS // Define to disable the "This function or variable may be unsafe" warnings.
+#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
+#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 1
#include <afxwin.h> // MFC core and standard components
Modified: trunk/OpenMPT/mptrack/mptrack.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.vcproj 2009-07-08 14:45:05 UTC (rev 286)
+++ trunk/OpenMPT/mptrack/mptrack.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -17,7 +17,7 @@
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="1"
- UseOfMFC="1"
+ UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCCLCompilerTool"
@@ -28,7 +28,7 @@
PreprocessorDefinitions="_DEBUG,WIN32,_WINDOWS,ENABLE_EQ,MODPLUG_TRACKER,NO_PACKING,HAVE_DOT_NET,ENABLE_AMD,ENABLE_SSE,ENABLE_AMDNOW,ENABLE_MMX"
StringPooling="TRUE"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
EnableFunctionLevelLinking="TRUE"
ForceConformanceInForLoopScope="TRUE"
Added: trunk/OpenMPT/mptrack/mptrack_08.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack_08.vcproj (rev 0)
+++ trunk/OpenMPT/mptrack/mptrack_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,1237 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="mptrack"
+ ProjectGUID="{21D95071-FB97-4E69-B3B1-050D0D4A5021}"
+ RootNamespace="mptrack"
+ Keyword="MFCProj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="2"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/mptrack.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/EHsc"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\unlha,..\unzip,..\unrar,..\soundlib,..\include,..\xsoundlib,..\"
+ PreprocessorDefinitions="_DEBUG,WIN32,_WINDOWS,ENABLE_EQ,MODPLUG_TRACKER,NO_PACKING,HAVE_DOT_NET,ENABLE_AMD,ENABLE_SSE,ENABLE_AMDNOW,ENABLE_MMX"
+ StringPooling="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ ForceConformanceInForLoopScope="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile=".\Debug/mptrack.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="false"
+ DebugInformationFormat="4"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib delayimp.lib"
+ OutputFile=".\Debug/mptrack.exe"
+ Version="5.0"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=""
+ DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ ProgramDatabaseFile=".\Debug/mptrack.pdb"
+ GenerateMapFile="true"
+ MapFileName=".\Debug/mptrack.map"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="$(ProjectDir)res/rt_manif.bin"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="1"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Bin/mptrack.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/EHsc /O2"
+ Optimization="2"
+ InlineFunctionExpansion="2"
+ AdditionalIncludeDirectories="..\unlha,..\unzip,..\unrar,..\soundlib,..\include,..\xsoundlib,..\"
+ PreprocessorDefinitions="NDEBUG,WIN32,_WINDOWS,ENABLE_MMX,ENABLE_EQ,MODPLUG_TRACKER,NO_PACKING,HAVE_DOT_NET,ENABLE_AMD,ENABLE_SSE,ENABLE_AMDNOW"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="false"
+ ForceConformanceInForLoopScope="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile=".\Release/mptrack.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="false"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib delayimp.lib"
+ OutputFile=".\Bin/mptrack.exe"
+ Version="5.0"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=""
+ DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ GenerateDebugInformation="true"
+ GenerateMapFile="false"
+ MapFileName=".\Release/mptrack.map"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ AdditionalManifestFiles="$(ProjectDir)res/rt_manif.bin"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\AbstractVstEditor.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ArrayUtils.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\AutoSaver.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ChannelManagerDlg.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ChildFrm.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ColourEdit.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CommandSet.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CreditStatic.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_gen.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_ins.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_pat.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_seq.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_smp.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\DefaultVstEditor.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\dlg_misc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\dlsbank.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\draw_pat.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\EffectVis.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Fastmix.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\fxp.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\globals.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\HyperEdit.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\HyperEdit2.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\HyperEdit3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="InputHandler.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\KeyConfigDlg.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_669.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\load_amf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_ams.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\load_dbm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\load_dmf.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_dsm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_far.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_gdm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_it.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_mdl.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_med.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\load_mid.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_mo3.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_mod.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\load_mt2.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_mtm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_okt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\load_psm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\load_ptm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_s3m.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_stm.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_ult.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\Load_umx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_wav.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Load_xm.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mainbar.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\MainFrm.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\MIDIMappingDialog.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\misc_util.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\mmcmp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Mmx_mix.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mod2midi.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mod2wave.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\mod_specifications.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\moddoc.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\modedit.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\modsmp_ctrl.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Moptions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\MoveFXSlotDialog.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Mpdlgs.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mpt_midi.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mptrack.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mptrack.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLControl.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLDevice.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLEditor.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\OrderToPatternTable.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\pattern.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\patternContainer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternGotoDialog.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PerformanceCounter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\PlaybackEventer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PSRatioCalc.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Sampleio.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ScaleEnvPointsDlg.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\serialization_utils.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\snd_dsp.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\snd_eq.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\snd_flt.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Snd_fx.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\Snd_rvb.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AssemblerOutput="4"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Soundlib\snddev.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Sndfile.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Sndmix.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\SoundFilePlayConfig.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\StdAfx.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\soundlib\Tables.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_com.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_gen.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_ins.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_pat.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_smp.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_tre.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\VSTEditor.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\vstplug.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\Waveform.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\WindowedFIR.cpp"
+ >
+ </File>
+ <Filter
+ Name="PatternRandomizer"
+ >
+ <File
+ RelativePath=".\PatternRandomizer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizer.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUI.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUI.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIEffect.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIEffect.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIInstrument.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIInstrument.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUINote.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUINote.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIVolCmd.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternRandomizerGUIVolCmd.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="MixGraph"
+ >
+ <File
+ RelativePath=".\ChannelNode.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ChannelNode.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_graph.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_graph.h"
+ >
+ </File>
+ <File
+ RelativePath=".\EffectNode.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\EffectNode.h"
+ >
+ </File>
+ <File
+ RelativePath=".\FinalNode.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\FinalNode.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Graph.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Graph.h"
+ >
+ </File>
+ <File
+ RelativePath=".\InstrumentNode.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\InstrumentNode.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Node.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Node.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Vertex.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\Vertex.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_graph.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\view_graph.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Tuning"
+ >
+ <File
+ RelativePath="..\soundlib\tuning.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\tuningbase.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\tuningCollection.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\TuningDialog.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\tuningRatioMapWnd.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="res\bitmap1.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\colors.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\dragging.cur"
+ >
+ </File>
+ <File
+ RelativePath=".\Res\envbar.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\img_list.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\mainbar.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\moddoc.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\res\MPTRACK.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\mptrack.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\res\mptrack.rc2"
+ >
+ </File>
+ <File
+ RelativePath=".\Res\nodrag.cur"
+ >
+ </File>
+ <File
+ RelativePath=".\res\nodrop.cur"
+ >
+ </File>
+ <File
+ RelativePath=".\res\patterns.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\rt_manif.bin"
+ >
+ </File>
+ <File
+ RelativePath=".\Res\smptoolb.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\splashno.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\view_pat.bmp"
+ >
+ </File>
+ <File
+ RelativePath=".\res\vumeters.bmp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath=".\AbstractVstEditor.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ArrayUtils.h"
+ >
+ </File>
+ <File
+ RelativePath=".\AutoSaver.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ChannelManagerDlg.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ChildFrm.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ColourEdit.h"
+ >
+ </File>
+ <File
+ RelativePath=".\CommandSet.h"
+ >
+ </File>
+ <File
+ RelativePath=".\CreditStatic.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_com.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_gen.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_ins.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_pat.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ctrl_smp.h"
+ >
+ </File>
+ <File
+ RelativePath=".\DefaultVstEditor.h"
+ >
+ </File>
+ <File
+ RelativePath=".\dlg_misc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\Dlsbank.h"
+ >
+ </File>
+ <File
+ RelativePath=".\EffectVis.h"
+ >
+ </File>
+ <File
+ RelativePath=".\fxp.h"
+ >
+ </File>
+ <File
+ RelativePath=".\globals.h"
+ >
+ </File>
+ <File
+ RelativePath="InputHandler.h"
+ >
+ </File>
+ <File
+ RelativePath=".\KeyboardSettings.h"
+ >
+ </File>
+ <File
+ RelativePath=".\KeyConfigDlg.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mainbar.h"
+ >
+ </File>
+ <File
+ RelativePath=".\MainFrm.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\midi.h"
+ >
+ </File>
+ <File
+ RelativePath=".\MIDIMappingDialog.h"
+ >
+ </File>
+ <File
+ RelativePath=".\misc_util.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mod2midi.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mod2wave.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\mod_specifications.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\modcommand.h"
+ >
+ </File>
+ <File
+ RelativePath=".\moddoc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\modsmp_ctrl.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Moptions.h"
+ >
+ </File>
+ <File
+ RelativePath=".\MoveFXSlotDialog.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Mpdlgs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mptrack.h"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLControl.h"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLDevice.h"
+ >
+ </File>
+ <File
+ RelativePath=".\OpenGLEditor.h"
+ >
+ </File>
+ <File
+ RelativePath=".\order.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\OrderToPatternTable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\pattern.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\patternContainer.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PatternGotoDialog.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PerformanceCounter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\PlaybackEventer.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PSRatioCalc.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ScaleEnvPointsDlg.h"
+ >
+ </File>
+ <File
+ RelativePath=".\serialization_utils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\snddev.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\snddevx.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Soundlib\Sndfile.h"
+ >
+ </File>
+ <File
+ RelativePath=".\SoundFilePlayConfig.h"
+ >
+ </File>
+ <File
+ RelativePath=".\StdAfx.h"
+ >
+ </File>
+ <File
+ RelativePath=".\typedefs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\version.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_com.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_gen.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_ins.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_pat.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_smp.h"
+ >
+ </File>
+ <File
+ RelativePath=".\view_tre.h"
+ >
+ </File>
+ <File
+ RelativePath=".\VSTEditor.h"
+ >
+ </File>
+ <File
+ RelativePath=".\vstplug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\wavConverter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\WindowedFIR.h"
+ >
+ </File>
+ <Filter
+ Name="tuning"
+ >
+ <File
+ RelativePath="..\soundlib\tuning.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\tuningbase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\soundlib\tuningcollection.h"
+ >
+ </File>
+ <File
+ RelativePath=".\TuningDialog.h"
+ >
+ </File>
+ <File
+ RelativePath=".\tuningRatioMapWnd.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="test"
+ >
+ <File
+ RelativePath=".\test\test.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\test\test.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath=".\mptrack.reg"
+ >
+ </File>
+ <File
+ RelativePath=".\VTune\mptrack.vpj"
+ >
+ </File>
+ </Files>
+ <Globals>
+ <Global
+ Name="RESOURCE_FILE"
+ Value="mptrack.rc"
+ />
+ </Globals>
+</VisualStudioProject>
Added: trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch_08.vcproj (rev 0)
+++ trunk/OpenMPT/soundtouch/soundtouch_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="SoundTouch"
+ ProjectGUID="{CF3C2CA5-5D45-4635-BBA4-C1F435E10896}"
+ RootNamespace="soundtouch"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="0"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOUNDTOUCH_EXPORTS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ ForceConformanceInForLoopScope="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="false"
+ OutputFile="$(SolutionDir)$(ConfigurationName)\OpenMPT_SoundTouch.dll"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/soundtouch.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="0"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/O2"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SOUNDTOUCH_EXPORTS"
+ RuntimeLibrary="0"
+ ForceConformanceInForLoopScope="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/PDBPATH:none"
+ OutputFile="..\mptrack\bin\OpenMPT_SoundTouch.dll"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
+ StripPrivateSymbols=""
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/soundtouch.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\3dnow_win.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\AAFilter.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\BPMDetect.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\cpu_detect_x86_win.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\FIFOSampleBuffer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\FIRFilter.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mmx_optimized.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\PeakFinder.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\RateTransposer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\SoundTouch.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\sse_optimized.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\TDStretch.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\AAFilter.h"
+ >
+ </File>
+ <File
+ RelativePath=".\BPMDetect.h"
+ >
+ </File>
+ <File
+ RelativePath=".\cpu_detect.h"
+ >
+ </File>
+ <File
+ RelativePath=".\FIFOSampleBuffer.h"
+ >
+ </File>
+ <File
+ RelativePath=".\FIFOSamplePipe.h"
+ >
+ </File>
+ <File
+ RelativePath=".\FIRFilter.h"
+ >
+ </File>
+ <File
+ RelativePath=".\PeakFinder.h"
+ >
+ </File>
+ <File
+ RelativePath=".\RateTransposer.h"
+ >
+ </File>
+ <File
+ RelativePath=".\SoundTouch.h"
+ >
+ </File>
+ <File
+ RelativePath=".\STTypes.h"
+ >
+ </File>
+ <File
+ RelativePath=".\TDStretch.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Added: trunk/OpenMPT/unlha/unlha_08.vcproj
===================================================================
--- trunk/OpenMPT/unlha/unlha_08.vcproj (rev 0)
+++ trunk/OpenMPT/unlha/unlha_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="unlha"
+ ProjectGUID="{FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ StringPooling="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Debug/unlha.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Debug\unlha.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/O1"
+ Optimization="1"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/unlha.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="false"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\bin\unlha.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="unlha.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="lharc.h"
+ >
+ </File>
+ <File
+ RelativePath="slidehuf.h"
+ >
+ </File>
+ <File
+ RelativePath="unlha32.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Added: trunk/OpenMPT/unrar/unrar_08.vcproj
===================================================================
--- trunk/OpenMPT/unrar/unrar_08.vcproj (rev 0)
+++ trunk/OpenMPT/unrar/unrar_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="unrar"
+ ProjectGUID="{FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Debug/UNRAR.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Debug\UNRAR.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/O1"
+ Optimization="1"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/UNRAR.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="false"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\bin\UNRAR.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="Unrar.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Added: trunk/OpenMPT/unzip/unzip_08.vcproj
===================================================================
--- trunk/OpenMPT/unzip/unzip_08.vcproj (rev 0)
+++ trunk/OpenMPT/unzip/unzip_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="unzip"
+ ProjectGUID="{44316F22-904E-48AA-B841-5A3A6AC77319}"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Debug/unzip.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Debug\unzip.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/O1"
+ Optimization="1"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/unzip.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="false"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\bin\unzip.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
+ >
+ <File
+ RelativePath="Unzip.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;fi;fd"
+ >
+ <File
+ RelativePath="unzip32.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Added: trunk/OpenMPT/xsoundlib/xsoundlib_08.vcproj
===================================================================
--- trunk/OpenMPT/xsoundlib/xsoundlib_08.vcproj (rev 0)
+++ trunk/OpenMPT/xsoundlib/xsoundlib_08.vcproj 2009-07-08 18:38:38 UTC (rev 287)
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="xsoundlib"
+ ProjectGUID="{DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="2"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/xsoundlib.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/O2"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="true"
+ UsePrecompiledHeader="2"
+ WarningLevel="3"
+ SuppressStartupBanner="false"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/xsoundlib.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\samplerate.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\smbPitchShift.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="2"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src_linear.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src_sinc.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src_zoh.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\stdafx.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\common.h"
+ >
+ </File>
+ <File
+ RelativePath=".\config.h"
+ >
+ </File>
+ <File
+ RelativePath=".\fastest_coeffs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\float_cast.h"
+ >
+ </File>
+ <File
+ RelativePath=".\high_qual_coeffs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mid_qual_coeffs.h"
+ >
+ </File>
+ <File
+ RelativePath=".\samplerate.h"
+ >
+ </File>
+ <File
+ RelativePath=".\smbPitchShift.h"
+ >
+ </File>
+ <File
+ RelativePath=".\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath=".\unistd.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2009-07-08 14:45:17
|
Revision: 286
http://modplug.svn.sourceforge.net/modplug/?rev=286&view=rev
Author: saga-games
Date: 2009-07-08 14:45:05 +0000 (Wed, 08 Jul 2009)
Log Message:
-----------
[Fix] Short loops in S3M samples are now recognized
[New] Sample editor: Batch export samples (shift + click on "save sample" icon - this was introduced in the last commit already and has been slightly modified in this commit)
[Ref] Minor code updates (mostly comments)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/soundlib/Load_s3m.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2009-07-08 08:55:44 UTC (rev 285)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2009-07-08 14:45:05 UTC (rev 286)
@@ -1015,7 +1015,9 @@
"Wave File (*.wav)|*.wav|"
"RAW Audio (*.raw)|*.raw||",
this);
- dlg.m_ofn.lpstrInitialDir = CMainFrame::GetWorkingDirectory(DIR_SAMPLES);
+ const LPCTSTR pszWdir = CMainFrame::GetWorkingDirectory(DIR_SAMPLES);
+ if(pszWdir[0])
+ dlg.m_ofn.lpstrInitialDir = pszWdir;
if (dlg.DoModal() != IDOK) return;
BeginWaitCursor();
@@ -1051,7 +1053,6 @@
sSampleFilename.Remove(sForbiddenChars.GetAt(i));
}
- //sFilename.Format("%s%s%s%s", drive, path, filename, ext);
sFilename = dlg.GetPathName();
sFilename.Replace("%sample_number%", sSampleNumber);
sFilename.Replace("%sample_filename%", sSampleFilename);
Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-08 08:55:44 UTC (rev 285)
+++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2009-07-08 14:45:05 UTC (rev 286)
@@ -367,9 +367,12 @@
insfile[iSmp] = ((DWORD)LittleEndianW(*((LPWORD)(s+0x0E)))) << 4;
insfile[iSmp] += ((DWORD)(BYTE)s[0x0D]) << 20;
if (insfile[iSmp] > dwMemLength) insfile[iSmp] &= 0xFFFF;
- if ((Ins[iSmp].nLoopStart >= Ins[iSmp].nLoopEnd) || (Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart < 8))
- Ins[iSmp].nLoopStart = Ins[iSmp].nLoopEnd = 0;
+ if ((Ins[iSmp].nLoopStart >= Ins[iSmp].nLoopEnd) || (Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart < 1))
+ Ins[iSmp].nLoopStart = Ins[iSmp].nLoopEnd = 0;
+ UINT iLooplength = Ins[iSmp].nLoopEnd - Ins[iSmp].nLoopStart;
+ if(iLooplength > 0 && iLooplength < 8) Ins[iSmp].nLoopEnd = Ins[iSmp].nLoopStart + 8;
Ins[iSmp].nPan = 0x80;
+ // ASSERT(iLooplength == 0 || iLooplength > 10);
}
}
// Reading patterns
@@ -727,4 +730,3 @@
#pragma warning(default:4100)
#endif // MODPLUG_NO_FILESAVE
-
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-08 08:55:44 UTC (rev 285)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-08 14:45:05 UTC (rev 286)
@@ -2432,7 +2432,7 @@
pChn->nPan = (param << 4) + 8; pChn->dwFlags |= CHN_FASTVOLRAMP;
}
break;
- // S9x: Set Surround
+ // S9x: Sound Control
case 0x90: ExtendedChannelEffect(pChn, param & 0x0F); break;
// SAx: Set 64k Offset
case 0xA0: if (!m_nTickCount)
@@ -2450,7 +2450,7 @@
case 0xC0: NoteCut(nChn, param); break;
// SDx: Note Delay
// SEx: Pattern Delay for x rows
- // SFx: S3M: Funk Repeat, IT: Set Active Midi Macro
+ // SFx: S3M: Not used, IT: Set Active Midi Macro
case 0xF0: pChn->nActiveMacro = param; break;
}
}
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-08 08:55:44 UTC (rev 285)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2009-07-08 14:45:05 UTC (rev 286)
@@ -29,7 +29,7 @@
#define UNRAR_SUPPORT
#define UNLHA_SUPPORT
#define ZIPPED_MOD_SUPPORT
-LPCSTR glpszModExtensions = "mod|s3m|xm|it|stm|nst|ult|669|wow|mtm|med|far|mdl|ams|dsm|amf|okt|dmf|ptm|psm|mt2|umx"
+LPCSTR glpszModExtensions = "mod|s3m|xm|it|stm|nst|ult|669|wow|mtm|med|far|mdl|ams|dsm|amf|okt|dmf|ptm|psm|mt2|umx|gdm"
#ifndef NO_UNMO3_SUPPORT
"|mo3"
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|