OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXCreator / コード / 00.全体 / AppSetting.cs
diff --git a/DTXCreator/コード/00.全体/AppSetting.cs b/DTXCreator/コード/00.全体/AppSetting.cs
new file mode 100644 (file)
index 0000000..ebaa518
--- /dev/null
@@ -0,0 +1,534 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace DTXCreator
+{
+       // 使い方
+       //
+       // 保存方法:
+       //  var xmlsl = new System.Xml.Serialization.XmlSerializer(typeof(AppSetting));
+       //  FileStream fs = new FileStream(設定ファイル名, FileMode.Create);
+       //  xmlsl.Serialize(fs, this.アプリ設定);
+       //  fs.Close();
+       // 
+       // 読み込み方法:
+       //   try
+       //   {
+       //       var xmlsl = new System.Xml.Serialization.XmlSerializer(typeof(AppSetting));
+       //       FileStream fs = new FileStream(設定ファイル名, FileMode.Open);
+       //       this.アプリ設定 = (AppSetting)xmlsl.Deserialize(fs);
+       //       fs.Close();
+       //   }
+       //   catch (Exception)
+       //   {
+       //       Debug.WriteLine("アプリ設定ファイルの読み込みに失敗しました。");
+       //       return;
+       //   }
+
+       public class AppSetting
+       {
+               #region [ コンストラクタ ]
+               //-----------------
+               public AppSetting()
+               {
+                       this._SoundListColumnWidth[ 0 ] = 80;
+                       this._SoundListColumnWidth[ 1 ] = 28;
+                       this._SoundListColumnWidth[ 2 ] = 80;
+                       this._SoundListColumnWidth[ 3 ] = 40;
+                       this._SoundListColumnWidth[ 4 ] = 60;
+                       this._GraphicListColumnWidth[ 0 ] = 34;
+                       this._GraphicListColumnWidth[ 1 ] = 127;
+                       this._GraphicListColumnWidth[ 2 ] = 28;
+                       this._GraphicListColumnWidth[ 3 ] = 120;
+                       this._MovieListColumnWidth[ 0 ] = 127;
+                       this._MovieListColumnWidth[ 1 ] = 28;
+                       this._MovieListColumnWidth[ 2 ] = 120;
+                       this._LastWorkFolder = Directory.GetCurrentDirectory();
+                       this._ViewerInfo = new Viewer();
+                       this._InitialOperationMode = false;
+                       this._LastMIDIImportFolder = Directory.GetCurrentDirectory();
+                       this._LastMIDIImportSettingsFile = "";
+               }
+               //-----------------
+               #endregion
+
+               // プロパティ(1) オプション項目関連
+
+               #region [ List<string> RecentUsedFile - 最近使ったファイル名のリスト ]
+               //-----------------
+               public List<string> RecentUsedFile
+               {
+                       get { return _RecentUsedFile; }
+                       set { _RecentUsedFile = value; }
+               }
+               private List<string> _RecentUsedFile = new List<string>();
+               //-----------------
+               #endregion
+
+               public void AddRecentUsedFile( string fileName )
+               {
+                       for( int i = 0; i < this._RecentUsedFile.Count; i++ )
+                       {
+                               if( this._RecentUsedFile[ i ].Equals( fileName ) )
+                               {
+                                       this._RecentUsedFile.RemoveAt( i );
+                                       break;
+                               }
+                       }
+                       this._RecentUsedFile.Insert( 0, fileName );
+                       if( this._RecentUsedFile.Count > 10 )
+                       {
+                               int num2 = this._RecentUsedFile.Count - 10;
+                               for( int j = 0; j < num2; j++ )
+                               {
+                                       this._RecentUsedFile.RemoveAt( 10 + j );
+                               }
+                       }
+               }
+
+               #region [ List<Lanes> LanesInfo - レーンの表示/非表示 ]
+               //-----------------
+               public List<Lanes> LanesInfo
+               {
+                       get { return _LanesInfo; }
+                       set { _LanesInfo = value; }
+               }
+               private List<Lanes> _LanesInfo = new List<Lanes>();
+               //-----------------
+               #endregion
+
+               public void AddLanesInfo( string Name, bool Checked )
+               {
+                       this._LanesInfo.Add( new Lanes( Name, Checked ) );
+               }
+               
+               public bool bSameVersion()
+               {
+                       return ( this._ConfigVersion == _ConfigSchemaVersion );
+               }
+               public void Confirm()
+               {
+                       if( this._RecentFilesNum <= 0 )
+                       {
+                               this._RecentFilesNum = 5;
+                               this._ShowRecentFiles = false;
+                       }
+                       else if( this._RecentFilesNum > 10 )
+                       {
+                               this._RecentFilesNum = 10;
+                       }
+               }
+
+               public bool AutoFocus
+               {
+                       get
+                       {
+                               return this._AutoFocus;
+                       }
+                       set
+                       {
+                               this._AutoFocus = value;
+                       }
+               }
+               public int ConfigVersion
+               {
+                       get
+                       {
+                               return this._ConfigVersion;
+                       }
+                       set
+                       {
+                               this._ConfigVersion = value;
+                       }
+               }
+               public int[] GraphicListColumnWidth
+               {
+                       get
+                       {
+                               return this._GraphicListColumnWidth;
+                       }
+                       set
+                       {
+                               this._GraphicListColumnWidth = value;
+                       }
+               }
+               public int GuideIndex
+               {
+                       get
+                       {
+                               return this._GuideIndex;
+                       }
+                       set
+                       {
+                               this._GuideIndex = value;
+                               if( this._GuideIndex < 0 )
+                               {
+                                       this._GuideIndex = 0;
+                               }
+                               else if( this._GuideIndex > 8 )
+                               {
+                                       this._GuideIndex = 8;
+                               }
+                       }
+               }
+               public int Height
+               {
+                       get
+                       {
+                               return this._Height;
+                       }
+                       set
+                       {
+                               this._Height = value;
+                               if( this._Height < 0 )
+                               {
+                                       this._Height = 10;
+                               }
+                       }
+               }
+               public int HViewScaleIndex
+               {
+                       get
+                       {
+                               return this._HViewScaleIndex;
+                       }
+                       set
+                       {
+                               this._HViewScaleIndex = value;
+                               if( this._HViewScaleIndex < 0 )
+                               {
+                                       this._HViewScaleIndex = 0;
+                               }
+                               else if( this._HViewScaleIndex > 9 )
+                               {
+                                       this._HViewScaleIndex = 9;
+                               }
+                       }
+               }
+               public string LastWorkFolder
+               {
+                       get
+                       {
+                               return this._LastWorkFolder;
+                       }
+                       set
+                       {
+                               this._LastWorkFolder = value;
+                       }
+               }
+               public bool Maximized
+               {
+                       get
+                       {
+                               return this._Maximized;
+                       }
+                       set
+                       {
+                               this._Maximized = value;
+                       }
+               }
+               public int[] MovieListColumnWidth
+               {
+                       get
+                       {
+                               return this._MovieListColumnWidth;
+                       }
+                       set
+                       {
+                               this._MovieListColumnWidth = value;
+                       }
+               }
+               public bool NoPreviewBGM
+               {
+                       get
+                       {
+                               return this._NoPreviewBGM;
+                       }
+                       set
+                       {
+                               this._NoPreviewBGM = value;
+                       }
+               }
+               public bool PlaySoundOnWAVChipAllocated
+               {
+                       get
+                       {
+                               return this._PlaySoundOnWAVChipAllocated;
+                       }
+                       set
+                       {
+                               this._PlaySoundOnWAVChipAllocated = value;
+                       }
+               }
+               public int RecentFilesNum
+               {
+                       get
+                       {
+                               return this._RecentFilesNum;
+                       }
+                       set
+                       {
+                               this._RecentFilesNum = value;
+                       }
+               }
+               public bool ShowRecentFiles
+               {
+                       get
+                       {
+                               return this._ShowRecentFiles;
+                       }
+                       set
+                       {
+                               this._ShowRecentFiles = value;
+                       }
+               }
+               public int[] SoundListColumnWidth
+               {
+                       get
+                       {
+                               return this._SoundListColumnWidth;
+                       }
+                       set
+                       {
+                               this._SoundListColumnWidth = value;
+                       }
+               }
+               public int SplitterDistance
+               {
+                       get
+                       {
+                               return this._SplitterDistance;
+                       }
+                       set
+                       {
+                               this._SplitterDistance = value;
+                       }
+               }
+               public Viewer ViewerInfo
+               {
+                       get
+                       {
+                               return this._ViewerInfo;
+                       }
+                       set
+                       {
+                               this._ViewerInfo = value;
+                       }
+               }
+               public int Width
+               {
+                       get
+                       {
+                               return this._Width;
+                       }
+                       set
+                       {
+                               this._Width = value;
+                               if( this._Width < 0 )
+                               {
+                                       this._Width = 10;
+                               }
+                       }
+               }
+               public int X
+               {
+                       get
+                       {
+                               return this._X;
+                       }
+                       set
+                       {
+                               this._X = value;
+                       }
+               }
+               public int Y
+               {
+                       get
+                       {
+                               return this._Y;
+                       }
+                       set
+                       {
+                               this._Y = value;
+                       }
+               }
+               public string LastMIDIImportFolder
+               {
+                       get
+                       {
+                               return this._LastMIDIImportFolder;
+                       }
+                       set
+                       {
+                               this._LastMIDIImportFolder = value;
+                       }
+               }
+               public string LastMIDIImportSettingsFile
+               {
+                       get
+                       {
+                               return this._LastMIDIImportSettingsFile;
+                       }
+                       set
+                       {
+                               this._LastMIDIImportSettingsFile = value;
+                       }
+               }
+
+               /// <summary>
+               /// 操作モードの初期値
+               /// false: 編集モード
+               /// true:  選択モード
+               /// </summary>
+               public bool InitialOperationMode
+               {
+                       get
+                       {
+                               return this._InitialOperationMode;
+                       }
+                       set
+                       {
+                               this._InitialOperationMode = value;
+                       }
+               }
+
+               //public enum ViewerSoundType
+               //{
+               //    DirectSound,
+               //    WASAPI,
+               //    ASIO
+               //}
+
+               public class Viewer
+               {
+                       private const string PathDTXV = "DTXV.exe";
+                       private const string PathDTXM = "DTXManiaGR.exe";
+
+                       public string Path = PathDTXM;
+                       public string PlayStartFromOption = "-N";
+                       public string PlayStartOption = "-N-1";
+                       public string PlayStopOption = "-S";
+                       // public ViewerSoundType SoundType = ( FDK.COS.bIsVistaOrLater ) ? ViewerSoundType.WASAPI : ViewerSoundType.DirectSound;
+                       public FDK.ESoundDeviceType SoundType = ( FDK.COS.bIsVistaOrLater ) ? FDK.ESoundDeviceType.ExclusiveWASAPI : FDK.ESoundDeviceType.DirectSound;
+                       public int ASIODeviceNo = 0;
+                       public bool GRmode;
+                       public bool TimeStretch;
+                       public bool VSyncWait = true;
+
+                       // 引数無しのコンストラクタがないとSerializeできないのでダミー定義する
+                       public Viewer()
+                       {
+                               Path = PathDTXM;
+                               PlayStartFromOption = "-N";
+                               PlayStartOption = "-N-1";
+                               PlayStopOption = "-S";
+                               //SoundType =  (FDK.COS.bIsVistaOrLater)? ViewerSoundType.WASAPI : ViewerSoundType.DirectSound;
+                               SoundType = ( FDK.COS.bIsVistaOrLater ) ? FDK.ESoundDeviceType.ExclusiveWASAPI : FDK.ESoundDeviceType.DirectSound;
+                               ASIODeviceNo = 0;
+                               GRmode = false;
+                               TimeStretch = false;
+                               VSyncWait = true;
+                       }
+                       public bool bViewerIsDTXV
+                       {
+                               get
+                               {
+                                       return ( this.Path == PathDTXV );
+                               }
+                               set
+                               {
+                                       this.Path = value ? PathDTXV : PathDTXM;
+                               }
+                       }
+
+                       public string PlaySoundOption
+                       {
+                               get
+                               {
+                                       string opt = "";
+                                       if ( bViewerIsDTXV )
+                                       {
+                                               opt = "";
+                                       }
+                                       else
+                                       {
+                                               string soundtypeopt = "";
+                                               switch ( SoundType )
+                                               {
+                                                       //case ViewerSoundType.DirectSound:
+                                                       case FDK.ESoundDeviceType.DirectSound:
+                                                               soundtypeopt = "D";
+                                                               break;
+                                                       //case ViewerSoundType.WASAPI:
+                                                       case FDK.ESoundDeviceType.ExclusiveWASAPI:
+                                                               soundtypeopt = "W";
+                                                               break;
+                                                       //case ViewerSoundType.ASIO:
+                                                       case FDK.ESoundDeviceType.ASIO:
+                                                               soundtypeopt = "A";
+                                                               soundtypeopt += ASIODeviceNo.ToString();
+                                                               break;
+                                               }
+
+                                               opt = "-D" + soundtypeopt;
+                                               opt += GRmode     ? "Y" : "N";  // この辺は手抜き
+                                               opt += TimeStretch? "Y" : "N";  //
+                                               opt += VSyncWait  ? "Y" : "N";  //
+                                       }
+                                       return opt;
+                               }
+                       }
+               }
+
+               /// <summary>
+               /// レーン名と表示/非表示の状態の保持/復元
+               /// </summary>
+               public class Lanes
+               {
+                       public string Name;
+                       public bool Checked;
+
+                       // 引数無しのコンストラクタがないとSerializeできないのでダミー定義する
+                       public Lanes()
+                       {
+                               Name = "";
+                               Checked = false;
+                       }
+                       public Lanes( string Name_, bool Checked_ )
+                       {
+                               Name = Name_;
+                               Checked = Checked_;
+                       }
+               }
+
+               #region [ private ]
+               //-----------------
+               private bool _AutoFocus = true;
+               private static int _ConfigSchemaVersion = 0x69;
+               private int _ConfigVersion = _ConfigSchemaVersion;
+               private int[] _GraphicListColumnWidth = new int[ 4 ];
+               private int _GuideIndex = 3;
+               private int _Height = 0x1db;
+               private int _HViewScaleIndex;
+               private string _LastWorkFolder = "";
+               private bool _Maximized;
+               private int[] _MovieListColumnWidth = new int[ 3 ];
+               private bool _NoPreviewBGM = true;
+               private bool _PlaySoundOnWAVChipAllocated = true;
+               private int _RecentFilesNum = 5;
+               private bool _ShowRecentFiles = true;
+               private int[] _SoundListColumnWidth = new int[ 5 ];
+               private int _SplitterDistance = 0x128;
+               private Viewer _ViewerInfo;
+               private int _Width = 600;
+               private int _X;
+               private int _Y;
+               private bool _InitialOperationMode;
+               private string _LastMIDIImportFolder = "";
+               private string _LastMIDIImportSettingsFile = "";
+               //-----------------
+               #endregion
+       }
+}