/// <summary> /// 対応する音声ファイル名を返す。 /// </summary> /// <param name="e"></param> /// <returns></returns> public static string FileNameOf(SoundEnum e) { if (e.IsKoma()) { return(KomaFileNameOf(e)); } if (SoundEnum.SQ_11 <= e && e <= SoundEnum.SQ_99) { return(FileNameOf((Square)(e - SoundEnum.SQ_11))); } if (SoundEnum.PiecePAWN <= e && e <= SoundEnum.PieceLast) { return(FileNameOf((Piece)(e - SoundEnum.PiecePAWN + (int)Piece.PAWN))); } if (e.IsByoyomi()) { return(ByoyomiFileNameOf(e)); } // それ以外なので特別なもののはず.. return(SpecialFileNameOf(e)); }
/// <summary> /// すぐに再生する。他の再生を待たずに。 /// </summary> /// <param name="e"></param> public void Play(SoundEnum e) { if (!dic.ContainsKey(e)) { var subFolder = e.IsKoma() ? KomaSoundPath : ReadOutSoundPath; var filename = Path.Combine(Path.Combine(SoundPath, subFolder), SoundHelper.FileNameOf(e)); var s = new SoundLoader(); s.ReadFile(filename); dic.Add(e, s); } var sound = dic[e]; sound.Play(); }
/// <summary> /// 再生queueに追加する。 /// このメソッドは毎回同じスレッドから呼び出されるものとする。 /// /// GlobalConfig.KifuReadOutがオフ(0)だと再生されない。 /// </summary> /// <param name=""></param> public void ReadOut(SoundEnum e) { if (TheApp.app.config.KifuReadOut == 0) { return; } if (!dic.ContainsKey(e)) { var subFolder = e.IsKoma() ? KomaSoundPath : ReadOutSoundPath; var filename = Path.Combine(Path.Combine(SoundPath, subFolder), SoundHelper.FileNameOf(e)); var s = new SoundLoader(); s.ReadFile(filename); dic.Add(e, s); } var sound = dic[e]; queue.AddQueue(sound); }
/// <summary> /// すぐに再生する。他の再生を待たずに。 /// </summary> /// <param name="e"></param> public void Play(SoundEnum e) { // global設定でオフになっているなら何もせずに帰る。 var config = TheApp.app.Config; if (config.EnableSound == 0) { return; } if (!dic.ContainsKey(e)) { var subFolder = e.IsKoma() ? KomaSoundPath : ReadOutSoundPath; var filename = Path.Combine(Path.Combine(SoundPath, subFolder), SoundHelper.FileNameOf(e)); var s = new SoundLoader(); s.ReadFile(filename); dic.Add(e, s); } var sound = dic[e]; sound.Play(); }