OSDN Ticket Archive


Ticket #45900

Win版 MIDI INモニタ中にフルスクリーンに切り替えるとカウンタがモニタ停止状態になる

登録: 2022-10-17 21:41 最終更新: 2022-10-20 22:07

報告者:
yknk
担当者:
yknk
チケットの種類:
バグ
状況:
完了
コンポーネント:
MIDITrail Ver.1.4.x for Windows
マイルストーン:
Version 1.4.0 for Windows (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

MIDI INモニタ中に、フルスクリーン表示に切り替えると、 カウンタの表示がモニタ停止状態になる。 画面上のMIDI INデバイス名が"(none)"に切り替わり、 画面下のノート数の右に"MONITERING OFF"が表示される。 モニタを停止して再びモニタを開始すると、カウンタの状態が復旧する。

類似の問題として、モニタ停止状態でビューモードを変更したときにも同様の事象が発生する。

チケットの履歴

2022-10-17 21:41 更新者: yknk
  • 新しいチケット "Win版 MIDI INモニタ中にフルスクリーンに切り替えるとカウンタがモニタ停止状態になる" が作成されました
2022-10-17 22:10 更新者: yknk
コメント

原因

MIDITrailApp::_ToggleFullScreen にてフルスクリーン表示するとき、 MIDITrailApp::_ChangeWindowSize を呼び出してウィンドウサイズを変更する。 このときシーンオブジェクトを破棄して生成し直しているが、 シーンオブジェクト破棄直前の状態を引き継いでいなかった。 (MIDI INデバイス名とモニタ状態)

また、MIDITrailApp::_OnMenuSelectSceneTypeでビューモードを変更するときも、 シーンオブジェクトを破棄して生成し直しているが、ここにも同じ問題があった。

2022-10-17 22:11 更新者: yknk
コメント

対策

MIDITrailApp

  • メンバにMIDI INデバイス名m_MIDIINDevNameを追加。

MIDITrailApp::MIDITrailApp

  • MIDI INデバイス名m_MIDIINDevNameの初期化処理を追加。

MIDITrailApp::_OnMenuSelectSceneType

  • ライブモニタのシーンオブジェクト作成後に、MIDI INデバイス名の設定とモニタ状態を設定する処理を追加。

MIDITrailApp::_SetMonitorPortDev

  • 設定ファイルから取得したMIDI INデバイス名をメンバに登録するように修正。

MIDITrailApp::_ChangeWindowSize

  • シーンオブジェクト破棄前にMIDI INデバイス名を取得する。
  • シーンオブジェクト生成後にMIDI INデバイス名とモニタ状態を設定する。

MTScenePianoRoll3DLive::OnPlayEnd

  • ダッシュボードにMIDI INデバイス名を登録する処理を追加。

MTScenePianoRollRainLive::OnPlayEnd

  • ダッシュボードにMIDI INデバイス名を登録する処理を追加。

MTScenePianoRollRingLive::OnPlayEnd

  • ダッシュボードにMIDI INデバイス名を登録する処理を追加。

制限事項

シーンオブジェクトを再作成することにより、ノート数カウントはゼロにリセットされる。 現状は対策を見送り、制限事項とする。この制限はMIDIファイル生成でも同じ。

2022-10-20 22:07 更新者: yknk
  • 状況オープン から 完了 に更新されました
  • 解決法なし から 修正済み に更新されました

添付ファイルリスト

添付ファイルはありません