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
(47) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <sag...@us...> - 2011-06-16 20:30:02
|
Revision: 903
http://modplug.svn.sourceforge.net/modplug/?rev=903&view=rev
Author: saga-games
Date: 2011-06-16 20:29:56 +0000 (Thu, 16 Jun 2011)
Log Message:
-----------
[Mod] Extended file load test: File is now saved and then re-loaded to verify if file saving works.
[Mod] Removed VS2008 exe bloatage fix from StdAfx.cpp again since the latest patches seem to have remedied the situation.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.h
trunk/OpenMPT/mptrack/STDAFX.CPP
trunk/OpenMPT/mptrack/test/test.cpp
Modified: trunk/OpenMPT/mptrack/Moddoc.h
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.h 2011-06-15 13:42:46 UTC (rev 902)
+++ trunk/OpenMPT/mptrack/Moddoc.h 2011-06-16 20:29:56 UTC (rev 903)
@@ -269,6 +269,7 @@
SplitKeyboardSettings *GetSplitKeyboardSettings() { return &m_SplitKeyboardSettings; }
vector<FileHistory> *GetFileHistory() { return &m_FileHistory; }
+ const vector<FileHistory> *GetFileHistory() const { return &m_FileHistory; }
time_t GetCreationTime() const { return m_creationTime; }
// operations
Modified: trunk/OpenMPT/mptrack/STDAFX.CPP
===================================================================
--- trunk/OpenMPT/mptrack/STDAFX.CPP 2011-06-15 13:42:46 UTC (rev 902)
+++ trunk/OpenMPT/mptrack/STDAFX.CPP 2011-06-16 20:29:56 UTC (rev 903)
@@ -4,7 +4,7 @@
#include "stdafx.h"
-#if (_MSC_VER == MSVC_VER_2008)
+/*#if (_MSC_VER == MSVC_VER_2008)
// Fix for VS2008 SP1 bloatage (http://tedwvc.wordpress.com/2011/04/16/static-mfc-code-bloat-problem-from-vc2010-is-now-in-vc2008-sp1security-fix/):
@@ -33,4 +33,4 @@
return(::AfxCtxLoadLibraryW(wszLoadPath));
}
-#endif
+#endif*/
Modified: trunk/OpenMPT/mptrack/test/test.cpp
===================================================================
--- trunk/OpenMPT/mptrack/test/test.cpp 2011-06-15 13:42:46 UTC (rev 902)
+++ trunk/OpenMPT/mptrack/test/test.cpp 2011-06-16 20:29:56 UTC (rev 903)
@@ -64,7 +64,7 @@
void TestVersion();
void TestTypes();
-void TestLoadFile();
+void TestLoadSaveFile();
void TestPCnoteSerialization();
void TestMisc();
@@ -78,11 +78,13 @@
DO_TEST(TestTypes);
//DO_TEST(TestPCnoteSerialization);
DO_TEST(TestMisc);
- DO_TEST(TestLoadFile)
+ DO_TEST(TestLoadSaveFile)
Log(TEXT("Tests were run\n"));
}
+
+// Test if functions related to program version data work
void TestVersion()
//----------------
{
@@ -146,6 +148,7 @@
}
+// Test if data types are interpreted correctly
void TestTypes()
//--------------
{
@@ -198,47 +201,10 @@
}
-template<class T>
-T Round(double a) {return static_cast<T>(floor(a + 0.5));}
-
-double Rand01() {return rand() / double(RAND_MAX);}
-
-template <class T>
-T Rand(const T& min, const T& max) {return Round<T>(min + Rand01() * (max - min));}
-
-
-
-void GenerateCommands(CPattern& pat, const double dProbPcs, const double dProbPc)
-//-------------------------------------------------------------------------------
+// Check if our test file was loaded correctly.
+void TestLoadFile(const CModDoc *pModDoc)
+//---------------------------------------
{
- const double dPcxProb = dProbPcs + dProbPc;
- const CPattern::const_iterator end = pat.End();
- for(CPattern::iterator i = pat.Begin(); i != end; i++)
- {
- const double rand = Rand01();
- if(rand < dPcxProb)
- {
- if(rand < dProbPcs)
- i->note = NOTE_PCS;
- else
- i->note = NOTE_PC;
-
- i->instr = Rand<BYTE>(0, MAX_MIXPLUGINS);
- i->SetValueVolCol(Rand<uint16>(0, MODCOMMAND::maxColumnValue));
- i->SetValueEffectCol(Rand<uint16>(0, MODCOMMAND::maxColumnValue));
- }
- else
- i->Clear();
- }
-}
-
-
-void TestLoadFile()
-//-----------------
-{
- CString theFile = __FILE__;
- theFile.Replace(".cpp", ".mptm");
- CModDoc *pModDoc = (CModDoc *)theApp.OpenDocumentFile(theFile);
const CSoundFile *pSndFile = pModDoc->GetSoundFile();
// Global Variables
@@ -441,10 +407,67 @@
VERIFY_EQUAL_NONCONT(mapping.GetEvent(), MIDIEVENT_CONTROLLERCHANGE);
VERIFY_EQUAL_NONCONT(mapping.GetController(), MIDICC_ModulationWheel_Coarse);
+}
+
+
+// Test file loading and saving
+void TestLoadSaveFile()
+//---------------------
+{
+ CString theFile = __FILE__;
+ theFile.Replace(".cpp", ".mptm");
+ // Test file loading
+ CModDoc *pModDoc = (CModDoc *)theApp.OpenDocumentFile(theFile);
+ TestLoadFile(pModDoc);
+
+ // Test file saving
+ theFile += ".saved";
+ pModDoc->GetSoundFile()->SaveIT(theFile);
pModDoc->OnCloseDocument();
+
+ // Reload the saved file and test if everything is still working correctly.
+ pModDoc = (CModDoc *)theApp.OpenDocumentFile(theFile);
+ TestLoadFile(pModDoc);
+ pModDoc->OnCloseDocument();
}
+template<class T>
+T Round(double a) {return static_cast<T>(floor(a + 0.5));}
+
+double Rand01() {return rand() / double(RAND_MAX);}
+
+template <class T>
+T Rand(const T& min, const T& max) {return Round<T>(min + Rand01() * (max - min));}
+
+
+
+void GenerateCommands(CPattern& pat, const double dProbPcs, const double dProbPc)
+//-------------------------------------------------------------------------------
+{
+ const double dPcxProb = dProbPcs + dProbPc;
+ const CPattern::const_iterator end = pat.End();
+ for(CPattern::iterator i = pat.Begin(); i != end; i++)
+ {
+ const double rand = Rand01();
+ if(rand < dPcxProb)
+ {
+ if(rand < dProbPcs)
+ i->note = NOTE_PCS;
+ else
+ i->note = NOTE_PC;
+
+ i->instr = Rand<BYTE>(0, MAX_MIXPLUGINS);
+ i->SetValueVolCol(Rand<uint16>(0, MODCOMMAND::maxColumnValue));
+ i->SetValueEffectCol(Rand<uint16>(0, MODCOMMAND::maxColumnValue));
+ }
+ else
+ i->Clear();
+ }
+}
+
+
+// Test PC note serialization
void TestPCnoteSerialization()
//----------------------------
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-15 13:42:52
|
Revision: 902
http://modplug.svn.sourceforge.net/modplug/?rev=902&view=rev
Author: saga-games
Date: 2011-06-15 13:42:46 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
[Imp] When moving a plugin to another slot, plugins routing their output to the selected plugin are now taken into account when selecting a default slot to move the plugin to.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/MoveFXSlotDialog.cpp
trunk/OpenMPT/mptrack/MoveFXSlotDialog.h
trunk/OpenMPT/mptrack/View_gen.cpp
Modified: trunk/OpenMPT/mptrack/MoveFXSlotDialog.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MoveFXSlotDialog.cpp 2011-06-14 20:23:49 UTC (rev 901)
+++ trunk/OpenMPT/mptrack/MoveFXSlotDialog.cpp 2011-06-15 13:42:46 UTC (rev 902)
@@ -43,10 +43,11 @@
CDialog::OnOK();
}
-void CMoveFXSlotDialog::SetupMove(UINT currentSlot, CArray<UINT, UINT> &emptySlots)
-//---------------------------------------------------------------------------------
+void CMoveFXSlotDialog::SetupMove(PLUGINDEX currentSlot, CArray<UINT, UINT> &emptySlots, PLUGINDEX defaultIndex)
+//--------------------------------------------------------------------------------------------------------------
{
- m_csPrompt.Format("Move plugin in slot %d to the following empty slot:", currentSlot+1);
+ m_nDefaultSlot = defaultIndex;
+ m_csPrompt.Format("Move plugin in slot %d to the following empty slot:", currentSlot + 1);
m_csTitle.Format("Move To Slot..");
m_EmptySlots.Copy(emptySlots);
}
@@ -59,11 +60,19 @@
SetWindowText(m_csTitle);
CString slotText;
- for (int nSlot=0; nSlot<m_EmptySlots.GetSize(); nSlot++) {
- slotText.Format("FX%d", m_EmptySlots[nSlot]+1);
+ int defaultSlot = 0;
+ bool foundDefault = false;
+ for (int nSlot=0; nSlot<m_EmptySlots.GetSize(); nSlot++)
+ {
+ slotText.Format("FX%d", m_EmptySlots[nSlot] + 1);
m_CbnEmptySlots.SetItemData(m_CbnEmptySlots.AddString(slotText), m_EmptySlots[nSlot]);
+ if(m_EmptySlots[nSlot] >= m_nDefaultSlot && !foundDefault)
+ {
+ defaultSlot = nSlot;
+ foundDefault = true;
+ }
}
- m_CbnEmptySlots.SetCurSel(0);
+ m_CbnEmptySlots.SetCurSel(defaultSlot);
return TRUE;
}
Modified: trunk/OpenMPT/mptrack/MoveFXSlotDialog.h
===================================================================
--- trunk/OpenMPT/mptrack/MoveFXSlotDialog.h 2011-06-14 20:23:49 UTC (rev 901)
+++ trunk/OpenMPT/mptrack/MoveFXSlotDialog.h 2011-06-15 13:42:46 UTC (rev 902)
@@ -10,7 +10,7 @@
public:
CMoveFXSlotDialog(CWnd* pParent = NULL); // standard constructor
virtual ~CMoveFXSlotDialog();
- void SetupMove(UINT currentSlot, CArray<UINT, UINT> &emptySlots);
+ void SetupMove(PLUGINDEX currentSlot, CArray<UINT, UINT> &emptySlots, PLUGINDEX defaultIndex);
PLUGINDEX m_nToSlot;
@@ -24,6 +24,7 @@
CArray<UINT, UINT> m_EmptySlots;
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
CComboBox m_CbnEmptySlots;
+ PLUGINDEX m_nDefaultSlot;
DECLARE_MESSAGE_MAP()
virtual void OnOK();
Modified: trunk/OpenMPT/mptrack/View_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_gen.cpp 2011-06-14 20:23:49 UTC (rev 901)
+++ trunk/OpenMPT/mptrack/View_gen.cpp 2011-06-15 13:42:46 UTC (rev 902)
@@ -1325,9 +1325,25 @@
CArray<UINT, UINT> emptySlots;
BuildEmptySlotList(emptySlots);
- dlg.SetupMove(m_nCurrentPlugin, emptySlots);
+ // If any plugin routes its output to the current plugin, we shouldn't try to move it before that plugin...
+ PLUGINDEX defaultIndex = 0;
+ const CSoundFile *pSndFile = GetDocument() ? (GetDocument()->GetSoundFile()) : nullptr;
+ if(pSndFile)
+ {
+ for(PLUGINDEX i = 0; i < m_nCurrentPlugin; i++)
+ {
+ const DWORD toPlug = pSndFile->m_MixPlugins[i].Info.dwOutputRouting;
+ if((toPlug & 0x80) && (toPlug & 0x7F) == m_nCurrentPlugin)
+ {
+ defaultIndex = i + 1;
+ }
+ }
+ }
- if (dlg.DoModal() == IDOK) {
+ dlg.SetupMove(m_nCurrentPlugin, emptySlots, defaultIndex);
+
+ if (dlg.DoModal() == IDOK)
+ {
MovePlug(m_nCurrentPlugin, dlg.m_nToSlot);
m_CbnPlugin.SetCurSel(dlg.m_nToSlot);
OnPluginChanged();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-14 20:23:56
|
Revision: 901
http://modplug.svn.sourceforge.net/modplug/?rev=901&view=rev
Author: saga-games
Date: 2011-06-14 20:23:49 +0000 (Tue, 14 Jun 2011)
Log Message:
-----------
[Imp] General Tab: When editing panning, surround is disabled and when enabling surround, panning is reset.
[Imp] Tagging: ID3 tags also contain a TDRC tag now, since this should be used instead of TYER in ID3v2.4
[Ref] Rewrote WAV tagging a bit.
[Mod] OpenMPT: Version is now 1.19.02.06
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/View_gen.cpp
trunk/OpenMPT/mptrack/tagging.cpp
trunk/OpenMPT/mptrack/version.h
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-14 19:33:46 UTC (rev 900)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-14 20:23:49 UTC (rev 901)
@@ -848,7 +848,7 @@
//----------------------------------------------------------------------------------------------------------------------------------------------------
{
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
- UINT nChn = m_SndFile.m_nChannels;
+ UINT nChn = GetNumChannels();
if ((!pMainFrm) || (!note)) return FALSE;
if (nVol > 256) nVol = 256;
@@ -866,7 +866,7 @@
// All notes off
for (UINT i=0; i<MAX_CHANNELS; i++)
{
- if ((i < m_SndFile.m_nChannels) || (m_SndFile.Chn[i].nMasterChn))
+ if ((i < GetNumChannels()) || (m_SndFile.Chn[i].nMasterChn))
{
m_SndFile.Chn[i].dwFlags |= CHN_KEYOFF | CHN_NOTEFADE;
m_SndFile.Chn[i].nFadeOutVol = 0;
@@ -939,7 +939,7 @@
m_SndFile.NoteChange(nChn, note, false, true, true);
if (nVol >= 0) pChn->nVolume = nVol;
- // handle sample looping.
+ // Handle sample looping.
// Changed line to fix http://forum.openmpt.org/index.php?topic=1700.0
//if ((loopstart + 16 < loopend) && (loopstart >= 0) && (loopend <= (LONG)pChn->nLength)) {
if ((loopstart + 16 < loopend) && (loopstart >= 0) && (pChn->pModSample != nullptr))
@@ -951,7 +951,7 @@
pChn->nLength = min(UINT(loopend), pChn->pModSample->nLength);
}
- // handle extra-loud flag
+ // Handle extra-loud flag
if ((!(CMainFrame::m_dwPatternSetup & PATTERN_NOEXTRALOUD)) && (nsmp))
{
pChn->dwFlags |= CHN_EXTRALOUD;
@@ -1284,8 +1284,15 @@
if (d != (m_SndFile.ChnSettings[nChn].dwFlags & CHN_SURROUND))
{
if (m_SndFile.m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) SetModified();
- if (d) m_SndFile.ChnSettings[nChn].dwFlags |= CHN_SURROUND;
- else m_SndFile.ChnSettings[nChn].dwFlags &= ~CHN_SURROUND;
+ if (d)
+ {
+ m_SndFile.ChnSettings[nChn].dwFlags |= CHN_SURROUND;
+ m_SndFile.ChnSettings[nChn].nPan = 128;
+ }
+ else
+ {
+ m_SndFile.ChnSettings[nChn].dwFlags &= ~CHN_SURROUND;
+ }
}
if (d) m_SndFile.Chn[nChn].dwFlags |= CHN_SURROUND;
@@ -1318,6 +1325,7 @@
if (m_SndFile.ChnSettings[nChn].nPan != nPan)
{
m_SndFile.ChnSettings[nChn].nPan = nPan;
+ m_SndFile.ChnSettings[nChn].dwFlags &= ~CHN_SURROUND;
if (m_SndFile.m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT | MOD_TYPE_MPT)) SetModified();
bOk = true;
}
Modified: trunk/OpenMPT/mptrack/View_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_gen.cpp 2011-06-14 19:33:46 UTC (rev 900)
+++ trunk/OpenMPT/mptrack/View_gen.cpp 2011-06-14 20:23:49 UTC (rev 901)
@@ -593,6 +593,7 @@
const CHANNELINDEX nChn = (CHANNELINDEX)(m_nActiveTab * 4) + chnMod4;
pModDoc->SurroundChannel(nChn, b);
pModDoc->UpdateAllViews(this, HINT_MODCHANNELS | (m_nActiveTab << HINT_SHIFT_CHNTAB));
+ UpdateView(HINT_MODCHANNELS);
}
}
@@ -635,6 +636,7 @@
{
m_sbPan[chnMod4].SetPos(pan/4);
pModDoc->UpdateAllViews(this, HINT_MODCHANNELS | (m_nActiveTab << HINT_SHIFT_CHNTAB));
+ UpdateView(HINT_MODCHANNELS);
}
}
}
@@ -683,6 +685,7 @@
if (pModDoc->SetChannelDefaultPan(nChn+iCh, pos*4))
{
SetDlgItemInt(IDC_EDIT2+iCh*2, pos*4);
+ CheckDlgButton(IDC_CHECK2 + iCh * 2, BST_UNCHECKED);
bUpdate = TRUE;
}
}
Modified: trunk/OpenMPT/mptrack/tagging.cpp
===================================================================
--- trunk/OpenMPT/mptrack/tagging.cpp 2011-06-14 19:33:46 UTC (rev 900)
+++ trunk/OpenMPT/mptrack/tagging.cpp 2011-06-14 20:23:49 UTC (rev 901)
@@ -56,19 +56,20 @@
tHeader.flags = 0x00; // No flags
fwrite(&tHeader, 1, sizeof(tHeader), f);
- // Write TIT2 (Title), TCOM / TPE1 (Composer), TALB (Album), TCON (Genre), TYER (Date), WXXX (URL), TENC (Encoder), COMM (Comment)
+ // Write TIT2 (Title), TCOM / TPE1 (Composer), TALB (Album), TCON (Genre), TYER / TDRC (Date), WXXX (URL), TENC (Encoder), COMM (Comment)
WriteID3v2Frame("TIT2", title, f);
WriteID3v2Frame("TPE1", artist, f);
WriteID3v2Frame("TCOM", artist, f);
WriteID3v2Frame("TALB", album, f);
WriteID3v2Frame("TCON", genre, f);
WriteID3v2Frame("TYER", year, f);
+ WriteID3v2Frame("TDRC", year, f);
WriteID3v2Frame("WXXX", url, f);
WriteID3v2Frame("TENC", encoder, f);
WriteID3v2Frame("COMM", comments, f);
// Write Padding
- for(UINT i = 0; i < ID3v2_PADDING; i++)
+ for(size_t i = 0; i < ID3v2_PADDING; i++)
{
fputc(0, f);
}
@@ -123,10 +124,25 @@
WAVEFILEHEADER list;
WAVEDATAHEADER chunk;
- CHAR s[256];
DWORD info_ofs, end_ofs;
- const DWORD zero = 0;
+ const uint8 zero = 0;
+ struct
+ {
+ DWORD id;
+ string *data;
+ } chunks[] =
+ {
+ { IFFID_ICMT, &comments },
+ { IFFID_INAM, &title },
+ { IFFID_IART, &artist },
+ { IFFID_IPRD, &album },
+ { IFFID_ICOP, &url },
+ { IFFID_IGNR, &genre },
+ { IFFID_ISFT, &encoder },
+ { IFFID_ICRD, &year },
+ };
+
info_ofs = ftell(f);
if (info_ofs & 1)
{
@@ -138,55 +154,35 @@
list.id_WAVE = IFFID_INFO;
list.filesize = 4;
fwrite(&list, 1, sizeof(list), f);
- // ICMT
- if (!comments.empty())
+
+ for(size_t iCmt = 0; iCmt < CountOf(chunks); iCmt++)
{
- chunk.id_data = IFFID_ICMT;
- chunk.length = strlen(comments.c_str()) + 1;
+ if(chunks[iCmt].data->empty())
+ {
+ continue;
+ }
+
+ string data = *chunks[iCmt].data;
+ // Special case: Expand year to full date
+ if(chunks[iCmt].id == IFFID_ICRD)
+ {
+ data += "-01-01";
+ }
+
+ chunk.id_data = chunks[iCmt].id;
+ chunk.length = data.length() + 1;
+
fwrite(&chunk, 1, sizeof(chunk), f);
- fwrite(comments.c_str(), 1, chunk.length, f);
+ fwrite(data.c_str(), 1, chunk.length, f);
list.filesize += chunk.length + sizeof(chunk);
- if (chunk.length & 1)
+
+ // Chunks must be even-sized
+ if(chunk.length & 1)
{
fwrite(&zero, 1, 1, f);
list.filesize++;
}
}
- for (UINT iCmt=0; iCmt<=6; iCmt++)
- {
- s[0] = 0;
- switch(iCmt)
- {
- // INAM
- case 0: memcpy(s, title.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_INAM; break;
- // IART
- case 1: memcpy(s, artist.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_IART; break;
- // IPRD
- case 2: memcpy(s, album.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_IPRD; break;
- // ICOP
- case 3: memcpy(s, url.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_ICOP; break;
- // IGNR
- case 4: memcpy(s, genre.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_IGNR; break;
- // ISFT
- case 5: memcpy(s, encoder.c_str(), 255); s[255] = 0; chunk.id_data = IFFID_ISFT; break;
- // ICRD
- case 6: memcpy(s, year.c_str(), 4); s[4] = 0; strcat(s, "-01-01"); if (s[0] <= '0') s[0] = 0; chunk.id_data = IFFID_ICRD; break;
- }
- int l = strlen(s);
- while ((l > 0) && (s[l-1] == ' ')) s[--l] = 0;
- if (s[0])
- {
- chunk.length = strlen(s)+1;
- fwrite(&chunk, 1, sizeof(chunk), f);
- fwrite(s, 1, chunk.length, f);
- list.filesize += chunk.length + sizeof(chunk);
- if (chunk.length & 1)
- {
- fwrite(&zero, 1, 1, f);
- list.filesize++;
- }
- }
- }
// Update INFO size
end_ofs = ftell(f);
fseek(f, info_ofs, SEEK_SET);
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-06-14 19:33:46 UTC (rev 900)
+++ trunk/OpenMPT/mptrack/version.h 2011-06-14 20:23:49 UTC (rev 901)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 05
+#define VER_MINORMINOR 06
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-14 19:33:53
|
Revision: 900
http://modplug.svn.sourceforge.net/modplug/?rev=900&view=rev
Author: saga-games
Date: 2011-06-14 19:33:46 +0000 (Tue, 14 Jun 2011)
Log Message:
-----------
[Imp] Added MPTM module loading test, to avoid commits like the previous one in the future...
Modified Paths:
--------------
trunk/OpenMPT/mptrack/test/test.cpp
Added Paths:
-----------
trunk/OpenMPT/mptrack/test/test.mptm
Modified: trunk/OpenMPT/mptrack/test/test.cpp
===================================================================
--- trunk/OpenMPT/mptrack/test/test.cpp 2011-06-14 18:24:43 UTC (rev 899)
+++ trunk/OpenMPT/mptrack/test/test.cpp 2011-06-14 19:33:46 UTC (rev 900)
@@ -64,6 +64,7 @@
void TestVersion();
void TestTypes();
+void TestLoadFile();
void TestPCnoteSerialization();
void TestMisc();
@@ -77,6 +78,7 @@
DO_TEST(TestTypes);
//DO_TEST(TestPCnoteSerialization);
DO_TEST(TestMisc);
+ DO_TEST(TestLoadFile)
Log(TEXT("Tests were run\n"));
}
@@ -231,7 +233,218 @@
}
+void TestLoadFile()
+//-----------------
+{
+ CString theFile = __FILE__;
+ theFile.Replace(".cpp", ".mptm");
+ CModDoc *pModDoc = (CModDoc *)theApp.OpenDocumentFile(theFile);
+ const CSoundFile *pSndFile = pModDoc->GetSoundFile();
+ // Global Variables
+ VERIFY_EQUAL_NONCONT(strcmp(pSndFile->m_szNames[0], "Test Module"), 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_lpszSongComments[0], 'O');
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nDefaultTempo, 139);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nDefaultSpeed, 5);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nGlobalVolume, 128);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nVSTiVolume, 42);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nSamplePreAmp, 23);
+ VERIFY_EQUAL_NONCONT((pSndFile->m_dwSongFlags & SONG_FILE_FLAGS), SONG_EMBEDMIDICFG | SONG_LINEARSLIDES | SONG_EXFILTERRANGE | SONG_ITCOMPATGXX | SONG_ITOLDEFFECTS);
+ VERIFY_EQUAL_NONCONT(pSndFile->GetModFlag(MSF_COMPATIBLE_PLAY), true);
+ VERIFY_EQUAL_NONCONT(pSndFile->GetModFlag(MSF_MIDICC_BUGEMULATION), false);
+ VERIFY_EQUAL_NONCONT(pSndFile->GetModFlag(MSF_OLDVOLSWING), false);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nMixLevels, mixLevels_compatible);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nTempoMode, tempo_mode_modern);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nDefaultRowsPerBeat, 6);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nDefaultRowsPerMeasure, 12);
+ VERIFY_EQUAL_NONCONT(pSndFile->m_dwCreatedWithVersion, MAKE_VERSION_NUMERIC(1, 19, 02, 05));
+ VERIFY_EQUAL_NONCONT(pSndFile->m_nRestartPos, 1);
+
+ // Edit history
+ VERIFY_EQUAL_NONCONT(pModDoc->GetFileHistory()->size() > 0, true);
+ const FileHistory &fh = pModDoc->GetFileHistory()->at(0);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_year, 111);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_mon, 5);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_mday, 14);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_hour, 21);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_min, 8);
+ VERIFY_EQUAL_NONCONT(fh.loadDate.tm_sec, 32);
+ VERIFY_EQUAL_NONCONT((uint32)((double)fh.openTime / HISTORY_TIMER_PRECISION), 31);
+
+ // Macros
+ VERIFY_EQUAL_NONCONT(pModDoc->GetMacroType(pSndFile->m_MidiCfg.szMidiSFXExt[0]), sfx_reso);
+ VERIFY_EQUAL_NONCONT(pModDoc->GetMacroType(pSndFile->m_MidiCfg.szMidiSFXExt[1]), sfx_drywet);
+ VERIFY_EQUAL_NONCONT(pModDoc->GetZxxType(pSndFile->m_MidiCfg.szMidiZXXExt), zxx_resomode);
+
+ // Channels
+ VERIFY_EQUAL_NONCONT(pSndFile->GetNumChannels(), 2);
+ VERIFY_EQUAL_NONCONT(strcmp(pSndFile->ChnSettings[0].szName, "First Channel"), 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[0].nPan, 32);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[0].nVolume, 32);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[0].dwFlags, CHN_MUTE);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[0].nMixPlugin, 0);
+
+ VERIFY_EQUAL_NONCONT(strcmp(pSndFile->ChnSettings[1].szName, "Second Channel"), 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[1].nPan, 128);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[1].nVolume, 16);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[1].dwFlags, CHN_SURROUND);
+ VERIFY_EQUAL_NONCONT(pSndFile->ChnSettings[1].nMixPlugin, 1);
+
+ // Samples
+ VERIFY_EQUAL_NONCONT(pSndFile->GetNumSamples(), 1);
+ const MODSAMPLE *pSmp = &pSndFile->Samples[1];
+ VERIFY_EQUAL_NONCONT(pSmp->GetBytesPerSample(), 1);
+ VERIFY_EQUAL_NONCONT(pSmp->GetNumChannels(), 1);
+ VERIFY_EQUAL_NONCONT(pSmp->GetElementarySampleSize(), 1);
+ VERIFY_EQUAL_NONCONT(pSmp->GetSampleSizeInBytes(), 16);
+ VERIFY_EQUAL_NONCONT(pSmp->GetSampleRate(MOD_TYPE_MPT), 9001);
+ VERIFY_EQUAL_NONCONT(pSmp->uFlags, CHN_PANNING | CHN_LOOP | CHN_SUSTAINLOOP | CHN_PINGPONGSUSTAIN);
+
+ VERIFY_EQUAL_NONCONT(pSmp->nLoopStart, 1);
+ VERIFY_EQUAL_NONCONT(pSmp->nLoopEnd, 8);
+ VERIFY_EQUAL_NONCONT(pSmp->nSustainStart, 1);
+ VERIFY_EQUAL_NONCONT(pSmp->nSustainEnd, 7);
+
+ VERIFY_EQUAL_NONCONT(pSmp->nVibType, VIB_SQUARE);
+ VERIFY_EQUAL_NONCONT(pSmp->nVibSweep, 3);
+ VERIFY_EQUAL_NONCONT(pSmp->nVibRate, 4);
+ VERIFY_EQUAL_NONCONT(pSmp->nVibDepth, 5);
+
+ // Instruments
+ VERIFY_EQUAL_NONCONT(pSndFile->GetNumInstruments(), 1);
+ const MODINSTRUMENT *pIns = pSndFile->Instruments[1];
+ VERIFY_EQUAL_NONCONT(pIns->nGlobalVol, 32);
+ VERIFY_EQUAL_NONCONT(pIns->nFadeOut, 1024);
+ VERIFY_EQUAL_NONCONT(pIns->nPan, 64);
+ VERIFY_EQUAL_NONCONT(pIns->dwFlags, INS_SETPANNING);
+
+ VERIFY_EQUAL_NONCONT(pIns->nPPS, 16);
+ VERIFY_EQUAL_NONCONT(pIns->nPPC, (NOTE_MIDDLEC - 1) + 6); // F#5
+
+ VERIFY_EQUAL_NONCONT(pIns->nVolRamp, 1200);
+ VERIFY_EQUAL_NONCONT(pIns->nResampling, SRCMODE_POLYPHASE);
+
+ VERIFY_EQUAL_NONCONT(pIns->nIFC, 0x80 | 0x32);
+ VERIFY_EQUAL_NONCONT(pIns->nIFR, 0x80 | 0x64);
+ VERIFY_EQUAL_NONCONT(pIns->nFilterMode, FLTMODE_HIGHPASS);
+
+ VERIFY_EQUAL_NONCONT(pIns->nVolSwing, 0x30);
+ VERIFY_EQUAL_NONCONT(pIns->nPanSwing, 0x18);
+ VERIFY_EQUAL_NONCONT(pIns->nCutSwing, 0x0C);
+ VERIFY_EQUAL_NONCONT(pIns->nResSwing, 0x3C);
+
+ VERIFY_EQUAL_NONCONT(pIns->nNNA, NNA_CONTINUE);
+ VERIFY_EQUAL_NONCONT(pIns->nDCT, DCT_NOTE);
+ VERIFY_EQUAL_NONCONT(pIns->nDNA, DNA_NOTEFADE);
+
+ VERIFY_EQUAL_NONCONT(pIns->nMixPlug, 1);
+ VERIFY_EQUAL_NONCONT(pIns->nMidiChannel, 16);
+ VERIFY_EQUAL_NONCONT(pIns->nMidiProgram, 64);
+ VERIFY_EQUAL_NONCONT(pIns->wMidiBank, 2);
+
+ VERIFY_EQUAL_NONCONT(pIns->pTuning, pIns->s_DefaultTuning)
+
+ VERIFY_EQUAL_NONCONT(pIns->wPitchToTempoLock, 130);
+
+ VERIFY_EQUAL_NONCONT(pIns->nPluginVelocityHandling, PLUGIN_VELOCITYHANDLING_VOLUME);
+ VERIFY_EQUAL_NONCONT(pIns->nPluginVolumeHandling, PLUGIN_VOLUMEHANDLING_MIDI);
+
+ for(size_t i = 0; i < NOTE_MAX; i++)
+ {
+ if(i == NOTE_MIDDLEC - 1)
+ {
+ VERIFY_EQUAL_NONCONT(pIns->Keyboard[i], 99);
+ VERIFY_EQUAL_NONCONT(pIns->NoteMap[i], i + 13);
+ }
+ else
+ {
+ VERIFY_EQUAL_NONCONT(pIns->Keyboard[i], 1);
+ VERIFY_EQUAL_NONCONT(pIns->NoteMap[i], i + 1);
+ }
+ }
+
+ VERIFY_EQUAL_NONCONT(pIns->VolEnv.dwFlags, ENV_ENABLED | ENV_CARRY);
+ VERIFY_EQUAL_NONCONT(pIns->VolEnv.nNodes, 3);
+ VERIFY_EQUAL_NONCONT(pIns->VolEnv.nReleaseNode, 1);
+ VERIFY_EQUAL_NONCONT(pIns->VolEnv.Ticks[2], 96);
+ VERIFY_EQUAL_NONCONT(pIns->VolEnv.Values[2], 0);
+
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.dwFlags, ENV_LOOP);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.nNodes, 76);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.nLoopStart, 22);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.nLoopEnd, 29);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.nReleaseNode, ENV_RELEASE_NODE_UNSET);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.Ticks[75], 427);
+ VERIFY_EQUAL_NONCONT(pIns->PanEnv.Values[75], 27);
+
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.dwFlags, ENV_ENABLED | ENV_CARRY | ENV_SUSTAIN | ENV_FILTER);
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.nNodes, 3);
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.nSustainStart, 1);
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.nSustainEnd, 2);
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.Ticks[1], 96);
+ VERIFY_EQUAL_NONCONT(pIns->PitchEnv.Values[1], 64);
+
+ // Sequences
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetNumSequences(), 2);
+
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(0).GetLengthTailTrimmed(), 3);
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(0).m_sName, "First Sequence");
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(0)[0], pSndFile->Order.GetIgnoreIndex());
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(0)[1], 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(0)[2], pSndFile->Order.GetIgnoreIndex());
+
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(1).GetLengthTailTrimmed(), 2);
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(1).m_sName, "Second Sequence");
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(1)[0], 1);
+ VERIFY_EQUAL_NONCONT(pSndFile->Order.GetSequence(1)[1], 2);
+
+ // Patterns
+ VERIFY_EQUAL_NONCONT(pSndFile->GetNumPatterns(), 2);
+
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetName(), "First Pattern");
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetNumRows(), 70);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetNumChannels(), 2);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetOverrideSignature(), true);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetRowsPerBeat(), 5);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[0].GetRowsPerMeasure(), 10);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns.IsPatternEmpty(0), true);
+
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetName(), "Second Pattern");
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetNumRows(), 32);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetNumChannels(), 2);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetOverrideSignature(), false);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetRowsPerBeat(), 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetRowsPerMeasure(), 0);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns.IsPatternEmpty(1), false);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetpModCommand(0, 0)->IsPcNote(), true);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetpModCommand(0, 0)->GetValueVolCol(), 1);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetpModCommand(0, 0)->GetValueEffectCol(), 200);
+ VERIFY_EQUAL_NONCONT(pSndFile->Patterns[1].GetpModCommand(31, 0)->IsEmpty(), true);
+
+ // Plugins
+ const SNDMIXPLUGIN &plug = pSndFile->m_MixPlugins[0];
+ VERIFY_EQUAL_NONCONT(strcmp(plug.GetName(), "First Plugin"), 0);
+ VERIFY_EQUAL_NONCONT(plug.fDryRatio, 0.26f);
+ VERIFY_EQUAL_NONCONT((plug.Info.dwInputRouting & MIXPLUG_INPUTF_MASTEREFFECT), MIXPLUG_INPUTF_MASTEREFFECT);
+ VERIFY_EQUAL_NONCONT((plug.Info.dwInputRouting >> 16), 11);
+
+ // MIDI Mapping
+ VERIFY_EQUAL_NONCONT(pSndFile->GetMIDIMapper().GetCount(), 1);
+ const CMIDIMappingDirective &mapping = pSndFile->GetMIDIMapper().GetDirective(0);
+ VERIFY_EQUAL_NONCONT(mapping.GetAllowPatternEdit(), true);
+ VERIFY_EQUAL_NONCONT(mapping.GetCaptureMIDI(), false);
+ VERIFY_EQUAL_NONCONT(mapping.IsActive(), true);
+ VERIFY_EQUAL_NONCONT(mapping.GetAnyChannel(), false);
+ VERIFY_EQUAL_NONCONT(mapping.GetChannel(), 5);
+ VERIFY_EQUAL_NONCONT(mapping.GetPlugIndex(), 1);
+ VERIFY_EQUAL_NONCONT(mapping.GetParamIndex(), 0);
+ VERIFY_EQUAL_NONCONT(mapping.GetEvent(), MIDIEVENT_CONTROLLERCHANGE);
+ VERIFY_EQUAL_NONCONT(mapping.GetController(), MIDICC_ModulationWheel_Coarse);
+
+ pModDoc->OnCloseDocument();
+}
+
+
void TestPCnoteSerialization()
//----------------------------
{
Added: trunk/OpenMPT/mptrack/test/test.mptm
===================================================================
(Binary files differ)
Property changes on: trunk/OpenMPT/mptrack/test/test.mptm
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-14 18:24:50
|
Revision: 899
http://modplug.svn.sourceforge.net/modplug/?rev=899&view=rev
Author: saga-games
Date: 2011-06-14 18:24:43 +0000 (Tue, 14 Jun 2011)
Log Message:
-----------
[Fix] Saving long envelopes (> 25 envelope points) in the MPTM format was broken since... yes... revision *415*. Meaning that it never worked in any officially released version.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_it.cpp
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2011-06-13 00:02:17 UTC (rev 898)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2011-06-14 18:24:43 UTC (rev 899)
@@ -590,7 +590,7 @@
m_nDefaultRowsPerMeasure = pifh->highlight_major;
}
#ifdef DEBUG
- if((pifh->highlight_minor & pifh->highlight_major) == 0)
+ if((pifh->highlight_minor | pifh->highlight_major) == 0)
{
Log("IT Header: Row highlight is 0");
}
@@ -2981,14 +2981,17 @@
// write full envelope information for MPTM files (more env points)
if(maxNodes > 25)
{
+ WriteInstrumentPropertyForAllInstruments('VE..', sizeof(m_defaultInstrument.VolEnv.nNodes), f, instruments, nInstruments);
WriteInstrumentPropertyForAllInstruments('VP[.', sizeof(m_defaultInstrument.VolEnv.Ticks ), f, instruments, nInstruments);
WriteInstrumentPropertyForAllInstruments('VE[.', sizeof(m_defaultInstrument.VolEnv.Values), f, instruments, nInstruments);
- WriteInstrumentPropertyForAllInstruments('PP[.', sizeof(m_defaultInstrument.PanEnv.Ticks), f, instruments, nInstruments);
- WriteInstrumentPropertyForAllInstruments('PE[.', sizeof(m_defaultInstrument.PanEnv.Values), f, instruments, nInstruments);
+ WriteInstrumentPropertyForAllInstruments('PE..', sizeof(m_defaultInstrument.PanEnv.nNodes), f, instruments, nInstruments);
+ WriteInstrumentPropertyForAllInstruments('PP[.', sizeof(m_defaultInstrument.PanEnv.Ticks), f, instruments, nInstruments);
+ WriteInstrumentPropertyForAllInstruments('PE[.', sizeof(m_defaultInstrument.PanEnv.Values), f, instruments, nInstruments);
+ WriteInstrumentPropertyForAllInstruments('PiE.', sizeof(m_defaultInstrument.PitchEnv.nNodes), f, instruments, nInstruments);
WriteInstrumentPropertyForAllInstruments('PiP[', sizeof(m_defaultInstrument.PitchEnv.Ticks), f, instruments, nInstruments);
- WriteInstrumentPropertyForAllInstruments('PiE[', sizeof(m_defaultInstrument.PitchEnv.Values), f, instruments, nInstruments);
+ WriteInstrumentPropertyForAllInstruments('PiE[', sizeof(m_defaultInstrument.PitchEnv.Values), f, instruments, nInstruments);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-13 00:02:25
|
Revision: 898
http://modplug.svn.sourceforge.net/modplug/?rev=898&view=rev
Author: saga-games
Date: 2011-06-13 00:02:17 +0000 (Mon, 13 Jun 2011)
Log Message:
-----------
[Fix] Instrument tab: Suggested filename when saving instrument was sometimes cut
[Fix] Pattern tab: Using the "Paste Pattern" menu entry in the order list didn't refresh the pattern display.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_ins.cpp
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-06-12 16:12:04 UTC (rev 897)
+++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-06-13 00:02:17 UTC (rev 898)
@@ -1712,13 +1712,12 @@
if (!pIns) return;
if (pIns->filename[0])
{
- memcpy(szFileName, pIns->filename, 12);
- szFileName[12] = 0;
+ strncpy(szFileName, pIns->filename, min(CountOf(pIns->filename), CountOf(szFileName) - 1));
} else
{
- memcpy(szFileName, pIns->name, 22);
- szFileName[22] = 0;
+ strncpy(szFileName, pIns->name, min(CountOf(pIns->name), CountOf(szFileName) - 1));
}
+ SetNullTerminator(szFileName);
SanitizeFilename(szFileName);
FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, (m_pSndFile->GetType() == MOD_TYPE_XM) ? "xi" : "iti", szFileName,
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2011-06-12 16:12:04 UTC (rev 897)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2011-06-13 00:02:17 UTC (rev 898)
@@ -998,12 +998,11 @@
}
if (m_pSndFile->m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT))
{
- memcpy(szFileName, m_pSndFile->Samples[m_nSample].filename, MAX_SAMPLEFILENAME);
- szFileName[22] = 0;
+ strncpy(szFileName, m_pSndFile->Samples[m_nSample].filename, min(CountOf(m_pSndFile->Samples[m_nSample].filename), CountOf(szFileName) - 1));
} else
{
- memcpy(szFileName, m_pSndFile->m_szNames[m_nSample], MAX_SAMPLENAME);
- szFileName[32] = 0; }
+ strncpy(szFileName, m_pSndFile->m_szNames[m_nSample], min(CountOf(m_pSndFile->m_szNames[m_nSample]), CountOf(szFileName) - 1));
+ }
if (!szFileName[0]) strcpy(szFileName, "untitled");
}
else
@@ -1020,6 +1019,7 @@
sPath += ".wav";
_splitpath(sPath, NULL, NULL, szFileName, NULL);
}
+ SetNullTerminator(szFileName);
SanitizeFilename(szFileName);
FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, "wav", szFileName,
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2011-06-12 16:12:04 UTC (rev 897)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2011-06-13 00:02:17 UTC (rev 898)
@@ -3564,6 +3564,7 @@
{
CModDoc *pModDoc = GetDocument();
if (pModDoc) pModDoc->PastePattern(m_nPattern, 0, pm_overwrite);
+ InvalidatePattern();
}
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-12 16:12:11
|
Revision: 897
http://modplug.svn.sourceforge.net/modplug/?rev=897&view=rev
Author: saga-games
Date: 2011-06-12 16:12:04 +0000 (Sun, 12 Jun 2011)
Log Message:
-----------
[Fix] Pattern Editor: When overwriting PC notes with normal notes, the pattern cell is now cleared properly.
[Ref] GetNumChannels rocks.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Undo.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
Modified: trunk/OpenMPT/mptrack/Undo.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Undo.cpp 2011-06-10 23:51:22 UTC (rev 896)
+++ trunk/OpenMPT/mptrack/Undo.cpp 2011-06-12 16:12:04 UTC (rev 897)
@@ -53,9 +53,9 @@
if (!pSndFile->Patterns.IsValidPat(pattern)) return false;
nRows = pSndFile->Patterns[pattern].GetNumRows();
pPattern = pSndFile->Patterns[pattern];
- if ((firstRow >= nRows) || (numChns < 1) || (numRows < 1) || (firstChn >= pSndFile->m_nChannels)) return false;
+ if ((firstRow >= nRows) || (numChns < 1) || (numRows < 1) || (firstChn >= pSndFile->GetNumChannels())) return false;
if (firstRow + numRows >= nRows) numRows = nRows - firstRow;
- if (firstChn + numChns >= pSndFile->m_nChannels) numChns = pSndFile->m_nChannels - firstChn;
+ if (firstChn + numChns >= pSndFile->GetNumChannels()) numChns = pSndFile->GetNumChannels() - firstChn;
pUndoData = new MODCOMMAND[numChns * numRows];
if (!pUndoData) return false;
@@ -76,12 +76,12 @@
sUndo.numRows = numRows;
sUndo.pbuffer = pUndoData;
sUndo.linkToPrevious = linkToPrevious;
- pPattern += firstChn + firstRow * pSndFile->m_nChannels;
+ pPattern += firstChn + firstRow * pSndFile->GetNumChannels();
for(ROWINDEX iy = 0; iy < numRows; iy++)
{
memcpy(pUndoData, pPattern, numChns * sizeof(MODCOMMAND));
pUndoData += numChns;
- pPattern += pSndFile->m_nChannels;
+ pPattern += pSndFile->GetNumChannels();
}
UndoBuffer.push_back(sUndo);
@@ -129,18 +129,18 @@
nPattern = pUndo->pattern;
nRows = pUndo->patternsize;
- if(pUndo->firstChannel + pUndo->numChannels <= pSndFile->m_nChannels)
+ if(pUndo->firstChannel + pUndo->numChannels <= pSndFile->GetNumChannels())
{
if((!pSndFile->Patterns[nPattern]) || (pSndFile->Patterns[nPattern].GetNumRows() < nRows))
{
- MODCOMMAND *newPattern = CPattern::AllocatePattern(nRows, pSndFile->m_nChannels);
+ MODCOMMAND *newPattern = CPattern::AllocatePattern(nRows, pSndFile->GetNumChannels());
MODCOMMAND *oldPattern = pSndFile->Patterns[nPattern];
if (!newPattern) return PATTERNINDEX_INVALID;
const ROWINDEX nOldRowCount = pSndFile->Patterns[nPattern].GetNumRows();
pSndFile->Patterns[nPattern].SetData(newPattern, nRows);
if(oldPattern)
{
- memcpy(newPattern, oldPattern, pSndFile->m_nChannels * nOldRowCount * sizeof(MODCOMMAND));
+ memcpy(newPattern, oldPattern, pSndFile->GetNumChannels() * nOldRowCount * sizeof(MODCOMMAND));
CPattern::FreePattern(oldPattern);
}
}
@@ -148,11 +148,11 @@
pUndoData = pUndo->pbuffer;
pPattern = pSndFile->Patterns[nPattern];
if (!pSndFile->Patterns[nPattern]) return PATTERNINDEX_INVALID;
- pPattern += pUndo->firstChannel + (pUndo->firstRow * pSndFile->m_nChannels);
+ pPattern += pUndo->firstChannel + (pUndo->firstRow * pSndFile->GetNumChannels());
for(ROWINDEX iy = 0; iy < pUndo->numRows; iy++)
{
memcpy(pPattern, pUndoData, pUndo->numChannels * sizeof(MODCOMMAND));
- pPattern += pSndFile->m_nChannels;
+ pPattern += pSndFile->GetNumChannels();
pUndoData += pUndo->numChannels;
}
}
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2011-06-10 23:51:22 UTC (rev 896)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2011-06-12 16:12:04 UTC (rev 897)
@@ -986,10 +986,8 @@
// If invalidation on all columns is wanted, extent invalidation area.
if(invalidateAllCols)
- tmp += LAST_COLUMN - (tmp % 8);
+ tmp += LAST_COLUMN - GetColTypeFromCursor(tmp);
- ASSERT(tmp % 8 <= LAST_COLUMN);
-
InvalidateArea(m_dwBeginSel, tmp);
pModDoc->SetModified();
pModDoc->UpdateAllViews(this, HINT_PATTERNDATA | (m_nPattern << HINT_SHIFT_PAT), NULL);
@@ -1191,11 +1189,12 @@
InvalidateRect(&m_rcDropItem, FALSE);
const bool duplicate = (nFlags & MK_SHIFT) ? true : false;
- vector<CHANNELINDEX> channels(pModDoc->GetNumChannels() + (duplicate ? 1 : 0), 0);
+ const CHANNELINDEX newChannels = pModDoc->GetNumChannels() + (duplicate ? 1 : 0);
+ vector<CHANNELINDEX> channels(newChannels, 0);
CHANNELINDEX i = 0;
bool modified = duplicate;
- for(CHANNELINDEX nChn = 0; nChn < pModDoc->GetNumChannels() + (duplicate ? 1 : 0); nChn++)
+ for(CHANNELINDEX nChn = 0; nChn < newChannels; nChn++)
{
if(nChn == nTargetNo)
{
@@ -4397,8 +4396,16 @@
// If record is enabled, create undo point.
if(bRecordEnabled)
+ {
pModDoc->GetPatternUndo()->PrepareUndo(nPat, nChn, nRow, 1, 1);
+ }
+ // We're overwriting a PC note here.
+ if(pTarget->IsPcNote() && !MODCOMMAND::IsPcNote(note))
+ {
+ newcmd.Clear();
+ }
+
// -- write note and instrument data.
const bool isSplit = HandleSplit(&newcmd, note);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-10 23:51:29
|
Revision: 896
http://modplug.svn.sourceforge.net/modplug/?rev=896&view=rev
Author: saga-games
Date: 2011-06-10 23:51:22 +0000 (Fri, 10 Jun 2011)
Log Message:
-----------
[Fix] Saving IT instruments with invalid sample map crashed the tracker (http://bugs.openmpt.org/view.php?id=142)
[Mod] OpenMPT: Version is now 1.19.02.05
Modified Paths:
--------------
trunk/OpenMPT/mptrack/version.h
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Sampleio.cpp
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-06-08 22:15:59 UTC (rev 895)
+++ trunk/OpenMPT/mptrack/version.h 2011-06-10 23:51:22 UTC (rev 896)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 04
+#define VER_MINORMINOR 05
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2011-06-08 22:15:59 UTC (rev 895)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2011-06-10 23:51:22 UTC (rev 896)
@@ -1594,7 +1594,7 @@
for (UINT i=0; i<NOTE_MAX; i++) if (pIns->Keyboard[i] < MAX_SAMPLES)
{
const UINT smp = pIns->Keyboard[i];
- if (smp && !smpcount[smp - 1])
+ if (smp && smp <= GetNumSamples() && !smpcount[smp - 1])
{
smpcount[smp - 1] = true;
iti.nos++;
@@ -2188,7 +2188,7 @@
for (UINT i=0; i<NOTE_MAX; i++) if (pIns->Keyboard[i] < MAX_SAMPLES)
{
const UINT smp = pIns->Keyboard[i];
- if (smp && !smpcount[smp - 1])
+ if (smp && smp <= GetNumSamples() && !smpcount[smp - 1])
{
smpcount[smp - 1] = true;
iti.nos++;
Modified: trunk/OpenMPT/soundlib/Sampleio.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sampleio.cpp 2011-06-08 22:15:59 UTC (rev 895)
+++ trunk/OpenMPT/soundlib/Sampleio.cpp 2011-06-10 23:51:22 UTC (rev 896)
@@ -1823,7 +1823,7 @@
for (UINT i=0; i<NOTE_MAX; i++) if (pIns->Keyboard[i] < MAX_SAMPLES)
{
const UINT smp = pIns->Keyboard[i];
- if (smp && !smpcount[smp - 1])
+ if (smp && smp <= GetNumSamples() && !smpcount[smp - 1])
{
smpcount[smp - 1] = true;
smptable[iti->nos] = smp;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-08 22:16:05
|
Revision: 895
http://modplug.svn.sourceforge.net/modplug/?rev=895&view=rev
Author: saga-games
Date: 2011-06-08 22:15:59 +0000 (Wed, 08 Jun 2011)
Log Message:
-----------
[Mod] Returning to _mkgmtime, since the new code doesn't seem to play well with DST settings (using it only in VS2003 now, where it is required because _mkgmtime is not defined)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/misc_util.cpp
Modified: trunk/OpenMPT/mptrack/misc_util.cpp
===================================================================
--- trunk/OpenMPT/mptrack/misc_util.cpp 2011-06-07 17:17:49 UTC (rev 894)
+++ trunk/OpenMPT/mptrack/misc_util.cpp 2011-06-08 22:15:59 UTC (rev 895)
@@ -62,11 +62,14 @@
time_t Util::sdTime::MakeGmTime(tm& timeUtc)
{
+#if MSVC_VER_2003
+ // VC++ 2003 doesn't have _mkgmtime
+ // This does not seem to work properly with DST time zones sometimes - if that's of any concern for you, please upgrade your compiler :)
TIME_ZONE_INFORMATION tzi;
GetTimeZoneInformation(&tzi);
- const time_t timeUtcTimeT = mktime(&timeUtc) - 60 * tzi.Bias;
-#if (_MSC_VER >= MSVC_VER_2005) && defined(_DEBUG)
- ASSERT(timeUtcTimeT < 0 || timeUtcTimeT == _mkgmtime(&timeUtc));
+ const time_t timeUtcTimeT = mktime(&timeUtc) - tzi.Bias * 60;
+#else
+ const time_t timeUtcTimeT = _mkgmtime(&timeUtc);
#endif
return timeUtcTimeT;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-07 17:17:56
|
Revision: 894
http://modplug.svn.sourceforge.net/modplug/?rev=894&view=rev
Author: saga-games
Date: 2011-06-07 17:17:49 +0000 (Tue, 07 Jun 2011)
Log Message:
-----------
More detailed project readme
Modified Paths:
--------------
trunk/OpenMPT/README
Modified: trunk/OpenMPT/README
===================================================================
--- trunk/OpenMPT/README 2011-06-06 20:45:14 UTC (rev 893)
+++ trunk/OpenMPT/README 2011-06-07 17:17:49 UTC (rev 894)
@@ -4,10 +4,14 @@
they don't include MFC.
- The VST 2.4 and ASIO SDKs are needed for compiling with VST and ASIO support.
If you don't want this, uncomment #define NO_VST and #define NO_ASIO in the
- file StdAfx.h. If you need further help with the VST and ASIO SDKs, get in
- touch with the main developers.
+ file StdAfx.h. Have a look at include/readme.txt to find out which exact files
+ you need and where you can get them. If you need further help with the VST and
+ ASIO SDKs, get in touch with the main developers.
- You need the DirectX SDK to enable DirectSound output. If you don't want this,
uncomment #define NO_DSOUND in the file StdAfx.h.
+- To compile the project, open mptrack/MPTRACK.SLN (if you're using VS2003 or
+ VS2005), mptrack/MPTRACK_08.SLN (VS2008) or mptrack/MPTRACK_10.SLN (VS2010)
+ and hit the compile button! :)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2011-06-06 20:45:23
|
Revision: 893
http://modplug.svn.sourceforge.net/modplug/?rev=893&view=rev
Author: relabsoluness
Date: 2011-06-06 20:45:14 +0000 (Mon, 06 Jun 2011)
Log Message:
-----------
[New] Internal: Added VC2010 project files.
[Fix] Internal: Fix to failing builds in VC2003 and VC2010. Also some code- and VC2003 project tweaks to get the build done with less warnings.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/STDAFX.CPP
trunk/OpenMPT/mptrack/Stdafx.h
trunk/OpenMPT/mptrack/misc_util.cpp
trunk/OpenMPT/mptrack/misc_util.h
trunk/OpenMPT/mptrack/mptrack.vcproj
trunk/OpenMPT/soundtouch/soundtouch.vcproj
trunk/OpenMPT/ungzip/ungzip.vcproj
trunk/OpenMPT/unlha/unlha.vcproj
trunk/OpenMPT/unrar/UNRAR.vcproj
trunk/OpenMPT/unzip/unzip.vcproj
trunk/OpenMPT/xsoundlib/xsoundlib.vcproj
trunk/OpenMPT/zlib/contrib/vstudio/vc10/zlibstat.vcxproj
trunk/OpenMPT/zlib/contrib/vstudio/vc7/zlibstat.vcproj
Added Paths:
-----------
trunk/OpenMPT/mptrack/MPTRACK_10.sln
trunk/OpenMPT/mptrack/mptrack_10.vcxproj
trunk/OpenMPT/soundtouch/soundtouch_10.vcxproj
trunk/OpenMPT/ungzip/ungzip_10.vcxproj
trunk/OpenMPT/unlha/unlha_10.vcxproj
trunk/OpenMPT/unrar/unrar_10.vcxproj
trunk/OpenMPT/unzip/unzip_10.vcxproj
trunk/OpenMPT/xsoundlib/xsoundlib_10.vcxproj
Added: trunk/OpenMPT/mptrack/MPTRACK_10.sln
===================================================================
--- trunk/OpenMPT/mptrack/MPTRACK_10.sln (rev 0)
+++ trunk/OpenMPT/mptrack/MPTRACK_10.sln 2011-06-06 20:45:14 UTC (rev 893)
@@ -0,0 +1,108 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mptrack", "mptrack_10.vcxproj", "{21D95071-FB97-4E69-B3B1-050D0D4A5021}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unlha", "..\unlha\unlha_10.vcxproj", "{FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unrar", "..\unrar\unrar_10.vcxproj", "{FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unzip", "..\unzip\unzip_10.vcxproj", "{44316F22-904E-48AA-B841-5A3A6AC77319}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xsoundlib", "..\xsoundlib\xsoundlib_10.vcxproj", "{DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\soundtouch\soundtouch_10.vcxproj", "{CF3C2CA5-5D45-4635-BBA4-C1F435E10896}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ungzip", "..\ungzip\ungzip_10.vcxproj", "{94CD7910-649A-4075-9F33-7EBEE614FD45}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "..\zlib\contrib\vstudio\vc10\zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Release|Win32.ActiveCfg = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Release|Win32.Build.0 = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.Release|x64.ActiveCfg = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {21D95071-FB97-4E69-B3B1-050D0D4A5021}.ReleaseWithoutAsm|x64.ActiveCfg = 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Release|Win32.ActiveCfg = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Release|Win32.Build.0 = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.Release|x64.ActiveCfg = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}.ReleaseWithoutAsm|x64.ActiveCfg = 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Release|Win32.ActiveCfg = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Release|Win32.Build.0 = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.Release|x64.ActiveCfg = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {FF541CE2-DAA1-4F84-9883-0A0F111BAA0B}.ReleaseWithoutAsm|x64.ActiveCfg = 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Release|Win32.ActiveCfg = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Release|Win32.Build.0 = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.Release|x64.ActiveCfg = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {44316F22-904E-48AA-B841-5A3A6AC77319}.ReleaseWithoutAsm|x64.ActiveCfg = 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Release|Win32.ActiveCfg = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Release|Win32.Build.0 = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.Release|x64.ActiveCfg = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {DCC2BB2F-6778-4FD3-9C00-D6CD8DC917B8}.ReleaseWithoutAsm|x64.ActiveCfg = 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}.Debug|x64.ActiveCfg = Debug|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Release|Win32.ActiveCfg = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Release|Win32.Build.0 = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.Release|x64.ActiveCfg = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {CF3C2CA5-5D45-4635-BBA4-C1F435E10896}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Debug|Win32.ActiveCfg = Debug|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Debug|Win32.Build.0 = Debug|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Debug|x64.ActiveCfg = Debug|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Release|Win32.ActiveCfg = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Release|Win32.Build.0 = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.Release|x64.ActiveCfg = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.ReleaseWithoutAsm|Win32.Build.0 = Release|Win32
+ {94CD7910-649A-4075-9F33-7EBEE614FD45}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2011-06-06 20:45:14 UTC (rev 893)
@@ -424,7 +424,9 @@
lastUpdate.tm_year -= 1900;
lastUpdate.tm_mon--;
}
- time_t outTime = _mkgmtime(&lastUpdate);
+
+ time_t outTime = Util::sdTime::MakeGmTime(lastUpdate);
+
if(outTime < 0) outTime = 0;
CUpdateCheck::SetUpdateSettings
@@ -486,7 +488,7 @@
m_nPreAmp = GetPrivateProfileDWord("Sound Settings", "PreAmp", 128, iniFile);
CSoundFile::m_nStereoSeparation = GetPrivateProfileLong("Sound Settings", "StereoSeparation", 128, iniFile);
CSoundFile::m_nMaxMixChannels = GetPrivateProfileLong("Sound Settings", "MixChannels", MAX_CHANNELS, iniFile);
- gbWFIRType = GetPrivateProfileDWord("Sound Settings", "XMMSModplugResamplerWFIRType", 7, iniFile);
+ gbWFIRType = static_cast<BYTE>(GetPrivateProfileDWord("Sound Settings", "XMMSModplugResamplerWFIRType", 7, iniFile));
gdWFIRCutoff = static_cast<double>(GetPrivateProfileLong("Sound Settings", "ResamplerWFIRCutoff", 97, iniFile))/100.0;
glVolumeRampSamples = GetPrivateProfileLong("Sound Settings", "VolumeRampSamples", 42, iniFile);
@@ -527,7 +529,7 @@
if(m_szDirectoryToSettingsName[i][0] == 0)
continue;
- GetPrivateProfileString("Paths", m_szDirectoryToSettingsName[i], GetDefaultDirectory(static_cast<Directory>(i)), szPath, INIBUFFERSIZE, iniFile);
+ GetPrivateProfileString("Paths", m_szDirectoryToSettingsName[i], GetDefaultDirectory(static_cast<Directory>(i)), szPath, CountOf(szPath), iniFile);
RelativePathToAbsolute(szPath);
SetDefaultDirectory(szPath, static_cast<Directory>(i), false);
@@ -1389,11 +1391,13 @@
// -> CODE#0021
// -> DESC="use multimedia timer instead of Sleep() in audio thread"
- CloseHandle(sleepEvent);
+ // Commented as this caused "warning C4702: unreachable code"
+ //CloseHandle(sleepEvent);
// -! BEHAVIOUR_CHANGE#0021
- ExitThread(0);
- return 0;
+ // Commented the two lines below as those caused "warning C4702: unreachable code"
+ //ExitThread(0);
+ //return 0;
}
@@ -1449,8 +1453,9 @@
}
}
}
- ExitThread(0);
- return 0;
+ // Commented the two lines below as those caused "warning C4702: unreachable code"
+ //ExitThread(0);
+ //return 0;
}
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-06 20:45:14 UTC (rev 893)
@@ -785,7 +785,7 @@
strMsg.FormatV(pszFormat, args);
va_end(args);
- m_logEvents << Util::GetDateTimeStr()
+ m_logEvents << Util::sdTime::GetDateTimeStr()
<< _T("Event type: ") << eventType << std::endl
<< _T("Function: ") << pszFuncName << std::endl
<< _T("Message: ") << strMsg << std::endl << std::endl;
@@ -3887,4 +3887,4 @@
// Sequence names.
// Not needed?
-}
\ No newline at end of file
+}
Modified: trunk/OpenMPT/mptrack/STDAFX.CPP
===================================================================
--- trunk/OpenMPT/mptrack/STDAFX.CPP 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/STDAFX.CPP 2011-06-06 20:45:14 UTC (rev 893)
@@ -4,6 +4,8 @@
#include "stdafx.h"
+#if (_MSC_VER == MSVC_VER_2008)
+
// Fix for VS2008 SP1 bloatage (http://tedwvc.wordpress.com/2011/04/16/static-mfc-code-bloat-problem-from-vc2010-is-now-in-vc2008-sp1security-fix/):
// this is our own local copy of the AfxLoadSystemLibraryUsingFullPath function
@@ -30,3 +32,5 @@
return(::AfxCtxLoadLibraryW(wszLoadPath));
}
+
+#endif
Modified: trunk/OpenMPT/mptrack/Stdafx.h
===================================================================
--- trunk/OpenMPT/mptrack/Stdafx.h 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/Stdafx.h 2011-06-06 20:45:14 UTC (rev 893)
@@ -99,6 +99,19 @@
//To mark string that should be translated in case of multilingual version.
#define GetStrI18N(x) (x)
+#pragma warning(error : 4309) // Treat "truncation of constant value"-warning as error.
+
+// Definitions for MSVC versions to write more understandable conditional-compilation,
+// e.g. #if (_MSC_VER > MSVC_VER_2008) instead of #if (_MSC_VER > 1500)
+#define MSVC_VER_VC71 1310
+#define MSVC_VER_2003 MSVC_VER_VC71
+#define MSVC_VER_VC8 1400
+#define MSVC_VER_2005 MSVC_VER_VC8
+#define MSVC_VER_VC9 1500
+#define MSVC_VER_2008 MSVC_VER_VC9
+#define MSVC_VER_VC10 1600
+#define MSVC_VER_2010 MSVC_VER_VC10
+
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
Modified: trunk/OpenMPT/mptrack/misc_util.cpp
===================================================================
--- trunk/OpenMPT/mptrack/misc_util.cpp 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/misc_util.cpp 2011-06-06 20:45:14 UTC (rev 893)
@@ -53,10 +53,21 @@
}
-std::basic_string<TCHAR> Util::GetDateTimeStr()
+std::basic_string<TCHAR> Util::sdTime::GetDateTimeStr()
{
time_t t;
std::time(&t);
return _tctime(&t);
}
+time_t Util::sdTime::MakeGmTime(tm& timeUtc)
+{
+ TIME_ZONE_INFORMATION tzi;
+ GetTimeZoneInformation(&tzi);
+ const time_t timeUtcTimeT = mktime(&timeUtc) - 60 * tzi.Bias;
+#if (_MSC_VER >= MSVC_VER_2005) && defined(_DEBUG)
+ ASSERT(timeUtcTimeT < 0 || timeUtcTimeT == _mkgmtime(&timeUtc));
+#endif
+ return timeUtcTimeT;
+}
+
Modified: trunk/OpenMPT/mptrack/misc_util.h
===================================================================
--- trunk/OpenMPT/mptrack/misc_util.h 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/misc_util.h 2011-06-06 20:45:14 UTC (rev 893)
@@ -248,8 +248,17 @@
// Returns maximum value of given integer type.
template <class T> inline T MaxValueOfType(const T&) {static_assert(std::numeric_limits<T>::is_integer == true, "Only interger types are allowed."); return (std::numeric_limits<T>::max)();}
+
+};
+
+namespace Util { namespace sdTime
+{
// Returns string containing date and time ended with newline.
std::basic_string<TCHAR> GetDateTimeStr();
-};
+ time_t MakeGmTime(tm& timeUtc);
+
+}}; // namespace Util::sdTime
+
+
#endif
Modified: trunk/OpenMPT/mptrack/mptrack.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.vcproj 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/mptrack/mptrack.vcproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -48,7 +48,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib delayimp.lib"
+ AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib delayimp.lib wininet.lib"
OutputFile=".\Debug/mptrack.exe"
Version="5.0"
LinkIncremental="2"
Added: trunk/OpenMPT/mptrack/mptrack_10.vcxproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack_10.vcxproj (rev 0)
+++ trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Template|Win32">
+ <Configuration>Template</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>mptrack</ProjectName>
+ <ProjectGuid>{21D95071-FB97-4E69-B3B1-050D0D4A5021}</ProjectGuid>
+ <RootNamespace>mptrack</RootNamespace>
+ <Keyword>MFCProj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>Static</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>Dynamic</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Debug/mptrack.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\unlha;..\unzip;..\unrar;..\soundlib;..\include;..\xsoundlib;..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;ENABLE_EQ;MODPLUG_TRACKER;NO_PACKING;HAVE_DOT_NET;ENABLE_AMD;ENABLE_SSE;ENABLE_AMDNOW;ENABLE_MMX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderOutputFile>.\Debug/mptrack.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>false</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;opengl32.lib;glu32.lib;Rpcrt4.lib;delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\Debug/mptrack.exe</OutputFile>
+ <Version>5.0</Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <DelayLoadDLLs>OpenMPT_SoundTouch_i16.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <ProgramDatabaseFile>.\Debug/mptrack.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>.\Debug/mptrack.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)res/rt_manif.bin;%(AdditionalManifestFiles)</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Bin/mptrack.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <AdditionalOptions>/EHsc /O2 %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\unlha;..\unzip;..\unrar;..\soundlib;..\include;..\xsoundlib;..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;ENABLE_MMX;ENABLE_EQ;MODPLUG_TRACKER;NO_PACKING;HAVE_DOT_NET;ENABLE_AMD;ENABLE_SSE;ENABLE_AMDNOW;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderOutputFile>.\Release/mptrack.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>false</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;opengl32.lib;glu32.lib;Rpcrt4.lib;delayimp.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <Version>5.0</Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <DelayLoadDLLs>OpenMPT_SoundTouch_i16.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>false</GenerateMapFile>
+ <MapFileName>.\Release/mptrack.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>true</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ <Manifest>
+ <AdditionalManifestFiles>$(ProjectDir)res/rt_manif.bin;%(AdditionalManifestFiles)</AdditionalManifestFiles>
+ </Manifest>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="AbstractVstEditor.cpp" />
+ <ClCompile Include="ArrayUtils.cpp" />
+ <ClCompile Include="AutoSaver.cpp" />
+ <ClCompile Include="ChannelManagerDlg.cpp" />
+ <ClCompile Include="ChildFrm.cpp" />
+ <ClCompile Include="CleanupSong.cpp" />
+ <ClCompile Include="ColourEdit.cpp" />
+ <ClCompile Include="CommandSet.cpp" />
+ <ClCompile Include="CreditStatic.cpp" />
+ <ClCompile Include="ctrl_com.cpp" />
+ <ClCompile Include="ctrl_gen.cpp" />
+ <ClCompile Include="ctrl_ins.cpp" />
+ <ClCompile Include="ctrl_pat.cpp" />
+ <ClCompile Include="ctrl_seq.cpp" />
+ <ClCompile Include="ctrl_smp.cpp" />
+ <ClCompile Include="DefaultVstEditor.cpp" />
+ <ClCompile Include="dlg_misc.cpp" />
+ <ClCompile Include="..\soundlib\dlsbank.cpp" />
+ <ClCompile Include="draw_pat.cpp" />
+ <ClCompile Include="EffectVis.cpp" />
+ <ClCompile Include="..\soundlib\Fastmix.cpp" />
+ <ClCompile Include="fxp.cpp" />
+ <ClCompile Include="globals.cpp" />
+ <ClCompile Include="HyperEdit.cpp" />
+ <ClCompile Include="HyperEdit2.cpp" />
+ <ClCompile Include="HyperEdit3.cpp" />
+ <ClCompile Include="InputHandler.cpp" />
+ <ClCompile Include="KeyConfigDlg.cpp" />
+ <ClCompile Include="mainbar.cpp" />
+ <ClCompile Include="MainFrm.cpp" />
+ <ClCompile Include="..\soundlib\Message.cpp" />
+ <ClCompile Include="MIDIMappingDialog.cpp" />
+ <ClCompile Include="misc_util.cpp" />
+ <ClCompile Include="..\soundlib\mmcmp.cpp" />
+ <ClCompile Include="..\soundlib\Mmx_mix.cpp" />
+ <ClCompile Include="mod2midi.cpp" />
+ <ClCompile Include="Mod2wave.cpp" />
+ <ClCompile Include="..\soundlib\mod_specifications.cpp" />
+ <ClCompile Include="..\soundlib\modcommand.cpp" />
+ <ClCompile Include="ModConvert.cpp" />
+ <ClCompile Include="Moddoc.cpp" />
+ <ClCompile Include="Modedit.cpp" />
+ <ClCompile Include="..\soundlib\ModSequence.cpp" />
+ <ClCompile Include="..\soundlib\modsmp_ctrl.cpp" />
+ <ClCompile Include="Moptions.cpp" />
+ <ClCompile Include="MoveFXSlotDialog.cpp" />
+ <ClCompile Include="Mpdlgs.cpp" />
+ <ClCompile Include="mpt_midi.cpp" />
+ <ClCompile Include="MPTHacks.cpp" />
+ <ClCompile Include="mptrack.cpp" />
+ <ClCompile Include="OpenGLControl.cpp" />
+ <ClCompile Include="OpenGLDevice.cpp" />
+ <ClCompile Include="OpenGLEditor.cpp" />
+ <ClCompile Include="..\soundlib\pattern.cpp" />
+ <ClCompile Include="..\soundlib\patternContainer.cpp" />
+ <ClCompile Include="PatternEditorDialogs.cpp" />
+ <ClCompile Include="PatternGotoDialog.cpp" />
+ <ClCompile Include="PerformanceCounter.cpp" />
+ <ClCompile Include="..\soundlib\PlaybackEventer.cpp" />
+ <ClCompile Include="PSRatioCalc.cpp" />
+ <ClCompile Include="SampleEditorDialogs.cpp" />
+ <ClCompile Include="..\soundlib\Sampleio.cpp" />
+ <ClCompile Include="ScaleEnvPointsDlg.cpp" />
+ <ClCompile Include="serialization_utils.cpp" />
+ <ClCompile Include="..\soundlib\snd_dsp.cpp" />
+ <ClCompile Include="..\soundlib\snd_eq.cpp" />
+ <ClCompile Include="..\soundlib\snd_flt.cpp" />
+ <ClCompile Include="..\soundlib\Snd_fx.cpp" />
+ <ClCompile Include="..\Soundlib\Snd_rvb.cpp">
+ <AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AssemblyAndSourceCode</AssemblerOutput>
+ </ClCompile>
+ <ClCompile Include="..\Soundlib\snddev.cpp" />
+ <ClCompile Include="..\soundlib\Sndfile.cpp" />
+ <ClCompile Include="..\soundlib\Sndmix.cpp" />
+ <ClCompile Include="SoundFilePlayConfig.cpp" />
+ <ClCompile Include="StdAfx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="..\soundlib\Tables.cpp" />
+ <ClCompile Include="tagging.cpp" />
+ <ClCompile Include="Undo.cpp" />
+ <ClCompile Include="UpdateCheck.cpp" />
+ <ClCompile Include="view_com.cpp" />
+ <ClCompile Include="view_gen.cpp" />
+ <ClCompile Include="view_ins.cpp" />
+ <ClCompile Include="view_pat.cpp" />
+ <ClCompile Include="view_smp.cpp" />
+ <ClCompile Include="view_tre.cpp" />
+ <ClCompile Include="VSTEditor.cpp" />
+ <ClCompile Include="vstplug.cpp" />
+ <ClCompile Include="..\soundlib\Waveform.cpp" />
+ <ClCompile Include="..\soundlib\WindowedFIR.cpp" />
+ <ClCompile Include="PatternRandomizer.cpp" />
+ <ClCompile Include="PatternRandomizerGUI.cpp" />
+ <ClCompile Include="PatternRandomizerGUIEffect.cpp" />
+ <ClCompile Include="PatternRandomizerGUIInstrument.cpp" />
+ <ClCompile Include="PatternRandomizerGUINote.cpp" />
+ <ClCompile Include="PatternRandomizerGUIVolCmd.cpp" />
+ <ClCompile Include="ChannelNode.cpp" />
+ <ClCompile Include="ctrl_graph.cpp" />
+ <ClCompile Include="EffectNode.cpp" />
+ <ClCompile Include="FinalNode.cpp" />
+ <ClCompile Include="Graph.cpp" />
+ <ClCompile Include="InstrumentNode.cpp" />
+ <ClCompile Include="Node.cpp" />
+ <ClCompile Include="Vertex.cpp" />
+ <ClCompile Include="view_graph.cpp" />
+ <ClCompile Include="..\soundlib\tuning.cpp" />
+ <ClCompile Include="..\soundlib\tuningbase.cpp" />
+ <ClCompile Include="..\soundlib\tuningCollection.cpp" />
+ <ClCompile Include="TuningDialog.cpp" />
+ <ClCompile Include="tuningRatioMapWnd.cpp" />
+ <ClCompile Include="test\test.cpp" />
+ <ClCompile Include="..\soundlib\Load_669.cpp" />
+ <ClCompile Include="..\Soundlib\load_amf.cpp" />
+ <ClCompile Include="..\soundlib\Load_ams.cpp" />
+ <ClCompile Include="..\soundlib\load_dbm.cpp" />
+ <ClCompile Include="..\soundlib\load_dmf.cpp" />
+ <ClCompile Include="..\soundlib\Load_dsm.cpp" />
+ <ClCompile Include="..\soundlib\Load_far.cpp" />
+ <ClCompile Include="..\soundlib\Load_gdm.cpp" />
+ <ClCompile Include="..\soundlib\Load_imf.cpp" />
+ <ClCompile Include="..\soundlib\Load_it.cpp" />
+ <ClCompile Include="..\soundlib\Load_itp.cpp" />
+ <ClCompile Include="..\soundlib\load_j2b.cpp" />
+ <ClCompile Include="..\soundlib\Load_mdl.cpp" />
+ <ClCompile Include="..\soundlib\Load_med.cpp" />
+ <ClCompile Include="..\soundlib\load_mid.cpp" />
+ <ClCompile Include="..\soundlib\Load_mo3.cpp" />
+ <ClCompile Include="..\soundlib\Load_mod.cpp" />
+ <ClCompile Include="..\Soundlib\load_mt2.cpp" />
+ <ClCompile Include="..\soundlib\Load_mtm.cpp" />
+ <ClCompile Include="..\soundlib\Load_okt.cpp" />
+ <ClCompile Include="..\Soundlib\load_psm.cpp" />
+ <ClCompile Include="..\soundlib\load_ptm.cpp" />
+ <ClCompile Include="..\soundlib\Load_s3m.cpp" />
+ <ClCompile Include="..\soundlib\Load_stm.cpp" />
+ <ClCompile Include="..\soundlib\Load_ult.cpp" />
+ <ClCompile Include="..\Soundlib\Load_umx.cpp" />
+ <ClCompile Include="..\soundlib\Load_wav.cpp" />
+ <ClCompile Include="..\soundlib\Load_xm.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="mptrack.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="PatternRandomizer.h" />
+ <ClInclude Include="PatternRandomizerGUI.h" />
+ <ClInclude Include="PatternRandomizerGUIEffect.h" />
+ <ClInclude Include="PatternRandomizerGUIInstrument.h" />
+ <ClInclude Include="PatternRandomizerGUINote.h" />
+ <ClInclude Include="PatternRandomizerGUIVolCmd.h" />
+ <ClInclude Include="ChannelNode.h" />
+ <ClInclude Include="ctrl_graph.h" />
+ <ClInclude Include="EffectNode.h" />
+ <ClInclude Include="FinalNode.h" />
+ <ClInclude Include="Graph.h" />
+ <ClInclude Include="InstrumentNode.h" />
+ <ClInclude Include="Node.h" />
+ <ClInclude Include="Vertex.h" />
+ <ClInclude Include="view_graph.h" />
+ <ClInclude Include="AbstractVstEditor.h" />
+ <ClInclude Include="ArrayUtils.h" />
+ <ClInclude Include="AutoSaver.h" />
+ <ClInclude Include="ChannelManagerDlg.h" />
+ <ClInclude Include="ChildFrm.h" />
+ <ClInclude Include="CleanupSong.h" />
+ <ClInclude Include="ColourEdit.h" />
+ <ClInclude Include="CommandSet.h" />
+ <ClInclude Include="CreditStatic.h" />
+ <ClInclude Include="ctrl_com.h" />
+ <ClInclude Include="ctrl_gen.h" />
+ <ClInclude Include="ctrl_ins.h" />
+ <ClInclude Include="ctrl_pat.h" />
+ <ClInclude Include="ctrl_smp.h" />
+ <ClInclude Include="DefaultVstEditor.h" />
+ <ClInclude Include="dlg_misc.h" />
+ <ClInclude Include="..\Soundlib\Dlsbank.h" />
+ <ClInclude Include="EffectVis.h" />
+ <ClInclude Include="..\soundlib\Endianness.h" />
+ <ClInclude Include="fxp.h" />
+ <ClInclude Include="globals.h" />
+ <ClInclude Include="InputHandler.h" />
+ <ClInclude Include="..\soundlib\IT_DEFS.H" />
+ <ClInclude Include="KeyboardSettings.h" />
+ <ClInclude Include="KeyConfigDlg.h" />
+ <ClInclude Include="mainbar.h" />
+ <ClInclude Include="MainFrm.h" />
+ <ClInclude Include="..\soundlib\midi.h" />
+ <ClInclude Include="MIDIMappingDialog.h" />
+ <ClInclude Include="misc_util.h" />
+ <ClInclude Include="mod2midi.h" />
+ <ClInclude Include="mod2wave.h" />
+ <ClInclude Include="..\soundlib\mod_specifications.h" />
+ <ClInclude Include="..\soundlib\modcommand.h" />
+ <ClInclude Include="ModConvert.h" />
+ <ClInclude Include="moddoc.h" />
+ <ClInclude Include="..\soundlib\ModSequence.h" />
+ <ClInclude Include="..\soundlib\modsmp_ctrl.h" />
+ <ClInclude Include="Moptions.h" />
+ <ClInclude Include="MoveFXSlotDialog.h" />
+ <ClInclude Include="Mpdlgs.h" />
+ <ClInclude Include="mptrack.h" />
+ <ClInclude Include="OpenGLControl.h" />
+ <ClInclude Include="OpenGLDevice.h" />
+ <ClInclude Include="OpenGLEditor.h" />
+ <ClInclude Include="..\soundlib\pattern.h" />
+ <ClInclude Include="..\soundlib\patternContainer.h" />
+ <ClInclude Include="PatternEditorDialogs.h" />
+ <ClInclude Include="PatternGotoDialog.h" />
+ <ClInclude Include="PerformanceCounter.h" />
+ <ClInclude Include="..\soundlib\PlaybackEventer.h" />
+ <ClInclude Include="PSRatioCalc.h" />
+ <ClInclude Include="Resource.h" />
+ <ClInclude Include="SampleEditorDialogs.h" />
+ <ClInclude Include="SampleGenerator.h" />
+ <ClInclude Include="ScaleEnvPointsDlg.h" />
+ <ClInclude Include="serialization_utils.h" />
+ <ClInclude Include="..\soundlib\Snd_defs.h" />
+ <ClInclude Include="..\Soundlib\snddev.h" />
+ <ClInclude Include="..\Soundlib\snddevx.h" />
+ <ClInclude Include="..\Soundlib\Sndfile.h" />
+ <ClInclude Include="SoundFilePlayConfig.h" />
+ <ClInclude Include="StdAfx.h" />
+ <ClInclude Include="tagging.h" />
+ <ClInclude Include="typedefs.h" />
+ <ClInclude Include="Undo.h" />
+ <ClInclude Include="UpdateCheck.h" />
+ <ClInclude Include="version.h" />
+ <ClInclude Include="view_com.h" />
+ <ClInclude Include="view_gen.h" />
+ <ClInclude Include="view_ins.h" />
+ <ClInclude Include="view_pat.h" />
+ <ClInclude Include="view_smp.h" />
+ <ClInclude Include="view_tre.h" />
+ <ClInclude Include="VSTEditor.h" />
+ <ClInclude Include="vstplug.h" />
+ <ClInclude Include="..\soundlib\Wav.h" />
+ <ClInclude Include="..\soundlib\wavConverter.h" />
+ <ClInclude Include="..\soundlib\WindowedFIR.h" />
+ <ClInclude Include="..\soundlib\tuning.h" />
+ <ClInclude Include="..\soundlib\tuningbase.h" />
+ <ClInclude Include="..\soundlib\tuningcollection.h" />
+ <ClInclude Include="TuningDialog.h" />
+ <ClInclude Include="tuningRatioMapWnd.h" />
+ <ClInclude Include="test\test.h" />
+ <ClInclude Include="..\soundlib\Loaders.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="res\bitmap1.bmp" />
+ <None Include="res\colors.bmp" />
+ <None Include="res\dragging.cur" />
+ <None Include="Res\envbar.bmp" />
+ <None Include="res\img_list.bmp" />
+ <None Include="res\mainbar.bmp" />
+ <None Include="res\moddoc.ico" />
+ <None Include="res\MPTRACK.bmp" />
+ <None Include="res\mptrack.ico" />
+ <None Include="res\mptrack.rc2" />
+ <None Include="Res\nodrag.cur" />
+ <None Include="res\nodrop.cur" />
+ <None Include="res\patterns.bmp" />
+ <None Include="res\rt_manif.bin" />
+ <None Include="Res\smptoolb.bmp" />
+ <None Include="res\splashno.bmp" />
+ <None Include="res\view_pat.bmp" />
+ <None Include="res\visnode1.bmp" />
+ <None Include="res\vispcnode.bmp" />
+ <None Include="res\vumeters.bmp" />
+ <None Include="res\built-inTunings.tc" />
+ <None Include="res\defaultKeybindings.mkb" />
+ <None Include="mptrack.reg" />
+ <None Include="VTune\mptrack.vpj" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\soundtouch\soundtouch_10.vcxproj">
+ <Project>{cf3c2ca5-5d45-4635-bba4-c1f435e10896}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\ungzip\ungzip_10.vcxproj">
+ <Project>{94cd7910-649a-4075-9f33-7ebee614fd45}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\unlha\unlha_10.vcxproj">
+ <Project>{fae39936-1dc7-40bb-ad3f-3b5b9e9ab0e8}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\unrar\unrar_10.vcxproj">
+ <Project>{ff541ce2-daa1-4f84-9883-0a0f111baa0b}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\unzip\unzip_10.vcxproj">
+ <Project>{44316f22-904e-48aa-b841-5a3a6ac77319}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\zlib\contrib\vstudio\vc10\zlibstat.vcxproj">
+ <Project>{745dec58-ebb3-47a9-a9b8-4c6627c01bf8}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+ <ProjectExtensions>
+ <VisualStudio>
+ <UserProperties RESOURCE_FILE="mptrack.rc" />
+ </VisualStudio>
+ </ProjectExtensions>
+</Project>
\ No newline at end of file
Modified: trunk/OpenMPT/soundtouch/soundtouch.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch.vcproj 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/soundtouch/soundtouch.vcproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -23,7 +23,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DLL_EXPORTS;INTEGER_SAMPLES=1"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
ForceConformanceInForLoopScope="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
Added: trunk/OpenMPT/soundtouch/soundtouch_10.vcxproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch_10.vcxproj (rev 0)
+++ trunk/OpenMPT/soundtouch/soundtouch_10.vcxproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>SoundTouch</ProjectName>
+ <ProjectGuid>{CF3C2CA5-5D45-4635-BBA4-C1F435E10896}</ProjectGuid>
+ <RootNamespace>soundtouch</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
+ <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</IgnoreImportLibrary>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">OpenMPT_SoundTouch_i16</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">OpenMPT_SoundTouch_i16</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;DLL_EXPORTS;INTEGER_SAMPLES=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)soundtouch.lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/O2 %(AdditionalOptions)</AdditionalOptions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_EXPORTS;INTEGER_SAMPLES=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
+ <StripPrivateSymbols>
+ </StripPrivateSymbols>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)soundtouch.lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="3dnow_win.cpp" />
+ <ClCompile Include="AAFilter.cpp" />
+ <ClCompile Include="BPMDetect.cpp" />
+ <ClCompile Include="cpu_detect_x86_win.cpp" />
+ <ClCompile Include="FIFOSampleBuffer.cpp" />
+ <ClCompile Include="FIRFilter.cpp" />
+ <ClCompile Include="mmx_optimized.cpp" />
+ <ClCompile Include="PeakFinder.cpp" />
+ <ClCompile Include="RateTransposer.cpp" />
+ <ClCompile Include="SoundTouch.cpp" />
+ <ClCompile Include="SoundTouchDLL.cpp" />
+ <ClCompile Include="sse_optimized.cpp" />
+ <ClCompile Include="TDStretch.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="AAFilter.h" />
+ <ClInclude Include="BPMDetect.h" />
+ <ClInclude Include="cpu_detect.h" />
+ <ClInclude Include="FIFOSampleBuffer.h" />
+ <ClInclude Include="FIFOSamplePipe.h" />
+ <ClInclude Include="FIRFilter.h" />
+ <ClInclude Include="PeakFinder.h" />
+ <ClInclude Include="RateTransposer.h" />
+ <ClInclude Include="resource.h" />
+ <ClInclude Include="SoundTouch.h" />
+ <ClInclude Include="SoundTouchDLL.h" />
+ <ClInclude Include="STTypes.h" />
+ <ClInclude Include="TDStretch.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="SoundTouchDLL.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
Modified: trunk/OpenMPT/ungzip/ungzip.vcproj
===================================================================
--- trunk/OpenMPT/ungzip/ungzip.vcproj 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/ungzip/ungzip.vcproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -22,7 +22,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;ZLIB_WINAPI"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
ForceConformanceInForLoopScope="TRUE"
UsePrecompiledHeader="0"
Added: trunk/OpenMPT/ungzip/ungzip_10.vcxproj
===================================================================
--- trunk/OpenMPT/ungzip/ungzip_10.vcxproj (rev 0)
+++ trunk/OpenMPT/ungzip/ungzip_10.vcxproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>ungzip</ProjectName>
+ <ProjectGuid>{94CD7910-649A-4075-9F33-7EBEE614FD45}</ProjectGuid>
+ <RootNamespace>ungzip</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <OmitDefaultLibName>true</OmitDefaultLibName>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>false</SuppressStartupBanner>
+ <DebugInformationFormat>
+ </DebugInformationFormat>
+ <OmitDefaultLibName>true</OmitDefaultLibName>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="ungzip.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="ungzip.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
Modified: trunk/OpenMPT/unlha/unlha.vcproj
===================================================================
--- trunk/OpenMPT/unlha/unlha.vcproj 2011-06-04 23:49:38 UTC (rev 892)
+++ trunk/OpenMPT/unlha/unlha.vcproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -24,7 +24,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
StringPooling="TRUE"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
EnableFunctionLevelLinking="TRUE"
PrecompiledHeaderFile=".\Debug/unlha.pch"
Added: trunk/OpenMPT/unlha/unlha_10.vcxproj
===================================================================
--- trunk/OpenMPT/unlha/unlha_10.vcxproj (rev 0)
+++ trunk/OpenMPT/unlha/unlha_10.vcxproj 2011-06-06 20:45:14 UTC (rev 893)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>unlha</ProjectName>
+ <ProjectGuid>{FAE39936-1DC7-40BB-AD3F-3B5B9E9AB0E8}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>.\Debug/unlha.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <OutputFile>.\Debug\unlha.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/O1 %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>MinSpace</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>true</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>.\Release/unlha.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>false</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="unlha.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$...
[truncated message content] |
|
From: <sag...@us...> - 2011-06-04 23:49:45
|
Revision: 892
http://modplug.svn.sourceforge.net/modplug/?rev=892&view=rev
Author: saga-games
Date: 2011-06-04 23:49:38 +0000 (Sat, 04 Jun 2011)
Log Message:
-----------
[Fix] Rendering sub songs to WAV resulted in an endless render loop.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2011-06-03 20:31:55 UTC (rev 891)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2011-06-04 23:49:38 UTC (rev 892)
@@ -788,8 +788,11 @@
#ifdef MODPLUG_TRACKER
// Let's check again if this really is the end of the song.
// The visited rows vector might have been screwed up while editing...
+ // This is of course not possible during rendering to WAV, so we ignore that case.
GetLengthType t = GetLength(eNoAdjust);
- if(t.lastOrder == m_nCurrentPattern && t.lastRow == m_nRow)
+ if((gdwSoundSetup & SNDMIX_DIRECTTODISK) || (t.lastOrder == m_nCurrentPattern && t.lastRow == m_nRow))
+#else
+ if(1)
#endif // MODPLUG_TRACKER
{
// This is really the song's end!
@@ -1048,7 +1051,7 @@
if(pChn->nVolSwing)
{
- if(!(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) || GetModFlag(MSF_OLDVOLSWING))
+ if(GetModFlag(MSF_OLDVOLSWING))
{
vol += pChn->nVolSwing;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-03 20:32:02
|
Revision: 891
http://modplug.svn.sourceforge.net/modplug/?rev=891&view=rev
Author: saga-games
Date: 2011-06-03 20:31:55 +0000 (Fri, 03 Jun 2011)
Log Message:
-----------
[Fix] Pattern Editor: When changing the number of channels through the song properties, the channel headers in the pattern display were not updated properly (http://bugs.openmpt.org/view.php?id=140)
[Mod] OpenMPT: Version is now 1.19.02.04
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/mptrack/version.h
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-01 22:23:05 UTC (rev 890)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-06-03 20:31:55 UTC (rev 891)
@@ -3761,8 +3761,8 @@
if(ChangeNumChannels(nNewChannels, showCancelInRemoveDlg)) bShowLog = true;
}
- // Force update of pattern highlights
- UpdateAllViews(NULL, HINT_PATTERNDATA);
+ // Force update of pattern highlights / num channels
+ UpdateAllViews(NULL, HINT_PATTERNDATA | HINT_MODCHANNELS);
SetModified();
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-06-01 22:23:05 UTC (rev 890)
+++ trunk/OpenMPT/mptrack/version.h 2011-06-03 20:31:55 UTC (rev 891)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 03
+#define VER_MINORMINOR 04
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-01 22:23:11
|
Revision: 890
http://modplug.svn.sourceforge.net/modplug/?rev=890&view=rev
Author: saga-games
Date: 2011-06-01 22:23:05 +0000 (Wed, 01 Jun 2011)
Log Message:
-----------
That line wasn't supposed to be commited.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_ins.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-06-01 22:20:57 UTC (rev 889)
+++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-06-01 22:23:05 UTC (rev 890)
@@ -950,7 +950,6 @@
m_CbnPluginVolumeHandling.AddString("MIDI volume");
m_CbnPluginVolumeHandling.AddString("Dry/Wet ratio");
m_CbnPluginVolumeHandling.AddString("None");
- m_CbnPluginVolumeHandling.AddString("Custom (Macro)");
// Vol/Pan Swing
m_SliderVolSwing.SetRange(0, 64);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-06-01 22:21:03
|
Revision: 889
http://modplug.svn.sourceforge.net/modplug/?rev=889&view=rev
Author: saga-games
Date: 2011-06-01 22:20:57 +0000 (Wed, 01 Jun 2011)
Log Message:
-----------
[Fix] Song shouldn't stop anymore after playing one time if playback is initially started using play pattern in loop mode (http://bugs.openmpt.org/view.php?id=11)
[Imp] Installer: A shortcut to the extraKeymaps folder is now played in the settings folder.
Internal: Code should build again with NO_VST defined.
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
trunk/OpenMPT/mptrack/Ctrl_ins.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2011-05-31 09:58:24 UTC (rev 888)
+++ trunk/OpenMPT/installer/install.iss 2011-06-01 22:20:57 UTC (rev 889)
@@ -100,8 +100,9 @@
Name: {group}\ModPlug Central; Filename: {app}\ModPlug Central.url
Name: {group}\Configuration files; Filename: {userappdata}\OpenMPT\; Tasks: not portable
-; app's directory (for ease of use)
+; app's directory and keymaps directory (for ease of use)
Name: {app}\Configuration files; Filename: {userappdata}\OpenMPT\; Tasks: not portable
+Name: {userappdata}\OpenMPT\More Keymaps; Filename: {app}\extraKeymaps\; Tasks: not portable
; desktop, quick launch
Name: {userdesktop}\OpenMPT; Filename: {app}\mptrack.exe; Tasks: desktopicon
Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-05-31 09:58:24 UTC (rev 888)
+++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-06-01 22:20:57 UTC (rev 889)
@@ -950,6 +950,7 @@
m_CbnPluginVolumeHandling.AddString("MIDI volume");
m_CbnPluginVolumeHandling.AddString("Dry/Wet ratio");
m_CbnPluginVolumeHandling.AddString("None");
+ m_CbnPluginVolumeHandling.AddString("Custom (Macro)");
// Vol/Pan Swing
m_SliderVolSwing.SetRange(0, 64);
@@ -2093,6 +2094,7 @@
if ((pPlug == nullptr || pPlug->pMixPlugin == nullptr) && !IsLocked())
{
// No plugin in this slot: Ask user to add one.
+#ifndef NO_VST
CSelectPluginDlg dlg(m_pModDoc, nPlug - 1, this);
if (dlg.DoModal() == IDOK)
{
@@ -2103,7 +2105,7 @@
UpdatePluginList();
m_pModDoc->UpdateAllViews(NULL, HINT_MIXPLUGINS, NULL);
}
-
+#endif // NO_VST
}
if (pPlug && pPlug->pMixPlugin)
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2011-05-31 09:58:24 UTC (rev 888)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2011-06-01 22:20:57 UTC (rev 889)
@@ -382,14 +382,14 @@
gcsPreviousVersion = GetPrivateProfileCString("Version", "Version", "", iniFile);
if(gcsPreviousVersion == "")
- vIniVersion = MPT_VERSION_NUMERIC;
+ vIniVersion = MptVersion::num;
else
vIniVersion = MptVersion::ToNum(gcsPreviousVersion);
gcsInstallGUID = GetPrivateProfileCString("Version", "InstallGUID", "", iniFile);
if(gcsInstallGUID == "")
{
- //No GUID found in INI file - generate one.
+ // No GUID found in INI file - generate one.
GUID guid;
CoCreateGuid(&guid);
BYTE* Str;
@@ -502,7 +502,7 @@
m_dwPatternSetup |= PATTERN_RESETCHANNELS;
if(vIniVersion < MAKE_VERSION_NUMERIC(1,19,00,07))
m_dwPatternSetup &= ~0x800; // this was previously deprecated and is now used for something else
- if(vIniVersion < MPT_VERSION_NUMERIC)
+ if(vIniVersion < MptVersion::num)
m_dwPatternSetup &= ~(0x200000|0x400000|0x10000000); // various deprecated old options
m_nRowSpacing = GetPrivateProfileDWord("Pattern Editor", "RowSpacing", 16, iniFile);
@@ -1968,20 +1968,27 @@
}
m_nMixChn = m_nAvgMixChn = 0;
gsdwTotalSamples = 0;
- if (!bPatLoop) {
- if (bPaused) {
+ if (!bPatLoop)
+ {
+ if (bPaused)
+ {
pSndFile->m_dwSongFlags |= SONG_PAUSED;
- } else {
+ } else
+ {
pModDoc->SetPause(FALSE);
//rewbs.fix3185: removed this check so play position stays on last pattern if song ends and loop is off.
//Otherwise play from cursor screws up.
//if (pSndFile->GetCurrentPos() + 2 >= pSndFile->GetMaxPosition()) pSndFile->SetCurrentPos(0);
- pSndFile->SetRepeatCount((gbLoopSong) ? -1 : 0);
+
+ // Tentative fix for http://bugs.openmpt.org/view.php?id=11 - Moved following line out of any condition checks
+ //pSndFile->SetRepeatCount((gbLoopSong) ? -1 : 0);
}
}
+ pSndFile->SetRepeatCount((gbLoopSong) ? -1 : 0);
+
m_pSndFile->SetMasterVolume(m_nPreAmp, true);
m_pSndFile->InitPlayer(TRUE);
- memset(NotifyBuffer, 0, sizeof(NotifyBuffer));
+ MemsetZero(NotifyBuffer);
m_dwStatus |= MODSTATUS_PLAYING;
m_wndToolBar.SetCurrentSong(m_pSndFile);
if (gpSoundDevice) gpSoundDevice->Start();
@@ -2124,7 +2131,7 @@
m_WaveFile.m_nDefaultTempo = 125;
m_WaveFile.m_nGlobalVolume=64;
m_WaveFile.m_nDefaultSpeed = 4;
- m_WaveFile.m_nRepeatCount = 0;
+ m_WaveFile.SetRepeatCount(0);
m_WaveFile.m_nType = MOD_TYPE_IT;
m_WaveFile.m_nChannels = 4;
m_WaveFile.m_nInstruments = 1;
@@ -2191,7 +2198,7 @@
m_WaveFile.Create(NULL, 0);
m_WaveFile.m_nDefaultTempo = 125;
m_WaveFile.m_nDefaultSpeed = 6;
- m_WaveFile.m_nRepeatCount = 0;
+ m_WaveFile.SetRepeatCount(0);
m_WaveFile.m_nType = pSong->m_nType;
m_WaveFile.m_nChannels = 4;
if ((nInstrument) && (nInstrument <= pSong->m_nInstruments))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-31 09:58:32
|
Revision: 888
http://modplug.svn.sourceforge.net/modplug/?rev=888&view=rev
Author: saga-games
Date: 2011-05-31 09:58:24 +0000 (Tue, 31 May 2011)
Log Message:
-----------
[Fix] Visitied Rows Check: Yet another error that shouldn't have happened and that I was not able to reproduce... (tx jmkz)
[Fix] Setup Dialog: Fixed checkbox list so that it doesn't look weird under Wine and doesn't crash when compiling with VS2010.
[Mod] OpenMPT: Version is now 1.19.02.03
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moptions.cpp
trunk/OpenMPT/mptrack/version.h
trunk/OpenMPT/soundlib/Snd_fx.cpp
Modified: trunk/OpenMPT/mptrack/Moptions.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moptions.cpp 2011-05-30 21:31:03 UTC (rev 887)
+++ trunk/OpenMPT/mptrack/Moptions.cpp 2011-05-31 09:58:24 UTC (rev 888)
@@ -6,9 +6,7 @@
#include "moptions.h"
#include "moddoc.h"
-#pragma warning(disable:4244)
-
//////////////////////////////////////////////////////////////
// COptionsColors
@@ -552,44 +550,14 @@
ON_CLBN_CHKCHANGE(IDC_LIST1, OnSettingsChanged)
END_MESSAGE_MAP()
-typedef struct OPTGENDESC
+
+struct OPTGENDESC
{
DWORD dwFlagID;
LPCSTR pszListName, pszDescription;
-} OPTGENDESC;
-
-enum
-{
- OPTGEN_PLAYNEWNOTES=0,
- OPTGEN_PLAYEDITROW,
- OPTGEN_CENTERROW,
- OPTGEN_LARGECOMMENTSFONT,
- OPTGEN_HEXROWDISP,
- OPTGEN_CURSORWRAP,
- OPTGEN_CREATEBACKUP,
- OPTGEN_DRAGNDROPEDIT,
- OPTGEN_FLATBUTTONS,
- OPTGEN_SINGLEEXPAND,
- OPTGEN_MUTECHNMODE,
- OPTGEN_AUTOSPACEBAR,
- OPTGEN_NOEXTRALOUD,
- OPTGEN_SHOWPREVIOUS,
- OPTGEN_CONTSCROLL,
- OPTGEN_KBDNOTEOFF,
- OPTGEN_FOLLOWSONGOFF,
- OPTGEN_MIDIRECORD,
- OPTGEN_PATTERNCTXMENUSTYLE,
- OPTGEN_SYNCMUTE,
- OPTGEN_AUTODELAY,
- OPTGEN_PATNOTEFADE,
- OPTGEN_OVERFLOWPASTE,
- OPTGEN_POSITIONAWARETIMER,
- OPTGEN_RESETCHANNELS,
- OPTGEN_LIVEUPDATETREE,
- OPTGEN_MAXOPTIONS
};
-static OPTGENDESC gOptGenDesc[OPTGEN_MAXOPTIONS] =
+static OPTGENDESC gOptGenDesc[] =
{
{PATTERN_PLAYNEWNOTE, "Play new notes while recording", "When this option is enabled, notes entered in the pattern editor will always be played (If not checked, notes won't be played in record mode)."},
{PATTERN_PLAYEDITROW, "Play whole row while recording", "When this option is enabled, all notes on the current row are played when entering notes in the pattern editor."},
@@ -617,6 +585,7 @@
{PATTERN_LIVEUPDATETREE,"Update sample status in tree", "If enabled, active samples and instruments will be indicated by a different icon in the treeview."}
};
+
void COptionsGeneral::DoDataExchange(CDataExchange* pDX)
//------------------------------------------------------
{
@@ -633,16 +602,16 @@
CHAR sname[32], s[256];
CPropertyPage::OnInitDialog();
- for (UINT i = 0; i < OPTGEN_MAXOPTIONS; i++)
+ for (UINT i = 0; i < CountOf(gOptGenDesc); i++)
{
- bool bCheck;
- wsprintf(sname, "Setup.Gen.Opt%d.Name", i+1);
+ wsprintf(sname, "Setup.Gen.Opt%d.Name", i + 1);
if ((theApp.GetLocalizedString(sname, s, sizeof(s))) && (s[0]))
m_CheckList.AddString(s);
else
m_CheckList.AddString(gOptGenDesc[i].pszListName);
- bCheck = (CMainFrame::m_dwPatternSetup & gOptGenDesc[i].dwFlagID) != 0 ? true : false;
- m_CheckList.SetCheck(i, (bCheck) ? TRUE : FALSE);
+
+ const int check = (CMainFrame::m_dwPatternSetup & gOptGenDesc[i].dwFlagID) != 0 ? BST_CHECKED : BST_UNCHECKED;
+ m_CheckList.SetCheck(i, check);
}
m_CheckList.SetCurSel(0);
OnOptionSelChanged();
@@ -669,14 +638,12 @@
GetDlgItemText(IDC_OPTIONS_DIR_VSTS, szVstDir, _MAX_PATH);
GetDlgItemText(IDC_OPTIONS_DIR_VSTPRESETS, szPresetDir, _MAX_PATH);
- for (UINT i = 0; i < OPTGEN_MAXOPTIONS; i++)
+ for (UINT i = 0; i < CountOf(gOptGenDesc); i++)
{
- BOOL bCheck = m_CheckList.GetCheck(i);
+ const bool check = (m_CheckList.GetCheck(i) != BST_UNCHECKED);
- if(bCheck) CMainFrame::m_dwPatternSetup |= gOptGenDesc[i].dwFlagID;
+ if(check) CMainFrame::m_dwPatternSetup |= gOptGenDesc[i].dwFlagID;
else CMainFrame::m_dwPatternSetup &= ~gOptGenDesc[i].dwFlagID;
-
- m_CheckList.SetCheck(i, (bCheck) ? TRUE : FALSE);
}
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
@@ -725,8 +692,8 @@
{
CHAR sname[32], s[256];
LPCSTR pszDesc = NULL;
- int sel = m_CheckList.GetCurSel();
- if ((sel >= 0) && (sel < OPTGEN_MAXOPTIONS))
+ const int sel = m_CheckList.GetCurSel();
+ if ((sel >= 0) && (sel < CountOf(gOptGenDesc)))
{
pszDesc = gOptGenDesc[sel].pszDescription;
wsprintf(sname, "Setup.Gen.Opt%d.Desc", sel+1);
@@ -734,5 +701,3 @@
}
SetDlgItemText(IDC_TEXT1, (pszDesc) ? pszDesc : "");
}
-
-
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-05-30 21:31:03 UTC (rev 887)
+++ trunk/OpenMPT/mptrack/version.h 2011-05-31 09:58:24 UTC (rev 888)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 02
+#define VER_MINORMINOR 03
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-05-30 21:31:03 UTC (rev 887)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-05-31 09:58:24 UTC (rev 888)
@@ -4142,7 +4142,7 @@
//--------------------------------------------------------------------------------------------------------------------------
{
const ORDERINDEX nMaxOrd = Order.GetLengthTailTrimmed();
- if(nOrd >= nMaxOrd || nRow >= Patterns[Order[nOrd]].GetNumRows())
+ if(nOrd >= nMaxOrd || nRow >= GetVisitedRowsVectorSize(Order[nOrd]))
{
return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-30 21:31:10
|
Revision: 887
http://modplug.svn.sourceforge.net/modplug/?rev=887&view=rev
Author: saga-games
Date: 2011-05-30 21:31:03 +0000 (Mon, 30 May 2011)
Log Message:
-----------
[Fix] VST Editor: Loading a VST preset (fxp) didn't mark the document as modified
[Fix] Instrument Tab: The plugin selection dialog is not shown anymore when switching to an instrument that has an unused VST slot assigned.
[Mod] Updated history.txt
Modified Paths:
--------------
trunk/OpenMPT/mptrack/AbstractVstEditor.cpp
trunk/OpenMPT/mptrack/Ctrl_ins.cpp
trunk/OpenMPT/packageTemplate/History.txt
Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp
===================================================================
--- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2011-05-28 15:14:04 UTC (rev 886)
+++ trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2011-05-30 21:31:03 UTC (rev 887)
@@ -121,8 +121,14 @@
CMainFrame::SetWorkingDirectory(files.workingDirectory.c_str(), DIR_PLUGINPRESETS, true);
//TODO: exception handling to distinguish errors at this level.
- if (!(m_pVstPlugin->LoadProgram(files.first_file.c_str())))
+ if (m_pVstPlugin->LoadProgram(files.first_file.c_str()))
+ {
+ if(m_pVstPlugin->GetModDoc() != nullptr)
+ m_pVstPlugin->GetModDoc()->SetModified();
+ } else
+ {
::AfxMessageBox("Error loading preset. Are you sure it is for this plugin?");
+ }
}
VOID CAbstractVstEditor::OnSavePreset()
Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-05-28 15:14:04 UTC (rev 886)
+++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-05-30 21:31:03 UTC (rev 887)
@@ -2061,7 +2061,7 @@
//---------------------------------------
{
MODINSTRUMENT *pIns = m_pSndFile->Instruments[m_nInstrument];
- PLUGINDEX nPlug = static_cast<PLUGINDEX>(m_CbnMixPlug.GetItemData(m_CbnMixPlug.GetCurSel()) & 0xff); // TODO is the 0xFF necessary?
+ PLUGINDEX nPlug = static_cast<PLUGINDEX>(m_CbnMixPlug.GetItemData(m_CbnMixPlug.GetCurSel()));
if (pIns)
{
@@ -2090,7 +2090,7 @@
if (pIns->nMixPlug) //if we have not just set to no plugin
{
PSNDMIXPLUGIN pPlug = &(m_pSndFile->m_MixPlugins[pIns->nMixPlug - 1]);
- if (pPlug == nullptr || pPlug->pMixPlugin == nullptr)
+ if ((pPlug == nullptr || pPlug->pMixPlugin == nullptr) && !IsLocked())
{
// No plugin in this slot: Ask user to add one.
CSelectPluginDlg dlg(m_pModDoc, nPlug - 1, this);
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2011-05-28 15:14:04 UTC (rev 886)
+++ trunk/OpenMPT/packageTemplate/History.txt 2011-05-30 21:31:03 UTC (rev 887)
@@ -10,6 +10,28 @@
(tx XYZ): thanks to XYZ for telling us about the bug / requesting the feature
+v1.20.01.00 (*** 2011, revision 887)
+------------------------------------
+Pattern tab
+ [Fix] <Jojo> When playing a pattern that is actually not in the sequence and that has more rows than the last played order item, a crash could occour while playing those extra rows. (Welcome to episode 2938 of "this should not have happened afterall")
+ [Fix] <Jojo> Shift + Channel Dragging killed the last channel.
+ [Fix] <Jojo> When using the pattern play controls (f.e. "Replay Pattern") on a pattern that isn't played in the normal play sequence, tempo and global volume commands on the first played row are not ignored anymore.
+
+Sample tab
+ [Imp] <Jojo> When selecting parts of the sample, the selection range is now also displayed in samples, not only seconds.
+
+Instrument tab
+ [Imp] <Jojo> When in compatible mode, two envelope points cannot share the same tick anymore.
+
+VST
+ [Fix] <Jojo> When a plugin requests song position in nano secods, the correct value should now be returned.
+ [Fix] <Jojo> Loading a VST preset (fxp) didn't mark the document as modified (tx BooT-SectoR-ViruZ)
+
+Other formats
+ [Fix] <Jojo> ITP Saver: Fixed nasty bug when the internal order length was not 256.
+ [Fix] <Jojo> IMF Loader: Orpheus' 8-Bit cutoff range was not converted to MPT's 7-Bit range.
+
+
v1.19.02.00 (May 2011, revision 871)
------------------------------------
Pattern tab
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-28 15:14:11
|
Revision: 886
http://modplug.svn.sourceforge.net/modplug/?rev=886&view=rev
Author: saga-games
Date: 2011-05-28 15:14:04 +0000 (Sat, 28 May 2011)
Log Message:
-----------
[Imp] Sample Editor: When selecting parts of the sample, the selection range is now also displayed in samples, not only seconds.
[Mod] OpenMPT: Version is now 1.19.02.02
Modified Paths:
--------------
trunk/OpenMPT/mptrack/View_smp.cpp
trunk/OpenMPT/mptrack/version.h
Modified: trunk/OpenMPT/mptrack/View_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_smp.cpp 2011-05-27 18:11:33 UTC (rev 885)
+++ trunk/OpenMPT/mptrack/View_smp.cpp 2011-05-28 15:14:04 UTC (rev 886)
@@ -302,18 +302,19 @@
s[0] = 0;
if (m_dwEndSel > m_dwBeginSel)
{
- wsprintf(s, "[%d,%d]", m_dwBeginSel, m_dwEndSel);
+ const DWORD selLength = m_dwEndSel - m_dwBeginSel;
+ wsprintf(s, "[%d,%d] (%d sample%s, ", m_dwBeginSel, m_dwEndSel, selLength, (selLength == 1) ? "" : "s");
LONG lSampleRate = pSndFile->Samples[m_nSample].nC5Speed;
if (pSndFile->m_nType & (MOD_TYPE_MOD|MOD_TYPE_XM))
{
lSampleRate = CSoundFile::TransposeToFrequency(pSndFile->Samples[m_nSample].RelativeTone, pSndFile->Samples[m_nSample].nFineTune);
}
if (!lSampleRate) lSampleRate = 8363;
- ULONG msec = ((ULONG)(m_dwEndSel - m_dwBeginSel) * 1000) / lSampleRate;
+ ULONG msec = ((ULONG)selLength * 1000) / lSampleRate;
if (msec < 1000)
- wsprintf(s+strlen(s), " (%lums)", msec);
+ wsprintf(s+strlen(s), "%lums)", msec);
else
- wsprintf(s+strlen(s), " (%lu.%lus)", msec/1000, (msec/100) % 10);
+ wsprintf(s+strlen(s), "%lu.%lus)", msec/1000, (msec/100) % 10);
}
pMainFrm->SetInfoText(s);
}
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-05-27 18:11:33 UTC (rev 885)
+++ trunk/OpenMPT/mptrack/version.h 2011-05-28 15:14:04 UTC (rev 886)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 01
+#define VER_MINORMINOR 02
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-27 18:11:39
|
Revision: 885
http://modplug.svn.sourceforge.net/modplug/?rev=885&view=rev
Author: saga-games
Date: 2011-05-27 18:11:33 +0000 (Fri, 27 May 2011)
Log Message:
-----------
[Fix] When using the pattern play controls (f.e. "Replay Pattern") on a pattern that isn't played in the normal play sequence, tempo and global volume commands on the first played row are not ignored anymore.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2011-05-26 23:22:39 UTC (rev 884)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-05-27 18:11:33 UTC (rev 885)
@@ -3391,6 +3391,9 @@
BEGIN_CRITICAL();
+ // set playback timer in the status bar (and update channel status)
+ SetElapsedTime(nOrd, 0);
+
// Cut instruments/samples
for (UINT i=0; i<MAX_CHANNELS; i++)
{
@@ -3413,9 +3416,6 @@
//end rewbs.vstCompliance
END_CRITICAL();
- // set playback timer in the status bar
- SetElapsedTime(nOrd, 0);
-
if (pModPlaying != this)
{
pMainFrm->PlayMod(this, followSonghWnd, m_dwNotifyType|MPTNOTIFY_POSITION|MPTNOTIFY_VUMETERS); //rewbs.fix2977
@@ -3450,6 +3450,10 @@
CModDoc *pModPlaying = pMainFrm->GetModPlaying();
BEGIN_CRITICAL();
+
+ // set playback timer in the status bar (and update channel status)
+ SetElapsedTime(nOrd, nRow);
+
// Cut instruments/samples
for (UINT i=pSndFile->m_nChannels; i<MAX_CHANNELS; i++)
{
@@ -3468,9 +3472,6 @@
//end rewbs.VSTCompliance
END_CRITICAL();
- // set playback timer in the status bar
- SetElapsedTime(nOrd, nRow);
-
if (pModPlaying != this) {
pMainFrm->PlayMod(this, followSonghWnd, m_dwNotifyType|MPTNOTIFY_POSITION|MPTNOTIFY_VUMETERS); //rewbs.fix2977
}
@@ -3505,6 +3506,10 @@
CModDoc *pModPlaying = pMainFrm->GetModPlaying();
BEGIN_CRITICAL();
+
+ // set playback timer in the status bar (and update channel status)
+ SetElapsedTime(nOrd, nRow);
+
// Cut instruments/samples
for (UINT i=pSndFile->m_nChannels; i<MAX_CHANNELS; i++)
{
@@ -3526,9 +3531,6 @@
//rewbs.VSTCompliance
END_CRITICAL();
- // set playback timer in the status bar
- SetElapsedTime(nOrd, nRow);
-
if (pModPlaying != this)
{
pMainFrm->PlayMod(this, followSonghWnd, m_dwNotifyType|MPTNOTIFY_POSITION|MPTNOTIFY_VUMETERS); //rewbs.fix2977
@@ -3751,7 +3753,7 @@
bShowLog = true;
}
- UINT nNewChannels = CLAMP(dlg.m_nChannels, m_SndFile.GetModSpecifications().channelsMin, m_SndFile.GetModSpecifications().channelsMax);
+ CHANNELINDEX nNewChannels = CLAMP(dlg.m_nChannels, m_SndFile.GetModSpecifications().channelsMin, m_SndFile.GetModSpecifications().channelsMax);
if (nNewChannels != GetSoundFile()->GetNumChannels())
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-26 23:22:45
|
Revision: 884
http://modplug.svn.sourceforge.net/modplug/?rev=884&view=rev
Author: saga-games
Date: 2011-05-26 23:22:39 +0000 (Thu, 26 May 2011)
Log Message:
-----------
Now where did those lines go... They were never supposed to be removed!
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2011-05-26 18:39:22 UTC (rev 883)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2011-05-26 23:22:39 UTC (rev 884)
@@ -1041,6 +1041,8 @@
MODINSTRUMENT *pIns = pChn->pModInstrument;
+ // Calc Frequency
+ if ((pChn->nPeriod) && (pChn->nLength))
{
int vol = pChn->nVolume;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-26 18:39:28
|
Revision: 883
http://modplug.svn.sourceforge.net/modplug/?rev=883&view=rev
Author: saga-games
Date: 2011-05-26 18:39:22 +0000 (Thu, 26 May 2011)
Log Message:
-----------
[Mod] (Debugging mode only) When LoadLibrary fails because a plugin DLL is not found, its error code is not displayed anymore (we already have our own error box for that)
[Fix] VST: When a plugin requests song position in nano secods, the correct value should now be returned.
[Mod] OpenMPT: Version is now 1.19.02.01
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Vstplug.cpp
trunk/OpenMPT/mptrack/version.h
Modified: trunk/OpenMPT/mptrack/Vstplug.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Vstplug.cpp 2011-05-26 18:35:33 UTC (rev 882)
+++ trunk/OpenMPT/mptrack/Vstplug.cpp 2011-05-26 18:39:22 UTC (rev 883)
@@ -283,11 +283,11 @@
hLib = LoadLibrary(pszDllPath);
//rewbs.VSTcompliance
#ifdef _DEBUG
- if (!hLib)
+ DWORD dw = GetLastError();
+ if (!hLib && dw != ERROR_MOD_NOT_FOUND) // "File not found errors" are annoying.
{
TCHAR szBuf[256];
LPVOID lpMsgBuf;
- DWORD dw = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL );
wsprintf(szBuf, "Warning: encountered problem when loading plugin dll. Error %d: %s", dw, lpMsgBuf);
MessageBox(NULL, szBuf, "DEBUG: Error when loading plugin dll", MB_OK);
@@ -785,7 +785,7 @@
if ((value & kVstNanosValid))
{
timeInfo.flags |= kVstNanosValid;
- timeInfo.nanoSeconds = pVstPlugin->GetTimeAtStartOfProcess();
+ timeInfo.nanoSeconds = timeGetTime() * 1000000;
}
if ((value & kVstPpqPosValid) && pSndFile)
{
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2011-05-26 18:35:33 UTC (rev 882)
+++ trunk/OpenMPT/mptrack/version.h 2011-05-26 18:39:22 UTC (rev 883)
@@ -15,7 +15,7 @@
#define VER_MAJORMAJOR 1
#define VER_MAJOR 19
#define VER_MINOR 02
-#define VER_MINORMINOR 00
+#define VER_MINORMINOR 01
//Creates version number from version parts that appears in version string.
//For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-26 18:35:39
|
Revision: 882
http://modplug.svn.sourceforge.net/modplug/?rev=882&view=rev
Author: saga-games
Date: 2011-05-26 18:35:33 +0000 (Thu, 26 May 2011)
Log Message:
-----------
[Ref] Rewrote envelope reset code + minor stuff
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/soundlib/Snd_defs.h
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 2011-05-26 18:25:41 UTC (rev 881)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-05-26 18:35:33 UTC (rev 882)
@@ -914,7 +914,7 @@
if (nins) // Set instrument
{
- m_SndFile.resetEnvelopes(pChn);
+ m_SndFile.ResetChannelEnvelopes(pChn);
m_SndFile.InstrumentChange(pChn, nins);
}
else if ((nsmp) && (nsmp < MAX_SAMPLES)) // Or set sample
Modified: trunk/OpenMPT/soundlib/Snd_defs.h
===================================================================
--- trunk/OpenMPT/soundlib/Snd_defs.h 2011-05-26 18:25:41 UTC (rev 881)
+++ trunk/OpenMPT/soundlib/Snd_defs.h 2011-05-26 18:35:33 UTC (rev 882)
@@ -348,7 +348,6 @@
#define SNDMIX_NOBACKWARDJUMPS 0x40000 // stop when jumping back in the order (currently unused as it seems)
#define SNDMIX_MAXDEFAULTPAN 0x80000 // Used by the MOD loader (currently unused)
#define SNDMIX_MUTECHNMODE 0x100000 // Notes are not played on muted channels
-#define SNDMIX_SMARTRAMP 0x200000 // Don't apply ramping to sample beginning, but only when it ends
#define MAX_GLOBAL_VOLUME 256
@@ -364,14 +363,6 @@
NUM_SRC_MODES
};
-// Envelope reset choices
-enum enmResetEnv
-{
- ENV_RESET_ALL,
- ENV_RESET_VOL,
- ENV_RESET_PAN,
- ENV_RESET_PITCH,
-};
// Release node defines
#define ENV_RELEASE_NODE_UNSET 0xFF
#define NOT_YET_RELEASED (-1)
@@ -416,10 +407,14 @@
#define MACRO_INTERNALEX 0x31463046 // internal extended macro (F0F1), controls higher 8 bits (high plugin params)
// Vibrato Types
-#define VIB_SINE 0
-#define VIB_SQUARE 1
-#define VIB_RAMP_UP 2
-#define VIB_RAMP_DOWN 3
-#define VIB_RANDOM 4
+enum VibratoType
+{
+ VIB_SINE = 0,
+ VIB_SQUARE,
+ VIB_RAMP_UP,
+ VIB_RAMP_DOWN,
+ VIB_RANDOM
+};
+
#endif
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-05-26 18:25:41 UTC (rev 881)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-05-26 18:35:33 UTC (rev 882)
@@ -620,12 +620,12 @@
pChn->dwFlags |= CHN_FASTVOLRAMP;
if ((m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)) && (!bInstrumentChanged) && (pIns) && (!(pChn->dwFlags & (CHN_KEYOFF|CHN_NOTEFADE))))
{
- if (!(pIns->VolEnv.dwFlags & ENV_CARRY)) resetEnvelopes(pChn, ENV_RESET_VOL);
- if (!(pIns->PanEnv.dwFlags & ENV_CARRY)) resetEnvelopes(pChn, ENV_RESET_PAN);
- if (!(pIns->PitchEnv.dwFlags & ENV_CARRY)) resetEnvelopes(pChn, ENV_RESET_PITCH);
+ if (!(pIns->VolEnv.dwFlags & ENV_CARRY)) ResetChannelEnvelope(pChn->VolEnv);
+ if (!(pIns->PanEnv.dwFlags & ENV_CARRY)) ResetChannelEnvelope(pChn->PanEnv);
+ if (!(pIns->PitchEnv.dwFlags & ENV_CARRY)) ResetChannelEnvelope(pChn->PitchEnv);
} else
{
- resetEnvelopes(pChn);
+ ResetChannelEnvelopes(pChn);
}
// IT Compatibility: Autovibrato reset
if(!IsCompatibleMode(TRK_IMPULSETRACKER))
@@ -635,7 +635,13 @@
}
} else if ((pIns) && (!(pIns->VolEnv.dwFlags & ENV_ENABLED)))
{
- resetEnvelopes(pChn, IsCompatibleMode(TRK_IMPULSETRACKER) ? ENV_RESET_VOL : ENV_RESET_ALL);
+ if(IsCompatibleMode(TRK_IMPULSETRACKER))
+ {
+ ResetChannelEnvelope(pChn->VolEnv);
+ } else
+ {
+ ResetChannelEnvelopes(pChn);
+ }
}
}
// Invalid sample ?
@@ -882,7 +888,7 @@
{
if ((m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)) && (pChn->dwFlags & CHN_NOTEFADE) && (!pChn->nFadeOutVol))
{
- resetEnvelopes(pChn);
+ ResetChannelEnvelopes(pChn);
// IT Compatibility: Autovibrato reset
if(!IsCompatibleMode(TRK_IMPULSETRACKER))
{
@@ -1362,7 +1368,7 @@
{
//:xy --> note delay until tick x, note cut at tick x+y
nStartTick = (param & 0xF0) >> 4;
- int cutAtTick = nStartTick + (param & 0x0F);
+ const UINT cutAtTick = nStartTick + (param & 0x0F);
NoteCut(nChn, cutAtTick);
} else
if ((cmd == CMD_MODCMDEX) || (cmd == CMD_S3MCMDEX))
@@ -1493,7 +1499,7 @@
if (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2))
{
pChn->dwFlags |= CHN_FASTVOLRAMP;
- resetEnvelopes(pChn);
+ ResetChannelEnvelopes(pChn);
// IT Compatibility: Autovibrato reset
if(!IsCompatibleMode(TRK_IMPULSETRACKER))
{
@@ -1574,7 +1580,7 @@
if ((bPorta) && (m_nType & (MOD_TYPE_XM|MOD_TYPE_MT2)) && (instr))
{
pChn->dwFlags |= CHN_FASTVOLRAMP;
- resetEnvelopes(pChn);
+ ResetChannelEnvelopes(pChn);
// IT Compatibility: Autovibrato reset
if(!IsCompatibleMode(TRK_IMPULSETRACKER))
{
@@ -2172,35 +2178,23 @@
}
-void CSoundFile::resetEnvelopes(MODCHANNEL* pChn, enmResetEnv envToReset)
-//-----------------------------------------------------------------------
+void CSoundFile::ResetChannelEnvelopes(MODCHANNEL* pChn)
+//------------------------------------------------------
{
- switch (envToReset)
- {
- case ENV_RESET_ALL:
- pChn->VolEnv.nEnvPosition = 0;
- pChn->PanEnv.nEnvPosition = 0;
- pChn->PitchEnv.nEnvPosition = 0;
- pChn->VolEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- pChn->PitchEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- pChn->PanEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- break;
- case ENV_RESET_VOL:
- pChn->VolEnv.nEnvPosition = 0;
- pChn->VolEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- break;
- case ENV_RESET_PAN:
- pChn->PanEnv.nEnvPosition = 0;
- pChn->PanEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- break;
- case ENV_RESET_PITCH:
- pChn->PitchEnv.nEnvPosition = 0;
- pChn->PitchEnv.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
- break;
- }
+ ResetChannelEnvelope(pChn->VolEnv);
+ ResetChannelEnvelope(pChn->PanEnv);
+ ResetChannelEnvelope(pChn->PitchEnv);
}
+void CSoundFile::ResetChannelEnvelope(MODCHANNEL_ENVINFO &env)
+//------------------------------------------------------------
+{
+ env.nEnvPosition = 0;
+ env.nEnvValueAtReleaseJump = NOT_YET_RELEASED;
+}
+
+
////////////////////////////////////////////////////////////
// Channels effects
@@ -3620,7 +3614,7 @@
if (pIns->VolEnv.nReleaseNode != ENV_RELEASE_NODE_UNSET)
{
- pChn->VolEnv.nEnvValueAtReleaseJump = getVolEnvValueFromPosition(pChn->VolEnv.nEnvPosition, pIns);
+ pChn->VolEnv.nEnvValueAtReleaseJump = GetVolEnvValueFromPosition(pChn->VolEnv.nEnvPosition, pIns);
pChn->VolEnv.nEnvPosition= pIns->VolEnv.Ticks[pIns->VolEnv.nReleaseNode];
}
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2011-05-26 18:25:41 UTC (rev 881)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2011-05-26 18:35:33 UTC (rev 882)
@@ -1047,8 +1047,9 @@
UINT GetRawSongMessage(LPSTR s, UINT cbsize, UINT linesize=32);
public:
- int getVolEnvValueFromPosition(int position, MODINSTRUMENT* pIns);
- void resetEnvelopes(MODCHANNEL* pChn, enmResetEnv envToReset = ENV_RESET_ALL);
+ int GetVolEnvValueFromPosition(int position, MODINSTRUMENT* pIns) const;
+ void ResetChannelEnvelopes(MODCHANNEL *pChn);
+ void ResetChannelEnvelope(MODCHANNEL_ENVINFO &env);
void SetDefaultInstrumentValues(MODINSTRUMENT *pIns);
private:
UINT __cdecl GetChannelPlugin(UINT nChan, bool respectMutes) const;
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2011-05-26 18:25:41 UTC (rev 881)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2011-05-26 18:35:33 UTC (rev 882)
@@ -986,8 +986,6 @@
{
skipchn:
- MODINSTRUMENT *pIns = pChn->pModInstrument;
-
// XM Compatibility: Prevent notes to be stopped after a fadeout. This way, a portamento effect can pick up a faded instrument which is long enough.
// This occours for example in the bassline (channel 11) of jt_burn.xm. I hope this won't break anything else...
// I also suppose this could decrease mixing performance a bit, but hey, which CPU can't handle 32 muted channels these days... :-)
@@ -1003,6 +1001,7 @@
#ifdef ENABLE_STEREOVU
pChn->nLeftVU = pChn->nRightVU = 0;
#endif
+
nChn++;
pChn++;
if (nChn >= m_nChannels)
@@ -1021,7 +1020,7 @@
pChn->nInc = 0;
pChn->nRealVolume = 0;
- if(!(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) || GetModFlag(MSF_OLDVOLSWING))
+ if(GetModFlag(MSF_OLDVOLSWING))
{
pChn->nRealPan = pChn->nPan + pChn->nPanSwing;
}
@@ -1040,8 +1039,8 @@
CTuning::RATIOTYPE vibratoFactor = 1;
CTuning::NOTEINDEXTYPE arpeggioSteps = 0;
- // Calc Frequency
- if ((pChn->nPeriod) && (pChn->nLength))
+ MODINSTRUMENT *pIns = pChn->pModInstrument;
+
{
int vol = pChn->nVolume;
@@ -1146,15 +1145,14 @@
vol = CLAMP(vol, 0, 256) << 6;
// Process Envelopes
- if (pChn->pModInstrument)
+ if (pIns)
{
- MODINSTRUMENT *pIns = pChn->pModInstrument;
// Volume Envelope
// IT Compatibility: S77 does not disable the volume envelope, it just pauses the counter
// Problem: This pauses on the wrong tick at the moment...
if (((pChn->dwFlags & CHN_VOLENV) || ((pIns->VolEnv.dwFlags & ENV_ENABLED) && IsCompatibleMode(TRK_IMPULSETRACKER))) && (pIns->VolEnv.nNodes))
{
- int envvol = getVolEnvValueFromPosition(pChn->VolEnv.nEnvPosition, pIns);
+ int envvol = GetVolEnvValueFromPosition(pChn->VolEnv.nEnvPosition, pIns);
// if we are in the release portion of the envelope,
// rescale envelope factor so that it is proportional to the release point
@@ -2153,7 +2151,7 @@
// Get instrument info and plugin reference
MODINSTRUMENT *pIns = pChn->pModInstrument;
- IMixPlugin *pPlugin = NULL;
+ IMixPlugin *pPlugin = nullptr;
if ((instr) && (instr < MAX_INSTRUMENTS))
pIns = Instruments[instr];
@@ -2224,18 +2222,19 @@
case PLUGIN_VOLUMEHANDLING_DRYWET:
if(hasVolCommand) pPlugin->SetDryRatio(2*vol);
else pPlugin->SetDryRatio(2*defaultVolume);
- break;
+ break;
case PLUGIN_VOLUMEHANDLING_MIDI:
if(hasVolCommand) pPlugin->MidiCC(pIns->nMidiChannel, MIDICC_Volume_Coarse, min(127, 2*vol), nChn);
else pPlugin->MidiCC(pIns->nMidiChannel, MIDICC_Volume_Coarse, min(127, 2*defaultVolume), nChn);
- break;
+ break;
+
}
}
}
-int CSoundFile::getVolEnvValueFromPosition(int position, MODINSTRUMENT* pIns)
-//---------------------------------------------------------------------------
+int CSoundFile::GetVolEnvValueFromPosition(int position, MODINSTRUMENT* pIns) const
+//---------------------------------------------------------------------------------
{
UINT pt = pIns->VolEnv.nNodes - 1;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-26 18:25:47
|
Revision: 881
http://modplug.svn.sourceforge.net/modplug/?rev=881&view=rev
Author: saga-games
Date: 2011-05-26 18:25:41 +0000 (Thu, 26 May 2011)
Log Message:
-----------
[Imp] Hack Detection: Envelopes with points that share the same tick are now found.
[Ref] Minor refactoring
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Draw_pat.cpp
trunk/OpenMPT/mptrack/MPTHacks.cpp
Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-05-23 21:32:39 UTC (rev 880)
+++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-05-26 18:25:41 UTC (rev 881)
@@ -698,7 +698,7 @@
BOOL bPlaying, UINT yofs, UINT nrows, UINT xofs, CRect &rcClient, int *pypaint)
//-----------------------------------------------------------------------------------------------------
{
- BYTE bColSel[MAX_CHANNELS];
+ BYTE bColSel[MAX_BASECHANNELS];
PCPATTERNFONT pfnt = GetCurrentPatternFont();
MODCOMMAND m0, *pPattern = pSndFile->Patterns[nPattern];
CHAR s[256];
@@ -707,7 +707,7 @@
int row_col, row_bkcol;
UINT bRowSel, bSpeedUp, nColumnWidth, ncols, maxcol;
- ncols = pSndFile->m_nChannels;
+ ncols = pSndFile->GetNumChannels();
m0.note = m0.instr = m0.vol = m0.volcmd = m0.command = m0.param = 0;
nColumnWidth = m_szCell.cx;
rect.SetRect(m_szHeader.cx, rcClient.top, m_szHeader.cx+nColumnWidth, rcClient.bottom);
@@ -731,7 +731,7 @@
while ((maxcol > xofs) && (bColSel[maxcol-1] & 0x80)) maxcol--;
// Init bitmap border
{
- UINT maxndx = pSndFile->m_nChannels * m_szCell.cx;
+ UINT maxndx = pSndFile->GetNumChannels() * m_szCell.cx;
UINT ibmp = 0;
if (maxndx > FASTBMP_MAXWIDTH) maxndx = FASTBMP_MAXWIDTH;
do
Modified: trunk/OpenMPT/mptrack/MPTHacks.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MPTHacks.cpp 2011-05-23 21:32:39 UTC (rev 880)
+++ trunk/OpenMPT/mptrack/MPTHacks.cpp 2011-05-26 18:25:41 UTC (rev 881)
@@ -84,6 +84,27 @@
bool *foundHacks;
};
+
+// Find and fix envelopes where two nodes are on the same tick.
+bool FindIncompatibleEnvelopes(INSTRUMENTENVELOPE &env, bool autofix)
+//-------------------------------------------------------------------
+{
+ bool found = false;
+ for(UINT i = 1; i < env.nNodes; i++)
+ {
+ if(env.Ticks[i] <= env.Ticks[i - 1]) // "<=" so we can fix envelopes "on the fly"
+ {
+ found = true;
+ if(autofix)
+ {
+ env.Ticks[i] = env.Ticks[i - 1] + 1;
+ }
+ }
+ }
+ return found;
+}
+
+
// Go through the module to find out if it contains any hacks introduced by (Open)MPT
bool CModDoc::HasMPTHacks(const bool autofix)
//-------------------------------------------
@@ -139,12 +160,29 @@
{
if(m_SndFile.Patterns.IsValidPat(i))
{
- if(m_SndFile.Patterns[i].GetNumRows() > originalSpecs->patternRowsMax || m_SndFile.Patterns[i].GetNumRows() < originalSpecs->patternRowsMin)
+ const ROWINDEX patSize = m_SndFile.Patterns[i].GetNumRows();
+ if(patSize > originalSpecs->patternRowsMax)
{
foundHacks = foundHere = true;
- break;
+ if(autofix)
+ {
+ // REQUIRES (INTELLIGENT) AUTOFIX
+ } else
+ {
+ break;
+ }
+ } else if(patSize < originalSpecs->patternRowsMin)
+ {
+ foundHacks = foundHere = true;
+ if(autofix)
+ {
+ m_SndFile.Patterns[i].Resize(originalSpecs->patternRowsMin);
+ m_SndFile.TryWriteEffect(i, patSize - 1, CMD_PATTERNBREAK, 0, false, CHANNELINDEX_INVALID, false, weTryNextRow);
+ } else
+ {
+ break;
+ }
}
- // REQUIRES (INTELLIGENT) AUTOFIX
}
}
if(foundHere)
@@ -182,7 +220,13 @@
message.Format("Found incompatible channel count (must be between %d and %d channels)\n", originalSpecs->channelsMin, originalSpecs->channelsMax);
AddToLog(message);
foundHacks = true;
- // REQUIRES (INTELLIGENT) AUTOFIX
+ if(autofix)
+ {
+ vector<bool> usedChannels;
+ CheckUsedChannels(usedChannels);
+ RemoveChannels(usedChannels);
+ // REQUIRES (INTELLIGENT) AUTOFIX
+ }
}
// Check for channel names
@@ -221,11 +265,13 @@
// Check for instrument extensions
foundHere = false;
+ bool foundEnvelopes = false;
for(INSTRUMENTINDEX i = 1; i <= m_SndFile.GetNumInstruments(); i++)
{
MODINSTRUMENT *instr = m_SndFile.Instruments[i];
if(instr == nullptr) continue;
+ // Extended instrument attributes
if(instr->nFilterMode != FLTMODE_UNCHANGED || instr->nVolRamp != 0 || instr->nResampling != SRCMODE_DEFAULT ||
instr->nCutSwing != 0 || instr->nResSwing != 0 || instr->nMixPlug != 0 || instr->wPitchToTempoLock != 0 ||
instr->nDCT == DCT_PLUGIN ||
@@ -248,10 +294,16 @@
instr->VolEnv.nReleaseNode = instr->PanEnv.nReleaseNode = instr->PitchEnv.nReleaseNode = ENV_RELEASE_NODE_UNSET;
}
}
-
+ // Incompatible envelope shape
+ foundEnvelopes |= FindIncompatibleEnvelopes(instr->VolEnv, autofix);
+ foundEnvelopes |= FindIncompatibleEnvelopes(instr->PanEnv, autofix);
+ foundEnvelopes |= FindIncompatibleEnvelopes(instr->PitchEnv, autofix);
+ foundHacks |= foundEnvelopes;
}
if(foundHere)
AddToLog("Found MPT instrument extensions\n");
+ if(foundEnvelopes)
+ AddToLog("Two envelope points may not share the same tick.\n");
// Check for too many orders
if(m_SndFile.Order.GetLengthTailTrimmed() > originalSpecs->ordersMax)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-23 21:32:45
|
Revision: 880
http://modplug.svn.sourceforge.net/modplug/?rev=880&view=rev
Author: saga-games
Date: 2011-05-23 21:32:39 +0000 (Mon, 23 May 2011)
Log Message:
-----------
[Fix] Pattern Editor: Shift+Channel Drag killed the last channel.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/View_pat.cpp
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2011-05-21 00:14:21 UTC (rev 879)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2011-05-23 21:32:39 UTC (rev 880)
@@ -1195,7 +1195,7 @@
CHANNELINDEX i = 0;
bool modified = duplicate;
- for(CHANNELINDEX nChn = 0; nChn < pModDoc->GetNumChannels(); nChn++)
+ for(CHANNELINDEX nChn = 0; nChn < pModDoc->GetNumChannels() + (duplicate ? 1 : 0); nChn++)
{
if(nChn == nTargetNo)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2011-05-21 00:14:27
|
Revision: 879
http://modplug.svn.sourceforge.net/modplug/?rev=879&view=rev
Author: saga-games
Date: 2011-05-21 00:14:21 +0000 (Sat, 21 May 2011)
Log Message:
-----------
[Fix] IMF Loader: Orpheus' 8-Bit cutoff range was not converted to MPT's 7-Bit range.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_imf.cpp
Modified: trunk/OpenMPT/soundlib/Load_imf.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_imf.cpp 2011-05-20 14:28:48 UTC (rev 878)
+++ trunk/OpenMPT/soundlib/Load_imf.cpp 2011-05-21 00:14:21 UTC (rev 879)
@@ -177,6 +177,9 @@
else
note->param |= 0xe0;
break;
+ case 0x16: // cutoff
+ note->param >>= 1;
+ break;
case 0x1f: // set global volume
note->param = min(note->param << 1, 0xff);
break;
@@ -352,15 +355,15 @@
// read patterns
for(PATTERNINDEX nPat = 0; nPat < hdr.patnum; nPat++)
{
- UINT16 length, nrows;
+ uint16 length, nrows;
BYTE mask, channel;
int row;
unsigned int lostfx = 0;
MODCOMMAND *row_data, *note, junk_note;
ASSERT_CAN_READ(4);
- length = LittleEndianW(*((UINT16 *)(lpStream + dwMemPos)));
- nrows = LittleEndianW(*((UINT16 *)(lpStream + dwMemPos + 2)));
+ length = LittleEndianW(*((uint16 *)(lpStream + dwMemPos)));
+ nrows = LittleEndianW(*((uint16 *)(lpStream + dwMemPos + 2)));
dwMemPos += 4;
if(Patterns.Insert(nPat, nrows))
@@ -531,7 +534,7 @@
for(SAMPLEINDEX nSmp = 0; nSmp < imfins.smpnum; nSmp++)
{
IMFSAMPLE imfsmp;
- UINT32 blen;
+ uint32 blen;
ASSERT_CAN_READ(sizeof(IMFSAMPLE));
memset(&imfsmp, 0, sizeof(IMFSAMPLE));
memcpy(&imfsmp, lpStream + dwMemPos, sizeof(IMFSAMPLE));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|