OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / スコア、曲 / CDTXNestedTypes.cs
diff --git a/DTXManiaプロジェクト/コード/スコア、曲/CDTXNestedTypes.cs b/DTXManiaプロジェクト/コード/スコア、曲/CDTXNestedTypes.cs
deleted file mode 100644 (file)
index 6d594db..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using System.Threading.Tasks;\r
-using System.Drawing;\r
-using System.Diagnostics;\r
-using FDK;\r
-using System.IO;\r
-\r
-namespace DTXMania\r
-{\r
-       public partial class CDTX\r
-       {\r
-               // クラス\r
-\r
-               public class CAVI : IDisposable\r
-               {\r
-                       public CAviDS avi;\r
-                       private bool bDispose済み;\r
-\r
-                       int n番号;\r
-                       string strコメント文 = "";\r
-                       string strファイル名 = "";\r
-                       double dbPlaySpeed = 1;\r
-\r
-                       public CAVI(int number, string filename, string comment, double playSpeed)\r
-                       {\r
-                               n番号 = number;\r
-                               strファイル名 = filename;\r
-                               strコメント文 = comment;\r
-                               dbPlaySpeed = playSpeed;\r
-                       }\r
-\r
-                       public void OnDeviceCreated()\r
-                       {\r
-                               #region [ strAVIファイル名の作成。]\r
-                               //-----------------\r
-                               string strAVIファイル名;\r
-\r
-                               if (CDTXMania.Instance.DTX != null && !Path.IsPathRooted(this.strファイル名))  // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
-                               {                                     // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
-                                       if (!string.IsNullOrEmpty(CDTXMania.Instance.DTX.PATH_WAV))\r
-                                               strAVIファイル名 = CDTXMania.Instance.DTX.PATH_WAV + this.strファイル名;\r
-                                       else\r
-                                               strAVIファイル名 = CDTXMania.Instance.DTX.strフォルダ名 + this.strファイル名;\r
-                               }\r
-                               else\r
-                               {\r
-                                       strAVIファイル名 = this.strファイル名;\r
-                               }\r
-                               //-----------------\r
-                               #endregion\r
-\r
-                               if (!File.Exists(strAVIファイル名))\r
-                               {\r
-                                       Trace.TraceWarning("CAVI: ファイルが存在しません。({0})({1})", this.strコメント文, Path.GetFileName(strAVIファイル名));\r
-                                       this.avi = null;\r
-                                       return;\r
-                               }\r
-\r
-                               // AVI の生成。\r
-\r
-                               try\r
-                               {\r
-                                       this.avi = new CAviDS(strAVIファイル名, this.dbPlaySpeed);\r
-                                       Trace.TraceInformation("CAviDS: 動画を生成しました。({0})({1})({2}msec)", this.strコメント文, Path.GetFileName(strAVIファイル名), this.avi.GetDuration());\r
-                               }\r
-                               catch (Exception e)\r
-                               {\r
-                                       Trace.TraceError(e.Message);\r
-                                       Trace.TraceError("CAviDS: 動画の生成に失敗しました。({0})({1})", this.strコメント文, Path.GetFileName(strAVIファイル名));\r
-                                       this.avi = null;\r
-                               }\r
-                       }\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CAVI{0}: File:{1}, Comment:{2}", CDTX.tZZ(this.n番号), this.strファイル名, this.strコメント文);\r
-                       }\r
-\r
-                       #region [ IDisposable 実装 ]\r
-                       //-----------------\r
-                       public void Dispose()\r
-                       {\r
-                               if (this.bDispose済み)\r
-                                       return;\r
-\r
-                               if (this.avi != null)\r
-                               {\r
-                                       #region [ strAVIファイル名 の作成。なぜDispose時にファイル名の生成をしているのかと思ったら、デバッグログ用でした。 ]\r
-                                       //-----------------\r
-                                       string strAVIファイル名;\r
-                                       if (CDTXMania.Instance.DTX != null && !Path.IsPathRooted(this.strファイル名))  // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
-                                       {                                     // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
-                                               if (!string.IsNullOrEmpty(CDTXMania.Instance.DTX.PATH_WAV))\r
-                                                       strAVIファイル名 = CDTXMania.Instance.DTX.PATH_WAV + this.strファイル名;\r
-                                               else\r
-                                                       strAVIファイル名 = CDTXMania.Instance.DTX.strフォルダ名 + this.strファイル名;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               strAVIファイル名 = this.strファイル名;\r
-                                       }\r
-                                       //-----------------\r
-                                       #endregion\r
-\r
-                                       this.avi.Dispose();\r
-                                       this.avi = null;\r
-\r
-                                       Trace.TraceInformation("動画を解放しました。({0})({1})", this.strコメント文, Path.GetFileName(strAVIファイル名));\r
-                               }\r
-                               this.bDispose済み = true;\r
-                       }\r
-                       //-----------------\r
-                       #endregion\r
-               }\r
-               public class CAVIPAN\r
-               {\r
-                       public int nAVI番号;\r
-                       public int n移動時間ct;\r
-                       public int n番号;\r
-                       public Point pt動画側開始位置 = new Point(0, 0);\r
-                       public Point pt動画側終了位置 = new Point(0, 0);\r
-                       public Point pt表示側開始位置 = new Point(0, 0);\r
-                       public Point pt表示側終了位置 = new Point(0, 0);\r
-                       public Size sz開始サイズ = new Size(0, 0);\r
-                       public Size sz終了サイズ = new Size(0, 0);\r
-\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CAVIPAN{0}: AVI:{14}, 開始サイズ:{1}x{2}, 終了サイズ:{3}x{4}, 動画側開始位置:{5}x{6}, 動画側終了位置:{7}x{8}, 表示側開始位置:{9}x{10}, 表示側終了位置:{11}x{12}, 移動時間:{13}ct",\r
-                                       CDTX.tZZ(this.n番号),\r
-                                       this.sz開始サイズ.Width, this.sz開始サイズ.Height,\r
-                                       this.sz終了サイズ.Width, this.sz終了サイズ.Height,\r
-                                       this.pt動画側開始位置.X, this.pt動画側開始位置.Y,\r
-                                       this.pt動画側終了位置.X, this.pt動画側終了位置.Y,\r
-                                       this.pt表示側開始位置.X, this.pt表示側開始位置.Y,\r
-                                       this.pt表示側終了位置.X, this.pt表示側終了位置.Y,\r
-                                       this.n移動時間ct,\r
-                                       CDTX.tZZ(this.nAVI番号));\r
-                       }\r
-               }\r
-               public class CBGA\r
-               {\r
-                       public int nBMP番号;\r
-                       public int n番号;\r
-                       public Point pt画像側右下座標 = new Point(0, 0);\r
-                       public Point pt画像側左上座標 = new Point(0, 0);\r
-                       public Point pt表示座標 = new Point(0, 0);\r
-\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CBGA{0}, BMP:{1}, 画像側左上座標:{2}x{3}, 画像側右下座標:{4}x{5}, 表示座標:{6}x{7}",\r
-                                       CDTX.tZZ(this.n番号),\r
-                                       CDTX.tZZ(this.nBMP番号),\r
-                                       this.pt画像側左上座標.X, this.pt画像側左上座標.Y,\r
-                                       this.pt画像側右下座標.X, this.pt画像側右下座標.Y,\r
-                                       this.pt表示座標.X, this.pt表示座標.Y);\r
-                       }\r
-               }\r
-               public class CBGAPAN\r
-               {\r
-                       public int nBMP番号;\r
-                       public int n移動時間ct;\r
-                       public int n番号;\r
-                       public Point pt画像側開始位置 = new Point(0, 0);\r
-                       public Point pt画像側終了位置 = new Point(0, 0);\r
-                       public Point pt表示側開始位置 = new Point(0, 0);\r
-                       public Point pt表示側終了位置 = new Point(0, 0);\r
-                       public Size sz開始サイズ = new Size(0, 0);\r
-                       public Size sz終了サイズ = new Size(0, 0);\r
-\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CBGAPAN{0}: BMP:{14}, 開始サイズ:{1}x{2}, 終了サイズ:{3}x{4}, 画像側開始位置:{5}x{6}, 画像側終了位置:{7}x{8}, 表示側開始位置:{9}x{10}, 表示側終了位置:{11}x{12}, 移動時間:{13}ct",\r
-                                       CDTX.tZZ(this.nBMP番号),\r
-                                       this.sz開始サイズ.Width, this.sz開始サイズ.Height,\r
-                                       this.sz終了サイズ.Width, this.sz終了サイズ.Height,\r
-                                       this.pt画像側開始位置.X, this.pt画像側開始位置.Y,\r
-                                       this.pt画像側終了位置.X, this.pt画像側終了位置.Y,\r
-                                       this.pt表示側開始位置.X, this.pt表示側開始位置.Y,\r
-                                       this.pt表示側終了位置.X, this.pt表示側終了位置.Y,\r
-                                       this.n移動時間ct,\r
-                                       CDTX.tZZ(this.nBMP番号));\r
-                       }\r
-               }\r
-               public class CBMP : CBMPbase, IDisposable\r
-               {\r
-                       public CBMP()\r
-                       {\r
-                               b黒を透過する = true; // BMPでは、黒を透過色とする\r
-                       }\r
-                       public override void PutLog(string strテクスチャファイル名)\r
-                       {\r
-                               Trace.TraceInformation("テクスチャを生成しました。({0})({1})({2}x{3})", this.strコメント文, strテクスチャファイル名, this.n幅, this.n高さ);\r
-                       }\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CBMP{0}: File:{1}, Comment:{2}", CDTX.tZZ(this.n番号), this.strファイル名, this.strコメント文);\r
-                       }\r
-\r
-               }\r
-               public class CBMPTEX : CBMPbase, IDisposable\r
-               {\r
-                       public CBMPTEX()\r
-                       {\r
-                               b黒を透過する = false;  // BMPTEXでは、透過色はαで表現する\r
-                       }\r
-                       public override void PutLog(string strテクスチャファイル名)\r
-                       {\r
-                               Trace.TraceInformation("テクスチャを生成しました。({0})({1})(Gr:{2}x{3})(Tx:{4}x{5})", this.strコメント文, strテクスチャファイル名, this.tx画像.sz画像サイズ.Width, this.tx画像.sz画像サイズ.Height, this.tx画像.szテクスチャサイズ.Width, this.tx画像.szテクスチャサイズ.Height);\r
-                       }\r
-                       public override string ToString()\r
-                       {\r
-                               return string.Format("CBMPTEX{0}: File:{1}, Comment:{2}", CDTX.tZZ(this.n番号), this.strファイル名, this.strコメント文);\r
-                       }\r
-               }\r
-               public class CBMPbase : IDisposable\r
-               {\r
-                       public bool bUse;\r
-                       public int n番号;\r
-                       public string strコメント文 = "";\r
-                       public string strファイル名 = "";\r
-                       public CTexture tx画像;\r
-                       public int n高さ\r
-                       {\r
-                               get\r
-                               {\r
-                                       return this.tx画像.sz画像サイズ.Height;\r
-                               }\r
-                       }\r
-                       public int n幅\r
-                       {\r
-                               get\r
-                               {\r
-                                       return this.tx画像.sz画像サイズ.Width;\r
-                               }\r
-                       }\r
-                       public bool b黒を透過する;\r
-                       public Bitmap bitmap;\r
-\r
-                       public string GetFullPathname\r
-                       {\r
-                               get\r
-                               {\r
-                                       if (!string.IsNullOrEmpty(CDTXMania.Instance.DTX.PATH_WAV))\r
-                                               return CDTXMania.Instance.DTX.PATH_WAV + this.strファイル名;\r
-                                       else\r
-                                               return CDTXMania.Instance.DTX.strフォルダ名 + this.strファイル名;\r
-                               }\r
-                       }\r
-\r
-                       public void OnDeviceCreated()\r
-                       {\r
-                               #region [ strテクスチャファイル名 を作成。]\r
-                               string strテクスチャファイル名 = this.GetFullPathname;\r
-                               #endregion\r
-\r
-                               if (!File.Exists(strテクスチャファイル名))\r
-                               {\r
-                                       Trace.TraceWarning("ファイルが存在しません。({0})({1})", this.strコメント文, strテクスチャファイル名);\r
-                                       this.tx画像 = null;\r
-                                       return;\r
-                               }\r
-\r
-                               // テクスチャを作成。\r
-                               byte[] txData = File.ReadAllBytes(strテクスチャファイル名);\r
-                               this.tx画像 = TextureFactory.tテクスチャの生成(txData, b黒を透過する);\r
-\r
-                               if (this.tx画像 != null)\r
-                               {\r
-                                       // 作成成功。\r
-                                       if (CDTXMania.Instance.ConfigIni.bLogCreateRelease)\r
-                                               PutLog(strテクスチャファイル名);\r
-                                       txData = null;\r
-                                       this.bUse = true;\r
-                               }\r
-                               else\r
-                               {\r
-                                       // 作成失敗。\r
-                                       Trace.TraceError("テクスチャの生成に失敗しました。({0})({1})", this.strコメント文, strテクスチャファイル名);\r
-                                       this.tx画像 = null;\r
-                               }\r
-                       }\r
-                       /// <summary>\r
-                       /// BGA画像のデコードをTexture()に渡す前に行う、OnDeviceCreate()\r
-                       /// </summary>\r
-                       /// <param name="bitmap">テクスチャ画像</param>\r
-                       /// <param name="strテクスチャファイル名">ファイル名</param>\r
-                       public void OnDeviceCreated(Bitmap bitmap, string strテクスチャファイル名)\r
-                       {\r
-                               if (bitmap != null && b黒を透過する)\r
-                               {\r
-                                       bitmap.MakeTransparent(Color.Black);    // 黒を透過色にする\r
-                               }\r
-                               this.tx画像 = TextureFactory.tテクスチャの生成(bitmap, b黒を透過する);\r
-\r
-                               if (this.tx画像 != null)\r
-                               {\r
-                                       // 作成成功。\r
-                                       if (CDTXMania.Instance.ConfigIni.bLogCreateRelease)\r
-                                               PutLog(strテクスチャファイル名);\r
-                                       this.bUse = true;\r
-                               }\r
-                               else\r
-                               {\r
-                                       // 作成失敗。\r
-                                       Trace.TraceError("テクスチャの生成に失敗しました。({0})({1})", this.strコメント文, strテクスチャファイル名);\r
-                                       this.tx画像 = null;\r
-                               }\r
-                               if (bitmap != null)\r
-                               {\r
-                                       bitmap.Dispose();\r
-                               }\r
-                       }\r
-\r
-                       public virtual void PutLog(string strテクスチャファイル名)\r
-                       {\r
-                       }\r
-\r
-                       #region [ IDisposable 実装 ]\r
-                       //-----------------\r
-                       public void Dispose()\r
-                       {\r
-                               if (this.bDisposed済み)\r
-                                       return;\r
-\r
-                               if (this.tx画像 != null)\r
-                               {\r
-                                       #region [ strテクスチャファイル名 を作成。]\r
-                                       //-----------------\r
-                                       string strテクスチャファイル名 = this.GetFullPathname;\r
-                                       //if( !string.IsNullOrEmpty( CDTXMania.Instance.DTX.PATH_WAV ) )\r
-                                       //    strテクスチャファイル名 = CDTXMania.Instance.DTX.PATH_WAV + this.strファイル名;\r
-                                       //else\r
-                                       //    strテクスチャファイル名 = CDTXMania.Instance.DTX.strフォルダ名 + this.strファイル名;\r
-                                       //-----------------\r
-                                       #endregion\r
-\r
-                                       TextureFactory.tテクスチャの解放(ref this.tx画像);\r
-\r
-                                       if (CDTXMania.Instance.ConfigIni.bLogCreateRelease)\r
-                                               Trace.TraceInformation("テクスチャを解放しました。({0})({1})", this.strコメント文, strテクスチャファイル名);\r
-                               }\r
-                               this.bUse = false;\r
-\r
-                               this.bDisposed済み = true;\r
-                       }\r
-                       //-----------------\r
-                       #endregion\r
-                       #region [ private ]\r
-                       //-----------------\r
-                       private bool bDisposed済み;\r
-                       //-----------------\r
-                       #endregion\r
-               }\r
-               public class CBPM\r
-               {\r
-                       public double dbBPM値;\r
-                       public int n内部番号;\r
-                       public int n表記上の番号;\r
-\r
-                       public override string ToString()\r
-                       {\r
-                               StringBuilder builder = new StringBuilder(0x80);\r
-                               if (this.n内部番号 != this.n表記上の番号)\r
-                               {\r
-                                       builder.Append(string.Format("CBPM{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号));\r
-                               }\r
-                               else\r
-                               {\r
-                                       builder.Append(string.Format("CBPM{0}", CDTX.tZZ(this.n表記上の番号)));\r
-                               }\r
-                               builder.Append(string.Format(", BPM:{0}", this.dbBPM値));\r
-                               return builder.ToString();\r
-                       }\r
-               }\r
-               public class CWAV : IDisposable\r
-               {\r
-                       public bool bBGMとして使う;\r
-                       public List<EChannel> listこのWAVを使用するチャンネル番号の集合 = new List<EChannel>(16);\r
-                       public int nチップサイズ = 100;\r
-                       public int n位置;\r
-                       public long[] n一時停止時刻 = new long[CDTXMania.Instance.ConfigIni.nPolyphonicSounds]; // 4\r
-                       public int n音量 = 100;\r
-                       public int n現在再生中のサウンド番号;\r
-                       public long[] n再生開始時刻 = new long[CDTXMania.Instance.ConfigIni.nPolyphonicSounds]; // 4\r
-                       public int n内部番号;\r
-                       public int n表記上の番号;\r
-                       public CSound[] rSound = new CSound[CDTXMania.Instance.ConfigIni.nPolyphonicSounds];    // 4\r
-                       public string strコメント文 = "";\r
-                       public string strファイル名 = "";\r
-                       public bool bBGMとして使わない\r
-                       {\r
-                               get\r
-                               {\r
-                                       return !this.bBGMとして使う;\r
-                               }\r
-                               set\r
-                               {\r
-                                       this.bBGMとして使う = !value;\r
-                               }\r
-                       }\r
-                       public bool bIsBassSound = false;\r
-                       public bool bIsGuitarSound = false;\r
-                       public bool bIsDrumsSound = false;\r
-                       public bool bIsSESound = false;\r
-                       public bool bIsBGMSound = false;\r
-\r
-                       public override string ToString()\r
-                       {\r
-                               var sb = new StringBuilder(128);\r
-\r
-                               if (this.n表記上の番号 == this.n内部番号)\r
-                               {\r
-                                       sb.Append(string.Format("CWAV{0}: ", CDTX.tZZ(this.n表記上の番号)));\r
-                               }\r
-                               else\r
-                               {\r
-                                       sb.Append(string.Format("CWAV{0}(内部{1}): ", CDTX.tZZ(this.n表記上の番号), this.n内部番号));\r
-                               }\r
-                               sb.Append(string.Format("音量:{0}, 位置:{1}, サイズ:{2}, BGM:{3}, File:{4}, Comment:{5}", this.n音量, this.n位置, this.nチップサイズ, this.bBGMとして使う ? 'Y' : 'N', this.strファイル名, this.strコメント文));\r
-\r
-                               return sb.ToString();\r
-                       }\r
-\r
-                       #region [ Dispose-Finalize パターン実装 ]\r
-                       //-----------------\r
-                       public void Dispose()\r
-                       {\r
-                               this.Dispose(true);\r
-                               GC.SuppressFinalize(this);\r
-                       }\r
-                       public void Dispose(bool bManagedリソースの解放も行う)\r
-                       {\r
-                               if (this.bDisposed済み)\r
-                                       return;\r
-\r
-                               if (bManagedリソースの解放も行う)\r
-                               {\r
-                                       for (int i = 0; i < CDTXMania.Instance.ConfigIni.nPolyphonicSounds; i++)  // 4\r
-                                       {\r
-                                               if (this.rSound[i] != null)\r
-                                                       CDTXMania.Instance.Sound管理.tサウンドを破棄する(this.rSound[i]);\r
-                                               this.rSound[i] = null;\r
-\r
-                                               if ((i == 0) && CDTXMania.Instance.ConfigIni.bLogCreateRelease)\r
-                                                       Trace.TraceInformation("サウンドを解放しました。({0})({1})", this.strコメント文, this.strファイル名);\r
-                                       }\r
-                               }\r
-\r
-                               this.bDisposed済み = true;\r
-                       }\r
-                       ~CWAV()\r
-                       {\r
-                               this.Dispose(false);\r
-                       }\r
-                       //-----------------\r
-                       #endregion\r
-\r
-                       #region [ private ]\r
-                       //-----------------\r
-                       private bool bDisposed済み;\r
-                       //-----------------\r
-                       #endregion\r
-               }\r
-\r
-\r
-               // 構造体\r
-               public struct STRESULT\r
-               {\r
-                       public string SS;\r
-                       public string S;\r
-                       public string A;\r
-                       public string B;\r
-                       public string C;\r
-                       public string D;\r
-                       public string E;\r
-\r
-                       public string this[int index]\r
-                       {\r
-                               get\r
-                               {\r
-                                       switch (index)\r
-                                       {\r
-                                               case 0:\r
-                                                       return this.SS;\r
-\r
-                                               case 1:\r
-                                                       return this.S;\r
-\r
-                                               case 2:\r
-                                                       return this.A;\r
-\r
-                                               case 3:\r
-                                                       return this.B;\r
-\r
-                                               case 4:\r
-                                                       return this.C;\r
-\r
-                                               case 5:\r
-                                                       return this.D;\r
-\r
-                                               case 6:\r
-                                                       return this.E;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                               set\r
-                               {\r
-                                       switch (index)\r
-                                       {\r
-                                               case 0:\r
-                                                       this.SS = value;\r
-                                                       return;\r
-\r
-                                               case 1:\r
-                                                       this.S = value;\r
-                                                       return;\r
-\r
-                                               case 2:\r
-                                                       this.A = value;\r
-                                                       return;\r
-\r
-                                               case 3:\r
-                                                       this.B = value;\r
-                                                       return;\r
-\r
-                                               case 4:\r
-                                                       this.C = value;\r
-                                                       return;\r
-\r
-                                               case 5:\r
-                                                       this.D = value;\r
-                                                       return;\r
-\r
-                                               case 6:\r
-                                                       this.E = value;\r
-                                                       return;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                       }\r
-               }\r
-               public struct STチップがある\r
-               {\r
-                       public bool Drums;\r
-                       public bool Guitar;\r
-                       public bool Bass;\r
-\r
-                       public bool HHOpen;\r
-                       public bool Ride;\r
-                       public bool LeftCymbal;\r
-                       public bool OpenGuitar;\r
-                       public bool OpenBass;\r
-\r
-                       public bool BGA;\r
-                       public bool Movie;\r
-\r
-                       public bool LeftPedal;\r
-                       public bool LeftBassDrum;\r
-\r
-                       public bool this[EPart inst]\r
-                       {\r
-                               get\r
-                               {\r
-                                       bool ret = false;\r
-                                       if (inst == EPart.Drums)\r
-                                       {\r
-                                               ret = this.Drums;\r
-                                       }\r
-                                       else if (inst == EPart.Guitar)\r
-                                       {\r
-                                               ret = this.Guitar;\r
-                                       }\r
-                                       else if (inst == EPart.Bass)\r
-                                       {\r
-                                               ret = this.Bass;\r
-                                       }\r
-                                       return ret;\r
-                               }\r
-                       }\r
-\r
-                       public bool this[int index]\r
-                       {\r
-                               get\r
-                               {\r
-                                       switch (index)\r
-                                       {\r
-                                               case 0:\r
-                                                       return this.Drums;\r
-\r
-                                               case 1:\r
-                                                       return this.Guitar;\r
-\r
-                                               case 2:\r
-                                                       return this.Bass;\r
-\r
-                                               case 3:\r
-                                                       return this.HHOpen;\r
-\r
-                                               case 4:\r
-                                                       return this.Ride;\r
-\r
-                                               case 5:\r
-                                                       return this.LeftCymbal;\r
-\r
-                                               case 6:\r
-                                                       return this.OpenGuitar;\r
-\r
-                                               case 7:\r
-                                                       return this.OpenBass;\r
-\r
-                                               case 8:\r
-                                                       return this.LeftPedal;\r
-\r
-                                               case 9:\r
-                                                       return this.LeftBassDrum;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                               set\r
-                               {\r
-                                       switch (index)\r
-                                       {\r
-                                               case 0:\r
-                                                       this.Drums = value;\r
-                                                       return;\r
-\r
-                                               case 1:\r
-                                                       this.Guitar = value;\r
-                                                       return;\r
-\r
-                                               case 2:\r
-                                                       this.Bass = value;\r
-                                                       return;\r
-\r
-                                               case 3:\r
-                                                       this.HHOpen = value;\r
-                                                       return;\r
-\r
-                                               case 4:\r
-                                                       this.Ride = value;\r
-                                                       return;\r
-\r
-                                               case 5:\r
-                                                       this.LeftCymbal = value;\r
-                                                       return;\r
-\r
-                                               case 6:\r
-                                                       this.OpenGuitar = value;\r
-                                                       return;\r
-\r
-                                               case 7:\r
-                                                       this.OpenBass = value;\r
-                                                       return;\r
-\r
-                                               case 8:\r
-                                                       this.LeftPedal = value;\r
-                                                       return;\r
-\r
-                                               case 9:\r
-                                                       this.LeftBassDrum = value;\r
-                                                       return;\r
-                                       }\r
-                                       throw new IndexOutOfRangeException();\r
-                               }\r
-                       }\r
-               }\r
-\r
-       }\r
-}\r