str = str + cwav.strファイル名;\r
try\r
{\r
- for( int i = 0; i < 4; i++ )\r
- {\r
try\r
{\r
- cwav.rSound[i] = CDTXMania.Sound管理.tサウンドを生成する(str);\r
- cwav.rSound[ i ].n音量 = 100;\r
- if( ( i == 0 ) && CDTXMania.ConfigIni.bLog作成解放ログ出力 )\r
+ cwav.rSound[ 0 ] = CDTXMania.Sound管理.tサウンドを生成する(str);\r
+ cwav.rSound[ 0 ].n音量 = 100;\r
+ if( CDTXMania.ConfigIni.bLog作成解放ログ出力 )\r
{\r
- Trace.TraceInformation( "サウンドを作成しました。({3})({0})({1})({2}bytes)", cwav.strコメント文, str, cwav.rSound[ i ].nサウンドバッファサイズ, cwav.rSound[ i ].bストリーム再生する ? "Stream" : "OnMemory" );\r
+ Trace.TraceInformation( "サウンドを作成しました。({3})({0})({1})({2}bytes)", cwav.strコメント文, str, cwav.rSound[ 0 ].nサウンドバッファサイズ, cwav.rSound[ 0 ].bストリーム再生する ? "Stream" : "OnMemory" );\r
}\r
}\r
catch\r
{\r
- cwav.rSound[ i ] = null;\r
- if( i == 0 )\r
+ cwav.rSound[ 0 ] = null;\r
+ Trace.TraceError( "サウンドの作成に失敗しました。({0})({1})", cwav.strコメント文, str );\r
+ }\r
+ if ( cwav.rSound[ 0 ] == null || cwav.rSound[ 0 ].bストリーム再生する )\r
+ {\r
+ for ( int j = 1; j < cwav.rSound.GetLength(0); j++ )\r
{\r
- Trace.TraceError( "サウンドの作成に失敗しました。({0})({1})", cwav.strコメント文, str );\r
+ cwav.rSound[ j ] = null;\r
}\r
}\r
- if( ( cwav.rSound[ i ] != null ) && cwav.rSound[ i ].bストリーム再生する )\r
+ else\r
{\r
- break;\r
+ for ( int j = 1; j < cwav.rSound.GetLength(0); j++ )\r
+ {\r
+ cwav.rSound[ j ] = (CSound) cwav.rSound[ 0 ].Clone(); // #24007 2011.9.5 yyagi add: to accelerate loading chip sounds\r
+ CDTXMania.Sound管理.tサウンドを登録する( cwav.rSound[ j ] );\r
+ }\r
}\r
-// Type t = typeof(CSound);\r
-// MethodInfo[] methods = t.GetMethods(\r
-// BindingFlags.Public | BindingFlags.NonPublic |\r
-// BindingFlags.Instance | BindingFlags.Static\r
-// );\r
-\r
-// for (int j = 1; j < 3; j++)\r
-// {\r
-// SlimDX.DirectSound.SoundBuffer result;\r
-// CDTXMania.Sound管理.Device.DuplicateSoundBuffer(\r
-// cwav.rSound[0].Buffer,\r
-// out result);\r
-// cwav.rSound[j].Buffer = (SlimDX.DirectSound.SecondarySoundBuffer)result;\r
-// cwav.rSound[j].bストリーム再生する = cwav.rSound[0].bストリーム再生する;\r
-// cwav.rSound[j].bループする\r
-// foreach(MethodInfo m in methods) {\r
-// if (m cwav..rSound[j].\r
-// }\r
-// cwav.rSound[0].Buffer.\r
-\r
-// cwav.rSound[1] = cwav.rSound[0]; // #24007 2010.11.23 yyagi add: to accelerate loading chip sounds\r
-// cwav.rSound[2] = cwav.rSound[0]; //\r
-// cwav.rSound[3] = cwav.rSound[0]; //\r
-// break; //\r
- }\r
- continue;\r
}\r
catch( Exception exception )\r
{\r
Trace.TraceError( "サウンドの生成に失敗しました。({0})({1})({2})", exception.Message, cwav.strコメント文, str );\r
- for( int j = 0; j < 4; j++ )\r
+ for( int j = 0; j < cwav.rSound.GetLength(0); j++ )\r
{\r
cwav.rSound[ j ] = null;\r
}\r