From: <sag...@us...> - 2011-08-08 12:54:49
|
Revision: 964 http://modplug.svn.sourceforge.net/modplug/?rev=964&view=rev Author: saga-games Date: 2011-08-08 12:54:40 +0000 (Mon, 08 Aug 2011) Log Message: ----------- [Ref] Moved string fixing functions to separate namespace and file. Modified Paths: -------------- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/mptrack/Vstplug.cpp trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/misc_util.h trunk/OpenMPT/mptrack/mptrack.vcproj trunk/OpenMPT/mptrack/mptrack_08.vcproj trunk/OpenMPT/mptrack/mptrack_10.vcxproj trunk/OpenMPT/mptrack/view_com.cpp trunk/OpenMPT/soundlib/Dlsbank.cpp trunk/OpenMPT/soundlib/LOAD_AMF.CPP trunk/OpenMPT/soundlib/LOAD_DBM.CPP trunk/OpenMPT/soundlib/LOAD_DMF.CPP trunk/OpenMPT/soundlib/LOAD_DSM.CPP trunk/OpenMPT/soundlib/Load_669.cpp trunk/OpenMPT/soundlib/Load_ams.cpp trunk/OpenMPT/soundlib/Load_far.cpp trunk/OpenMPT/soundlib/Load_gdm.cpp trunk/OpenMPT/soundlib/Load_imf.cpp trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Load_itp.cpp trunk/OpenMPT/soundlib/Load_mdl.cpp trunk/OpenMPT/soundlib/Load_med.cpp trunk/OpenMPT/soundlib/Load_mod.cpp trunk/OpenMPT/soundlib/Load_mt2.cpp trunk/OpenMPT/soundlib/Load_mtm.cpp trunk/OpenMPT/soundlib/Load_okt.cpp trunk/OpenMPT/soundlib/Load_psm.cpp trunk/OpenMPT/soundlib/Load_ptm.cpp trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/soundlib/Load_stm.cpp trunk/OpenMPT/soundlib/Load_ult.cpp trunk/OpenMPT/soundlib/Load_xm.cpp trunk/OpenMPT/soundlib/Loaders.h trunk/OpenMPT/soundlib/Sampleio.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/load_j2b.cpp Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp =================================================================== --- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -9,6 +9,7 @@ #include "fxp.h" #include "dlg_misc.h" #include "AbstractVstEditor.h" +#include "../soundlib/StringFixer.h" #ifndef NO_VST @@ -201,7 +202,7 @@ strcpy(rawname, ""); } } - SetNullTerminator(rawname); + StringFixer::SetNullTerminator(rawname); CreateVerifiedProgramName(rawname, CountOf(rawname), name, CountOf(name), index); m_pMenu->ModifyMenu(8, MF_BYPOSITION, 0, name); @@ -440,7 +441,7 @@ { strcpy(sname, ""); } - SetNullTerminator(sname); + StringFixer::SetNullTerminator(sname); CreateVerifiedProgramName(sname, sizeof(sname), s, sizeof(s), p); Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -9,6 +9,7 @@ #include "dlg_misc.h" #include "tuningDialog.h" #include "misc_util.h" +#include "../soundlib/StringFixer.h" #include "Vstplug.h" #pragma warning(disable:4244) //conversion from 'type1' to 'type2', possible loss of data @@ -1717,7 +1718,7 @@ { strncpy(szFileName, pIns->name, min(CountOf(pIns->name), CountOf(szFileName) - 1)); } - SetNullTerminator(szFileName); + StringFixer::SetNullTerminator(szFileName); SanitizeFilename(szFileName); FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, (m_pSndFile->GetType() == MOD_TYPE_XM) ? "xi" : "iti", szFileName, Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -8,7 +8,9 @@ #include "ctrl_pat.h" #include "view_pat.h" #include "ChannelManagerDlg.h" +#include "../soundlib/StringFixer.h" + ////////////////////////////////////////////////////////////// // CCtrlPatterns @@ -1071,7 +1073,7 @@ CHAR s[MAX_PATTERNNAME]; m_EditPatName.GetWindowText(s, CountOf(s)); - SetNullTerminator(s); + StringFixer::SetNullTerminator(s); if (m_pSndFile->Patterns[nPat].GetName().Compare(s)) { Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -16,6 +16,7 @@ #include "smbPitchShift.cpp" #pragma warning(default:4244) //"conversion from 'type1' to 'type2', possible loss of data" #include "modsmp_ctrl.h" +#include "../soundlib/StringFixer.h" #include <Shlwapi.h> #ifdef _DEBUG @@ -1019,7 +1020,7 @@ sPath += ".wav"; _splitpath(sPath, NULL, NULL, szFileName, NULL); } - SetNullTerminator(szFileName); + StringFixer::SetNullTerminator(szFileName); SanitizeFilename(szFileName); FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, "wav", szFileName, Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -8,6 +8,7 @@ #include "EffectVis.h" //rewbs.fxvis #include "ChannelManagerDlg.h" #include "../soundlib/tuningbase.h" +#include "../soundlib/StringFixer.h" #include <string> using std::string; @@ -1515,7 +1516,7 @@ if(m->instr <= MAX_MIXPLUGINS) { strncpy(sztmp, pSndFile->m_MixPlugins[m->instr - 1].GetName(), sizeof(sztmp)); - SetNullTerminator(sztmp); + StringFixer::SetNullTerminator(sztmp); } } else { @@ -1564,7 +1565,7 @@ { CHAR sztmp[128] = ""; strncpy(sztmp, pSndFile->m_MixPlugins[m->instr - 1].GetParamName(m->GetValueVolCol()), sizeof(sztmp)); - SetNullTerminator(sztmp); + StringFixer::SetNullTerminator(sztmp); if (sztmp[0]) wsprintf(s, "%d: %s", m->GetValueVolCol(), sztmp); } } else Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -15,6 +15,7 @@ #include "version.h" #include "modsmp_ctrl.h" #include "CleanupSong.h" +#include "../soundlib/StringFixer.h" #include <shlwapi.h> extern WORD S3MFineTuneTable[16]; @@ -3926,13 +3927,13 @@ //---------------------------- { // Song title - FixNullString(m_SndFile.m_szNames[0]); + StringFixer::FixNullString(m_SndFile.m_szNames[0]); // Sample names + filenames for(SAMPLEINDEX nSmp = 1; nSmp < m_SndFile.GetNumSamples(); nSmp++) { - FixNullString(m_SndFile.m_szNames[nSmp]); - FixNullString(m_SndFile.Samples[nSmp].filename); + StringFixer::FixNullString(m_SndFile.m_szNames[nSmp]); + StringFixer::FixNullString(m_SndFile.Samples[nSmp].filename); } // Instrument names @@ -3940,15 +3941,15 @@ { if(m_SndFile.Instruments[nIns] != nullptr) { - FixNullString(m_SndFile.Instruments[nIns]->name); - FixNullString(m_SndFile.Instruments[nIns]->filename); + StringFixer::FixNullString(m_SndFile.Instruments[nIns]->name); + StringFixer::FixNullString(m_SndFile.Instruments[nIns]->filename); } } // Channel names for(CHANNELINDEX nChn = 0; nChn < m_SndFile.GetNumChannels(); nChn++) { - FixNullString(m_SndFile.ChnSettings[nChn].szName); + StringFixer::FixNullString(m_SndFile.ChnSettings[nChn].szName); } // Macros Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -19,6 +19,7 @@ #include <shlwapi.h> #include <afxadv.h> #include "UpdateCheck.h" +#include "../soundlib/StringFixer.h" // rewbs.memLeak #define _CRTDBG_MAP_ALLOC @@ -3106,7 +3107,7 @@ const size_t nStrLength = nLength - 1; // "usable" length, i.e. not including the null char. TCHAR szExePath[nLength], szTempPath[nLength]; _tcsncpy(szExePath, GetAppDirPath(), nStrLength); - SetNullTerminator(szExePath); + StringFixer::SetNullTerminator(szExePath); if(!_tcsncicmp(szExePath, szPath, _tcslen(szExePath))) { @@ -3120,7 +3121,7 @@ _tcsncpy(szTempPath, &szPath[2], nStrLength); // "\Somepath" _tcscpy(szPath, szTempPath); } - SetNullTerminator(szPath); + StringFixer::SetNullTerminator(szPath); } @@ -3140,7 +3141,7 @@ const size_t nStrLength = nLength - 1; // "usable" length, i.e. not including the null char. TCHAR szExePath[nLength], szTempPath[nLength] = _T(""); _tcsncpy(szExePath, GetAppDirPath(), nStrLength); - SetNullTerminator(szExePath); + StringFixer::SetNullTerminator(szExePath); if(!_tcsncicmp(szPath, _T("\\"), 1)) { @@ -3158,7 +3159,7 @@ } _tcscpy(szPath, szTempPath); } - SetNullTerminator(szPath); + StringFixer::SetNullTerminator(szPath); } void CTrackApp::RemoveMruItem(const int nItem) Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -19,6 +19,7 @@ #include "UpdateCheck.h" #include "Mpdlgs.h" #include "AutoSaver.h" +#include "../soundlib/StringFixer.h" #include "TrackerSettings.h" @@ -202,14 +203,14 @@ CHAR snam[8]; wsprintf(snam, "SF%X", isfx); GetPrivateProfileString("Zxx Macros", snam, macros.szMidiSFXExt[isfx], macros.szMidiSFXExt[isfx], CountOf(macros.szMidiSFXExt[isfx]), iniFile); - SetNullTerminator(macros.szMidiSFXExt[isfx]); + StringFixer::SetNullTerminator(macros.szMidiSFXExt[isfx]); } for(int izxx = 0; izxx < 128; izxx++) { CHAR snam[8]; wsprintf(snam, "Z%02X", izxx | 0x80); GetPrivateProfileString("Zxx Macros", snam, macros.szMidiZXXExt[izxx], macros.szMidiZXXExt[izxx], CountOf(macros.szMidiZXXExt[izxx]), iniFile); - SetNullTerminator(macros.szMidiZXXExt[izxx]); + StringFixer::SetNullTerminator(macros.szMidiZXXExt[izxx]); } // Fix old nasty broken (non-standard) MIDI configs in INI file. if(storedVersion >= "1.17" && storedVersion < "1.20") Modified: trunk/OpenMPT/mptrack/View_gen.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_gen.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/View_gen.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -10,6 +10,7 @@ #include "EffectVis.h" #include "movefxslotdialog.h" #include "ChannelManagerDlg.h" +#include "../soundlib/StringFixer.h" #include ".\view_gen.h" #define ID_FXCOMMANDS_BASE 41000 @@ -1531,7 +1532,7 @@ { strcpy(sname, ""); } - SetNullTerminator(sname); + StringFixer::SetNullTerminator(sname); if(sname[0] < ' ') { Modified: trunk/OpenMPT/mptrack/Vstplug.cpp =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/Vstplug.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -14,6 +14,7 @@ #include "midi.h" #include "version.h" #include "midimappingdialog.h" +#include "../soundlib/StringFixer.h" #ifdef VST_USE_ALTERNATIVE_MAGIC //Pelya's plugin ID fix. Breaks fx presets, so let's avoid it for now. #define ZLIB_WINAPI #include "../zlib/zlib.h" //For CRC32 calculation (to detect plugins with same UID) @@ -219,7 +220,7 @@ { // Get path from cache file GetPrivateProfileString(cacheSection, IDs, "", szPath, CountOf(szPath), cacheFile); - SetNullTerminator(szPath); + StringFixer::SetNullTerminator(szPath); theApp.RelativePathToAbsolute(szPath); if ((szPath[0]) && (!lstrcmpi(szPath, pszDllPath))) @@ -367,7 +368,7 @@ { theApp.AbsolutePathToRelative(szPath); } - SetNullTerminator(szPath); + StringFixer::SetNullTerminator(szPath); WritePrivateProfileString(cacheSection, IDs, szPath, cacheFile); CMainFrame::WritePrivateProfileCString(cacheSection, IDs, pszDllPath, cacheFile); Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -9,6 +9,7 @@ #include "ChannelManagerDlg.h" #include "midi.h" #include "version.h" +#include "../soundlib/StringFixer.h" #pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data" @@ -800,7 +801,7 @@ for (UINT plug=0; plug<MAX_MIXPLUGINS; plug++) { PSNDMIXPLUGIN p = &(m_pSndFile->m_MixPlugins[plug]); - SetNullTerminator(p->Info.szLibraryName); + StringFixer::SetNullTerminator(p->Info.szLibraryName); if (p->Info.szLibraryName[0]) { wsprintf(s, "FX%d: %s", plug+1, p->Info.szName); @@ -886,7 +887,7 @@ { ToggleBoxes(sfx_preset, sfx); memcpy(s, m_MidiCfg.szMidiSFXExt[sfx], MACRO_LENGTH); - SetNullTerminator(s); + StringFixer::SetNullTerminator(s); m_EditSFx.SetWindowText(s); } @@ -894,7 +895,7 @@ if (zxx < 0x80) { memcpy(s, m_MidiCfg.szMidiZXXExt[zxx], MACRO_LENGTH); - SetNullTerminator(s); + StringFixer::SetNullTerminator(s); m_EditZxx.SetWindowText(s); } UpdateMacroList(); @@ -1008,7 +1009,7 @@ { MemsetZero(s); m_EditSFx.GetWindowText(s, MACRO_LENGTH); - SetNullTerminator(s); + StringFixer::SetNullTerminator(s); memcpy(m_MidiCfg.szMidiSFXExt[sfx], s, MACRO_LENGTH); int sfx_preset = m_pModDoc->GetMacroType(m_MidiCfg.szMidiSFXExt[sfx]); @@ -1033,7 +1034,7 @@ { MemsetZero(s); m_EditZxx.GetWindowText(s, MACRO_LENGTH); - SetNullTerminator(s); + StringFixer::SetNullTerminator(s); memcpy(m_MidiCfg.szMidiZXXExt[zxx], s, MACRO_LENGTH); } } Modified: trunk/OpenMPT/mptrack/misc_util.h =================================================================== --- trunk/OpenMPT/mptrack/misc_util.h 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/misc_util.h 2011-08-08 12:54:40 UTC (rev 964) @@ -13,7 +13,7 @@ //Convert object(typically number) to string template<class T> inline std::string Stringify(const T& x) -//-------------------------- +//-------------------------------------- { std::ostringstream o; if(!(o << x)) return "FAILURE"; @@ -38,20 +38,11 @@ template<> inline int64 ConvertStrTo(LPCSTR psz) {return _strtoi64(psz, nullptr, 10);} template<> inline uint64 ConvertStrTo(LPCSTR psz) {return _strtoui64(psz, nullptr, 10);} -// Sets last character to null in given char array. -// Size of the array must be known at compile time. -template <size_t size> -inline void SetNullTerminator(char (&buffer)[size]) -//------------------------------------------------- -{ - STATIC_ASSERT(size > 0); - buffer[size-1] = 0; -} - // Memset given object to zero. template <class T> inline void MemsetZero(T& a) +//_------------------------- { #if _HAS_TR1 static_assert(std::tr1::is_pointer<T>::value == false, "Won't memset pointers."); @@ -151,98 +142,6 @@ } -// Convert a 0-terminated string to a space-padded string -template <size_t size> -void NullToSpaceString(char (&buffer)[size]) -//------------------------------------------ -{ - STATIC_ASSERT(size > 0); - size_t pos = size; - while (pos-- > 0) - if (buffer[pos] == 0) - buffer[pos] = 32; - buffer[size - 1] = 0; -} - - -// Convert a space-padded string to a 0-terminated string -template <size_t size> -void SpaceToNullString(char (&buffer)[size]) -//------------------------------------------ -{ - STATIC_ASSERT(size > 0); - // First, remove any Nulls - NullToSpaceString(buffer); - size_t pos = size; - while (pos-- > 0) - { - if (buffer[pos] == 32) - buffer[pos] = 0; - else if(buffer[pos] != 0) - break; - } - buffer[size - 1] = 0; -} - - -// Remove any chars after the first null char -template <size_t size> -void FixNullString(char (&buffer)[size]) -//-------------------------------------- -{ - STATIC_ASSERT(size > 0); - SetNullTerminator(buffer); - size_t pos = 0; - // Find the first null char. - while(buffer[pos] != '\0' && pos < size) - { - pos++; - } - // Remove everything after the null char. - while(pos < size) - { - buffer[pos++] = '\0'; - } -} - - -// Convert a space-padded string to a 0-terminated string. STATIC VERSION! (use this if the maximum string length is known) -// Additional template parameter to specifify the max length of the final string, -// not including null char (useful for e.g. mod loaders) -template <size_t length, size_t size> -void SpaceToNullStringFixed(char (&buffer)[size]) -//------------------------------------------------ -{ - STATIC_ASSERT(size > 0); - STATIC_ASSERT(length < size); - // Remove Nulls in string - SpaceToNullString(buffer); - // Overwrite trailing chars - for(size_t pos = length; pos < size; pos++) - { - buffer[pos] = 0; - } -} - - -// Convert a space-padded string to a 0-terminated string. DYNAMIC VERSION! -// Additional function parameter to specifify the max length of the final string, -// not including null char (useful for e.g. mod loaders) -template <size_t size> -void SpaceToNullStringFixed(char (&buffer)[size], size_t length) -//-------------------------------------------------------------- -{ - STATIC_ASSERT(size > 0); - ASSERT(length < size); - // Remove Nulls in string - SpaceToNullString(buffer); - // Overwrite trailing chars - for(size_t pos = length; pos < size; pos++) - { - buffer[pos] = 0; - } -} - namespace Util { // Like std::max, but avoids conflict with max-macro. Modified: trunk/OpenMPT/mptrack/mptrack.vcproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack.vcproj 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/mptrack.vcproj 2011-08-08 12:54:40 UTC (rev 964) @@ -843,6 +843,9 @@ RelativePath=".\StdAfx.h"> </File> <File + RelativePath="..\Soundlib\StringFixer.h"> + </File> + <File RelativePath=".\tagging.h"> </File> <File Modified: trunk/OpenMPT/mptrack/mptrack_08.vcproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack_08.vcproj 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/mptrack_08.vcproj 2011-08-08 12:54:40 UTC (rev 964) @@ -1123,6 +1123,10 @@ > </File> <File + RelativePath="..\soundlib\StringFixer.h" + > + </File> + <File RelativePath=".\tagging.h" > </File> Modified: trunk/OpenMPT/mptrack/mptrack_10.vcxproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2011-08-08 12:54:40 UTC (rev 964) @@ -393,6 +393,7 @@ <ClInclude Include="..\Soundlib\Sndfile.h" /> <ClInclude Include="SoundFilePlayConfig.h" /> <ClInclude Include="StdAfx.h" /> + <ClInclude Include="..\Soundlib\StringFixer.h" /> <ClInclude Include="tagging.h" /> <ClInclude Include="TrackerSettings.h" /> <ClInclude Include="typedefs.h" /> Modified: trunk/OpenMPT/mptrack/view_com.cpp =================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/mptrack/view_com.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -5,8 +5,9 @@ #include "moddoc.h" #include "globals.h" #include "ctrl_com.h" +#include "ChannelManagerDlg.h" +#include "../soundlib/StringFixer.h" #include "view_com.h" -#include "ChannelManagerDlg.h" #define DETAILS_TOOLBAR_CY 28 @@ -505,7 +506,7 @@ if (iItem < pSndFile->m_nSamples) { memcpy(pSndFile->m_szNames[iItem + 1], s, sizeof(pSndFile->m_szNames[iItem + 1])); - SetNullTerminator(pSndFile->m_szNames[iItem + 1]); + StringFixer::SetNullTerminator(pSndFile->m_szNames[iItem + 1]); // 05/01/05 : ericus replaced "<< 24" by "<< 20" : 4000 samples -> 12bits [see Moddoc.h] pModDoc->UpdateAllViews(this, ((iItem + 1) << HINT_SHIFT_SMP) | (HINT_SMPNAMES|HINT_SAMPLEINFO), this); pModDoc->SetModified(); @@ -517,7 +518,7 @@ { MODINSTRUMENT *pIns = pSndFile->Instruments[iItem+1]; memcpy(pIns->name, s, sizeof(pIns->name)); - SetNullTerminator(pIns->name); + StringFixer::SetNullTerminator(pIns->name); pModDoc->UpdateAllViews(this, ((iItem + 1) << HINT_SHIFT_INS) | (HINT_INSNAMES|HINT_INSTRUMENT), this); pModDoc->SetModified(); } Modified: trunk/OpenMPT/soundlib/Dlsbank.cpp =================================================================== --- trunk/OpenMPT/soundlib/Dlsbank.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Dlsbank.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -17,6 +17,7 @@ #include "../mptrack/mptrack.h" #include "dlsbank.h" #include "Wav.h" +#include "StringFixer.h" //#define DLSBANK_LOG @@ -1675,7 +1676,7 @@ } else { memcpy(pIns->name, pDlsIns->szName, 32); - SetNullTerminator(pIns->name); + StringFixer::SetNullTerminator(pIns->name); } int nTranspose = 0; for (UINT iNoteMap=0; iNoteMap<NOTE_MAX; iNoteMap++) Modified: trunk/OpenMPT/soundlib/LOAD_AMF.CPP =================================================================== --- trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/LOAD_AMF.CPP 2011-08-08 12:54:40 UTC (rev 964) @@ -201,7 +201,7 @@ { MODSAMPLE *psmp = &Samples[iSmp+1]; memcpy(m_szNames[iSmp + 1], lpStream+dwMemPos, 22); - SpaceToNullStringFixed<22>(m_szNames[iSmp + 1]); + StringFixer::SpaceToNullStringFixed<22>(m_szNames[iSmp + 1]); psmp->nFineTune = MOD2XMFineTune(lpStream[dwMemPos+22]); psmp->nVolume = lpStream[dwMemPos+23]; psmp->nGlobalVol = 64; @@ -274,7 +274,7 @@ || (pfh->numchannels < 1) || (pfh->numchannels > 32)) return false; memcpy(m_szNames[0], pfh->title, 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); dwMemPos = sizeof(AMFFILEHEADER); m_nType = MOD_TYPE_AMF; m_nChannels = pfh->numchannels; @@ -335,8 +335,8 @@ dwMemPos += sizeof(AMFSAMPLE); memcpy(m_szNames[iIns+1], psh->samplename, 31); memcpy(pSmp->filename, psh->filename, 13); - SpaceToNullStringFixed<31>(m_szNames[iIns + 1]); - SpaceToNullStringFixed<13>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[iIns + 1]); + StringFixer::SpaceToNullStringFixed<13>(pSmp->filename); pSmp->nLength = LittleEndian(psh->length); pSmp->nC5Speed = LittleEndianW(psh->c2spd); pSmp->nGlobalVol = 64; Modified: trunk/OpenMPT/soundlib/LOAD_DBM.CPP =================================================================== --- trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2011-08-08 12:54:40 UTC (rev 964) @@ -201,7 +201,7 @@ m_nType = MOD_TYPE_DBM; m_nChannels = CLAMP(BigEndianW(pfh->channels), 1, MAX_BASECHANNELS); // note: MAX_BASECHANNELS is currently 127, but DBM supports up to 128 channels. memcpy(m_szNames[0], (pfh->songname[0]) ? pfh->songname : pfh->songname2, 32); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); Order.resize(nOrders, Order.GetInvalidPatIndex()); for (UINT iOrd=0; iOrd < nOrders; iOrd++) { @@ -240,11 +240,11 @@ nsmp = BigEndianW(pih->sampleno); psmp = ((nsmp) && (nsmp < MAX_SAMPLES)) ? &Samples[nsmp] : nullptr; memcpy(pIns->name, pih->name, 30); - SpaceToNullStringFixed<30>(pIns->name); + StringFixer::SpaceToNullStringFixed<30>(pIns->name); if (psmp) { memcpy(m_szNames[nsmp], pih->name, 30); - SpaceToNullStringFixed<30>(m_szNames[nsmp]); + StringFixer::SpaceToNullStringFixed<30>(m_szNames[nsmp]); } pIns->nFadeOut = 1024; // ??? Modified: trunk/OpenMPT/soundlib/LOAD_DMF.CPP =================================================================== --- trunk/OpenMPT/soundlib/LOAD_DMF.CPP 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/LOAD_DMF.CPP 2011-08-08 12:54:40 UTC (rev 964) @@ -753,7 +753,7 @@ const size_t lenNameImport = min(30, lenName); ASSERT_CAN_READ_SAMPLE(lenName); memcpy(pSndFile->m_szNames[nSmp], lpStream + dwMemPos, lenNameImport); - SpaceToNullStringFixed(pSndFile->m_szNames[nSmp], lenNameImport); + StringFixer::SpaceToNullStringFixed(pSndFile->m_szNames[nSmp], lenNameImport); dwMemPos += lenName; ASSERT_CAN_READ_SAMPLE(sizeof(DMFCHUNK_SAMPLEHEADER)); @@ -798,7 +798,7 @@ // Read library name in version 8 files ASSERT_CAN_READ_SAMPLE(8); memcpy(pSmp->filename, lpStream + dwMemPos, 8); - SpaceToNullStringFixed<8>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<8>(pSmp->filename); dwMemPos += 8; } @@ -829,7 +829,7 @@ dwMemPos += sizeof(DMFHEADER); memcpy(m_szNames[0], pHeader->songname, 30); - SpaceToNullStringFixed<30>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<30>(m_szNames[0]); m_nChannels = 0; #ifdef MODPLUG_TRACKER Modified: trunk/OpenMPT/soundlib/LOAD_DSM.CPP =================================================================== --- trunk/OpenMPT/soundlib/LOAD_DSM.CPP 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/LOAD_DSM.CPP 2011-08-08 12:54:40 UTC (rev 964) @@ -122,7 +122,7 @@ } } memcpy(m_szNames[0], psong->songname, 28); - SpaceToNullStringFixed<28>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[0]); nPat = 0; nSmp = 1; while (dwMemPos < dwMemLength - 8) @@ -216,10 +216,10 @@ DWORD dwPos = dwMemPos + sizeof(DSMSAMPLE); dwMemPos += 8 + pSmp->inst_len; memcpy(m_szNames[nSmp], pSmp->samplename, 28); - SpaceToNullStringFixed<28>(m_szNames[nSmp]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[nSmp]); MODSAMPLE *psmp = &Samples[nSmp]; memcpy(psmp->filename, pSmp->filename, 13); - SpaceToNullStringFixed<13>(psmp->filename); + StringFixer::SpaceToNullStringFixed<13>(psmp->filename); psmp->nGlobalVol = 64; psmp->nC5Speed = pSmp->c2spd; psmp->uFlags = (WORD)((pSmp->flags & 1) ? CHN_LOOP : 0); Modified: trunk/OpenMPT/soundlib/Load_669.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_669.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_669.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -70,7 +70,7 @@ m_nChannels = 8; memcpy(m_szNames[0], pfh->songmessage, min(MAX_SAMPLENAME - 1, 36)); - SpaceToNullStringFixed<min(MAX_SAMPLENAME - 1, 36)>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<min(MAX_SAMPLENAME - 1, 36)>(m_szNames[0]); m_nSamples = pfh->samples; for (SAMPLEINDEX nSmp = 1; nSmp <= m_nSamples; nSmp++, psmp++) @@ -87,7 +87,7 @@ Samples[nSmp].nLoopEnd = loopend; if (loopend) Samples[nSmp].uFlags |= CHN_LOOP; memcpy(m_szNames[nSmp], psmp->filename, 13); - SpaceToNullStringFixed<13>(m_szNames[nSmp]); + StringFixer::SpaceToNullStringFixed<13>(m_szNames[nSmp]); Samples[nSmp].nVolume = 256; Samples[nSmp].nGlobalVol = 64; Samples[nSmp].nPan = 128; Modified: trunk/OpenMPT/soundlib/Load_ams.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_ams.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_ams.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -117,7 +117,7 @@ if (dwMemPos + tmp + 1 >= dwMemLength) return true; tmp2 = (tmp < 32) ? tmp : 31; if (tmp2) memcpy(m_szNames[0], lpStream + dwMemPos, tmp2); - SpaceToNullStringFixed(m_szNames[0], tmp2); + StringFixer::SpaceToNullStringFixed(m_szNames[0], tmp2); m_szNames[0][tmp2] = 0; dwMemPos += tmp; @@ -128,7 +128,7 @@ tmp = lpStream[dwMemPos++]; tmp2 = (tmp < 32) ? tmp : 31; if (tmp2) memcpy(m_szNames[sNam], lpStream+dwMemPos, tmp2); - SpaceToNullStringFixed(m_szNames[sNam], tmp2); + StringFixer::SpaceToNullStringFixed(m_szNames[sNam], tmp2); dwMemPos += tmp; } @@ -140,7 +140,7 @@ if ((chnnamlen) && (chnnamlen < MAX_CHANNELNAME)) { memcpy(ChnSettings[cNam].szName, lpStream + dwMemPos, chnnamlen); - SpaceToNullStringFixed(ChnSettings[cNam].szName, chnnamlen); + StringFixer::SpaceToNullStringFixed(ChnSettings[cNam].szName, chnnamlen); } dwMemPos += chnnamlen; } @@ -371,7 +371,7 @@ if (pfh->titlelen) { memcpy(m_szNames[0], pfh->szTitle, pfh->titlelen); - SpaceToNullStringFixed(m_szNames[0], pfh->titlelen); + StringFixer::SpaceToNullStringFixed(m_szNames[0], pfh->titlelen); } m_nType = MOD_TYPE_AMS; m_nChannels = 32; @@ -449,7 +449,7 @@ if ((psmp) && (smpnamelen) && (smpnamelen <= 22)) { memcpy(m_szNames[smpmap[ismp]], lpStream+dwMemPos+1, smpnamelen); - SpaceToNullStringFixed(m_szNames[smpmap[ismp]], smpnamelen); + StringFixer::SpaceToNullStringFixed(m_szNames[smpmap[ismp]], smpnamelen); } dwMemPos += smpnamelen + 1; if (psmp) @@ -487,7 +487,7 @@ if ((chnnamlen) && (chnnamlen < MAX_CHANNELNAME)) { memcpy(ChnSettings[i].szName, lpStream+dwMemPos+1, chnnamlen); - SpaceToNullStringFixed(ChnSettings[i].szName, chnnamlen); + StringFixer::SpaceToNullStringFixed(ChnSettings[i].szName, chnnamlen); } dwMemPos += chnnamlen + 1; if (dwMemPos + chnnamlen + 256 >= dwMemLength) return true; @@ -523,7 +523,7 @@ { char s[MAX_PATTERNNAME]; memcpy(s, lpStream+dwMemPos+3, patnamlen); - SpaceToNullStringFixed(s, patnamlen); + StringFixer::SpaceToNullStringFixed(s, patnamlen); SetPatternName(ipat, s); } if(Patterns.Insert(ipat, numrows)) return true; Modified: trunk/OpenMPT/soundlib/Load_far.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_far.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_far.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -88,7 +88,7 @@ m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; memcpy(m_szNames[0], pmh1->songname, 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); // Channel Setting for (UINT nchpan=0; nchpan<16; nchpan++) @@ -246,7 +246,7 @@ dwMemPos += sizeof(FARSAMPLE); m_nSamples = ismp + 1; memcpy(m_szNames[ismp+1], pfs->samplename, 31); - SpaceToNullStringFixed<31>(m_szNames[ismp + 1]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[ismp + 1]); const DWORD length = LittleEndian( pfs->length ); pSmp->nLength = length; pSmp->nLoopStart = LittleEndian(pfs->reppos) ; Modified: trunk/OpenMPT/soundlib/Load_gdm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_gdm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_gdm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -100,9 +100,9 @@ // interesting question: Is TrackID, TrackMajorVer, TrackMinorVer relevant? The only TrackID should be 0 - 2GDM.exe, so the answer would be no. // song name - memset(m_szNames, 0, sizeof(m_szNames)); + MemsetZero(m_szNames); memcpy(m_szNames[0], pHeader->SongTitle, 32); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); // read channel pan map... 0...15 = channel panning, 16 = surround channel, 255 = channel does not exist m_nChannels = 32; @@ -163,9 +163,9 @@ // sample header memcpy(m_szNames[iSmp], pSample->SamName, 32); - SpaceToNullStringFixed<31>(m_szNames[iSmp]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[iSmp]); memcpy(Samples[iSmp].filename, pSample->FileName, 12); - SpaceToNullStringFixed<12>(Samples[iSmp].filename); + StringFixer::SpaceToNullStringFixed<12>(Samples[iSmp].filename); Samples[iSmp].nC5Speed = LittleEndianW(pSample->C4Hertz); Samples[iSmp].nGlobalVol = 256; // not supported in this format @@ -196,7 +196,7 @@ if(pSample->Flags & 0x04) { - Samples[iSmp].nVolume = min(pSample->Volume << 2, 256); // 0...64, 255 = no default volume + Samples[iSmp].nVolume = min(pSample->Volume, 64) * 4; // 0...64, 255 = no default volume } else { @@ -206,7 +206,7 @@ if(pSample->Flags & 0x08) // default panning is used { Samples[iSmp].uFlags |= CHN_PANNING; - Samples[iSmp].nPan = (pSample->Pan > 15) ? 128 : min((pSample->Pan << 4) + 8, 256); // 0...15, 16 = surround (not supported), 255 = no default panning + Samples[iSmp].nPan = (pSample->Pan > 15) ? 128 : min((pSample->Pan * 16) + 8, 256); // 0...15, 16 = surround (not supported), 255 = no default panning } else { Modified: trunk/OpenMPT/soundlib/Load_imf.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_imf.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_imf.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -294,7 +294,7 @@ // song name memset(m_szNames, 0, sizeof(m_szNames)); memcpy(m_szNames[0], hdr.title, 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); if (hdr.flags & 1) m_dwSongFlags |= SONG_LINEARSLIDES; @@ -313,7 +313,7 @@ ChnSettings[nChn].nPan *= 4; memcpy(ChnSettings[nChn].szName, hdr.channels[nChn].name, 12); - SpaceToNullStringFixed<12>(ChnSettings[nChn].szName); + StringFixer::SpaceToNullStringFixed<12>(ChnSettings[nChn].szName); // TODO: reverb/chorus? switch(hdr.channels[nChn].status) @@ -506,7 +506,7 @@ SetDefaultInstrumentValues(pIns); memcpy(pIns->name, imfins.name, 31); - SpaceToNullStringFixed<31>(pIns->name); + StringFixer::SpaceToNullStringFixed<31>(pIns->name); if(imfins.smpnum) { @@ -545,7 +545,7 @@ return false; memcpy(pSample->filename, imfsmp.filename, 12); - SpaceToNullStringFixed<12>(pSample->filename); + StringFixer::SpaceToNullStringFixed<12>(pSample->filename); strcpy(m_szNames[m_nSamples], pSample->filename); blen = pSample->nLength = LittleEndian(imfsmp.length); Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -311,8 +311,8 @@ const ITOLDINSTRUMENT *pis = (const ITOLDINSTRUMENT *)p; memcpy(pIns->name, pis->name, 26); memcpy(pIns->filename, pis->filename, 12); - SpaceToNullStringFixed<26>(pIns->name); - SpaceToNullStringFixed<12>(pIns->filename); + StringFixer::SpaceToNullStringFixed<26>(pIns->name); + StringFixer::SpaceToNullStringFixed<12>(pIns->filename); pIns->nFadeOut = pis->fadeout << 6; pIns->nGlobalVol = 64; for (UINT j = 0; j < 120; j++) @@ -353,8 +353,8 @@ const ITINSTRUMENT *pis = (const ITINSTRUMENT *)p; memcpy(pIns->name, pis->name, 26); memcpy(pIns->filename, pis->filename, 12); - SpaceToNullStringFixed<26>(pIns->name); - SpaceToNullStringFixed<12>(pIns->filename); + StringFixer::SpaceToNullStringFixed<26>(pIns->name); + StringFixer::SpaceToNullStringFixed<12>(pIns->filename); if (pis->mpr<=128) pIns->nMidiProgram = pis->mpr; pIns->nMidiChannel = pis->mch; @@ -604,7 +604,7 @@ if (pifh->flags & 0x1000) m_dwSongFlags |= SONG_EXFILTERRANGE; memcpy(m_szNames[0], pifh->songname, 26); - SpaceToNullStringFixed<26>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<26>(m_szNames[0]); // Global Volume m_nDefaultGlobalVolume = pifh->globalvol << 1; @@ -971,7 +971,7 @@ { MODSAMPLE *pSmp = &Samples[nsmp+1]; memcpy(pSmp->filename, pis->filename, 12); - SpaceToNullStringFixed<12>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<12>(pSmp->filename); pSmp->uFlags = 0; pSmp->nLength = 0; pSmp->nLoopStart = pis->loopbegin; @@ -1030,7 +1030,7 @@ } } memcpy(m_szNames[nsmp + 1], pis->name, 26); - SpaceToNullStringFixed<26>(m_szNames[nsmp + 1]); + StringFixer::SpaceToNullStringFixed<26>(m_szNames[nsmp + 1]); } m_nSamples = max(1, m_nSamples); @@ -2167,7 +2167,7 @@ MODINSTRUMENT *pIns = Instruments[nins]; memcpy(iti.filename, pIns->filename, 12); memcpy(iti.name, pIns->name, 26); - SetNullTerminator(iti.name); + StringFixer::SetNullTerminator(iti.name); iti.mbank = pIns->wMidiBank; iti.mpr = pIns->nMidiProgram; iti.mch = pIns->nMidiChannel; @@ -2433,7 +2433,7 @@ memset(&itss, 0, sizeof(itss)); memcpy(itss.filename, psmp->filename, 12); memcpy(itss.name, m_szNames[nsmp], 26); - SetNullTerminator(itss.name); + StringFixer::SetNullTerminator(itss.name); itss.id = LittleEndian(IT_IMPS); itss.gvl = (BYTE)psmp->nGlobalVol; Modified: trunk/OpenMPT/soundlib/Load_itp.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_itp.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_itp.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -64,7 +64,7 @@ { memcpy(m_szNames[0],lpStream+dwMemPos,len); dwMemPos += len; - SetNullTerminator(m_szNames[0]); + StringFixer::SetNullTerminator(m_szNames[0]); } else return false; @@ -150,7 +150,7 @@ // ChnSettings[i].szName memcpy(&ChnSettings[i].szName[0],lpStream+dwMemPos,len); - SetNullTerminator(ChnSettings[i].szName); + StringFixer::SetNullTerminator(ChnSettings[i].szName); dwMemPos += len; } @@ -200,7 +200,7 @@ for(i=0; i<m_nInstruments; i++){ ASSERT_CAN_READ(len); memcpy(&m_szInstrumentPath[i][0],lpStream+dwMemPos,len); - SetNullTerminator(m_szInstrumentPath[i]); + StringFixer::SetNullTerminator(m_szInstrumentPath[i]); dwMemPos += len; } Modified: trunk/OpenMPT/soundlib/Load_mdl.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mdl.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_mdl.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -276,7 +276,7 @@ #endif pmib = (MDLINFOBLOCK *)(lpStream+dwMemPos); memcpy(m_szNames[0], pmib->songname, 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); norders = pmib->norders; if (norders > MAX_ORDERS) norders = MAX_ORDERS; @@ -374,7 +374,7 @@ MODINSTRUMENT *pIns = Instruments[nins]; memset(pIns, 0, sizeof(MODINSTRUMENT)); memcpy(pIns->name, lpStream+dwPos+2, 32); - SpaceToNullStringFixed<31>(pIns->name); + StringFixer::SpaceToNullStringFixed<31>(pIns->name); pIns->nGlobalVol = 64; pIns->nPPC = 5*12; @@ -465,8 +465,8 @@ MODSAMPLE *pSmp = &Samples[nins]; memcpy(m_szNames[nins], lpStream+dwPos+1, 31); memcpy(pSmp->filename, lpStream+dwPos+33, 8); - SpaceToNullStringFixed<31>(m_szNames[nins]); - SpaceToNullStringFixed<8>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[nins]); + StringFixer::SpaceToNullStringFixed<8>(pSmp->filename); const BYTE *p = lpStream+dwPos+41; if (pmsh->version > 0) { Modified: trunk/OpenMPT/soundlib/Load_med.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_med.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -713,7 +713,7 @@ { if (songnamelen > 31) songnamelen = 31; memcpy(m_szNames[0], lpStream+songname, songnamelen); - SpaceToNullStringFixed(m_szNames[0], songnamelen); + StringFixer::SpaceToNullStringFixed(m_szNames[0], songnamelen); } // Sample Names DWORD smpinfoex = BigEndian(pmex->iinfo); @@ -731,7 +731,7 @@ for (UINT i=0; i<ientries; i++) if (i < m_nSamples) { memcpy(m_szNames[i+1], psznames + i*ientrysz, maxnamelen); - SpaceToNullStringFixed(m_szNames[i + 1], maxnamelen); + StringFixer::SpaceToNullStringFixed(m_szNames[i + 1], maxnamelen); } } } @@ -762,7 +762,7 @@ if ((trknameofs) && (trknameofs < dwMemLength - trknamelen)) { memcpy(ChnSettings[i].szName, (LPCSTR)(lpStream+trknameofs), trknamelen); - SpaceToNullStringFixed(ChnSettings[i].szName, trknamelen); + StringFixer::SpaceToNullStringFixed(ChnSettings[i].szName, trknamelen); } } } Modified: trunk/OpenMPT/soundlib/Load_mod.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_mod.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -300,7 +300,7 @@ UINT loopstart, looplen; memcpy(m_szNames[i], pms->name, 22); - SpaceToNullStringFixed<22>(m_szNames[i]); + StringFixer::SpaceToNullStringFixed<22>(m_szNames[i]); psmp->uFlags = 0; psmp->nLength = BigEndianW(pms->length)*2; dwTotalSampleLen += psmp->nLength; @@ -417,7 +417,7 @@ m_nMinPeriod = 14 << 2; m_nMaxPeriod = 3424 << 2; memcpy(m_szNames[0], lpStream, 20); - SpaceToNullStringFixed<20>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<20>(m_szNames[0]); // Setup channel pan positions and volume SetupMODPanning(); Modified: trunk/OpenMPT/soundlib/Load_mt2.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mt2.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_mt2.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -214,7 +214,7 @@ Order[iOrd] = (PATTERNINDEX)pfh->Orders[iOrd]; } memcpy(m_szNames[0], pfh->szSongName, 32); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); dwMemPos = sizeof(MT2FILEHEADER); nDrumDataLen = *(WORD *)(lpStream + dwMemPos); @@ -407,7 +407,7 @@ { memcpy(Instruments[iIns], &m_defaultInstrument, sizeof(MODINSTRUMENT)); memcpy(pIns->name, pmi->szName, 32); - SpaceToNullStringFixed<31>(pIns->name); + StringFixer::SpaceToNullStringFixed<31>(pIns->name); pIns->nGlobalVol = 64; pIns->nPan = 128; for (BYTE i = 0; i < NOTE_MAX; i++) @@ -520,7 +520,7 @@ if (iSmp < MAX_SAMPLES) { memcpy(m_szNames[iSmp], pms->szName, 31); - SpaceToNullStringFixed<31>(m_szNames[iSmp]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[iSmp]); } if (pms->dwDataLen > 0) { Modified: trunk/OpenMPT/soundlib/Load_mtm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mtm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_mtm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -61,7 +61,7 @@ || (!pmh->numtracks) || (!pmh->numchannels) || (!pmh->lastpattern) || (pmh->lastpattern > MAX_PATTERNS)) return false; memcpy(m_szNames[0], pmh->songname, 20); - SpaceToNullStringFixed<20>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<20>(m_szNames[0]); if (dwMemPos + 37 * pmh->numsamples + 128 + 192 * pmh->numtracks + 64 * (pmh->lastpattern+1) + pmh->commentsize >= dwMemLength) return false; @@ -73,7 +73,7 @@ { MTMSAMPLE *pms = (MTMSAMPLE *)(lpStream + dwMemPos); memcpy(m_szNames[i], pms->samplename, 22); - SpaceToNullStringFixed<22>(m_szNames[i]); + StringFixer::SpaceToNullStringFixed<22>(m_szNames[i]); Samples[i].nVolume = pms->volume << 2; Samples[i].nGlobalVol = 64; UINT len = pms->length; Modified: trunk/OpenMPT/soundlib/Load_okt.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_okt.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_okt.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -74,7 +74,7 @@ MemsetZero(*pSmp); strncpy(pSndFile->m_szNames[nSmp], oktsmp.name, 20); - SpaceToNullStringFixed<20>(pSndFile->m_szNames[nSmp]); + StringFixer::SpaceToNullStringFixed<20>(pSndFile->m_szNames[nSmp]); pSmp->nC5Speed = 8287; pSmp->nGlobalVol = 64; Modified: trunk/OpenMPT/soundlib/Load_psm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_psm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_psm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -186,7 +186,7 @@ { case PSMCHUNKID_TITL: // "TITL" - Song Title memcpy(m_szNames[0], lpStream + dwMemPos, (chunkSize < 31) ? chunkSize : 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); break; case PSMCHUNKID_SDFT: // "SDFT" - Format info (song data starts here) @@ -220,7 +220,7 @@ PSMSUBSONG subsong; subsong.restartPos = (ORDERINDEX)Order.size(); // restart order "offset": current orderlist length memcpy(subsong.songName, &pSong->songType, 9); // subsong name - SpaceToNullStringFixed<9>(subsong.songName); + StringFixer::SpaceToNullStringFixed<9>(subsong.songName); DWORD dwChunkPos = dwMemPos + sizeof(PSMSONGHEADER); @@ -445,9 +445,9 @@ SAMPLEINDEX smp = (SAMPLEINDEX)(LittleEndianW(pSample->sampleNumber) + 1); m_nSamples = max(m_nSamples, smp); memcpy(m_szNames[smp], pSample->sampleName, 31); - SpaceToNullStringFixed<31>(m_szNames[smp]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[smp]); memcpy(Samples[smp].filename, pSample->fileName, 8); - SpaceToNullStringFixed<8>(Samples[smp].filename); + StringFixer::SpaceToNullStringFixed<8>(Samples[smp].filename); Samples[smp].nGlobalVol = 0x40; Samples[smp].nC5Speed = LittleEndianW(pSample->C5Freq); @@ -469,9 +469,9 @@ SAMPLEINDEX smp = (SAMPLEINDEX)(LittleEndianW(pSample->sampleNumber) + 1); m_nSamples = max(m_nSamples, smp); memcpy(m_szNames[smp], pSample->sampleName, 31); - SpaceToNullStringFixed<31>(m_szNames[smp]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[smp]); memcpy(Samples[smp].filename, pSample->fileName, 8); - SpaceToNullStringFixed<8>(Samples[smp].filename); + StringFixer::SpaceToNullStringFixed<8>(Samples[smp].filename); Samples[smp].nGlobalVol = 0x40; Samples[smp].nC5Speed = LittleEndianW(pSample->C5Freq); @@ -895,7 +895,7 @@ memset(m_szNames, 0, sizeof(m_szNames)); memcpy(m_szNames[0], shdr->songName, 31); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); // Read orders dwMemPos = LittleEndian(shdr->orderOffset); @@ -935,9 +935,9 @@ m_nSamples = max(m_nSamples, iSmp); memcpy(m_szNames[iSmp], smphdr->name, 24); - SpaceToNullStringFixed<24>(m_szNames[iSmp]); + StringFixer::SpaceToNullStringFixed<24>(m_szNames[iSmp]); memcpy(Samples[iSmp].filename, smphdr->filename, 13); - SpaceToNullStringFixed<13>(Samples[iSmp].filename); + StringFixer::SpaceToNullStringFixed<13>(Samples[iSmp].filename); Samples[iSmp].nLength = LittleEndian(smphdr->length); Samples[iSmp].nLoopStart = LittleEndian(smphdr->loopStart); Modified: trunk/OpenMPT/soundlib/Load_ptm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_ptm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_ptm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -91,7 +91,7 @@ || (!pfh.npatterns) || (pfh.npatterns > 128) || (SIZEOF_PTMFILEHEADER+pfh.nsamples*SIZEOF_PTMSAMPLE >= (int)dwMemLength)) return false; memcpy(m_szNames[0], pfh.songname, 28); - SpaceToNullStringFixed<28>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[0]); m_nType = MOD_TYPE_PTM; m_nChannels = pfh.nchannels; @@ -112,8 +112,8 @@ lstrcpyn(m_szNames[ismp+1], psmp->samplename, 28); memcpy(pSmp->filename, psmp->filename, 12); - SpaceToNullStringFixed<28>(m_szNames[ismp + 1]); - SpaceToNullStringFixed<12>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[ismp + 1]); + StringFixer::SpaceToNullStringFixed<12>(pSmp->filename); pSmp->nGlobalVol = 64; pSmp->nPan = 128; Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -272,7 +272,7 @@ m_nType = MOD_TYPE_S3M; memset(m_szNames, 0, sizeof(m_szNames)); memcpy(m_szNames[0], psfh.name, 28); - SpaceToNullStringFixed<28>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[0]); // Speed m_nDefaultSpeed = psfh.speed; if (!m_nDefaultSpeed || m_nDefaultSpeed == 255) m_nDefaultSpeed = 6; @@ -362,13 +362,13 @@ memcpy(s, lpStream + nInd, 0x50); memcpy(Samples[iSmp].filename, s+1, 12); - SpaceToNullStringFixed<12>(Samples[iSmp].filename); + StringFixer::SpaceToNullStringFixed<12>(Samples[iSmp].filename); insflags[iSmp - 1] = s[0x1F]; inspack[iSmp - 1] = s[0x1E]; s[0x4C] = 0; lstrcpy(m_szNames[iSmp], (LPCSTR)&s[0x30]); - SpaceToNullStringFixed<28>(m_szNames[iSmp]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[iSmp]); if ((s[0] == S3I_TYPE_PCM) && (s[0x4E] == 'R') && (s[0x4F] == 'S')) { Modified: trunk/OpenMPT/soundlib/Load_stm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_stm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_stm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -70,7 +70,7 @@ || ((_strnicmp(phdr->trackername, "!SCREAM!", 8)) && (_strnicmp(phdr->trackername, "BMOD2STM", 8)))) return false; memcpy(m_szNames[0], phdr->songname, 20); - SpaceToNullStringFixed<20>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<20>(m_szNames[0]); // Read STM header m_nType = MOD_TYPE_STM; m_nSamples = 31; @@ -98,8 +98,8 @@ STMSAMPLE *pStm = &phdr->sample[nIns]; // STM sample data memcpy(pIns->filename, pStm->filename, 13); memcpy(m_szNames[nIns+1], pStm->filename, 12); - SpaceToNullStringFixed<12>(pIns->filename); - SpaceToNullStringFixed<12>(m_szNames[nIns + 1]); + StringFixer::SpaceToNullStringFixed<12>(pIns->filename); + StringFixer::SpaceToNullStringFixed<12>(m_szNames[nIns + 1]); pIns->nC5Speed = LittleEndianW(pStm->c2spd); pIns->nGlobalVol = 64; pIns->nVolume = pStm->volume << 2; Modified: trunk/OpenMPT/soundlib/Load_ult.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_ult.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_ult.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -322,7 +322,7 @@ ASSERT_CAN_READ(32); memcpy(m_szNames[0], lpStream + dwMemPos, 32); - SetNullTerminator(m_szNames[0]); + StringFixer::SetNullTerminator(m_szNames[0]); dwMemPos += 32; m_nType = MOD_TYPE_ULT; @@ -369,9 +369,9 @@ ultSmp.size_end = LittleEndian(ultSmp.size_end); memcpy(m_szNames[nSmp + 1], ultSmp.name, 32); - SetNullTerminator(m_szNames[nSmp + 1]); + StringFixer::SetNullTerminator(m_szNames[nSmp + 1]); memcpy(pSmp->filename, ultSmp.filename, 12); - SpaceToNullStringFixed<12>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<12>(pSmp->filename); if(ultSmp.size_end <= ultSmp.size_start) continue; Modified: trunk/OpenMPT/soundlib/Load_xm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Load_xm.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -252,7 +252,7 @@ // look for null-terminated song name - that's most likely a tune made with modplug for(int i = 0; i < 20; i++) if(lpStream[17 + i] == 0) bProbablyMadeWithModPlug = true; - SpaceToNullStringFixed<20>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<20>(m_szNames[0]); // load and convert header memcpy(&xmheader, lpStream + 58, sizeof(XMFILEHEADER)); @@ -323,7 +323,7 @@ Instruments[iIns]->nPluginVolumeHandling = PLUGIN_VOLUMEHANDLING_IGNORE; memcpy(Instruments[iIns]->name, pih.name, 22); - SpaceToNullStringFixed<22>(Instruments[iIns]->name); + StringFixer::SpaceToNullStringFixed<22>(Instruments[iIns]->name); memset(&xmsh, 0, sizeof(XMSAMPLEHEADER)); @@ -527,7 +527,7 @@ if (!xmss.looplen) xmss.type &= ~3; UINT imapsmp = samplemap[ins]; memcpy(m_szNames[imapsmp], xmss.name, 22); - SpaceToNullStringFixed<22>(m_szNames[imapsmp]); + StringFixer::SpaceToNullStringFixed<22>(m_szNames[imapsmp]); MODSAMPLE *pSmp = &Samples[imapsmp]; pSmp->nLength = (xmss.samplen > MAX_SAMPLE_LENGTH) ? MAX_SAMPLE_LENGTH : xmss.samplen; pSmp->nLoopStart = xmss.loopstart; @@ -556,7 +556,7 @@ pSmp->nVibDepth = xmsh.vibdepth; pSmp->nVibRate = xmsh.vibrate; memcpy(pSmp->filename, xmss.name, 22); - SpaceToNullStringFixed<21>(pSmp->filename); + StringFixer::SpaceToNullStringFixed<21>(pSmp->filename); if ((xmss.type & 3) == 3) // MPT 1.09 and maybe newer / older versions set both flags for bidi loops bProbablyMPT109 = true; Modified: trunk/OpenMPT/soundlib/Loaders.h =================================================================== --- trunk/OpenMPT/soundlib/Loaders.h 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Loaders.h 2011-08-08 12:54:40 UTC (rev 964) @@ -8,6 +8,7 @@ */ #include "Sndfile.h" +#include "StringFixer.h" // Execute "action" if "request_bytes" bytes cannot be read from stream at position "position" #define ASSERT_CAN_READ_PROTOTYPE(position, length, request_bytes, action) \ Modified: trunk/OpenMPT/soundlib/Sampleio.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sampleio.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Sampleio.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -15,6 +15,7 @@ #include "../mptrack/Moddoc.h" #endif //MODPLUG_TRACKER #include "Wav.h" +#include "StringFixer.h" #pragma warning(disable:4244) @@ -1798,7 +1799,7 @@ iti->id = LittleEndian(IT_IMPI); // "IMPI" memcpy(iti->filename, pIns->filename, 12); memcpy(iti->name, pIns->name, 26); - SetNullTerminator(iti->name); + StringFixer::SetNullTerminator(iti->name); iti->mpr = pIns->nMidiProgram; iti->mch = pIns->nMidiChannel; iti->mbank = pIns->wMidiBank; //rewbs.MidiBank Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -16,6 +16,7 @@ #include "sndfile.h" #include "wavConverter.h" #include "tuningcollection.h" +#include "StringFixer.h" #include <vector> #include <list> #include <algorithm> @@ -940,15 +941,15 @@ { for(size_t i = 0; i < CountOf(m_MidiCfg.szMidiGlb); i++) { - FixNullString(m_MidiCfg.szMidiGlb[i]); + StringFixer::FixNullString(m_MidiCfg.szMidiGlb[i]); } for(size_t i = 0; i < CountOf(m_MidiCfg.szMidiSFXExt); i++) { - FixNullString(m_MidiCfg.szMidiSFXExt[i]); + StringFixer::FixNullString(m_MidiCfg.szMidiSFXExt[i]); } for(size_t i = 0; i < CountOf(m_MidiCfg.szMidiZXXExt); i++) { - FixNullString(m_MidiCfg.szMidiZXXExt[i]); + StringFixer::FixNullString(m_MidiCfg.szMidiZXXExt[i]); } } Modified: trunk/OpenMPT/soundlib/load_j2b.cpp =================================================================== --- trunk/OpenMPT/soundlib/load_j2b.cpp 2011-08-08 00:01:23 UTC (rev 963) +++ trunk/OpenMPT/soundlib/load_j2b.cpp 2011-08-08 12:54:40 UTC (rev 964) @@ -490,7 +490,7 @@ ASSERT_CAN_READ_CHUNK(mainchunk->channels); memcpy(m_szNames[0], mainchunk->songname, 32); - SpaceToNullStringFixed<31>(m_szNames[0]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[0]); m_dwSongFlags = SONG_ITOLDEFFECTS | SONG_ITCOMPATGXX; if(!(mainchunk->flags & AMHEAD_LINEAR)) m_dwSongFlags |= SONG_LINEARSLIDES; if(mainchunk->channels < 1) return false; @@ -561,7 +561,7 @@ m_nInstruments = max(m_nInstruments, nIns); memcpy(pIns->name, instheader->name, 28); - SpaceToNullStringFixed<28>(pIns->name); + StringFixer::SpaceToNullStringFixed<28>(pIns->name); for(BYTE i = 0; i < 128; i++) { @@ -602,7 +602,7 @@ if(smpchunk->signature != AMCHUNKID_SAMP) break; // SAMP memcpy(m_szNames[nSmp], smpchunk->name, 28); - SpaceToNullStringFixed<28>(m_szNames[nSmp]); + StringFixer::SpaceToNullStringFixed<28>(m_szNames[nSmp]); Samples[nSmp].nPan = smpchunk->pan << 2; Samples[nSmp].nVolume = smpchunk->volume << 2; @@ -672,7 +672,7 @@ m_nInstruments = max(m_nInstruments, nIns); memcpy(pIns->name, instheader->name, 32); - SpaceToNullStringFixed<31>(pIns->name); + StringFixer::SpaceToNullStringFixed<31>(pIns->name); for(BYTE i = 0; i < 128; i++) { @@ -726,7 +726,7 @@ MemsetZero(Samples[nSmp]); memcpy(m_szNames[nSmp], smpchunk->name, 32); - SpaceToNullStringFixed<31>(m_szNames[nSmp]); + StringFixer::SpaceToNullStringFixed<31>(m_szNames[nSmp]); if(LittleEndianW(smpchunk->pan) > 0x7FFF || LittleEndianW(smpchunk->volume) > 0x7FFF) break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |