Ticket #42233

Win版 フォルダ演奏対応

Eröffnet am: 2021-05-12 00:17 Letztes Update: 2021-05-16 09:25

Auswertung:
Verantwortlicher:
Status:
Geschlossen
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

ユーザが指定したフォルダに格納されている複数のMIDIデータファイルを、 順番に開いて演奏する機能を追加する。

フォルダに複数のMIDIデータファイルを格納しておくことで、 プレイリスト相当として活用できるようにする。

参考

  • #41980 iOS版 フォルダ演奏機能追加

Ticket-Verlauf (3/6 Historien)

2021-05-12 00:17 Aktualisiert von: yknk
  • New Ticket "Win版 フォルダ演奏対応" created
2021-05-12 00:17 Aktualisiert von: yknk
Kommentar

対応方針

  • MIDIデータファイルが格納されいてるフォルダを選択できるようにする。
  • MIDIデータファイルをファイル名で昇順ソートして、順番にファイルを開けるようにする。
  • ファイル一覧ダイアログなど、リッチなユーザインターフェースは用意しない。
2021-05-12 00:20 Aktualisiert von: yknk
Kommentar

仕様

Fileメニュー

Fileメニューについて、次の項目を変更/追加する。

  • Open File... 変更:従来のOpen...から文字列のみ変更する
  • Open Folder... 追加
  • Previous File 追加
  • Next File 追加

Playbackメニュ-

Playbackメニューについて、次の項目を追加する。

  • Foler Playback 追加:チェックマークによるON/OFF指定

フォルダ選択操作

  • 「Open Folder...」選択時にフォルダ選択ダイアログを表示する。
  • ダイアログでフォルダが選択されたら、フォルダ直下に存在するMIDIデータファイル(*.mid)のリストを作成し、ファイル名で昇順ソートする。
  • ファイルリスト先頭のファイルを自動的に開く。
  • 「Previous File」「Next File」「Foler Playback」を活性化する。
  • ウィンドウにフォルダをドロップした場合も「Open Folder...」でフォルダを選択したときと同様に処理する。

ファイルリストのファイル選択操作

  • 「Previous File」選択時は、ファイルリストで現在選択しているファイルの直前のファイルを選択して開く。 すでにファイルリスト先頭のファイルを選択していた場合は何もしない。
  • 「Next File」選択時は、ファイルリストで現在選択しているファイルの直後のファイルを選択して開く。 すでにファイルリスト末尾のファイルを選択していた場合は何もしない。

通常のファイル選択操作

  • ユーザが「Open File...」メニューで一つのファイルを選択した場合、ファイルリストは破棄する。
  • ファイルリストが存在しないため「Previous File」「Next File」によるファイル選択は実施できない。
  • ウィンドウにファイルをドロップした場合も同様に処理する。

演奏終了時の動作

演奏終了時は「Repeat」「Folder Playback」の状態に応じて動作を変える。

  • 「Rpeat:OFF」「Folder Playback:OFF」:何もしない。
  • 「Rpeat:ON」「Folder Playback:OFF」:同じファイルを再び演奏開始する。
  • 「Rpeat:OFF」「Folder Playback:ON」:ファイルリストで現在選択しているファイルの直後のファイルを選択して開き、自動的に演奏を開始する。ただしファイルリスト末尾の演奏が終了した場合は、何もしない。
  • 「Rpeat:ON」「Folder Playback:ON」:ファイルリストで現在選択しているファイルの直後のファイルを選択して開き、自動的に演奏を開始する。ただしファイルリスト末尾の演奏が終了した場合は、ファイルリスト先頭のファイルを選択して開き、自動的に演奏を開始する。

ウィンドウタイトルの表示変更

ファイルリストは明示的に表示しないため、以下の情報をウィンドウタイトルに表示する。

  • 現在開いているファイルの名前
  • ファイルリストのファイル数と現在開いているファイルの項番
2021-05-12 00:20 Aktualisiert von: yknk
Kommentar

対策1

MIDITrail.rc

メニューを追加。

  • Open Folder...
  • Previous File
  • Next File

