OSDN Ticket Archive


Ticket #30552

演奏イベントをウィンドウメッセージからキューに変更

登録: 2013-01-21 00:30 最終更新: 2013-12-05 00:45

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

詳細

Windows版では、演奏スレッドから描画スレッドへのイベント通知にウィンドウメッセージを利用してきた。 これをMac OS X版、iOS版と同様にメッセージキューの利用に切り替える。

目的は処理方式の統一。 またウィンドウメッセージでは、送信できるユーザデータが4byte * 2に固定されるため、 送信データの拡張が困難である。

チケットの履歴

2013-01-21 00:30 更新者: yknk
  • 新しいチケット "演奏イベントをウィンドウメッセージからキューに変更" が作成されました
2013-01-21 00:31 更新者: yknk
コメント

対策

Mac OS X版からWindows版にメッセージキュークラスSMMsgQueueを移植する。 MIDITrailAppでメッセージキューのインスタンスを保持する。 シーケンサ(SMSequencer)、ライブモニタ(SMLiveMonitor)からのイベント通知方法を 次のように変更する。

変更前

メインウィンドウへのウィンドウメッセージ(PostMessage)で通知する。

変更後

メッセージキューへのメッセージ登録で通知する。

2013-11-10 21:25 更新者: yknk
コメント

対策詳細

SMMsgQueue

メッセージキュークラス新規追加。

SMLiveMonitor

初期化処理で受け取る引数を、メッセージ送信先ウィンドウハンドルとメッセージIDから、 メッセージキューオブジェクトに変更する。 メッセージオブジェクトをイベント転送オブジェクトに設定する。

  • SMLiveMonitor::Initialize

SMMsgTransmitter

メンバからメッセージ送信先ウィンドウハンドルとメッセージIDを削除し、 メンバにメッセージキューのポインタを追加する。

  • m_pMsgQueue

初期化処理で受け取る引数を、メッセージ送信先ウィンドウハンドルとメッセージIDから、 メッセージキューオブジェクトに変更する。

  • SMMsgTransmitter::Initialize

メッセージ通知処理にて、ウィンドウメッセージへのポスト(PostMessage)から、 メッセージキューオブジェクトへのメッセージ登録に変更する。

  • SMMsgTransmitter::_Post

SMSequencer

初期化処理で受け取る引数を、メッセージ送信先ウィンドウハンドルとメッセージIDから、 メッセージキューオブジェクトに変更する。 メッセージオブジェクトをイベント転送オブジェクトに設定する。

  • SMLiveMonitor::Initialize

MIDITrailApp

メンバにメッセージキューオブジェクトを追加する。

  • m_MsgQueue

メッセージキュー初期化処理を追加する。

  • MIDITrailApp::Initialize

メッセージループ内に、メッセージ処理_SequencerMsgProcの呼び出しを追加する。

  • MIDITrailApp::Run

ウィンドウメッセージによるシーケンサメッセージ(WM_SEQUENCER_MESSAGE)の受信処理を削除する。

  • MIDITrailApp::_WndProcImpl

シーケンサとライブモニタにメッセージキューオブジェクトを渡す。

  • MIDITrailApp::_OnMenuPlay
  • MIDITrailApp::_OnMenuStartMonitoring

メッセージキューからのメッセージ取り出しとメッセージ処理を実行するメソッドを追加する。

  • MIDITrailApp::_SequencerMsgProc

2013/2/24 Win版終了

2013-11-10 21:25 更新者: yknk
  • 解決法なし から 修正済み に更新されました
2013-12-05 00:45 更新者: yknk
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2013-12-05 00:45 に更新されました

添付ファイルリスト

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