case ESoundDeviceTypeForConfig.ASIO:\r
soundDeviceType = ESoundDeviceType.ASIO;\r
break;\r
- case ESoundDeviceTypeForConfig.WASAPI:\r
+ case ESoundDeviceTypeForConfig.WASAPI_Exclusive:\r
soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;\r
break;\r
+ case ESoundDeviceTypeForConfig.WASAPI_Shared:\r
+ soundDeviceType = ESoundDeviceType.SharedWASAPI;\r
+ break;\r
default:\r
soundDeviceType = ESoundDeviceType.Unknown;\r
break;\r
this.tx三角矢印 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenConfig triangle arrow.png"), false);\r
// スキン選択時に動的に設定するため、ここでは初期化しない\r
this.txSkinSample = null;\r
+ OnListMenuの初期化();\r
base.OnManagedリソースの作成();\r
}\r
}\r
TextureFactory.tテクスチャの解放(ref this.txその他項目行パネル);\r
TextureFactory.tテクスチャの解放(ref this.tx三角矢印);\r
\r
+ OnListMenuの解放();\r
+\r
base.OnManagedリソースの解放();\r
}\r
}\r
bUseOSTimer = new COptionBool(false);\r
bDynamicBassMixerManagement = new COptionBool(true);\r
bTimeStretch = new COptionBool(false);\r
- nSoundDeviceType = new COptionEnum<ESoundDeviceTypeForConfig>(FDK.COS.bIsVistaOrLater ? ESoundDeviceTypeForConfig.WASAPI : ESoundDeviceTypeForConfig.DSound);\r
+ nSoundDeviceType = new COptionEnum<ESoundDeviceTypeForConfig>(FDK.COS.bIsVistaOrLater ? ESoundDeviceTypeForConfig.WASAPI_Exclusive : ESoundDeviceTypeForConfig.DSound);\r
bForceHighPowerPlan = new COptionBool( false );\r
bEventDrivenWASAPI = new COptionBool( false );\r
bLoadDTXDetail = new COptionBool( false ); \r
ConfigIni.nSoundDeviceType.Value = ESoundDeviceTypeForConfig.DSound;\r
break;\r
case ESoundDeviceType.ExclusiveWASAPI:\r
- ConfigIni.nSoundDeviceType.Value = ESoundDeviceTypeForConfig.WASAPI;\r
+ ConfigIni.nSoundDeviceType.Value = ESoundDeviceTypeForConfig.WASAPI_Exclusive;\r
+ break;\r
+ case ESoundDeviceType.SharedWASAPI:\r
+ ConfigIni.nSoundDeviceType.Value = ESoundDeviceTypeForConfig.WASAPI_Shared;\r
break;\r
case ESoundDeviceType.ASIO:\r
ConfigIni.nSoundDeviceType.Value = ESoundDeviceTypeForConfig.ASIO;\r
case ESoundDeviceTypeForConfig.ASIO:\r
soundDeviceType = ESoundDeviceType.ASIO;\r
break;\r
- case ESoundDeviceTypeForConfig.WASAPI:\r
+ case ESoundDeviceTypeForConfig.WASAPI_Exclusive:\r
soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;\r
break;\r
+ case ESoundDeviceTypeForConfig.WASAPI_Shared:\r
+ soundDeviceType = ESoundDeviceType.SharedWASAPI;\r
+ break;\r
default:\r
soundDeviceType = ESoundDeviceType.Unknown;\r
break;\r
[EnumMember]\r
DSound,\r
[EnumMember]\r
- WASAPI,\r
+ WASAPI_Exclusive,\r
+ [EnumMember]\r
+ WASAPI_Shared,\r
[EnumMember]\r
ASIO,\r
}\r
bUseOSTimer = _bUseOSTimer;\r
bSoundUpdateByEventWASAPI = _bSoundUpdateByEventWASAPI;\r
\r
- ESoundDeviceType[] ESoundDeviceTypes = new ESoundDeviceType[ 4 ]\r
+ ESoundDeviceType[] ESoundDeviceTypes = new ESoundDeviceType[ 5 ]\r
{\r
ESoundDeviceType.ExclusiveWASAPI,\r
ESoundDeviceType.ASIO,\r
+ ESoundDeviceType.SharedWASAPI,\r
ESoundDeviceType.DirectSound,\r
ESoundDeviceType.Unknown\r
};\r
case ESoundDeviceType.ASIO:\r
n初期デバイス = 1;\r
break;\r
- case ESoundDeviceType.DirectSound:\r
+ case ESoundDeviceType.SharedWASAPI:\r
n初期デバイス = 2;\r
break;\r
- default:\r
+ case ESoundDeviceType.DirectSound:\r
n初期デバイス = 3;\r
break;\r
+ default:\r
+ n初期デバイス = 4;\r
+ break;\r
}\r
for ( SoundDeviceType = ESoundDeviceTypes[ n初期デバイス ]; ; SoundDeviceType = ESoundDeviceTypes[ ++n初期デバイス ] )\r
{\r
}\r
}\r
}\r
- if ( soundDeviceType == ESoundDeviceType.ExclusiveWASAPI || soundDeviceType == ESoundDeviceType.ASIO )\r
+ if ( soundDeviceType == ESoundDeviceType.ExclusiveWASAPI || soundDeviceType == ESoundDeviceType.ASIO || soundDeviceType == ESoundDeviceType.SharedWASAPI )\r
{\r
//Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 4 );\r
//Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 );\r
switch ( SoundDeviceType )\r
{\r
case ESoundDeviceType.ExclusiveWASAPI:\r
+ return "WASAPI(Exclusive)";\r
case ESoundDeviceType.SharedWASAPI:\r
- return "WASAPI";\r
+ return "WASAPI(Shared)";\r
case ESoundDeviceType.ASIO:\r
return "ASIO";\r
case ESoundDeviceType.DirectSound:\r
}\r
#endregion\r
\r
-//Retry:\r
+ Retry:\r
var flags = ( mode == Eデバイスモード.排他 ) ? BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EXCLUSIVE : BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT;\r
//var flags = ( mode == Eデバイスモード.排他 ) ? BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EVENT | BASSWASAPIInit.BASS_WASAPI_EXCLUSIVE : BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EVENT;\r
if ( COS.bIsWin7OrLater && CSound管理.bSoundUpdateByEventWASAPI )\r
}\r
}\r
#region [ #31737 WASAPI排他モードのみ利用可能とし、WASAPI共有モードは使用できないようにするために、WASAPI共有モードでの初期化フローを削除する。 ]\r
- //else if ( mode == Eデバイスモード.排他 )\r
- //{\r
- // Trace.TraceInformation("Failed to initialize setting BASS (WASAPI) mode [{0}]", Bass.BASS_ErrorGetCode().ToString() );\r
- // #region [ 排他モードに失敗したのなら共有モードでリトライ。]\r
- // //-----------------\r
- // mode = Eデバイスモード.共有;\r
- // goto Retry;\r
- // //-----------------\r
- // #endregion\r
- //}\r
+ else if (mode == Eデバイスモード.排他)\r
+ {\r
+ Trace.TraceInformation("Failed to initialize setting BASS (WASAPI) mode [{0}]", Bass.BASS_ErrorGetCode().ToString());\r
+ #region [ 排他モードに失敗したのなら共有モードでリトライ。]\r
+ //-----------------\r
+ mode = Eデバイスモード.共有;\r
+ goto Retry;\r
+ //-----------------\r
+ #endregion\r
+ }\r
#endregion\r
else\r
{\r