|
From: <rel...@us...> - 2008-02-23 12:51:26
|
Revision: 203
http://modplug.svn.sourceforge.net/modplug/?rev=203&view=rev
Author: relabsoluness
Date: 2008-02-23 04:51:23 -0800 (Sat, 23 Feb 2008)
Log Message:
-----------
Last commit missed some files: a new try.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_gen.cpp
trunk/OpenMPT/mptrack/Ctrl_ins.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/mptrack/Moptions.cpp
trunk/OpenMPT/mptrack/Mpdlgs.cpp
trunk/OpenMPT/mptrack/Mptrack.cpp
trunk/OpenMPT/mptrack/OrderToPatternTable.cpp
trunk/OpenMPT/mptrack/OrderToPatternTable.h
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/Vstplug.cpp
trunk/OpenMPT/mptrack/Vstplug.h
trunk/OpenMPT/mptrack/misc_util.h
trunk/OpenMPT/mptrack/mptrack.rc
Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -628,25 +628,22 @@
BOOL CCtrlGeneral::GetToolTipText(UINT uId, LPSTR pszText) {
//----------------------------------------------------------
+ const char moreRecentMixModeNote[] = "Use a more recent mixmode to see dB offsets.";
if ((pszText) && (uId))
{
- if (!m_pSndFile->m_pConfig->getDisplayDBValues()) {
- wsprintf(pszText, "Use a more recent mixmode to see dB offsets.");
- return TRUE;
- }
-
+ const bool displayDBValues = m_pSndFile->m_pConfig->getDisplayDBValues();
switch(uId) {
case IDC_SLIDER_SAMPLEPREAMP:
- setAsDecibels(pszText, m_pSndFile->m_nSamplePreAmp, m_pSndFile->m_pConfig->getNormalSamplePreAmp());
+ (displayDBValues) ? setAsDecibels(pszText, m_pSndFile->m_nSamplePreAmp, m_pSndFile->m_pConfig->getNormalSamplePreAmp()) : wsprintf(pszText, moreRecentMixModeNote);
return TRUE;
break;
case IDC_SLIDER_VSTIVOL:
- setAsDecibels(pszText, m_pSndFile->m_nVSTiVolume, m_pSndFile->m_pConfig->getNormalVSTiVol());
+ (displayDBValues) ? setAsDecibels(pszText, m_pSndFile->m_nVSTiVolume, m_pSndFile->m_pConfig->getNormalVSTiVol()) : wsprintf(pszText, moreRecentMixModeNote);
return TRUE;
break;
case IDC_SLIDER_GLOBALVOL:
- setAsDecibels(pszText, m_pSndFile->m_nGlobalVolume, m_pSndFile->m_pConfig->getNormalGlobalVol());
+ (displayDBValues) ? setAsDecibels(pszText, m_pSndFile->m_nGlobalVolume, m_pSndFile->m_pConfig->getNormalGlobalVol()) : wsprintf(pszText, moreRecentMixModeNote);
return TRUE;
break;
}
Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -840,7 +840,6 @@
BuildTuningComboBox();
CheckDlgButton(IDC_CHECK_PITCHTEMPOLOCK, MF_UNCHECKED);
- OnBnClickedCheckPitchtempolock();
m_EditPitchTempoLock.SetLimitText(4);
return FALSE;
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -401,6 +401,9 @@
m_nBitsPerSample = GetPrivateProfileDWord("Sound Settings", "BitsPerSample", 16, iniFile);
m_nChannels = GetPrivateProfileDWord("Sound Settings", "ChannelMode", 2, iniFile);
m_nBufferLength = GetPrivateProfileDWord("Sound Settings", "BufferLength", 75, iniFile);
+ if(m_nBufferLength < SNDDEV_MINBUFFERLEN) m_nBufferLength = SNDDEV_MINBUFFERLEN;
+ if(m_nBufferLength > SNDDEV_MAXBUFFERLEN) m_nBufferLength = SNDDEV_MAXBUFFERLEN;
+
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);
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -1272,7 +1272,10 @@
// -> CODE#0020
// -> DESC="rearrange sample list"
void CModDoc::RearrangeSampleList(void)
+//-------------------------------------
{
+ MessageBox(NULL, "Rearrange samplelist didn't work properly and has been disabled.", NULL, MB_ICONINFORMATION);
+ /*
BEGIN_CRITICAL();
UINT i,j,k,n,l,c;
@@ -1314,6 +1317,7 @@
SetModified();
UpdateAllViews(NULL, HINT_SMPNAMES);
+ */
}
// -! NEW_FEATURE#0020
@@ -1557,7 +1561,8 @@
if ((c == 0x0D) && (len > 3))
{
//if ((p[len-3] == 'I') || (p[len-4] == 'S')) bS3M = TRUE;
- if ((p[len-3] == 'I') || (p[len-4] == 'S') || (p[len-4] == 'M')) bS3M = TRUE;
+ // IT? S3M? MPT?
+ if ((p[len-3] == 'I') || (p[len-4] == 'S') || (p[len-3] == 'P')) bS3M = TRUE;
break;
}
}
@@ -1715,7 +1720,7 @@
CHAR s[1024];
INSTRUMENTHEADER *penv;
DWORD dwMemSize;
- UINT susBegin, susEnd, loopBegin, loopEnd, bSus, bLoop, bCarry, nPoints;
+ UINT susBegin, susEnd, loopBegin, loopEnd, bSus, bLoop, bCarry, nPoints, releaseNode;
WORD *pPoints;
BYTE *pValues;
@@ -1735,6 +1740,7 @@
susEnd = penv->nPanSustainEnd;
loopBegin = penv->nPanLoopStart;
loopEnd = penv->nPanLoopEnd;
+ releaseNode = penv->nPanEnvReleaseNode;
break;
case ENV_PITCH:
@@ -1748,6 +1754,7 @@
susEnd = penv->nPitchSustainEnd;
loopBegin = penv->nPitchLoopStart;
loopEnd = penv->nPitchLoopEnd;
+ releaseNode = penv->nPitchEnvReleaseNode;
break;
default:
@@ -1761,6 +1768,7 @@
susEnd = penv->nVolSustainEnd;
loopBegin = penv->nVolLoopStart;
loopEnd = penv->nVolLoopEnd;
+ releaseNode = penv->nVolEnvReleaseNode;
break;
}
strcpy(s, pszEnvHdr);
@@ -1770,6 +1778,11 @@
if (strlen(s) >= sizeof(s)-32) break;
wsprintf(s+strlen(s), "%d,%d\x0D\x0A", pPoints[i], pValues[i]);
}
+
+ //Writing release node
+ if(strlen(s) < sizeof(s) - 32)
+ wsprintf(s+strlen(s), "%u\x0D\x0A", releaseNode);
+
dwMemSize = strlen(s)+1;
if ((pMainFrm->OpenClipboard()) && ((hCpy = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE, dwMemSize))!=NULL))
{
@@ -1802,7 +1815,7 @@
if ((hCpy) && ((p = (LPSTR)GlobalLock(hCpy)) != NULL))
{
INSTRUMENTHEADER *penv = m_SndFile.Headers[nIns];
- UINT susBegin=0, susEnd=0, loopBegin=0, loopEnd=0, bSus=0, bLoop=0, bCarry=0, nPoints=0;
+ UINT susBegin=0, susEnd=0, loopBegin=0, loopEnd=0, bSus=0, bLoop=0, bCarry=0, nPoints=0, releaseNode = ENV_RELEASE_NODE_UNSET;
DWORD dwMemSize = GlobalSize(hCpy), dwPos = strlen(pszEnvHdr);
if ((dwMemSize > dwPos) && (!strnicmp(p, pszEnvHdr, dwPos-2)))
{
@@ -1845,6 +1858,7 @@
penv->nPanSustainEnd = susEnd;
penv->nPanLoopStart = loopBegin;
penv->nPanLoopEnd = loopEnd;
+ penv->nPanEnvReleaseNode = releaseNode;
break;
case ENV_PITCH:
@@ -1859,6 +1873,7 @@
penv->nPitchSustainEnd = susEnd;
penv->nPitchLoopStart = loopBegin;
penv->nPitchLoopEnd = loopEnd;
+ penv->nPitchEnvReleaseNode = releaseNode;
break;
default:
@@ -1873,6 +1888,7 @@
penv->nVolSustainEnd = susEnd;
penv->nVolLoopStart = loopBegin;
penv->nVolLoopEnd = loopEnd;
+ penv->nVolEnvReleaseNode = releaseNode;
break;
}
int oldn = 0;
@@ -1892,6 +1908,27 @@
while ((dwPos < dwMemSize) && (p[dwPos] != 0x0D)) dwPos++;
if (dwPos >= dwMemSize) break;
}
+
+ //Read releasenode information.
+ if(dwPos < dwMemSize)
+ {
+ BYTE r = static_cast<BYTE>(atoi(p + dwPos));
+ if(r == 0 || r >= nPoints) r = ENV_RELEASE_NODE_UNSET;
+ switch(nEnv)
+ {
+ case ENV_PANNING:
+ penv->nPanEnvReleaseNode = r;
+ break;
+
+ case ENV_PITCH:
+ penv->nPitchEnvReleaseNode = r;
+ break;
+
+ default:
+ penv->nVolEnvReleaseNode = r;
+ break;
+ }
+ }
}
GlobalUnlock(hCpy);
CloseClipboard();
Modified: trunk/OpenMPT/mptrack/Moptions.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moptions.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Moptions.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -610,7 +610,7 @@
{"Always center active row", "Turn on this option to have the active row always centered in the pattern editor (requires \"Always center active row\")."},
{"Use large font for comments", "With this option enabled, the song message editor will use a larger font."},
{"Display rows in hex", "With this option enabled, row numbers and sequence numbers will be displayed in hexadecimal."},
- {"Cursor wrap in pattern editor", "When this option is active, going past the end of a pattern will move the cursor to the beginning."},
+ {"Cursor wrap in pattern editor", "When this option is active, going past the end of a pattern row or channel will move the cursor to the beginning. When \"Continuous scroll\"-option is enabled, row wrap is disabled."},
{"Create backup files (*.bak)", "When this option is active, saving a file will create a backup copy of the original."},
{"Drag and Drop Editing", "Enable moving a selection in the pattern editor (copying if pressing shift while dragging)\n"},
{"Flat Buttons", "Use flat buttons in toolbars"},
Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -329,7 +329,8 @@
CHAR s[32];
m_CbnBufferLength.GetWindowText(s, sizeof(s));
m_nBufferLength = atoi(s);
- if ((m_nBufferLength < 10) || (m_nBufferLength > 200)) m_nBufferLength = 100;
+ //if ((m_nBufferLength < 10) || (m_nBufferLength > 200)) m_nBufferLength = 100;
+ if ((m_nBufferLength < SNDDEV_MINBUFFERLEN) || (m_nBufferLength > SNDDEV_MAXBUFFERLEN)) m_nBufferLength = 100;
}
// Soft Panning
if (m_dwSoundSetup & SOUNDSETUP_SOFTPANNING)
@@ -1054,6 +1055,9 @@
ON_COMMAND(IDC_CHECK2, OnSettingsChanged)
ON_COMMAND(IDC_CHECK3, OnSettingsChanged)
ON_COMMAND(IDC_CHECK4, OnSettingsChanged)
+ ON_COMMAND(IDC_MIDI_TO_PLUGIN, OnSettingsChanged)
+ ON_COMMAND(IDC_MIDIVOL_TO_NOTEVOL, OnSettingsChanged)
+ ON_COMMAND(IDC_MIDIPLAYCONTROL, OnSettingsChanged)
END_MESSAGE_MAP()
Modified: trunk/OpenMPT/mptrack/Mptrack.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Mptrack.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -2856,13 +2856,19 @@
m_pPluginManager = new CVstPluginManager;
if (!m_pPluginManager) return FALSE;
nPlugins = GetPrivateProfileInt("VST Plugins", "NumPlugins", 0, m_szConfigFileName);
+ CString nonFoundPlugs;
for (LONG iPlug=0; iPlug<nPlugins; iPlug++)
{
s[0] = 0;
wsprintf(tmp, "Plugin%d", iPlug);
GetPrivateProfileString("VST Plugins", tmp, "", s, sizeof(s), m_szConfigFileName);
- if (s[0]) m_pPluginManager->AddPlugin(s);
+ if (s[0]) m_pPluginManager->AddPlugin(s, TRUE, true, &nonFoundPlugs);
}
+ if(nonFoundPlugs.GetLength() > 0)
+ {
+ nonFoundPlugs.Insert(0, "Problems were encountered with plugins:\n");
+ MessageBox(NULL, nonFoundPlugs, "", MB_OK);
+ }
return FALSE;
}
Modified: trunk/OpenMPT/mptrack/OrderToPatternTable.cpp
===================================================================
--- trunk/OpenMPT/mptrack/OrderToPatternTable.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/OrderToPatternTable.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -108,6 +108,27 @@
}
+ORDERINDEX COrderToPatternTable::GetNextOrderIgnoringSkips(const ORDERINDEX start) const
+//-------------------------------------------------------------------------------------
+{
+ const ORDERINDEX count = GetCount();
+ if(count == 0) return 0;
+ ORDERINDEX next = min(count-1, start+1);
+ while(next+1 < count && (*this)[next] == GetIgnoreIndex()) next++;
+ return next;
+}
+
+ORDERINDEX COrderToPatternTable::GetPreviousOrderIgnoringSkips(const ORDERINDEX start) const
+//-------------------------------------------------------------------------------------
+{
+ const ORDERINDEX count = GetCount();
+ if(start == 0 || count == 0) return 0;
+ ORDERINDEX prev = min(start-1, count-1);
+ while(prev > 0 && (*this)[prev] == GetIgnoreIndex()) prev--;
+ return prev;
+}
+
+
PATTERNINDEX COrderToPatternTable::GetInvalidPatIndex(const MODTYPE type) {return type == MOD_TYPE_MPT ? 65535 : 0xFF;}
PATTERNINDEX COrderToPatternTable::GetIgnoreIndex(const MODTYPE type) {return type == MOD_TYPE_MPT ? 65534 : 0xFE;}
Modified: trunk/OpenMPT/mptrack/OrderToPatternTable.h
===================================================================
--- trunk/OpenMPT/mptrack/OrderToPatternTable.h 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/OrderToPatternTable.h 2008-02-23 12:51:23 UTC (rev 203)
@@ -8,6 +8,8 @@
class CSoundFile;
class COrderToPatternTable;
+#pragma warning(disable:4244) //conversion from 'type1' to 'type2', possible loss of data
+
class COrderSerialization : public srlztn::ABCSerializationStreamer
//=========================================================
{
@@ -32,7 +34,7 @@
size_t WriteToByteArray(BYTE* dest, const UINT numOfBytes, const UINT destSize);
- ORDERINDEX GetCount() const {return static_cast<ORDERINDEX>(size());}
+ ORDERINDEX GetCount() const {return size();}
//Deprecated function used for MPTm's created in 1.17.02.46 - 1.17.02.48.
DWORD Unserialize(const BYTE* const src, const DWORD memLength);
@@ -48,13 +50,19 @@
PATTERNINDEX GetIgnoreIndex() const; //To correspond 0xFE
static PATTERNINDEX GetIgnoreIndex(const MODTYPE type);
+ //Returns the previous/next order ignoring skip indeces(+++).
+ //If no previous/next order exists, return first/last order, and zero
+ //when orderlist is empty.
+ ORDERINDEX GetNextOrderIgnoringSkips(const ORDERINDEX start) const;
+ ORDERINDEX GetPreviousOrderIgnoringSkips(const ORDERINDEX start) const;
+
COrderSerialization* NewReadWriteObject() {return new COrderSerialization(*this);}
private:
const CSoundFile& m_rSndFile;
};
+#pragma warning(default:4244)
-
#endif
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -257,11 +257,13 @@
UINT nCurOrder = SendCtrlMessage(CTRLMSG_GETCURRENTORDER);
if ((nCurOrder > 0) && (nCurOrder < pSndFile->Order.size()) && (m_nPattern == pSndFile->Order[nCurOrder]))
{
- UINT nPrevPat = pSndFile->Order[nCurOrder-1];
+ const ORDERINDEX prevOrd = pSndFile->Order.GetPreviousOrderIgnoringSkips(nCurOrder);
+ const PATTERNINDEX nPrevPat = pSndFile->Order[prevOrd];
if ((nPrevPat < pSndFile->Patterns.Size()) && (pSndFile->PatternSize[nPrevPat]))
{
- SendCtrlMessage(CTRLMSG_SETCURRENTORDER, nCurOrder-1);
- if (SetCurrentPattern(nPrevPat)) return SetCurrentRow(pSndFile->PatternSize[nPrevPat]-1);
+ SendCtrlMessage(CTRLMSG_SETCURRENTORDER, prevOrd);
+ if (SetCurrentPattern(nPrevPat))
+ return SetCurrentRow(pSndFile->PatternSize[nPrevPat] + (int)row);
}
}
row = 0;
@@ -283,11 +285,13 @@
UINT nCurOrder = SendCtrlMessage(CTRLMSG_GETCURRENTORDER);
if ((nCurOrder+1 < pSndFile->Order.size()) && (m_nPattern == pSndFile->Order[nCurOrder]))
{
- UINT nNextPat = pSndFile->Order[nCurOrder+1];
- if ((nNextPat < pSndFile->Patterns.Size()) && (pSndFile->PatternSize[nNextPat]))
+ const ORDERINDEX nextOrder = pSndFile->Order.GetNextOrderIgnoringSkips(nCurOrder);
+ const PATTERNINDEX nextPat = pSndFile->Order[nextOrder];
+ if ((nextPat < pSndFile->Patterns.Size()) && (pSndFile->PatternSize[nextPat]))
{
- SendCtrlMessage(CTRLMSG_SETCURRENTORDER, nCurOrder+1);
- if (SetCurrentPattern(nNextPat)) return SetCurrentRow(0);
+ SendCtrlMessage(CTRLMSG_SETCURRENTORDER, nextOrder);
+ if (SetCurrentPattern(nextPat))
+ return SetCurrentRow(row - pSndFile->PatternSize[m_nPattern]);
}
}
row = pSndFile->PatternSize[m_nPattern]-1;
@@ -3951,7 +3955,8 @@
// -- Work out where to put the new note
MODCOMMAND* p = pSndFile->Patterns[m_nPattern].GetpModCommand(nRow, nChn);
- MODCOMMAND oldcmd = *p; //take backup copy of the command we're about to overwrite
+ //take backup copy of the command we're about to overwrite
+ MODCOMMAND oldcmd = *p;
// -- write note and instrument data
isSplit = HandleSplit(p, note);
@@ -4369,7 +4374,7 @@
if (m_nSplitInstrument)
p->instr = m_nSplitInstrument;
else
- p->instr = GetCurrentInstrument();
+ if(GetCurrentInstrument()) p->instr = GetCurrentInstrument();
if (m_bOctaveLink)
note += 12*(m_nOctaveModifier-9);
if (note>120 && note<254) note=120;
Modified: trunk/OpenMPT/mptrack/Vstplug.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Vstplug.cpp 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Vstplug.cpp 2008-02-23 12:51:23 UTC (rev 203)
@@ -158,9 +158,19 @@
// ID100000ID200000.Flags = Plugin Flags (for now, just isInstrument).
-PVSTPLUGINLIB CVstPluginManager::AddPlugin(LPCSTR pszDllPath, BOOL bCache)
-//------------------------------------------------------------------------
+
+PVSTPLUGINLIB CVstPluginManager::AddPlugin(LPCSTR pszDllPath, BOOL bCache, const bool checkFileExistence, CString* const errStr)
+//-----------------------------------------------------------------------------------------------------------
{
+ if(checkFileExistence && !DoesFileExist(pszDllPath))
+ {
+ if(errStr)
+ {
+ *errStr += "\nUnable to find ";
+ *errStr += pszDllPath;
+ }
+ }
+
PVSTPLUGINLIB pDup = m_pVstHead;
while (pDup)
{
@@ -1569,16 +1579,19 @@
m_nInputs = m_pEffect->numInputs;
m_nOutputs = m_pEffect->numOutputs;
- m_pInputs = (float **)new char[m_nInputs*sizeof(float *)];
- m_pOutputs = (float **)new char[m_nOutputs*sizeof(float *)];
- m_pTempBuffer = (float **)new char[m_nOutputs*sizeof(float *)]; //rewbs.dryRatio
+
+ //input pointer array size must be >=2 for now - the input buffer assignment might write to non allocated mem. otherwise
+ m_pInputs = (m_nInputs >= 2) ? new (float *[m_nInputs]) : new (float*[2]);
+ m_pInputs[0] = m_MixState.pOutBufferL;
+ m_pInputs[1] = m_MixState.pOutBufferR;
+ m_pOutputs = new (float *[m_nOutputs]);
+ m_pTempBuffer = new (float *[m_nOutputs]); //rewbs.dryRatio
+
for (UINT iOut=0; iOut<m_nOutputs; iOut++)
{
m_pTempBuffer[iOut]=(float *)((((DWORD)&m_FloatBuffer[MIXBUFFERSIZE*(2+iOut)])+7)&~7); //rewbs.dryRatio
}
- m_pInputs[0] = m_MixState.pOutBufferL;
- m_pInputs[1] = m_MixState.pOutBufferR;
#ifdef VST_LOG
Log("%s: vst ver %d.0, flags=%04X, %d programs, %d parameters\n",
@@ -1642,33 +1655,19 @@
FreeLibrary(m_hLibrary);
m_hLibrary = NULL;
}
- if (m_pTempBuffer) //rewbs.dryRatio
- {
- delete[] m_pTempBuffer;
- m_pTempBuffer = NULL;
- }
- //Deleting inputs causes crashes on some plugs, not deleting causes crashes in other cases. :)
- //TODO: figure out what to do here.. :)
- if (m_nInputs && m_pInputs) //if m_nInputs == 0, then m_pInputs will have been
- { //initilised at 0 size, so we'll crash on delete.
- //Even though the size is zero,
- //new returns a non-NULL address and absence
- //of delete can make debugger report
- //of a memory leak of 0 bytes long.
- delete[] m_pInputs;
- m_pInputs = NULL;
- }
- if (m_pOutputs)
- {
- delete[] m_pOutputs;
- m_pOutputs = NULL;
- }
- if (m_pEvList)
- {
- delete[] (char *)m_pEvList;
- m_pEvList = NULL;
- }
+ delete[] m_pTempBuffer;
+ m_pTempBuffer = NULL;
+
+ delete[] m_pInputs;
+ m_pInputs = NULL;
+
+ delete[] m_pOutputs;
+ m_pOutputs = NULL;
+
+ delete[] (char *)m_pEvList;
+ m_pEvList = NULL;
+
CloseHandle(processCalled);
}
@@ -4103,3 +4102,4 @@
return CString();
}
+
Modified: trunk/OpenMPT/mptrack/Vstplug.h
===================================================================
--- trunk/OpenMPT/mptrack/Vstplug.h 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/Vstplug.h 2008-02-23 12:51:23 UTC (rev 203)
@@ -206,7 +206,7 @@
public:
PVSTPLUGINLIB GetFirstPlugin() const { return m_pVstHead; }
BOOL IsValidPlugin(const VSTPLUGINLIB *pLib);
- PVSTPLUGINLIB AddPlugin(LPCSTR pszDllPath, BOOL bCache=TRUE);
+ PVSTPLUGINLIB AddPlugin(LPCSTR pszDllPath, BOOL bCache=TRUE, const bool checkFileExistence = false, CString* const errStr = 0);
BOOL RemovePlugin(PVSTPLUGINLIB);
BOOL CreateMixPlugin(PSNDMIXPLUGIN, CModDoc*);
VOID OnIdle();
Modified: trunk/OpenMPT/mptrack/misc_util.h
===================================================================
--- trunk/OpenMPT/mptrack/misc_util.h 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/misc_util.h 2008-02-23 12:51:23 UTC (rev 203)
@@ -35,5 +35,8 @@
*/
}
+//Return true if file with given path is found.
+bool DoesFileExist(const char* const filepath);
+
#endif
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2008-02-23 12:46:41 UTC (rev 202)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2008-02-23 12:51:23 UTC (rev 203)
@@ -145,7 +145,6 @@
MENUITEM "Cleanup Pa&tterns", ID_CLEANUP_PATTERNS
MENUITEM "Cleanup S&ong", ID_CLEANUP_SONG
MENUITEM "Remove &All Instruments", ID_INSTRUMENTS_REMOVEALL
- MENUITEM "Rearrange Samples", ID_REARRANGE_SAMPLES
MENUITEM "Cleanup &Plugins", ID_CLEANUP_PLUGS
END
MENUITEM SEPARATOR
@@ -491,7 +490,7 @@
CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT |
UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,214,71,
11,14
- CONTROL "Send midi to active instrument plugin",
+ CONTROL "Pass MIDI to active instrument plugin (experimental)",
IDC_MIDI_TO_PLUGIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
11,148,222,8
CONTROL "Combine midi volume to note velocity",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|