メニューの文字列を変更。

  • Open... -> Open File...

MTFileList

ファイルリストクラスを新規追加。

2021-05-12 00:21 Aktualisiert von: yknk
Kommentar

対策2

MIDITrailApp.h

  • ウィンドウタイトルにファイル名を表示するため、MAX_LOADSTRING の定義を100から256に変更。
  • ウィンドウタイトルの文字列定義を追加。
  • 警告メッセージの定義を追加。

MIDITrailApp

  • メンバにフォルダ演奏フラグ m_isFolderPlayback を追加。
  • メンバにMIDIデータファイルリスト m_MIDIFileList を追加。

MIDITrailApp::MIDITrailApp

フォルダ演奏フラグ m_isFolderPlayback の初期化処理を追加。

MIDITrailApp::_WndProcImpl

メニュー選択イベントの処理を追加。

  • フォルダオープン
  • 前ファイル
  • 次ファイル
  • フォルダ演奏

MIDITrailApp::_OnMenuOpenFile

  • メソッド名を _OnMenuFileOpen から _OnMenuOpenFile に変更。メニューの文字列に合わせるため。
  • ファイルリスト破棄の処理を追加。
  • メニュースタイル更新の処理を追加。
  • MAX_PATH を _MAX_PATH に統一。

MIDITrailApp::_OnMenuOpenFolder

フォルダオープンメソッドを追加。

MIDITrailApp::_OnMenuPreviousFile

前ファイル選択イベントハンドラを追加。

MIDITrailApp::_OnMenuNextFile

次ファイル選択イベントハンドラを追加。

MIDITrailApp::_OnMenuFolderPlayback

フォルダ演奏選択イベントハンドラを追加。

MIDITrailApp::_OnMenuStartMonitoring

ウィンドウタイトル更新処理の呼び出しを追加。

MIDITrailApp::_OnRecvSequencerMsg

演奏終了時に、フォルダ演奏フラグに応じて次のファイルを自動的に開き、演奏開始する処理を追加。

MIDITrailApp::_OnKeyDown

キー入力時の処理を追加。

  • Ctrl + B, Ctrl + P :前ファイル
  • Ctrl + N :次ファイル

MIDITrailApp::_OnDropFiles

ウィンドウにフォルダがドロップされたときの処理を追加。

MIDITrailApp::_SelectFolder

フォルダ選択ダイアログ表示メソッドを追加。

MIDITrailApp::_LoadMIDIFile

  • ウィンドウタイトル更新処理の呼び出しを追加。

シーケンスデータオブジェクトに、SMF変換処理実施前のオリジナルのファイル名を上書きする処理を追加。 これまでは、RCPファイル読み込み時に、SMFファイル変換時のテンポラリファイル名が設定されていたため、修正する。 Plyer.ini ファイルで ShowFileName=1 を設定していた場合、ウィンドウに表示されるファイル名に影響があった。

MIDITrailApp::_UpdateWindowTitle

ウィンドウタイトル更新メソッドを追加。

MIDITrailApp::_UpdateFPS

ヘッダに定義した数値定義と文字列定義を指定するように修正。

MIDITrailApp::_ChangeMenuStyle

新規に追加したメニューの活性化処理を追加。

MIDITrailApp::_UpdateMenuCheckmark

フォルダ演奏メニューのマーク更新処理を追加。

MIDITrailApp::_ParseCmdLine

コマンドラインで受け取ったファイル名をフルパスに変換する処理を追加。

MIDITrailApp::_StopPlaybackAndOpenFile

引数の型を TCHAR* から const TCHAR* に変更。

MIDITrailApp::_StopPlaybackAndOpenFolder

フォルダオープンメソッドを追加。

MIDITrailApp::_FileOpenProc

引数の型を TCHAR* から const TCHAR* に変更。

MIDITrailApp::_MakeFileListWithFolder

フォルダ内ファイルリスト作成メソッドを追加。

2021-05-16 09:25 Aktualisiert von: yknk
  • Status Update from Offen to Geschlossen
  • Lösung Update from Keine to Gefixt

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden