From: <man...@us...> - 2013-09-06 12:05:55
|
Revision: 2639 http://sourceforge.net/p/modplug/code/2639 Author: manxorist Date: 2013-09-06 12:05:47 +0000 (Fri, 06 Sep 2013) Log Message: ----------- [Ref] sounddev: Remove support code for DirecTsound versions before v7. All supported windows versions have DX9 available. [Ref] sounddev: Remove code for delay-loading dsound.dll and link it directly instead. [Mod] Remove /wavex command line option. It forced the usage of WAVEFORMATEX even if DX7 was not available which was just a heuristic anyway. WAVEFORMATEX is used for > 16 bits/sample and > 2 channels sound output. This is available on all supported windows versions, thus enable it unconditionally. Modified Paths: -------------- trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/mptrack_08.vcproj trunk/OpenMPT/mptrack/mptrack_10.vcxproj trunk/OpenMPT/sounddev/SoundDeviceDirectSound.cpp Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2013-09-06 12:05:47 UTC (rev 2639) @@ -268,10 +268,6 @@ m_CbnChannels.ResetContent(); for(UINT channels = 4; channels >= 1; channels /= 2) { - if(channels > 2 && !theApp.IsWaveExEnabled()) - { - continue; - } wsprintf(s, "%s", gszChnCfgNames[(channels+2)/2-1]); UINT ndx = m_CbnChannels.AddString(s); m_CbnChannels.SetItemData(ndx, channels); @@ -297,10 +293,6 @@ m_CbnSampleFormat.EnableWindow(asio ? FALSE : TRUE); for(UINT bits = 40; bits >= 8; bits -= 8) { - if(bits > 16 && !theApp.IsWaveExEnabled() && !asio) - { - continue; - } if(bits == 40) { if(!asio || (asio && SampleFormatFloat32 == m_SampleFormat)) Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2013-09-06 12:05:47 UTC (rev 2639) @@ -269,13 +269,13 @@ //================================================ { public: - bool m_bNoAcm, m_bNoDls, m_bSafeMode, m_bWavEx, m_bNoPlugins, m_bDebug, + bool m_bNoAcm, m_bNoDls, m_bSafeMode, m_bNoPlugins, m_bDebug, m_bPortable, m_bNoSettingsOnNewVersion; public: CMPTCommandLineInfo() { - m_bNoAcm = m_bNoDls = m_bSafeMode = m_bWavEx = + m_bNoAcm = m_bNoDls = m_bSafeMode = m_bNoPlugins = m_bDebug = m_bNoSettingsOnNewVersion = m_bPortable = false; } virtual void ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast); @@ -290,7 +290,6 @@ if (!lstrcmpi(lpszParam, "nologo")) { m_bShowSplash = FALSE; return; } else if (!lstrcmpi(lpszParam, "nodls")) { m_bNoDls = true; return; } else if (!lstrcmpi(lpszParam, "noacm")) { m_bNoAcm = true; return; } else - if (!lstrcmpi(lpszParam, "wavex")) { m_bWavEx = true; return; } else if (!lstrcmpi(lpszParam, "noplugs")) { m_bNoPlugins = true; return; } else if (!lstrcmpi(lpszParam, "debug")) { m_bDebug = true; return; } else if (!lstrcmpi(lpszParam, "portable")) { m_bPortable = true; return; } else @@ -624,37 +623,11 @@ m_pModTemplate = NULL; m_pPluginManager = NULL; m_bInitialized = FALSE; - m_bExWaveSupport = FALSE; m_bDebugMode = FALSE; m_szConfigFileName[0] = 0; } -///////////////////////////////////////////////////////////////////////////// -// GetDSoundVersion -static DWORD GetDSoundVersion() -//----------------------------- -{ - DWORD dwVersion = 0x600; - HKEY key = NULL; - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\DirectX", 0, KEY_READ, &key) == ERROR_SUCCESS) - { - CHAR szVersion[32] = ""; - DWORD dwSize = sizeof(szVersion); - DWORD dwType = REG_SZ; - if (RegQueryValueEx(key, "Version", NULL, &dwType, (LPBYTE)szVersion, &dwSize) == ERROR_SUCCESS) - { - // "4.06.03.xxxx" - dwVersion = ((szVersion[3] - '0') << 8) | ((szVersion[5] - '0') << 4) | ((szVersion[6] - '0')); - if (dwVersion < 0x600) dwVersion = 0x600; - if (dwVersion > 0x800) dwVersion = 0x800; - } - RegCloseKey(key); - } - return dwVersion; -} - - ///////////////////////////////////////////////////////////////////////////// // CTrackApp initialization @@ -830,7 +803,6 @@ // Parse command line for standard shell commands, DDE, file open CMPTCommandLineInfo cmdInfo; - if (GetDSoundVersion() >= 0x0700) cmdInfo.m_bWavEx = true; ParseCommandLine(cmdInfo); TrackerSettings::Instance().noACM = cmdInfo.m_bNoAcm; @@ -895,8 +867,7 @@ // Register MOD extensions //RegisterExtensions(); - // Load DirectSound (if available) - m_bExWaveSupport = cmdInfo.m_bWavEx; + // Load sound APIs SndDevInitialize(); // Load DLS Banks Modified: trunk/OpenMPT/mptrack/Mptrack.h =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.h 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/mptrack/Mptrack.h 2013-09-06 12:05:47 UTC (rev 2639) @@ -111,7 +111,7 @@ protected: CMultiDocTemplate *m_pModTemplate; CVstPluginManager *m_pPluginManager; - BOOL m_bInitialized, m_bExWaveSupport, m_bDebugMode; + BOOL m_bInitialized, m_bDebugMode; DWORD m_dwTimeStarted, m_dwLastPluginIdleCall; // Default macro configuration MIDIMacroConfig m_MidiCfg; @@ -157,7 +157,6 @@ CVstPluginManager *GetPluginManager() const { return m_pPluginManager; } void GetDefaultMidiMacro(MIDIMacroConfig &cfg) const { cfg = m_MidiCfg; } void SetDefaultMidiMacro(const MIDIMacroConfig &cfg) { m_MidiCfg = cfg; } - BOOL IsWaveExEnabled() const { return m_bExWaveSupport; } BOOL IsDebug() const { return m_bDebugMode; } LPCTSTR GetConfigFileName() const { return m_szConfigFileName; } bool IsPortableMode() { return m_bPortableMode; } Modified: trunk/OpenMPT/mptrack/mptrack_08.vcproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack_08.vcproj 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/mptrack/mptrack_08.vcproj 2013-09-06 12:05:47 UTC (rev 2639) @@ -84,7 +84,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib Rpcrt4.lib delayimp.lib ../include/flac/lib/libFLAC_staticd.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib Rpcrt4.lib delayimp.lib dsound.lib ../include/flac/lib/libFLAC_staticd.lib" OutputFile=".\Debug/mptrack.exe" Version="5.0" LinkIncremental="2" @@ -191,7 +191,7 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/MACHINE:I386" - AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib Rpcrt4.lib delayimp.lib wininet.lib ../include/flac/lib/libFLAC_static.lib" + AdditionalDependencies="winmm.lib strmiids.lib dmoguids.lib version.lib Rpcrt4.lib delayimp.lib wininet.lib dsound.lib ../include/flac/lib/libFLAC_static.lib" OutputFile=".\Bin/mptrack.exe" Version="5.0" LinkIncremental="1" Modified: trunk/OpenMPT/mptrack/mptrack_10.vcxproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2013-09-06 12:05:47 UTC (rev 2639) @@ -102,7 +102,7 @@ </ResourceCompile> <Link> <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>.\Debug/mptrack.exe</OutputFile> <Version>5.0</Version> <SuppressStartupBanner>true</SuppressStartupBanner> @@ -163,7 +163,7 @@ </ResourceCompile> <Link> <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;wininet.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> <Version>5.0</Version> <SuppressStartupBanner>true</SuppressStartupBanner> @@ -227,7 +227,7 @@ </ResourceCompile> <Link> <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>winmm.lib;strmiids.lib;dmoguids.lib;version.lib;Rpcrt4.lib;delayimp.lib;wininet.lib;dsound.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> <Version>5.0</Version> <SuppressStartupBanner>true</SuppressStartupBanner> Modified: trunk/OpenMPT/sounddev/SoundDeviceDirectSound.cpp =================================================================== --- trunk/OpenMPT/sounddev/SoundDeviceDirectSound.cpp 2013-09-06 11:36:44 UTC (rev 2638) +++ trunk/OpenMPT/sounddev/SoundDeviceDirectSound.cpp 2013-09-06 12:05:47 UTC (rev 2639) @@ -32,12 +32,6 @@ #define MAX_DSOUND_DEVICES 16 -typedef BOOL (WINAPI * LPDSOUNDENUMERATE)(LPDSENUMCALLBACK lpDSEnumCallback, LPVOID lpContext); -typedef HRESULT (WINAPI * LPDSOUNDCREATE)(GUID * lpGuid, LPDIRECTSOUND * ppDS, IUnknown * pUnkOuter); - -static HINSTANCE ghDSoundDLL = NULL; -static LPDSOUNDENUMERATE gpDSoundEnumerate = NULL; -static LPDSOUNDCREATE gpDSoundCreate = NULL; static BOOL gbDSoundEnumerated = FALSE; static UINT gnDSoundDevices = 0; static GUID *glpDSoundGUID[MAX_DSOUND_DEVICES]; @@ -67,10 +61,9 @@ BOOL CDSoundDevice::EnumerateDevices(UINT nIndex, LPSTR pszDescription, UINT cbSize) //---------------------------------------------------------------------------------- { - if (!gpDSoundEnumerate) return FALSE; - if (!gbDSoundEnumerated) + if(!gbDSoundEnumerated) { - gpDSoundEnumerate((LPDSENUMCALLBACK)DSEnumCallback, NULL); + DirectSoundEnumerate(DSEnumCallback, NULL); } if (nIndex >= gnDSoundDevices) return FALSE; lstrcpyn(pszDescription, gszDSoundDrvNames[nIndex], cbSize); @@ -109,12 +102,11 @@ DSBCAPS dsc; UINT nPriorityLevel = (m_Settings.fulCfgOptions & SNDDEV_OPTIONS_EXCLUSIVE) ? DSSCL_WRITEPRIMARY : DSSCL_PRIORITY; - if (m_piDS) return true; - if (!gpDSoundEnumerate) return false; - if (!gbDSoundEnumerated) gpDSoundEnumerate((LPDSENUMCALLBACK)DSEnumCallback, NULL); - if ((nDevice >= gnDSoundDevices) || (!gpDSoundCreate)) return false; - if (gpDSoundCreate(glpDSoundGUID[nDevice], &m_piDS, NULL) != DS_OK) return false; - if (!m_piDS) return false; + if(m_piDS) return true; + if(!gbDSoundEnumerated) DirectSoundEnumerate(DSEnumCallback, NULL); + if(nDevice >= gnDSoundDevices) return false; + if(DirectSoundCreate(glpDSoundGUID[nDevice], &m_piDS, NULL) != DS_OK) return false; + if(!m_piDS) return false; m_piDS->SetCooperativeLevel(m_Settings.hWnd, nPriorityLevel); m_bMixRunning = FALSE; m_nDSoundBufferSize = (m_Settings.LatencyMS * pwfx->nAvgBytesPerSec) / 1000; @@ -356,11 +348,6 @@ BOOL SndDevDSoundInitialize() //--------------------------- { - if (ghDSoundDLL) return TRUE; - if ((ghDSoundDLL = LoadLibrary("dsound.dll")) == NULL) return FALSE; - static_assert(sizeof(TCHAR) == 1, "Check DirectSoundEnumerateA below"); - if ((gpDSoundEnumerate = (LPDSOUNDENUMERATE)GetProcAddress(ghDSoundDLL, "DirectSoundEnumerateA")) == NULL) return FALSE; - if ((gpDSoundCreate = (LPDSOUNDCREATE)GetProcAddress(ghDSoundDLL, "DirectSoundCreate")) == NULL) return FALSE; MemsetZero(glpDSoundGUID); return TRUE; } @@ -369,13 +356,6 @@ BOOL SndDevDSoundUninitialize() //----------------------------- { - gpDSoundEnumerate = NULL; - gpDSoundCreate = NULL; - if (ghDSoundDLL) - { - FreeLibrary(ghDSoundDLL); - ghDSoundDLL = NULL; - } for (UINT i=0; i<MAX_DSOUND_DEVICES; i++) { if (glpDSoundGUID[i]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |