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:
parent
92b096c159
commit
c610b3ad93
@ -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
@ -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": {
|
||||||
|
@ -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)");
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user