From: <re...@us...> - 2007-05-07 11:44:18
|
Revision: 180 http://svn.sourceforge.net/modplug/?rev=180&view=rev Author: rewbs Date: 2007-05-07 04:41:47 -0700 (Mon, 07 May 2007) Log Message: ----------- + <rewbs> Check for updates on startup. / <rewbs> Delete CPU specific binaries. / <rewbs> Update package template / <rewbs> Misc internal renames Modified Paths: -------------- trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp trunk/OpenMPT/mptrack/SoundFilePlayConfig.h trunk/OpenMPT/mptrack/Vstplug.cpp trunk/OpenMPT/mptrack/Vstplug.h trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/mptrack.vcproj trunk/OpenMPT/mptrack/resource.h trunk/OpenMPT/packageTemplate/History.txt trunk/OpenMPT/packageTemplate/extraKeymaps/UK_mpt_it2_hybrid_(rewbs).mkb trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Load_xm.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/Sndmix.cpp Added Paths: ----------- trunk/OpenMPT/mptrack/bin/mptrack.exe trunk/OpenMPT/packageTemplate/Installation.txt trunk/OpenMPT/packageTemplate/tunings/ trunk/OpenMPT/packageTemplate/tunings/standard/ trunk/OpenMPT/packageTemplate/tunings/standard/std_tunings.tc Removed Paths: ------------- trunk/OpenMPT/mptrack/bin/mptrack_Generic.exe trunk/OpenMPT/mptrack/bin/mptrack_P3.exe trunk/OpenMPT/mptrack/bin/mptrack_P4-Athlon64.exe trunk/OpenMPT/mptrack/bin/mptrack_athlon32.exe trunk/OpenMPT/mptrack/bin/testSvnCommitList3 Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -86,6 +86,7 @@ ON_COMMAND(ID_MIDI_RECORD, OnMidiRecord) ON_COMMAND(ID_PLAYER_PAUSE, OnPlayerPause) ON_COMMAND_EX(IDD_TREEVIEW, OnBarCheck) + ON_COMMAND_EX(ID_NETLINK_OPENMPTWIKI, OnInternetLink) ON_COMMAND_EX(ID_NETLINK_MODPLUG, OnInternetLink) ON_COMMAND_EX(ID_NETLINK_UT, OnInternetLink) ON_COMMAND_EX(ID_NETLINK_OSMUSIC, OnInternetLink) @@ -140,6 +141,8 @@ LONG CMainFrame::glTreeSplitRatio = 128; HHOOK CMainFrame::ghKbdHook = NULL; CString CMainFrame::gcsPreviousVersion = ""; +CString CMainFrame::gcsInstallGUID = ""; +int CMainFrame::gnCheckForUpdates = 1; DWORD CMainFrame::gnHotKeyMask = 0; // Audio Setup //rewbs.resamplerConf @@ -361,7 +364,9 @@ CString iniFile = theApp.GetConfigFileName(); CHAR collectedString[INIBUFFERSIZE]; - gcsPreviousVersion = GetPrivateProfileCString("Version", "Version", "", theApp.GetConfigFileName()); + gcsPreviousVersion = GetPrivateProfileCString("Version", "Version", "", iniFile); + gcsInstallGUID = GetPrivateProfileCString("Version", "InstallGUID", "", iniFile); + gnCheckForUpdates = GetPrivateProfileInt("Version", "CheckForUpdates", 1, iniFile); gbMdiMaximize = GetPrivateProfileLong("Display", "MDIMaximize", true, iniFile); glTreeWindowWidth = GetPrivateProfileLong("Display", "MDITreeWidth", 160, iniFile); glTreeSplitRatio = GetPrivateProfileLong("Display", "MDITreeRatio", 128, iniFile); @@ -375,7 +380,7 @@ gnPlugWindowY = GetPrivateProfileInt("Display", "PlugSelectWindowY", 273, iniFile); gnPlugWindowWidth = GetPrivateProfileInt("Display", "PlugSelectWindowWidth", 370, iniFile); gnPlugWindowHeight = GetPrivateProfileInt("Display", "PlugSelectWindowHeight", 332, iniFile); - gnPlugWindowLast = GetPrivateProfileInt("Display", "PlugSelectWindowLast", 0, iniFile); + gnPlugWindowLast = GetPrivateProfileDWord("Display", "PlugSelectWindowLast", 0, iniFile); CHAR s[16]; for (int ncol=0; ncol<MAX_MODCOLORS; ncol++) { @@ -848,6 +853,8 @@ CString version = CMainFrame::GetFullVersionString(); WritePrivateProfileString("Version", "Version", version, iniFile); + WritePrivateProfileString("Version", "InstallGUID", gcsInstallGUID, iniFile); + WritePrivateProfileLong("Version", "CheckForUpdates", gnCheckForUpdates, iniFile); WINDOWPLACEMENT wpl; wpl.length = sizeof(WINDOWPLACEMENT); @@ -2686,6 +2693,7 @@ switch(nID) { // case ID_NETLINK_MODPLUG: pszURL = "http://www.modplug.com"; break; + case ID_NETLINK_OPENMPTWIKI:pszURL = "http://openmpt.xwiki.com/"; break; case ID_NETLINK_UT: pszURL = "http://www.united-trackers.org"; break; case ID_NETLINK_OSMUSIC: pszURL = "http://www.osmusic.net/"; break; // case ID_NETLINK_HANDBOOK: pszURL = "http://www.modplug.com/mods/handbook/handbook.htm"; break; Modified: trunk/OpenMPT/mptrack/Mainfrm.h =================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/Mainfrm.h 2007-05-07 11:41:47 UTC (rev 180) @@ -366,6 +366,8 @@ static HHOOK ghKbdHook; static DWORD gdwNotificationType; static CString gcsPreviousVersion; + static CString gcsInstallGUID; + static int gnCheckForUpdates; // Audio Setup static DWORD m_dwSoundSetup, m_dwRate, m_dwQuality, m_nSrcMode, m_nBitsPerSample, m_nPreAmp, gbLoopSong, m_nChannels; Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -552,6 +552,7 @@ m_hBladeEnc = NULL; m_hLameEnc = NULL; m_hACMInst = NULL; + m_pRequestContext = NULL; m_hAlternateResourceHandle = NULL; m_szConfigFileName[0] = 0; for (UINT i=0; i<MAX_DLS_BANKS; i++) gpDLSBanks[i] = NULL; @@ -785,7 +786,11 @@ m_dwTimeStarted = timeGetTime(); m_bInitialized = TRUE; - // Check previous version number + if (CMainFrame::gnCheckForUpdates) { + UpdateCheck(); + } + + // Open settings if this is the previous execution was with an earlier version. if (!cmdInfo.m_bNoSettingsOnNewVersion && CMainFrame::gcsPreviousVersion < CMainFrame::GetFullVersionString()) { StopSplashScreen(); m_pMainWnd->PostMessage(WM_COMMAND, ID_VIEW_OPTIONS); @@ -795,6 +800,185 @@ return TRUE; } +void __stdcall CTrackApp::InternetRequestCallback( HINTERNET hInternet, DWORD_PTR userData, DWORD dwInternetStatus, + LPVOID lpvStatusInformation, DWORD dwStatusInformationLength) +//----------------------------------------------------------------------------------------------------- +{ + + REQUEST_CONTEXT *pRequestContext = (REQUEST_CONTEXT*)userData; + if (pRequestContext->hRequest == NULL) { + return; + } + + DWORD versionBytesToRead = 10; + + switch (dwInternetStatus) { + case WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE: + if (!WinHttpReceiveResponse(pRequestContext->hRequest, NULL)) { + CleanupInternetRequest(pRequestContext); + return; + } + break; + case WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE: + { + DWORD dwDownloaded = 0; + if (!WinHttpQueryDataAvailable(pRequestContext->hRequest, &dwDownloaded)) { + Log("Error %u in WinHttpQueryDataAvailable.\n",GetLastError()); + CleanupInternetRequest(pRequestContext); + return; + } + if (dwDownloaded<versionBytesToRead) { + Log("Downloaded %d bytes, expected at least %d\n", dwDownloaded, versionBytesToRead); + CleanupInternetRequest(pRequestContext); + return; + } + break; + } + case WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE: + { + DWORD dwRead = 0; + pRequestContext->lpBuffer = new char[versionBytesToRead+1]; + ZeroMemory(pRequestContext->lpBuffer, versionBytesToRead+1); + + if (!WinHttpReadData(pRequestContext->hRequest, (LPVOID)pRequestContext->lpBuffer, versionBytesToRead, &dwRead)) { + Log("Error %u in WinHttpReadData.\n", GetLastError()); + CleanupInternetRequest(pRequestContext); + return; + } + if (dwRead<versionBytesToRead) { + Log("Read %d bytes, expected at least %d\n", dwRead, versionBytesToRead); + CleanupInternetRequest(pRequestContext); + return; + } + break; + } + case WINHTTP_CALLBACK_STATUS_READ_COMPLETE: + { + CString remoteVersion = pRequestContext->lpBuffer; + CString localVersion = CMainFrame::GetFullVersionString(); + if (remoteVersion > localVersion) { + CString message; + message.Format("New version available: %s. Would you like more information?", remoteVersion); + if (AfxMessageBox(message, MB_ICONQUESTION|MB_YESNO ) == IDYES) { + CString URL; + URL.Format("http://openmpt.xwiki.com/xwiki/bin/view/Development/Builds?currentVersion=%s", localVersion); + CTrackApp::OpenURL(URL); + } + } + CleanupInternetRequest(pRequestContext); + break; + } + default: + Log("Unhandled callback - status %d given", dwInternetStatus); + break; + } + +} + +void CTrackApp::CleanupInternetRequest(REQUEST_CONTEXT *pRequestContext) +//------------------------------------------------------------------------- +{ + if (pRequestContext != NULL) { + if (pRequestContext->lpBuffer != NULL) { + delete[] pRequestContext->lpBuffer; + pRequestContext->lpBuffer = NULL; + } + + if (pRequestContext->postData != NULL) { + delete[] pRequestContext->postData; + pRequestContext->postData = NULL; + } + + if (pRequestContext->hRequest != NULL) { + WinHttpSetStatusCallback(pRequestContext->hRequest, NULL, NULL, NULL); + WinHttpCloseHandle(pRequestContext->hRequest); + pRequestContext->hRequest = NULL; + } + + if (pRequestContext->hConnection != NULL) { + WinHttpCloseHandle(pRequestContext->hConnection); + pRequestContext->hConnection = NULL; + } + + if (pRequestContext->hSession != NULL) { + WinHttpCloseHandle(pRequestContext->hSession); + pRequestContext->hSession = NULL; + } + } +} + +void CTrackApp::UpdateCheck() +//--------------------------- +{ + m_pRequestContext = new REQUEST_CONTEXT(); + m_pRequestContext->hSession = NULL; + m_pRequestContext->hConnection = NULL; + m_pRequestContext->hRequest = NULL; + m_pRequestContext->lpBuffer = NULL; + m_pRequestContext->postData = NULL; + + // Prepare post data + if (CMainFrame::gcsInstallGUID == "") { + //No GUID found in INI file - generate one. + GUID guid; + CoCreateGuid(&guid); + BYTE* Str; + UuidToString((UUID*)&guid, &Str); + CMainFrame::gcsInstallGUID.Format("%s", (LPTSTR)Str); + RpcStringFree(&Str); + } + + CString csPostData; + csPostData.Format("install_id=%s&install_version=%s", CMainFrame::gcsInstallGUID, CMainFrame::GetFullVersionString()); + int length = csPostData.GetLength(); + m_pRequestContext->postData = new char[length+1]; + strcpy(m_pRequestContext->postData, csPostData); + + m_pRequestContext->hSession = WinHttpOpen( L"OpenMPT/1.17", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, + WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, WINHTTP_FLAG_ASYNC); + if (m_pRequestContext->hSession==NULL) { + CleanupInternetRequest(m_pRequestContext); + return; + } + + m_pRequestContext->hConnection = WinHttpConnect(m_pRequestContext->hSession, L"www.soal.org", INTERNET_DEFAULT_HTTP_PORT, 0); + if (m_pRequestContext->hConnection==NULL) { + CleanupInternetRequest(m_pRequestContext); + return; + } + + m_pRequestContext->hRequest = WinHttpOpenRequest(m_pRequestContext->hConnection, L"POST", L"openmpt/OpenMPTversionCheck.php5", + NULL, NULL, NULL, 0); + if (m_pRequestContext->hRequest==NULL) { + CleanupInternetRequest(m_pRequestContext); + return; + } + + if (!WinHttpAddRequestHeaders(m_pRequestContext->hRequest, L"Content-Type:application/x-www-form-urlencoded\r\n\r\n", + -1L, WINHTTP_ADDREQ_FLAG_ADD)) { + CleanupInternetRequest(m_pRequestContext); + return; + } + + WINHTTP_STATUS_CALLBACK pCallback = WinHttpSetStatusCallback(m_pRequestContext->hRequest, + static_cast<WINHTTP_STATUS_CALLBACK>(InternetRequestCallback), + WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS, + NULL); + if (pCallback == WINHTTP_INVALID_STATUS_CALLBACK) { + Log("Error %d in WinHttpSetStatusCallback.\n", WINHTTP_INVALID_STATUS_CALLBACK); + CleanupInternetRequest(m_pRequestContext); + return; + } + + if (!WinHttpSendRequest(m_pRequestContext->hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, m_pRequestContext->postData, length, length, (DWORD_PTR)m_pRequestContext)) { + CleanupInternetRequest(m_pRequestContext); + return; + } +} + + + + int CTrackApp::ExitInstance() //--------------------------- { @@ -846,6 +1030,10 @@ // Uninitialize ACM UninitializeACM(); + // Cleanup the internet request, in case it is still active. + CleanupInternetRequest(m_pRequestContext); + delete m_pRequestContext; + return CWinApp::ExitInstance(); } Modified: trunk/OpenMPT/mptrack/Mptrack.h =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/Mptrack.h 2007-05-07 11:41:47 UTC (rev 180) @@ -14,6 +14,8 @@ #include "resource.h" // main symbols #include "sndfile.h" +#include <windows.h> +#include <winhttp.h> class CModDoc; class CVstPluginManager; @@ -94,6 +96,17 @@ ///////////////////////////////////////////////////////////////////////////// +// Internet connection context + +typedef struct REQUEST_CONTEXT { + HINTERNET hSession; + HINTERNET hConnection; + HINTERNET hRequest; + LPSTR lpBuffer; // Buffer for storing read data + LPSTR postData; +} REQUEST_CONTEXT; + +///////////////////////////////////////////////////////////////////////////// // CTrackApp: // See mptrack.cpp for the implementation of this class // @@ -107,10 +120,7 @@ protected: static UINT m_nDefaultDocType; static LPMIDILIBSTRUCT glpMidiLibrary; -// -> CODE#0023 -// -> DESC="IT project files (.itp)" static BOOL m_nProject; -// -! NEW_FEATURE#0023 public: static MEMORYSTATUS gMemStatus; @@ -127,6 +137,8 @@ CHAR m_szConfigFileName[_MAX_PATH]; CHAR m_szPluginCacheFileName[_MAX_PATH]; CHAR m_szStringsFileName[_MAX_PATH]; + // Internet request context + REQUEST_CONTEXT *m_pRequestContext; public: CTrackApp(); @@ -168,6 +180,10 @@ protected: VOID StartSplashScreen(); VOID StopSplashScreen(); + VOID UpdateCheck(); + static void __stdcall InternetRequestCallback( HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, + LPVOID lpvStatusInformation, DWORD dwStatusInformationLength); + static void CleanupInternetRequest(REQUEST_CONTEXT *pRequestContext); // Localized strings public: Modified: trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp =================================================================== --- trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/SoundFilePlayConfig.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -3,7 +3,7 @@ CSoundFilePlayConfig::CSoundFilePlayConfig(void) { - SetPluginMixLevels(plugmix_mode_117RC3); + SetPluginMixLevels(mixLevels_117RC3); setVSTiVolume(1.0f); } @@ -15,13 +15,13 @@ switch (mixLevelType) { // Olivier's version gives us floats in [-0.5; 0.5] and slightly saturates VSTis. - case plugmix_mode_original: + case mixLevels_original: setVSTiAttenuation(NO_ATTENUATION); setIntToFloat(1.0f/static_cast<float>(1<<28)); setFloatToInt(static_cast<float>(1<<28)); setGlobalVolumeAppliesToMaster(false); setUseGlobalPreAmp(true); - setTreatPanLikeBalance(false); + setForceSoftPanning(false); setDisplayDBValues(false); setNormalSamplePreAmp(128.0); setNormalVSTiVol(100.0); @@ -30,13 +30,13 @@ // Ericus' version gives us floats in [-0.06;0.06] and requires attenuation to // avoid massive VSTi saturation. - case plugmix_mode_117RC1: + case mixLevels_117RC1: setVSTiAttenuation(32.0f); setIntToFloat(1.0f/static_cast<float>(0x07FFFFFFF)); setFloatToInt(static_cast<float>(0x07FFFFFFF)); setGlobalVolumeAppliesToMaster(false); setUseGlobalPreAmp(true); - setTreatPanLikeBalance(false); + setForceSoftPanning(false); setDisplayDBValues(false); setNormalSamplePreAmp(128.0); setNormalVSTiVol(100.0); @@ -46,13 +46,13 @@ // 117RC2 gives us floats in [-1.0; 1.0] and hopefully plays VSTis at // the right volume... but we attenuate by 2x to approx. match sample volume. - case plugmix_mode_117RC2: + case mixLevels_117RC2: setVSTiAttenuation(2.0f); setIntToFloat(1.0f/static_cast<float>(MIXING_CLIPMAX)); setFloatToInt(static_cast<float>(MIXING_CLIPMAX)); setGlobalVolumeAppliesToMaster(true); setUseGlobalPreAmp(true); - setTreatPanLikeBalance(false); + setForceSoftPanning(false); setDisplayDBValues(false); setNormalSamplePreAmp(128.0); setNormalVSTiVol(100.0); @@ -63,13 +63,13 @@ // treats panning as balance to avoid saturation on loud sample (and because I think it's better :), // and allows display of attenuation in decibels. default: - case plugmix_mode_117RC3: + case mixLevels_117RC3: setVSTiAttenuation(1.0f); setIntToFloat(1.0f/static_cast<float>(MIXING_CLIPMAX)); setFloatToInt(static_cast<float>(MIXING_CLIPMAX)); setGlobalVolumeAppliesToMaster(true); setUseGlobalPreAmp(false); - setTreatPanLikeBalance(true); + setForceSoftPanning(true); setDisplayDBValues(true); setNormalSamplePreAmp(128.0); setNormalVSTiVol(128.0); @@ -78,13 +78,13 @@ // FOR TEST PURPOSES ONLY: /* - case plugmix_mode_Test: + case mixLevels_Test: setVSTiAttenuation(1.0f); setIntToFloat(1.0f/static_cast<float>(MIXING_CLIPMAX)); setFloatToInt(static_cast<float>(MIXING_CLIPMAX)); setGlobalVolumeAppliesToMaster(true); setUseGlobalPreAmp(false); - setTreatPanLikeBalance(true); + setForceSoftPanning(true); setDisplayDBValues(true); setNormalSamplePreAmp(128.0); setNormalVSTiVol(128.0); @@ -158,12 +158,12 @@ } -bool CSoundFilePlayConfig::getTreatPanLikeBalance() { - return m_treatPanLikeBalance; +bool CSoundFilePlayConfig::getForceSoftPanning() { + return m_forceSoftPanning; } -void CSoundFilePlayConfig::setTreatPanLikeBalance(bool inTreatPanLikeBalance) { - m_treatPanLikeBalance=inTreatPanLikeBalance; +void CSoundFilePlayConfig::setForceSoftPanning(bool inForceSoftPanning) { + m_forceSoftPanning=inForceSoftPanning; } void CSoundFilePlayConfig::setDisplayDBValues(bool in) { Modified: trunk/OpenMPT/mptrack/SoundFilePlayConfig.h =================================================================== --- trunk/OpenMPT/mptrack/SoundFilePlayConfig.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/SoundFilePlayConfig.h 2007-05-07 11:41:47 UTC (rev 180) @@ -13,11 +13,11 @@ }; enum { - plugmix_mode_original = 0, - plugmix_mode_117RC1 = 1, - plugmix_mode_117RC2 = 2, - plugmix_mode_117RC3 = 3, - plugmix_mode_Test = 4, + mixLevels_original = 0, + mixLevels_117RC1 = 1, + mixLevels_117RC2 = 2, + mixLevels_117RC3 = 3, + mixLevels_Test = 4, }; // Class used to store settings for a song file. @@ -49,8 +49,8 @@ void setUseGlobalPreAmp(bool); bool getUseGlobalPreAmp(); - void setTreatPanLikeBalance(bool); - bool getTreatPanLikeBalance(); + void setForceSoftPanning(bool); + bool getForceSoftPanning(); void setDisplayDBValues(bool); bool getDisplayDBValues(); @@ -80,7 +80,7 @@ bool m_globalVolumeAppliesToMaster; bool m_ignorePreAmp; - bool m_treatPanLikeBalance; + bool m_forceSoftPanning; bool m_displayDBValues; DWORD m_LastSavedWithVersion; Modified: trunk/OpenMPT/mptrack/Vstplug.cpp =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/Vstplug.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -1185,7 +1185,20 @@ } } +VOID CSelectPluginDlg::OnCancel() +//--------------------------- +{ + //remember window size: + RECT rect; + GetWindowRect(&rect); + CMainFrame::GetMainFrame()->gnPlugWindowX = rect.left; + CMainFrame::GetMainFrame()->gnPlugWindowY = rect.top; + CMainFrame::GetMainFrame()->gnPlugWindowWidth = rect.right - rect.left; + CMainFrame::GetMainFrame()->gnPlugWindowHeight = rect.bottom - rect.top; + CDialog::OnCancel(); +} + VOID CSelectPluginDlg::UpdatePluginsList(DWORD forceSelect/*=0*/) //--------------------------------------------------------------- { Modified: trunk/OpenMPT/mptrack/Vstplug.h =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/Vstplug.h 2007-05-07 11:41:47 UTC (rev 180) @@ -241,6 +241,7 @@ virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL OnInitDialog(); virtual VOID OnOK(); + virtual VOID OnCancel(); afx_msg void OnAddPlugin(); afx_msg void OnRemovePlugin(); afx_msg void OnSelChanged(NMHDR *pNotifyStruct, LRESULT * result); Added: trunk/OpenMPT/mptrack/bin/mptrack.exe =================================================================== (Binary files differ) Property changes on: trunk/OpenMPT/mptrack/bin/mptrack.exe ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Deleted: trunk/OpenMPT/mptrack/bin/mptrack_Generic.exe =================================================================== (Binary files differ) Deleted: trunk/OpenMPT/mptrack/bin/mptrack_P3.exe =================================================================== (Binary files differ) Deleted: trunk/OpenMPT/mptrack/bin/mptrack_P4-Athlon64.exe =================================================================== (Binary files differ) Deleted: trunk/OpenMPT/mptrack/bin/mptrack_athlon32.exe =================================================================== (Binary files differ) Deleted: trunk/OpenMPT/mptrack/bin/testSvnCommitList3 =================================================================== Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -185,18 +185,18 @@ default: m_TempoModeBox.SetCurSel(0); break; } - m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC3"), plugmix_mode_117RC3); - m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC2"), plugmix_mode_117RC2); - m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC1"), plugmix_mode_117RC1); - m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("Original"), plugmix_mode_original); - m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("Test"), plugmix_mode_Test); - switch(m_pSndFile->m_nPlugMixMode) + m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC3"), mixLevels_117RC3); + m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC2"), mixLevels_117RC2); + m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("OpenMPT 1.17RC1"), mixLevels_117RC1); + m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("Original"), mixLevels_original); + //m_PlugMixBox.SetItemData(m_PlugMixBox.AddString("Test"), mixLevels_Test); + switch(m_pSndFile->m_nMixLevels) { - //case plugmix_mode_Test: m_PlugMixBox.SetCurSel(3); break; - case plugmix_mode_original: m_PlugMixBox.SetCurSel(3); break; - case plugmix_mode_117RC1: m_PlugMixBox.SetCurSel(2); break; - case plugmix_mode_117RC2: m_PlugMixBox.SetCurSel(1); break; - case plugmix_mode_117RC3: + //case mixLevels_Test: m_PlugMixBox.SetCurSel(4); break; + case mixLevels_original: m_PlugMixBox.SetCurSel(3); break; + case mixLevels_117RC1: m_PlugMixBox.SetCurSel(2); break; + case mixLevels_117RC2: m_PlugMixBox.SetCurSel(1); break; + case mixLevels_117RC3: default: m_PlugMixBox.SetCurSel(0); break; } @@ -383,8 +383,8 @@ sel = m_PlugMixBox.GetCurSel(); if (sel >= 0) { - m_pSndFile->m_nPlugMixMode = m_PlugMixBox.GetItemData(sel); - m_pSndFile->m_pConfig->SetPluginMixLevels(m_pSndFile->m_nPlugMixMode); + m_pSndFile->m_nMixLevels = m_PlugMixBox.GetItemData(sel); + m_pSndFile->m_pConfig->SetPluginMixLevels(m_pSndFile->m_nMixLevels); m_pSndFile->RecalculateGainForAllPlugs(); } Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/mptrack.rc 2007-05-07 11:41:47 UTC (rev 180) @@ -189,6 +189,7 @@ MENUITEM SEPARATOR POPUP "&Internet" BEGIN + MENUITEM "OpenMPT Wiki", ID_NETLINK_OPENMPTWIKI MENUITEM "Modplug Central &Forums", ID_NETLINK_FORUMS MENUITEM "MPT-FR", ID_NETLINK_MPTFR MENUITEM "&Kvr Audio (plugins)", ID_NETLINK_PLUGINS @@ -943,7 +944,7 @@ COMBOBOX IDC_COMBO4,156,135,81,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Playback",IDC_STATIC,4,99,240,62 - LTEXT "Plugin levels:",IDC_STATIC,111,138,43,10 + LTEXT "Mix Levels:",IDC_STATIC,111,138,43,10 GROUPBOX "OpenMPT Version Info",IDC_STATIC,4,165,235,44 EDITTEXT IDC_EDIT1,67,175,166,13,ES_AUTOHSCROLL | ES_READONLY, WS_EX_STATICEDGE @@ -1399,7 +1400,7 @@ CAPTION "Sound Card" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "",IDC_STATIC,4,3,232,150 + GROUPBOX "",IDC_STATIC,4,3,232,167 LTEXT "Sound Device:",IDC_STATIC,9,12,79,8 CONTROL "",IDC_COMBO1,"ComboBoxEx32",CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,10,23,219,96 @@ -1429,8 +1430,10 @@ WS_TABSTOP CONTROL "Reverse Stereo",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,131,78,62,10 - CONTROL "Headphones",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | + CONTROL "Soft Panning",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,131,90,64,10 + LTEXT "Note: The Pre-Amp and Soft Panning settings are ignored by songs with mix levels set to 1.17RC3 or later in Song Properties.", + IDC_STATIC,16,150,204,18 END IDD_MIDIMACRO DIALOGEX 0, 0, 349, 345 @@ -2076,7 +2079,7 @@ IDD_OPTIONS_SOUNDCARD, DIALOG BEGIN RIGHTMARGIN, 240 - BOTTOMMARGIN, 156 + BOTTOMMARGIN, 177 END IDD_MIDIMACRO, DIALOG Modified: trunk/OpenMPT/mptrack/mptrack.vcproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack.vcproj 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/mptrack.vcproj 2007-05-07 11:41:47 UTC (rev 180) @@ -45,13 +45,14 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib winhttp.lib" OutputFile=".\Debug/mptrack.exe" Version="5.0" LinkIncremental="2" SuppressStartupBanner="TRUE" AdditionalLibraryDirectories="..\xsoundlib\Debug" GenerateDebugInformation="TRUE" + AssemblyDebug="1" ProgramDatabaseFile=".\Debug/mptrack.pdb" GenerateMapFile="TRUE" MapFileName=".\Debug/mptrack.map" @@ -116,8 +117,8 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib" - OutputFile=".\Bin/mptrack_Generic.exe" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib winhttp.lib" + OutputFile=".\Bin/mptrack.exe" Version="5.0" LinkIncremental="1" SuppressStartupBanner="TRUE" @@ -188,7 +189,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib winhttp.lib" OutputFile=".\Bin/mptrack_P3.exe" Version="5.0" LinkIncremental="1" @@ -260,7 +261,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib winhttp.lib" OutputFile=".\Bin/mptrack_athlon32.exe" Version="5.0" LinkIncremental="1" @@ -332,7 +333,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib xsoundlib.lib version.lib opengl32.lib glu32.lib Rpcrt4.lib winhttp.lib" OutputFile=".\Bin/mptrack_P4-Athlon64.exe" Version="5.0" LinkIncremental="1" Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/mptrack/resource.h 2007-05-07 11:41:47 UTC (rev 180) @@ -544,7 +544,7 @@ #define IDC_EDIT_SPEED 2008 #define IDC_EDIT_GLOBALVOL 2009 #define IDC_EDIT_RESTARTPOS 2010 -#define IDC_SLIDER_SAMPLEPREAMP 2011 +#define IDC_SLIDER_SAMPLEPREAMP 2011 #define IDC_BUTTON_MODTYPE 2012 #define IDC_EDIT_SAMPLEPA 2013 #define IDC_EDIT_MODTYPE 2014 @@ -969,7 +969,7 @@ #define ID_MOVETUNING 36025 #define ID_COPYTUNING 36026 #define ID_REMOVETUNINGCOLLECTION 36027 -#define ID_SHOWTIMEATROW 36028 +#define ID_SHOWTIMEATROW 36028 #define ID_SELECTINST 36100 #define ID_NETLINK_MPTFR 37001 #define ID_PLUG_RECORDAUTOMATION 37003 @@ -1006,6 +1006,7 @@ #define ID_ENVELOPE_TOGGLERELEASENODE 59206 #define ID_Menu59207 59207 #define ID_ENVELOPE_SCALEPOINTS 59208 +#define ID_NETLINK_OPENMPTWIKI 59210 // Next default values for new objects // @@ -1013,7 +1014,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 515 -#define _APS_NEXT_COMMAND_VALUE 59209 +#define _APS_NEXT_COMMAND_VALUE 59211 #define _APS_NEXT_CONTROL_VALUE 2304 #define _APS_NEXT_SYMED_VALUE 901 #endif Modified: trunk/OpenMPT/packageTemplate/History.txt =================================================================== --- trunk/OpenMPT/packageTemplate/History.txt 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/packageTemplate/History.txt 2007-05-07 11:41:47 UTC (rev 180) @@ -8,6 +8,57 @@ ?: other (tx XYZ): thanks to XYZ for telling me about the bug +v1.17.02.46 + + <Relabsoluness> Experimental MPTm format: + --> Internally, it is still very close to the IT-based format. + --> Order&pattern limit increased to 65000; whole range not tested :) (Note that modeffects such as position jump doesn't cover the whole range unless the #-extension can be used(haven't tested)) + + <Relabsoluness> User definable tuning modes for instruments: + --> Only available for MPTm + --> Ratio value as well as note name for every key can be assigned invidually; gives rather free hands for experiments. + --> Every instrument can have it's own tuning + --> Tunings can be saved to file and loaded from file. + --> IMPORTANT: When using tunings, behavior of various modcommands such as portamento have been changed, and new behaviors are still to be decided. + + <Relabsoluness> In song properties, option to increase playback compatibility with original Impulse Tracker behavior. Is in no way complete; currently affects only a couple of differences. Many differences are still there. + + <Relabsoluness> Ability to load multiple mods/samples/instruments from corresponding load dialogs. + --> Known issue: Intermittent failures. + + <Relabsoluness> 32-bit float wav import + . <Relabsoluness> 24/32-bit PCM wav sample import fixed + + <Relabsoluness> Playback control additions: 'Solo on transition' & 'Mute on transition'. Available from pattern view context menu(right click). + + <Relabsoluness> Envelope points can be scaled by a factor through context menu on envelopeview(right click) + + <Relabsoluness> Calculator of playback time (measured from start) at the beginning of any row of any pattern (uses existing modlength calculator). + --> Known limitation: When the row is within pattern loop, doesn't give all possible times. + + <rewbs> SCx now sends note-off to VSTis at tick x. + + <rewbs> New mixmode (called 1.17RC3): bypass global preamp, force soft panning, provide explicit dB value for sample attenuation. WARNING: this mixmode is subject to change. + + <rewbs> Check for updates on startup. To disable, set CheckForUpdates=0 in mptrack.ini. + . <rewbs> Plugin list window remembers its position/size even on cancel. + . <Relabsoluness> When opening instruments, load dialog didn't remember its previous path. + . <Relabsoluness> In general tab, it was possible to give longer modname than the fileformat could save. + . <Relabsoluness> Instruments associates with VSTis no longer also need to be associated to a sample in order to play. + . <Relabsoluness> Trash characters to empty ITP comments should no longer appear. + . <Relabsoluness> Channel state should now be updated correctly when e.g. moving channels through channel manager. + . <Relabsoluness> It should no longer be possible to remove all channels from channel manager. + / <Relabsoluness> Channel states resetting when jumping between orders from orderlist. + --> NOTE: While this fixes a bug (behavior change) introduced in the tuning branch(?), it also changes quite prominent behavior so can annoy people - might need to be modified at some point. + / <Relabsoluness> Added version number to the mainframe title. + / <Relabsoluness> Changed the 'order message' at the bottom bar of the screen "Position x of y" to "Position x of y (x in hex of y in hex)". + / <Relabsoluness> Lots of smaller (internal) changes. + +v1.17.02.45 + + <Relabsoluness & Alex> "Pitch to tempo lock" instrument setting: define the tempo at which your instrument loops correctly, and it will be pitched automatically to match the song's current tempo. + + <Relabsoluness> Notification when attempting to modify pattern but pattern record is off. + + <Relabsoluness> Orderlist margins: you can define how many slots to keep visible around the active pattern as the orderlist scrolls + . <Relabsoluness> Fixes for various unexpected pattern loop state changes. + . <Relabsoluness> Fixes to IT Style clear. + . <Relabsoluness> Memory management fixes and misc other bug fixes. + . <rewbs> ITP loading fixed (I broke it in v1.17.02.44) + . <rewbs> Time estimation fixed for tracks with pattern break+XParam. + . <rewbs> "Last saved with" version number was not always saved correctly - fixed + +v1.17.02.44 + + <rewbs> Added release section to volume envelope (see: http://openmpt.xwiki.com/xwiki/bin/view/Manual/InstrumentReleaseEnvelope). IT only. + . <rewbs> Overflow fixes in file loading functions (see: http://aluigi.altervista.org/adv/mptho-adv.txt) + . <rewbs> Greyed out irrelevant items in the orderlist context menu. + . v1.17.02.43 + <rewbs> You can now load up new plugins from anywhere, not just the General tab. Select "Plugin Manager..." from the view menu. This can also be assigned to a global hotkey. Limitation: currently plugins added to a song in this manner with always be put in the first empty slot. In a future version you'll be able to choose the slot directly from that window. @@ -16,6 +67,14 @@ . <rewbs> Added channel limit check when adding chans from the pattern editor. . <rewbs> Fixed instant crash with SampleTank 2.1. +. v1.17.02.43 + + <rewbs> You can now load up new plugins from anywhere, not just the General tab. Select "Plugin Manager..." from the view menu. This can also be assigned to a global hotkey. + Limitation: currently plugins added to a song in this manner with always be put in the first empty slot. In a future version you'll be able to choose the slot directly from that window. + + <rewbs> "Cleanup Plugins" to remove any plugs that are not associated to a channel and not used by an instrument and not used as an output for any used plugs. + . <rewbs> Fixed channel limits. Should be able to correctly save IT pattern data with up to 127 chans. There's only space for 64 channel headers though (channel names etc..). XMs restricted to 64 chans. + . <rewbs> Added channel limit check when adding chans from the pattern editor. + . <rewbs> Fixed instant crash with SampleTank 2.1. + . v1.17.02.42 + <rewbs> "Compatibility export" in file menu: save as 'plain' IT, without all of OpenMPT's crap. IT only for now (not XM). . <rewbs> Set instrument in pattern editor should work when no note is specified (tx Torvus - http://lpchip.com/modplug/viewtopic.php?t=470) Added: trunk/OpenMPT/packageTemplate/Installation.txt =================================================================== --- trunk/OpenMPT/packageTemplate/Installation.txt (rev 0) +++ trunk/OpenMPT/packageTemplate/Installation.txt 2007-05-07 11:41:47 UTC (rev 180) @@ -0,0 +1,5 @@ +OpenMPT development build - Installation notes +---------------------------------------------- +. If you have an existing installation of OpenMPT and wish to re-use its settings, copy your mptrack.ini to this directory. +. If not, you're done: just launch mptrack.exe. + Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/UK_mpt_it2_hybrid_(rewbs).mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/UK_mpt_it2_hybrid_(rewbs).mkb 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/UK_mpt_it2_hybrid_(rewbs).mkb 2007-05-07 11:41:47 UTC (rev 180) @@ -9,7 +9,7 @@ 0:1349:2:83:1 //File/Save: Ctrl+S (KeyDown) 0:1030:2:119:1 //Play song/Pause song: Ctrl+F8 (KeyDown) 0:1031:0:119:1 //Pause song: F8 (KeyDown) -0:1375:0:27:1 //Stop Song: Esc (KeyDown) +0:1375:0:27:1 //Stop Song: ESC (KeyDown) 0:1029:0:116:5 //Play song from start: F5 (KeyDown|KeyHold) 0:1028:0:118:5 //Play song from cursor: F7 (KeyDown|KeyHold) 0:1027:0:117:5 //Play pattern from start: F6 (KeyDown|KeyHold) @@ -36,49 +36,49 @@ 0:1670:6:77:1 //View Channel Manager: Ctrl+Alt+M (KeyDown) 0:1669:3:77:1 //View Plugin Manager: Shift+Ctrl+M (KeyDown) 0:1032:0:219:5 //Previous instrument: [ (KeyDown|KeyHold) -0:1032:2:38:5 //Previous instrument: Ctrl+Up (KeyDown|KeyHold) +0:1032:2:38:5 //Previous instrument: Ctrl+UP (KeyDown|KeyHold) 0:1033:0:221:5 //Next instrument: ] (KeyDown|KeyHold) -0:1033:2:40:5 //Next instrument: Ctrl+Down (KeyDown|KeyHold) -0:1036:0:111:5 //Previous octave: Num / (KeyDown|KeyHold) -0:1037:0:106:5 //Next octave: Num * (KeyDown|KeyHold) -0:1034:2:37:5 //Previous order: Ctrl+Left (KeyDown|KeyHold) -0:1035:2:39:5 //Next order: Ctrl+Right (KeyDown|KeyHold) +0:1033:2:40:5 //Next instrument: Ctrl+DOWN (KeyDown|KeyHold) +0:1036:0:111:5 //Previous octave: NUM DIVIDE (KeyDown|KeyHold) +0:1037:0:106:5 //Next octave: NUMMULT (KeyDown|KeyHold) +0:1034:2:37:5 //Previous order: Ctrl+LEFT (KeyDown|KeyHold) +0:1035:2:39:5 //Next order: Ctrl+RIGHT (KeyDown|KeyHold) //----( General Context [bottom] (1) )------------ //----( Pattern Context [bottom] (2) )------------ -2:1017:0:34:5 //Jump down by measure: Page Down (KeyDown|KeyHold) -2:1018:0:33:5 //Jump up by measure: Page Up (KeyDown|KeyHold) -2:1338:4:34:5 //Jump down by beat: Alt+Page Down (KeyDown|KeyHold) -2:1339:4:33:5 //Jump up by beat: Alt+Page Up (KeyDown|KeyHold) -2:1019:2:34:5 //Snap down to measure: Ctrl+Page Down (KeyDown|KeyHold) -2:1020:2:33:5 //Snap up to measure: Ctrl+Page Up (KeyDown|KeyHold) -2:1340:6:34:5 //Snap down to beat: Ctrl+Alt+Page Down (KeyDown|KeyHold) -2:1341:6:33:5 //Snap up to beat: Ctrl+Alt+Page Up (KeyDown|KeyHold) -2:1038:0:40:5 //Navigate down by 1 row: Down (KeyDown|KeyHold) -2:1039:0:38:5 //Navigate up by 1 row: Up (KeyDown|KeyHold) -2:1040:0:37:5 //Navigate left: Left (KeyDown|KeyHold) -2:1041:0:39:5 //Navigate right: Right (KeyDown|KeyHold) -2:1042:0:9:5 //Navigate to next channel: Tab (KeyDown|KeyHold) -2:1043:2:9:5 //Navigate to previous channel: Ctrl+Tab (KeyDown|KeyHold) -2:1044:0:36:1 //Go to first channel: Home (KeyDown) -2:1045:2:36:1 //Go to first row: Ctrl+Home (KeyDown) -2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+Home (KeyDown) -2:1047:0:35:1 //Go to last channel: End (KeyDown) -2:1048:2:35:1 //Go to last row: Ctrl+End (KeyDown) -2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+End (KeyDown) -2:1050:1:16:1 //Selection key: Shift+Shift (KeyDown) +2:1017:0:34:5 //Jump down by measure: PGDOWN (KeyDown|KeyHold) +2:1018:0:33:5 //Jump up by measure: PGUP (KeyDown|KeyHold) +2:1338:4:34:5 //Jump down by beat: Alt+PGDOWN (KeyDown|KeyHold) +2:1339:4:33:5 //Jump up by beat: Alt+PGUP (KeyDown|KeyHold) +2:1019:2:34:5 //Snap down to measure: Ctrl+PGDOWN (KeyDown|KeyHold) +2:1020:2:33:5 //Snap up to measure: Ctrl+PGUP (KeyDown|KeyHold) +2:1340:6:34:5 //Snap down to beat: Ctrl+Alt+PGDOWN (KeyDown|KeyHold) +2:1341:6:33:5 //Snap up to beat: Ctrl+Alt+PGUP (KeyDown|KeyHold) +2:1038:0:40:5 //Navigate down by 1 row: DOWN (KeyDown|KeyHold) +2:1039:0:38:5 //Navigate up by 1 row: UP (KeyDown|KeyHold) +2:1040:0:37:5 //Navigate left: LEFT (KeyDown|KeyHold) +2:1041:0:39:5 //Navigate right: RIGHT (KeyDown|KeyHold) +2:1042:0:9:5 //Navigate to next channel: TAB (KeyDown|KeyHold) +2:1043:2:9:5 //Navigate to previous channel: Ctrl+TAB (KeyDown|KeyHold) +2:1044:0:36:1 //Go to first channel: HOME (KeyDown) +2:1045:2:36:1 //Go to first row: Ctrl+HOME (KeyDown) +2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+HOME (KeyDown) +2:1047:0:35:1 //Go to last channel: END (KeyDown) +2:1048:2:35:1 //Go to last row: Ctrl+END (KeyDown) +2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+END (KeyDown) +2:1050:1:16:1 //Selection key: Shift (KeyDown) 2:1011:4:76:1 //Select channel / Select all: Alt+L (KeyDown) 2:1663:2:118:1 //Toggle follow song: Ctrl+F7 (KeyDown) -2:1003:0:13:1 //Quick copy: Enter (KeyDown) -2:1004:0:32:5 //Quick paste: Space (KeyDown|KeyHold) +2:1003:0:13:1 //Quick copy: ENTER (KeyDown) +2:1004:0:32:5 //Quick paste: SPACE (KeyDown|KeyHold) 2:1001:1:120:1 //Enable recording: Shift+F9 (KeyDown) -2:1002:2:13:1 //Play row: Ctrl+Enter (KeyDown) -2:1002:0:104:1 //Play row: Num 8 (KeyDown) +2:1002:2:13:1 //Play row: Ctrl+ENTER (KeyDown) +2:1002:0:104:1 //Play row: NUM 8 (KeyDown) 2:1002:0:56:1 //Play row: 8 (KeyDown) -2:1317:4:18:1 //Set row jump on note entry: Alt+Alt (KeyDown) -2:1685:6:9:1 //Switch to order list: Ctrl+Alt+Tab (KeyDown) -2:1672:3:13:1 //Insert new pattern: Shift+Ctrl+Enter (KeyDown) +2:1317:4:18:1 //Set row jump on note entry: Alt (KeyDown) +2:1685:6:9:1 //Switch to order list: Ctrl+Alt+TAB (KeyDown) +2:1672:3:13:1 //Insert new pattern: Shift+Ctrl+ENTER (KeyDown) 2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown) 2:1062:0:93:1 //Show note properties: Application (KeyDown) 2:1063:2:93:1 //Show context (right-click) menu: Ctrl+Application (KeyDown) @@ -95,18 +95,18 @@ 2:1013:4:83:1 //Apply current instrument: Alt+S (KeyDown) 2:1660:4:69:1 //Grow selection: Alt+E (KeyDown) 2:1661:4:68:1 //Shrink selection: Alt+D (KeyDown) -2:1057:0:46:1 //Clear row: Delete (KeyDown) -2:1058:0:110:1 //Clear field: Num Del (KeyDown) +2:1057:0:46:1 //Clear row: DELETE (KeyDown) +2:1058:0:110:1 //Clear field: NUM DECIMAL (KeyDown) 2:1664:1:190:1 //Clear field (IT Style): Shift+. (KeyDown) -2:1059:2:46:1 //Clear row and step: Ctrl+Delete (KeyDown) -2:1060:2:110:1 //Clear field and step: Ctrl+Num Del (KeyDown) +2:1059:2:46:1 //Clear row and step: Ctrl+DELETE (KeyDown) +2:1060:2:110:1 //Clear field and step: Ctrl+NUM DECIMAL (KeyDown) 2:1665:3:190:1 //Clear field and step (IT Style): Shift+Ctrl+. (KeyDown) -2:1061:0:8:5 //Delete rows: Backspace (KeyDown|KeyHold) -2:1377:2:8:5 //Delete all rows: Ctrl+Backspace (KeyDown|KeyHold) -2:1378:0:45:5 //Insert Row: Insert (KeyDown|KeyHold) -2:1379:2:45:1 //Insert All Rows: Ctrl+Insert (KeyDown) -2:1055:0:109:5 //Previous pattern: Num - (KeyDown|KeyHold) -2:1054:0:107:5 //Next pattern: Num + (KeyDown|KeyHold) +2:1061:0:8:5 //Delete rows: BACKSPACE (KeyDown|KeyHold) +2:1377:2:8:5 //Delete all rows: Ctrl+BACKSPACE (KeyDown|KeyHold) +2:1378:0:45:5 //Insert Row: INSERT (KeyDown|KeyHold) +2:1379:2:45:1 //Insert All Rows: Ctrl+INSERT (KeyDown) +2:1055:0:109:5 //Previous pattern: NUM SUB (KeyDown|KeyHold) +2:1054:0:107:5 //Next pattern: NUM PLUS (KeyDown|KeyHold) //----( Pattern Context [bottom] - Note Col (3) )------------ 3:1064:0:90:1 //Base octave C: Z (KeyDown) @@ -138,67 +138,67 @@ 3:1090:0:79:1 //Base octave +2 D: O (KeyDown) 3:1091:0:48:1 //Base octave +2 D#: 0 (KeyDown) 3:1092:0:80:1 //Base octave +2 E: P (KeyDown) -3:1212:0:96:1 //Set octave 0: Num 0 (KeyDown) -3:1213:0:97:1 //Set octave 1: Num 1 (KeyDown) -3:1214:0:98:1 //Set octave 2: Num 2 (KeyDown) -3:1215:0:99:1 //Set octave 3: Num 3 (KeyDown) +3:1212:0:96:1 //Set octave 0: NUM 0 (KeyDown) +3:1213:0:97:1 //Set octave 1: NUM 1 (KeyDown) +3:1214:0:98:1 //Set octave 2: NUM 2 (KeyDown) +3:1215:0:99:1 //Set octave 3: NUM 3 (KeyDown) 3:1216:0:52:1 //Set octave 4: 4 (KeyDown) -3:1216:0:100:1 //Set octave 4: Num 4 (KeyDown) -3:1217:0:101:1 //Set octave 5: Num 5 (KeyDown) -3:1218:0:102:1 //Set octave 6: Num 6 (KeyDown) -3:1219:0:103:1 //Set octave 7: Num 7 (KeyDown) -3:1220:0:104:1 //Set octave 8: Num 8 (KeyDown) -3:1221:0:105:1 //Set octave 9: Num 9 (KeyDown) -3:1316:1:16:1 //Chord Modifier: Shift+Shift (KeyDown) +3:1216:0:100:1 //Set octave 4: NUM 4 (KeyDown) +3:1217:0:101:1 //Set octave 5: NUM 5 (KeyDown) +3:1218:0:102:1 //Set octave 6: NUM 6 (KeyDown) +3:1219:0:103:1 //Set octave 7: NUM 7 (KeyDown) +3:1220:0:104:1 //Set octave 8: NUM 8 (KeyDown) +3:1221:0:105:1 //Set octave 9: NUM 9 (KeyDown) +3:1316:1:16:1 //Chord Modifier: Shift (KeyDown) 3:1200:0:49:1 //Note cut: 1 (KeyDown) -3:1201:0:223:1 //Note off: (KeyDown) +3:1201:0:223:1 //Note off: ` (KeyDown) 3:1201:0:187:1 //Note off: = (KeyDown) 3:1667:1:49:1 //Note cut (don't remember instrument): Shift+1 (KeyDown) -3:1668:1:223:1 //Note off (don't remember instrument): Shift+ (KeyDown) +3:1668:1:223:1 //Note off (don't remember instrument): Shift+` (KeyDown) //----( Pattern Context [bottom] - Ins Col (4) )------------ -4:1202:0:96:1 //Set instrument digit 0: Num 0 (KeyDown) +4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown) 4:1202:0:48:1 //Set instrument digit 0: 0 (KeyDown) -4:1203:0:97:1 //Set instrument digit 1: Num 1 (KeyDown) +4:1203:0:97:1 //Set instrument digit 1: NUM 1 (KeyDown) 4:1203:0:49:1 //Set instrument digit 1: 1 (KeyDown) -4:1204:0:98:1 //Set instrument digit 2: Num 2 (KeyDown) +4:1204:0:98:1 //Set instrument digit 2: NUM 2 (KeyDown) 4:1204:0:50:1 //Set instrument digit 2: 2 (KeyDown) -4:1205:0:99:1 //Set instrument digit 3: Num 3 (KeyDown) +4:1205:0:99:1 //Set instrument digit 3: NUM 3 (KeyDown) 4:1205:0:51:1 //Set instrument digit 3: 3 (KeyDown) -4:1206:0:100:1 //Set instrument digit 4: Num 4 (KeyDown) +4:1206:0:100:1 //Set instrument digit 4: NUM 4 (KeyDown) 4:1206:0:52:1 //Set instrument digit 4: 4 (KeyDown) -4:1207:0:101:1 //Set instrument digit 5: Num 5 (KeyDown) +4:1207:0:101:1 //Set instrument digit 5: NUM 5 (KeyDown) 4:1207:0:53:1 //Set instrument digit 5: 5 (KeyDown) -4:1208:0:102:1 //Set instrument digit 6: Num 6 (KeyDown) +4:1208:0:102:1 //Set instrument digit 6: NUM 6 (KeyDown) 4:1208:0:54:1 //Set instrument digit 6: 6 (KeyDown) -4:1209:0:103:1 //Set instrument digit 7: Num 7 (KeyDown) +4:1209:0:103:1 //Set instrument digit 7: NUM 7 (KeyDown) 4:1209:0:55:1 //Set instrument digit 7: 7 (KeyDown) 4:1210:0:56:1 //Set instrument digit 8: 8 (KeyDown) -4:1210:0:104:1 //Set instrument digit 8: Num 8 (KeyDown) -4:1211:0:105:1 //Set instrument digit 9: Num 9 (KeyDown) +4:1210:0:104:1 //Set instrument digit 8: NUM 8 (KeyDown) +4:1211:0:105:1 //Set instrument digit 9: NUM 9 (KeyDown) 4:1211:0:57:1 //Set instrument digit 9: 9 (KeyDown) //----( Pattern Context [bottom] - Vol Col (5) )------------ 5:1222:0:48:1 //Set volume digit 0: 0 (KeyDown) -5:1222:0:96:1 //Set volume digit 0: Num 0 (KeyDown) +5:1222:0:96:1 //Set volume digit 0: NUM 0 (KeyDown) 5:1223:0:49:1 //Set volume digit 1: 1 (KeyDown) -5:1223:0:97:1 //Set volume digit 1: Num 1 (KeyDown) +5:1223:0:97:1 //Set volume digit 1: NUM 1 (KeyDown) 5:1224:0:50:1 //Set volume digit 2: 2 (KeyDown) -5:1224:0:98:1 //Set volume digit 2: Num 2 (KeyDown) +5:1224:0:98:1 //Set volume digit 2: NUM 2 (KeyDown) 5:1225:0:51:1 //Set volume digit 3: 3 (KeyDown) -5:1225:0:99:1 //Set volume digit 3: Num 3 (KeyDown) +5:1225:0:99:1 //Set volume digit 3: NUM 3 (KeyDown) 5:1226:0:52:1 //Set volume digit 4: 4 (KeyDown) -5:1226:0:100:1 //Set volume digit 4: Num 4 (KeyDown) +5:1226:0:100:1 //Set volume digit 4: NUM 4 (KeyDown) 5:1227:0:53:1 //Set volume digit 5: 5 (KeyDown) -5:1227:0:101:1 //Set volume digit 5: Num 5 (KeyDown) +5:1227:0:101:1 //Set volume digit 5: NUM 5 (KeyDown) 5:1228:0:54:1 //Set volume digit 6: 6 (KeyDown) -5:1228:0:102:1 //Set volume digit 6: Num 6 (KeyDown) +5:1228:0:102:1 //Set volume digit 6: NUM 6 (KeyDown) 5:1229:0:55:1 //Set volume digit 7: 7 (KeyDown) -5:1229:0:103:1 //Set volume digit 7: Num 7 (KeyDown) +5:1229:0:103:1 //Set volume digit 7: NUM 7 (KeyDown) 5:1230:0:56:1 //Set volume digit 8: 8 (KeyDown) -5:1230:0:104:1 //Set volume digit 8: Num 8 (KeyDown) +5:1230:0:104:1 //Set volume digit 8: NUM 8 (KeyDown) 5:1231:0:57:1 //Set volume digit 9: 9 (KeyDown) -5:1231:0:105:1 //Set volume digit 9: Num 9 (KeyDown) +5:1231:0:105:1 //Set volume digit 9: NUM 9 (KeyDown) 5:1232:0:86:1 //Vol command - volume: V (KeyDown) 5:1233:0:80:1 //Vol command - pan: P (KeyDown) 5:1234:0:67:1 //Vol command - vol slide up: C (KeyDown) @@ -216,31 +216,31 @@ 5:1246:0:79:1 //Vol command - Offset: O (KeyDown) //----( Pattern Context [bottom] - FX Col (6) )------------ -6:1294:0:226:1 //FX midi macro slide: \ (KeyDown) +6:1294:0:220:1 //FX midi macro slide: \ (KeyDown) 6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+; (KeyDown) -6:1666:0:222:1 //FX parameter extension command: ' (KeyDown) +6:1666:0:222:1 //FX parameter extension command: # (KeyDown) //----( Pattern Context [bottom] - Param Col (7) )------------ 7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown) -7:1247:0:96:1 //FX Param digit 0: Num 0 (KeyDown) +7:1247:0:96:1 //FX Param digit 0: NUM 0 (KeyDown) 7:1248:0:49:1 //FX Param digit 1: 1 (KeyDown) -7:1248:0:97:1 //FX Param digit 1: Num 1 (KeyDown) +7:1248:0:97:1 //FX Param digit 1: NUM 1 (KeyDown) 7:1249:0:50:1 //FX Param digit 2: 2 (KeyDown) -7:1249:0:98:1 //FX Param digit 2: Num 2 (KeyDown) +7:1249:0:98:1 //FX Param digit 2: NUM 2 (KeyDown) 7:1250:0:51:1 //FX Param digit 3: 3 (KeyDown) -7:1250:0:99:1 //FX Param digit 3: Num 3 (KeyDown) +7:1250:0:99:1 //FX Param digit 3: NUM 3 (KeyDown) 7:1251:0:52:1 //FX Param digit 4: 4 (KeyDown) -7:1251:0:100:1 //FX Param digit 4: Num 4 (KeyDown) +7:1251:0:100:1 //FX Param digit 4: NUM 4 (KeyDown) 7:1252:0:53:1 //FX Param digit 5: 5 (KeyDown) -7:1252:0:101:1 //FX Param digit 5: Num 5 (KeyDown) +7:1252:0:101:1 //FX Param digit 5: NUM 5 (KeyDown) 7:1253:0:54:1 //FX Param digit 6: 6 (KeyDown) -7:1253:0:102:1 //FX Param digit 6: Num 6 (KeyDown) +7:1253:0:102:1 //FX Param digit 6: NUM 6 (KeyDown) 7:1254:0:55:1 //FX Param digit 7: 7 (KeyDown) -7:1254:0:103:1 //FX Param digit 7: Num 7 (KeyDown) +7:1254:0:103:1 //FX Param digit 7: NUM 7 (KeyDown) 7:1255:0:56:1 //FX Param digit 8: 8 (KeyDown) -7:1255:0:104:1 //FX Param digit 8: Num 8 (KeyDown) +7:1255:0:104:1 //FX Param digit 8: NUM 8 (KeyDown) 7:1256:0:57:1 //FX Param digit 9: 9 (KeyDown) -7:1256:0:105:1 //FX Param digit 9: Num 9 (KeyDown) +7:1256:0:105:1 //FX Param digit 9: NUM 9 (KeyDown) 7:1257:0:65:1 //FX Param digit A: A (KeyDown) 7:1258:0:66:1 //FX Param digit B: B (KeyDown) 7:1259:0:67:1 //FX Param digit C: C (KeyDown) @@ -253,13 +253,13 @@ 8:1674:4:83:1 //Save Sample: Alt+S (KeyDown) 8:1675:4:78:1 //New Sample: Alt+N (KeyDown) 8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown) -8:1383:0:8:1 //Silence sample selection: Backspace (KeyDown) +8:1383:0:8:1 //Silence sample selection: BACKSPACE (KeyDown) 8:1384:3:78:1 //Normalise Sample: Shift+Ctrl+N (KeyDown) 8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown) 8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown) -8:1382:0:46:1 //Delete sample selection: Delete (KeyDown) -8:1386:0:107:1 //Zoom Out: Num + (KeyDown) -8:1387:0:109:1 //Zoom In: Num - (KeyDown) +8:1382:0:46:1 //Delete sample selection: DELETE (KeyDown) +8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown) +8:1387:0:109:1 //Zoom In: NUM SUB (KeyDown) //----( Instrument Context [bottom] (9) )------------ Added: trunk/OpenMPT/packageTemplate/tunings/standard/std_tunings.tc =================================================================== (Binary files differ) Property changes on: trunk/OpenMPT/packageTemplate/tunings/standard/std_tunings.tc ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -638,7 +638,7 @@ case 'RPM.': fadr = reinterpret_cast<BYTE*>(&m_nRowsPerMeasure); break; case 'C...': fadr = reinterpret_cast<BYTE*>(&m_nChannels); break; case 'TM..': fadr = reinterpret_cast<BYTE*>(&m_nTempoMode); break; - case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nPlugMixMode); break; + case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nMixLevels); break; case 'CWV.': fadr = reinterpret_cast<BYTE*>(&m_dwCreatedWithVersion); break; case 'LSWV': fadr = reinterpret_cast<BYTE*>(&m_dwLastSavedWithVersion); break; case 'SPA.': fadr = reinterpret_cast<BYTE*>(&m_nSamplePreAmp); break; @@ -1044,7 +1044,7 @@ case 'RPM.': fadr = reinterpret_cast<BYTE*>(&m_nRowsPerMeasure); break; case 'C...': fadr = reinterpret_cast<BYTE*>(&m_nChannels); break; case 'TM..': fadr = reinterpret_cast<BYTE*>(&m_nTempoMode); break; - case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nPlugMixMode); break; + case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nMixLevels); break; case 'CWV.': fadr = reinterpret_cast<BYTE*>(&m_dwCreatedWithVersion); break; case 'LSWV': fadr = reinterpret_cast<BYTE*>(&m_dwLastSavedWithVersion); break; case 'SPA.': fadr = reinterpret_cast<BYTE*>(&m_nSamplePreAmp); break; @@ -3153,11 +3153,11 @@ fwrite(&size, 1, sizeof(__int16), f); fwrite(&m_nTempoMode, 1, size, f); - code = 'PMM.'; //write m_nPlugMixMode + code = 'PMM.'; //write m_nMixLevels fwrite(&code, 1, sizeof(__int32), f); - size = sizeof(m_nPlugMixMode); + size = sizeof(m_nMixLevels); fwrite(&size, 1, sizeof(__int16), f); - fwrite(&m_nPlugMixMode, 1, size, f); + fwrite(&m_nMixLevels, 1, size, f); code = 'CWV.'; //write m_dwCreatedWithVersion fwrite(&code, 1, sizeof(__int32), f); @@ -4309,7 +4309,7 @@ case 'RPM.': fadr = reinterpret_cast<BYTE*>(&m_nRowsPerMeasure); break; case 'C...': fadr = reinterpret_cast<BYTE*>(&m_nChannels); break; case 'TM..': fadr = reinterpret_cast<BYTE*>(&m_nTempoMode); break; - case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nPlugMixMode); break; + case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nMixLevels); break; case 'CWV.': fadr = reinterpret_cast<BYTE*>(&m_dwCreatedWithVersion); break; case 'LSWV': fadr = reinterpret_cast<BYTE*>(&m_dwLastSavedWithVersion); break; case 'SPA.': fadr = reinterpret_cast<BYTE*>(&m_nSamplePreAmp); break; Modified: trunk/OpenMPT/soundlib/Load_xm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/soundlib/Load_xm.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -641,7 +641,7 @@ case 'RPB.': fadr = reinterpret_cast<BYTE*>(&m_nRowsPerBeat); break; case 'RPM.': fadr = reinterpret_cast<BYTE*>(&m_nRowsPerMeasure); break; case 'TM..': fadr = reinterpret_cast<BYTE*>(&m_nTempoMode); break; - case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nPlugMixMode); break; + case 'PMM.': fadr = reinterpret_cast<BYTE*>(&m_nMixLevels); break; case 'CWV.': fadr = reinterpret_cast<BYTE*>(&m_dwCreatedWithVersion); break; case 'LSWV': fadr = reinterpret_cast<BYTE*>(&m_dwLastSavedWithVersion); break; case 'SPA.': fadr = reinterpret_cast<BYTE*>(&m_nSamplePreAmp); break; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -435,7 +435,7 @@ memset(&m_SongEQ, 0, sizeof(m_SongEQ)); m_lTotalSampleCount=0; - m_nPlugMixMode=plugmix_mode_117RC2; + m_nMixLevels=mixLevels_117RC3; m_pConfig = new CSoundFilePlayConfig(); BuildDefaultInstrument(); @@ -690,7 +690,7 @@ } } } - m_pConfig->SetPluginMixLevels(m_nPlugMixMode); + m_pConfig->SetPluginMixLevels(m_nMixLevels); RecalculateGainForAllPlugs(); if (m_nType) Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/soundlib/Sndfile.h 2007-05-07 11:41:47 UTC (rev 180) @@ -897,7 +897,7 @@ UINT m_nRowsPerBeat; // rewbs.betterBPM UINT m_nRowsPerMeasure; // rewbs.betterBPM BYTE m_nTempoMode; // rewbs.betterBPM - BYTE m_nPlugMixMode; + BYTE m_nMixLevels; UINT m_nMusicSpeed, m_nMusicTempo; UINT m_nNextRow, m_nRow; UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos, m_nSeqOverride; Modified: trunk/OpenMPT/soundlib/Sndmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp 2007-05-04 21:47:39 UTC (rev 179) +++ trunk/OpenMPT/soundlib/Sndmix.cpp 2007-05-07 11:41:47 UTC (rev 180) @@ -1618,10 +1618,7 @@ realvol = (pChn->nRealVolume * kChnMasterVol) >> 8; } - if (m_pConfig->getTreatPanLikeBalance()) { - pChn->nNewLeftVol = (realvol * pan) >> 8; - pChn->nNewRightVol = (realvol * (256 - pan)) >> 8; - } else { + if (m_pConfig->getForceSoftPanning() || gdwSoundSetup & SNDMIX_SOFTPANNING) { if (pan < 128) { pChn->nNewLeftVol = (realvol * pan) >> 8; pChn->nNewRightVol = (realvol * 128) >> 8; @@ -1629,6 +1626,9 @@ pChn->nNewLeftVol = (realvol * 128) >> 8; pChn->nNewRightVol = (realvol * (256 - pan)) >> 8; } + } else { + pChn->nNewLeftVol = (realvol * pan) >> 8; + pChn->nNewRightVol = (realvol * (256 - pan)) >> 8; } } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |