コミットメタ情報

リビジョン41bca6cb44f9d2bab74d2b19c2cc12e3558a2c1c (tree)
日時2017-06-14 00:59:20
作者yyagi <yyagi.dtxmania@gmai...>
コミッターyyagi

ログメッセージ

#37231 一旦、Win8.0互換モードでの動作に戻した。この方がなぜかWASAPIでのバッファ量を小さくできるため。
#37243 バッファ更新間隔の取り回しを改善し、同設定値が更新間隔の最低値を下回らないようにした。

変更サマリ

差分

--- a/DTXMania/DTXManiaGR.exe.x86.manifest
+++ b/DTXMania/DTXManiaGR.exe.x86.manifest
@@ -29,7 +29,9 @@
2929 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
3030 <application>
3131 <!-- Windows 10 -->
32- <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
32+<!--
33+<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
34+-->
3335 <!-- Windows 8.1 -->
3436 <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
3537 <!-- Windows 8 -->
--- a/FDK/コード/03.サウンド/CSoundDeviceWASAPI.cs
+++ b/FDK/コード/03.サウンド/CSoundDeviceWASAPI.cs
@@ -227,13 +227,15 @@ namespace FDK
227227
228228 // Trace.TraceInformation( "Selected Default WASAPI Device: {0}", deviceInfo.name );
229229 // Trace.TraceInformation( "MinPeriod={0}, DefaultPeriod={1}", deviceInfo.minperiod, deviceInfo.defperiod );
230- n更新間隔ms = (long) ( deviceInfo.minperiod * 1000 );
230+ //n更新間隔ms = (long) ( deviceInfo.minperiod * 1000 );
231+
232+ n更新間隔ms = Convert.ToInt64(Math.Ceiling(deviceInfo.minperiod * 1000.0f));
233+
234+ //n更新間隔ms = Convert.ToInt64((deviceInfo.minperiod + 0.0005) * 1000.0f); // Win10では、更新間隔がminperiod以下だと、確実にBASS_ERROR_UNKNOWN
235+ //n更新間隔ms = Convert.ToInt64((deviceInfo.defperiod + 0.0005) * 1000.0f); // Win10では、更新間隔がminperiod以下だと、確実にBASS_ERROR_UNKNOWN
236+
231237 if ( n希望バッファサイズms <= 0 || n希望バッファサイズms < n更新間隔ms + 1 )
232238 {
233- if (FDK.COS.bIsWin10OrLater && n更新間隔ms < deviceInfo.minperiod * 1000)
234- {
235- n更新間隔ms = Convert.ToInt64((deviceInfo.minperiod + 0.0005) * 1000.0f); // Win10では、更新間隔がminperiod以下だと、確実にBASS_ERROR_UNKNOWN
236- }
237239 n希望バッファサイズms = n更新間隔ms + 1; // 2013.4.25 #31237 yyagi; バッファサイズ設定の完全自動化。更新間隔=バッファサイズにするとBASS_ERROR_UNKNOWNになるので+1する。
238240 }
239241 }
@@ -271,13 +273,10 @@ namespace FDK
271273 }
272274 n周波数 = deviceInfo.mixfreq;
273275 nチャンネル数 = deviceInfo.mixchans;
274- //n希望バッファサイズms = n更新間隔ms = 0;
275276 Trace.TraceInformation("n希望バッファサイズms=" + n希望バッファサイズms);
276277 Trace.TraceInformation("n更新間隔ms=" + n更新間隔ms);
277278 float f希望バッファサイズsec = (n希望バッファサイズms > 0) ? (n希望バッファサイズms / 1000.0f) : deviceInfo.minperiod * 4;
278279 float f更新間隔sec = (n更新間隔ms > 0)? (n更新間隔ms / 1000.0f) : deviceInfo.minperiod;
279- //f希望バッファサイズsec = 0.01f;
280- //f更新間隔sec = 0.003f;
281280 Trace.TraceInformation("Start Bass_Wasapi_Init(device=" + nDevNo + ", freq=" + n周波数 + ", nchans=" + nチャンネル数 + ", flags=" + flags + "," +
282281 " buffer=" + f希望バッファサイズsec + ", period=" + f更新間隔sec);
283282 if (BassWasapi.BASS_WASAPI_Init(nDevNo, n周波数, nチャンネル数, flags, f希望バッファサイズsec, f更新間隔sec, this.tWasapiProc, IntPtr.Zero))
旧リポジトリブラウザで表示