1
0
mirror of synced 2024-11-23 23:21:06 +01:00

Translate japanese variables and code (part 2) (#708)

* feat: translate CConversion

* feat: CConfigIni part 1

* feat: CConfigIni part 2

* feat: CConfigIni part 3
This commit is contained in:
Julian Holfeld 2024-10-20 18:54:08 +02:00 committed by GitHub
parent 92b096c159
commit c610b3ad93
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 414 additions and 479 deletions

View File

@ -2,11 +2,10 @@
public class CConversion { public class CConversion {
// Properties // Properties
public static readonly string str16進数文字 = "0123456789ABCDEFabcdef"; public static readonly string HexChars = "0123456789ABCDEFabcdef";
public static readonly string str36進数文字 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; public static readonly string Base36Chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
// Methods
// メソッド
public static bool bONorOFF(char c) { public static bool bONorOFF(char c) {
return (c != '0'); return (c != '0');
@ -25,7 +24,7 @@
return (float)RadianToDegree((double)angle); return (float)RadianToDegree((double)angle);
} }
public static int n値を範囲内に丸めて返す(int value, int min, int max) { public static int ClampValue(int value, int min, int max) {
if (value < min) if (value < min)
return min; return min;
@ -34,7 +33,8 @@
return value; return value;
} }
public static int n値を文字列から取得して範囲内に丸めて返す(string text, int min, int max, int defaultValue) {
public static int ParseIntInRange(string text, int min, int max, int defaultValue) {
int num; int num;
if ((int.TryParse(text, out num) && (num >= min)) && (num <= max)) if ((int.TryParse(text, out num) && (num >= min)) && (num <= max))
return num; return num;
@ -42,7 +42,7 @@
return defaultValue; return defaultValue;
} }
public static double db値を文字列から取得して範囲内に丸めて返す(string text, double min, double max, double defaultValue) { public static double ParseDoubleInRange(string text, double min, double max, double defaultValue) {
double num; double num;
if ((double.TryParse(text, out num) && (num >= min)) && (num <= max)) if ((double.TryParse(text, out num) && (num >= min)) && (num <= max))
return num; return num;
@ -50,9 +50,7 @@
return defaultValue; return defaultValue;
} }
// #23568 2010.11.04 ikanick add public static int ParseIntInRangeAndClamp(string text, int min, int max, int defaultValue) {
public static int n値を文字列から取得して範囲内にちゃんと丸めて返す(string text, int min, int max, int defaultValue) {
// 1 と違って範囲外の場合ちゃんと丸めて返します。
int num; int num;
if (int.TryParse(text, out num)) { if (int.TryParse(text, out num)) {
if ((num >= min) && (num <= max)) if ((num >= min) && (num <= max))
@ -65,7 +63,7 @@
return defaultValue; return defaultValue;
} }
// --------------------ここまで-------------------------/
public static int StringToInt(string text, int defaultValue) { public static int StringToInt(string text, int defaultValue) {
int num; int num;
if (!int.TryParse(text, out num)) if (!int.TryParse(text, out num))
@ -74,18 +72,18 @@
return num; return num;
} }
public static int n16進数2桁の文字列を数値に変換して返す(string strNum) { public static int HexStringToInt(string strNum) {
if (strNum.Length < 2) if (strNum.Length < 2)
return -1; return -1;
int digit2 = str16進数文字.IndexOf(strNum[0]); int digit2 = HexChars.IndexOf(strNum[0]);
if (digit2 < 0) if (digit2 < 0)
return -1; return -1;
if (digit2 >= 16) if (digit2 >= 16)
digit2 -= (16 - 10); // A,B,C... -> 1,2,3... digit2 -= (16 - 10); // A,B,C... -> 1,2,3...
int digit1 = str16進数文字.IndexOf(strNum[1]); int digit1 = HexChars.IndexOf(strNum[1]);
if (digit1 < 0) if (digit1 < 0)
return -1; return -1;
@ -94,18 +92,19 @@
return digit2 * 16 + digit1; return digit2 * 16 + digit1;
} }
public static int n36進数2桁の文字列を数値に変換して返す(string strNum) {
public static int Base36StringToInt(string strNum) {
if (strNum.Length < 2) if (strNum.Length < 2)
return -1; return -1;
int digit2 = str36進数文字.IndexOf(strNum[0]); int digit2 = Base36Chars.IndexOf(strNum[0]);
if (digit2 < 0) if (digit2 < 0)
return -1; return -1;
if (digit2 >= 36) if (digit2 >= 36)
digit2 -= (36 - 10); // A,B,C... -> 1,2,3... digit2 -= (36 - 10); // A,B,C... -> 1,2,3...
int digit1 = str36進数文字.IndexOf(strNum[1]); int digit1 = Base36Chars.IndexOf(strNum[1]);
if (digit1 < 0) if (digit1 < 0)
return -1; return -1;
@ -114,52 +113,55 @@
return digit2 * 36 + digit1; return digit2 * 36 + digit1;
} }
public static int n小節番号の文字列3桁を数値に変換して返す(string strNum) {
public static int ParseSectionNumber(string strNum) {
if (strNum.Length >= 3) { if (strNum.Length >= 3) {
int digit3 = str36進数文字.IndexOf(strNum[0]); int digit3 = Base36Chars.IndexOf(strNum[0]);
if (digit3 < 0) if (digit3 < 0)
return -1; return -1;
if (digit3 >= 36) // 3桁目は36進数 if (digit3 >= 36) // 3桁目は36進数
digit3 -= (36 - 10); digit3 -= (36 - 10);
int digit2 = str16進数文字.IndexOf(strNum[1]); // 2桁目は10進数 int digit2 = HexChars.IndexOf(strNum[1]); // 2桁目は10進数
if ((digit2 < 0) || (digit2 > 9)) if ((digit2 < 0) || (digit2 > 9))
return -1; return -1;
int digit1 = str16進数文字.IndexOf(strNum[2]); // 1桁目も10進数 int digit1 = HexChars.IndexOf(strNum[2]); // 1桁目も10進数
if ((digit1 >= 0) && (digit1 <= 9)) if ((digit1 >= 0) && (digit1 <= 9))
return digit3 * 100 + digit2 * 10 + digit1; return digit3 * 100 + digit2 * 10 + digit1;
} }
return -1; return -1;
} }
public static string str小節番号を文字列3桁に変換して返す(int num) { public static string SectionNumberToString(int num) {
if ((num < 0) || (num >= 3600)) // 3600 == Z99 + 1 if ((num < 0) || (num >= 3600)) // 3600 == Z99 + 1
return "000"; return "000";
int digit4 = num / 100; int digit4 = num / 100;
int digit2 = (num % 100) / 10; int digit2 = (num % 100) / 10;
int digit1 = (num % 100) % 10; int digit1 = (num % 100) % 10;
char ch3 = str36進数文字[digit4]; char ch3 = Base36Chars[digit4];
char ch2 = str16進数文字[digit2]; char ch2 = HexChars[digit2];
char ch1 = str16進数文字[digit1]; char ch1 = HexChars[digit1];
return (ch3.ToString() + ch2.ToString() + ch1.ToString()); return (ch3.ToString() + ch2.ToString() + ch1.ToString());
} }
public static string str数値を16進数2桁に変換して返す(int num) {
public static string IntToHexString(int num) {
if ((num < 0) || (num >= 0x100)) if ((num < 0) || (num >= 0x100))
return "00"; return "00";
char ch2 = str16進数文字[num / 0x10]; char ch2 = HexChars[num / 0x10];
char ch1 = str16進数文字[num % 0x10]; char ch1 = HexChars[num % 0x10];
return (ch2.ToString() + ch1.ToString()); return (ch2.ToString() + ch1.ToString());
} }
public static string str数値を36進数2桁に変換して返す(int num) {
public static string IntToBase36String(int num) {
if ((num < 0) || (num >= 36 * 36)) if ((num < 0) || (num >= 36 * 36))
return "00"; return "00";
char ch2 = str36進数文字[num / 36]; char ch2 = Base36Chars[num / 36];
char ch1 = str36進数文字[num % 36]; char ch1 = Base36Chars[num % 36];
return (ch2.ToString() + ch1.ToString()); return (ch2.ToString() + ch1.ToString());
} }
@ -184,29 +186,28 @@
return nArray; return nArray;
} }
/// <summary> /// <summary>
/// 百分率数値を255段階数値に変換するメソッド。透明度用。 /// Converts a percentage value to a value on a scale of 255 (for opacity).
/// </summary> /// </summary>
/// <param name="num"></param> /// <param name="num"></param>
/// <returns></returns> /// <returns></returns>
public static int nParsentTo255(double num) { public static int PercentageTo255(double num) {
return (int)(255.0 * num); return (int)(255.0 * num);
} }
/// <summary> /// <summary>
/// 255段階数値を百分率に変換するメソッド。 /// Converts a value from a scale of 255 to a percentage.
/// </summary> /// </summary>
/// <param name="num"></param> /// <param name="num"></param>
/// <returns></returns> /// <returns></returns>
public static int n255ToParsent(int num) { public static int N255ToPercentage(int num) {
return (int)(100.0 / num); return (int)(100.0 / num);
} }
public static Color4 n255ToColor4(int nR, int nG, int nB) { public static Color4 N255ToColor4(int nR, int nG, int nB) {
float fR = n255ToParsent(nR); float fR = N255ToPercentage(nR);
float fG = n255ToParsent(nG); float fG = N255ToPercentage(nG);
float fB = n255ToParsent(nB); float fB = N255ToPercentage(nB);
return new Color4(fR, fG, fB, 1f); return new Color4(fR, fG, fB, 1f);
} }

File diff suppressed because it is too large Load Diff

View File

@ -1015,7 +1015,7 @@ namespace OpenTaiko {
} }
case "DiffDispMode": { case "DiffDispMode": {
this.eDiffDispMode = (EDifficultyDisplayType)CConversion.n値を文字列から取得して範囲内に丸めて返す(strParam, 0, 2, (int)this.eDiffDispMode); this.eDiffDispMode = (EDifficultyDisplayType)CConversion.ParseIntInRange(strParam, 0, 2, (int)this.eDiffDispMode);
break; break;
} }
case "NowStageDisp": { case "NowStageDisp": {

View File

@ -509,7 +509,7 @@ namespace OpenTaiko {
if (File.Exists(path)) { if (File.Exists(path)) {
try { try {
// Load config info // Load config info
ConfigIni.tファイルから読み込み(path); ConfigIni.LoadFromFile(path);
} catch (Exception e) { } catch (Exception e) {
Trace.TraceError(e.ToString()); Trace.TraceError(e.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (b8d93255-bbe4-4ca3-8264-7ee5175b19f3)"); Trace.TraceError("例外が発生しましたが処理を継続します。 (b8d93255-bbe4-4ca3-8264-7ee5175b19f3)");

View File

@ -290,7 +290,7 @@ namespace OpenTaiko {
{ {
if (device.KeyPressed(i)) { if (device.KeyPressed(i)) {
OpenTaiko.Skin.soundDecideSFX.tPlay(); OpenTaiko.Skin.soundDecideSFX.tPlay();
OpenTaiko.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Gamepad, device.ID, i, this.pad); OpenTaiko.ConfigIni.RemoveDuplicateKeyAssignments(EInputDevice.Gamepad, device.ID, i, this.pad);
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Gamepad; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Gamepad;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i;
@ -308,7 +308,7 @@ namespace OpenTaiko {
{ {
if (device.KeyPressed(i)) { if (device.KeyPressed(i)) {
OpenTaiko.Skin.soundDecideSFX.tPlay(); OpenTaiko.Skin.soundDecideSFX.tPlay();
OpenTaiko.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Joypad, device.ID, i, this.pad); OpenTaiko.ConfigIni.RemoveDuplicateKeyAssignments(EInputDevice.Joypad, device.ID, i, this.pad);
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Joypad; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Joypad;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i;
@ -334,7 +334,7 @@ namespace OpenTaiko {
OpenTaiko.InputManager.Keyboard.KeyPressed(i)) { OpenTaiko.InputManager.Keyboard.KeyPressed(i)) {
OpenTaiko.Skin.soundDecideSFX.tPlay(); OpenTaiko.Skin.soundDecideSFX.tPlay();
if (pad < EKeyConfigPad.Capture) if (pad < EKeyConfigPad.Capture)
OpenTaiko.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Keyboard, 0, i, this.pad); OpenTaiko.ConfigIni.RemoveDuplicateKeyAssignments(EInputDevice.Keyboard, 0, i, this.pad);
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Keyboard; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Keyboard;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = 0; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = 0;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i;
@ -356,7 +356,7 @@ namespace OpenTaiko {
for (int i = 0; i < 0x100; i++) { for (int i = 0; i < 0x100; i++) {
if (device.KeyPressed(i)) { if (device.KeyPressed(i)) {
OpenTaiko.Skin.soundDecideSFX.tPlay(); OpenTaiko.Skin.soundDecideSFX.tPlay();
OpenTaiko.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.MIDIInput, device.ID, i, this.pad); OpenTaiko.ConfigIni.RemoveDuplicateKeyAssignments(EInputDevice.MIDIInput, device.ID, i, this.pad);
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.MIDIInput; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.MIDIInput;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = device.ID;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i;
@ -370,7 +370,7 @@ namespace OpenTaiko {
private bool tキーチェックとアサイン_Mouse() { private bool tキーチェックとアサイン_Mouse() {
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
if (OpenTaiko.InputManager.Mouse.KeyPressed(i)) { if (OpenTaiko.InputManager.Mouse.KeyPressed(i)) {
OpenTaiko.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する(EInputDevice.Mouse, 0, i, this.pad); OpenTaiko.ConfigIni.RemoveDuplicateKeyAssignments(EInputDevice.Mouse, 0, i, this.pad);
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Mouse; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].InputDevice = EInputDevice.Mouse;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = 0; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].ID = 0;
OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i; OpenTaiko.ConfigIni.KeyAssign[(int)this.part][(int)this.pad][this.n現在の選択行].Code = i;

View File

@ -8,49 +8,49 @@ namespace OpenTaiko {
Stop, Stop,
Play, Play,
Preview Preview
} }
/// <summary> /// <summary>
/// DTXVモードかどうか /// DTXVモードかどうか
/// </summary> /// </summary>
public bool Enabled { public bool Enabled {
get; get;
set; set;
} }
/// <summary> /// <summary>
/// プレビューサウンドの再生が発生した /// プレビューサウンドの再生が発生した
/// </summary> /// </summary>
public bool Preview { public bool Preview {
get; get;
set; set;
} }
/// <summary> /// <summary>
/// 外部から再指示が発生したか /// 外部から再指示が発生したか
/// </summary> /// </summary>
public bool Refreshed { public bool Refreshed {
get; get;
set; set;
} }
/// <summary> /// <summary>
/// 演奏開始小節番号 /// 演奏開始小節番号
/// </summary> /// </summary>
public int nStartBar { public int nStartBar {
get; get;
set; set;
} }
/// <summary> /// <summary>
/// DTXファイルの再読み込みが必要かどうか /// DTXファイルの再読み込みが必要かどうか
/// </summary> /// </summary>
public bool NeedReload { public bool NeedReload {
get; get;
private set; private set;
// private set; // 本来はprivate setにすべきだが、デバッグが簡単になるので、しばらくはprivateなしのままにする。 // private set; // 本来はprivate setにすべきだが、デバッグが簡単になるので、しばらくはprivateなしのままにする。
} }
/// <summary> /// <summary>
/// DTXCからのコマンド /// DTXCからのコマンド
/// </summary> /// </summary>
@ -66,7 +66,7 @@ namespace OpenTaiko {
public int nASIOdevice { public int nASIOdevice {
get; get;
private set; private set;
} }
/// <summary> /// <summary>
/// 前回からサウンドデバイスが変更されたか /// 前回からサウンドデバイスが変更されたか
/// </summary> /// </summary>
@ -116,9 +116,9 @@ namespace OpenTaiko {
public bool lastVSyncWait { public bool lastVSyncWait {
get; get;
private set; private set;
} }
/// <summary> /// <summary>
/// コンストラクタ /// コンストラクタ
/// </summary> /// </summary>
@ -136,8 +136,8 @@ namespace OpenTaiko {
this.lastTimeStretch = false; this.lastTimeStretch = false;
this.VSyncWait = true; this.VSyncWait = true;
this.lastVSyncWait = true; this.lastVSyncWait = true;
} }
/// <summary> /// <summary>
/// DTXファイルのリロードが必要かどうか判定する /// DTXファイルのリロードが必要かどうか判定する
/// </summary> /// </summary>
@ -147,17 +147,17 @@ namespace OpenTaiko {
/// <remarks>これを呼び出すたびに、Refreshedをtrueにする</remarks> /// <remarks>これを呼び出すたびに、Refreshedをtrueにする</remarks>
/// <exception cref="FileNotFoundException"></exception> /// <exception cref="FileNotFoundException"></exception>
public bool bIsNeedReloadDTX(string filename) { public bool bIsNeedReloadDTX(string filename) {
if (!File.Exists(filename)) // 指定したファイルが存在しないなら例外終了 if (!File.Exists(filename)) // 指定したファイルが存在しないなら例外終了
{ {
Trace.TraceError("ファイルが見つかりません。({0})", filename); Trace.TraceError("ファイルが見つかりません。({0})", filename);
throw new FileNotFoundException(); throw new FileNotFoundException();
//return false; //return false;
} }
this.Refreshed = true; this.Refreshed = true;
// 前回とファイル名が異なるか、タイムスタンプが更新されているか、 // 前回とファイル名が異なるか、タイムスタンプが更新されているか、
// GRmode等の設定を変更したなら、DTX要更新 // GRmode等の設定を変更したなら、DTX要更新
DateTime current_timestamp = File.GetLastWriteTime(filename); DateTime current_timestamp = File.GetLastWriteTime(filename);
if (last_path != filename || current_timestamp > last_timestamp || if (last_path != filename || current_timestamp > last_timestamp ||
this.lastGRmode != this.GRmode || this.lastTimeStretch != this.TimeStretch || this.lastVSyncWait != this.VSyncWait) { this.lastGRmode != this.GRmode || this.lastTimeStretch != this.TimeStretch || this.lastVSyncWait != this.VSyncWait) {
@ -172,8 +172,8 @@ namespace OpenTaiko {
} }
this.NeedReload = false; this.NeedReload = false;
return false; return false;
} }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -190,44 +190,44 @@ namespace OpenTaiko {
while (analyzing) { while (analyzing) {
if (arg == "") { if (arg == "") {
analyzing = false; analyzing = false;
} else if (arg.StartsWith("-V", StringComparison.OrdinalIgnoreCase)) // サウンド再生 } else if (arg.StartsWith("-V", StringComparison.OrdinalIgnoreCase)) // サウンド再生
{ {
// -Vvvv,ppp,"filename"の形式。 vvv=volume, ppp=pan. // -Vvvv,ppp,"filename"の形式。 vvv=volume, ppp=pan.
this.Enabled = true; this.Enabled = true;
this.Command = ECommand.Preview; this.Command = ECommand.Preview;
this.Refreshed = true; this.Refreshed = true;
ret = true; ret = true;
arg = arg.Substring(2); arg = arg.Substring(2);
int pVol = arg.IndexOf(','); //Trace.TraceInformation( "pVol=" + pVol ); int pVol = arg.IndexOf(','); //Trace.TraceInformation( "pVol=" + pVol );
string strVol = arg.Substring(0, pVol); //Trace.TraceInformation( "strVol=" + strVol ); string strVol = arg.Substring(0, pVol); //Trace.TraceInformation( "strVol=" + strVol );
this.previewVolume = Convert.ToInt32(strVol); //Trace.TraceInformation( "previewVolume=" + previewVolume ); this.previewVolume = Convert.ToInt32(strVol); //Trace.TraceInformation( "previewVolume=" + previewVolume );
int pPan = arg.IndexOf(',', pVol + 1); //Trace.TraceInformation( "pPan=" + pPan ); int pPan = arg.IndexOf(',', pVol + 1); //Trace.TraceInformation( "pPan=" + pPan );
string strPan = arg.Substring(pVol + 1, pPan - pVol - 1); //Trace.TraceInformation( "strPan=" + strPan ); string strPan = arg.Substring(pVol + 1, pPan - pVol - 1); //Trace.TraceInformation( "strPan=" + strPan );
this.previewPan = Convert.ToInt32(strPan); //Trace.TraceInformation( "previewPan=" + previewPan ); this.previewPan = Convert.ToInt32(strPan); //Trace.TraceInformation( "previewPan=" + previewPan );
arg = arg.Substring(pPan + 1); arg = arg.Substring(pPan + 1);
arg = arg.Trim(new char[] { '\"' }); arg = arg.Trim(new char[] { '\"' });
this.previewFilename = arg; this.previewFilename = arg;
analyzing = false; analyzing = false;
} }
// -S -Nxxx filename // -S -Nxxx filename
else if (arg.StartsWith("-S", StringComparison.OrdinalIgnoreCase)) // DTXV再生停止 else if (arg.StartsWith("-S", StringComparison.OrdinalIgnoreCase)) // DTXV再生停止
{ {
this.Enabled = true; this.Enabled = true;
this.Command = ECommand.Stop; this.Command = ECommand.Stop;
this.Refreshed = true; this.Refreshed = true;
ret = true; ret = true;
arg = arg.Substring(2); arg = arg.Substring(2);
} else if (arg.StartsWith("-D", StringComparison.OrdinalIgnoreCase)) { } else if (arg.StartsWith("-D", StringComparison.OrdinalIgnoreCase)) {
// -DW, -DA1など // -DW, -DA1など
arg = arg.Substring(2); // -D を削除 arg = arg.Substring(2); // -D を削除
switch (arg[0]) { switch (arg[0]) {
#region [ DirectSound ] #region [ DirectSound ]
case 'D': case 'D':
this.ChangedSoundDevice = false; this.ChangedSoundDevice = false;
arg = arg.Substring(1); arg = arg.Substring(1);
break; break;
#endregion #endregion
#region [ WASAPI ] #region [ WASAPI ]
case 'W': case 'W':
@ -238,7 +238,7 @@ namespace OpenTaiko {
this.ChangedSoundDevice = false; this.ChangedSoundDevice = false;
} }
arg = arg.Substring(1); arg = arg.Substring(1);
break; break;
#endregion #endregion
#region [ ASIO ] #region [ ASIO ]
case 'A': case 'A':
@ -267,37 +267,37 @@ namespace OpenTaiko {
this.ChangedSoundDevice = true; this.ChangedSoundDevice = true;
this.nASIOdevice = nAsioDev; this.nASIOdevice = nAsioDev;
} }
break; break;
#endregion #endregion
} }
#region [ GRmode, TimeStretch, VSyncWait ] #region [ GRmode, TimeStretch, VSyncWait ]
{ {
// Reload判定は、-Nのところで行う // Reload判定は、-Nのところで行う
this.GRmode = (arg[0] == 'Y'); this.GRmode = (arg[0] == 'Y');
this.TimeStretch = (arg[1] == 'Y'); this.TimeStretch = (arg[1] == 'Y');
this.VSyncWait = (arg[2] == 'Y'); this.VSyncWait = (arg[2] == 'Y');
arg = arg.Substring(3); arg = arg.Substring(3);
} }
#endregion #endregion
} else if (arg.StartsWith("-N", StringComparison.OrdinalIgnoreCase)) { } else if (arg.StartsWith("-N", StringComparison.OrdinalIgnoreCase)) {
this.Enabled = true; this.Enabled = true;
this.Command = ECommand.Play; this.Command = ECommand.Play;
ret = true; ret = true;
arg = arg.Substring(2); // "-N"を除去 arg = arg.Substring(2); // "-N"を除去
string[] p = arg.Split(new char[] { ' ' }); string[] p = arg.Split(new char[] { ' ' });
this.nStartBar = int.Parse(p[0]); // 再生開始小節 this.nStartBar = int.Parse(p[0]); // 再生開始小節
if (this.nStartBar < 0) { if (this.nStartBar < 0) {
this.nStartBar = -1; this.nStartBar = -1;
} }
int startIndex = arg.IndexOf(' '); int startIndex = arg.IndexOf(' ');
string filename = arg.Substring(startIndex + 1); // 再生ファイル名(フルパス) これで引数が終わっていることを想定 string filename = arg.Substring(startIndex + 1); // 再生ファイル名(フルパス) これで引数が終わっていることを想定
try { try {
filename = filename.Trim(new char[] { '\"' }); filename = filename.Trim(new char[] { '\"' });
bIsNeedReloadDTX(filename); bIsNeedReloadDTX(filename);
} catch (Exception e) // 指定ファイルが存在しない } catch (Exception e) // 指定ファイルが存在しない
{ {
Trace.TraceError(e.ToString()); Trace.TraceError(e.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (d309a608-7311-411e-a565-19226c3116c2)"); Trace.TraceError("例外が発生しましたが処理を継続します。 (d309a608-7311-411e-a565-19226c3116c2)");
@ -306,12 +306,12 @@ namespace OpenTaiko {
analyzing = false; analyzing = false;
} }
} }
} }
string[] s = { "Stop", "Play", "Preview" }; string[] s = { "Stop", "Play", "Preview" };
Trace.TraceInformation("Command: " + s[(int)this.Command]); Trace.TraceInformation("Command: " + s[(int)this.Command]);
return ret; return ret;
} }
/// <summary> /// <summary>
/// Viewer関連の設定のみを更新して、Config.iniに書き出す /// Viewer関連の設定のみを更新して、Config.iniに書き出す
/// </summary> /// </summary>
@ -320,20 +320,20 @@ namespace OpenTaiko {
string path = OpenTaiko.strEXEのあるフォルダ + "Config.ini"; string path = OpenTaiko.strEXEのあるフォルダ + "Config.ini";
if (File.Exists(path)) { if (File.Exists(path)) {
FileInfo fi = new FileInfo(path); FileInfo fi = new FileInfo(path);
if (fi.Length > 0) // Config.iniが0byteだったなら、読み込まない if (fi.Length > 0) // Config.iniが0byteだったなら、読み込まない
{ {
try { try {
cc.tファイルから読み込み(path); cc.LoadFromFile(path);
} catch (Exception e) { } catch (Exception e) {
//ConfigIni = new CConfigIni(); // 存在してなければ新規生成 //ConfigIni = new CConfigIni(); // 存在してなければ新規生成
Trace.TraceError(e.ToString()); Trace.TraceError(e.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (825f9ba6-9164-4f2e-8c41-edf4d73c06c9)"); Trace.TraceError("例外が発生しましたが処理を継続します。 (825f9ba6-9164-4f2e-8c41-edf4d73c06c9)");
} }
} }
fi = null; fi = null;
} }
//cc.nViewerScrollSpeed[0] = TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.SaveFile]; //cc.nViewerScrollSpeed[0] = TJAPlayer3.ConfigIni.nScrollSpeed[TJAPlayer3.SaveFile];
cc.bViewerShowDebugStatus = OpenTaiko.ConfigIni.bDisplayDebugInfo; cc.bViewerShowDebugStatus = OpenTaiko.ConfigIni.bDisplayDebugInfo;
cc.bViewerVSyncWait = OpenTaiko.ConfigIni.bEnableVSync; cc.bViewerVSyncWait = OpenTaiko.ConfigIni.bEnableVSync;
cc.bViewerTimeStretch = OpenTaiko.ConfigIni.bTimeStretch; cc.bViewerTimeStretch = OpenTaiko.ConfigIni.bTimeStretch;