Ticket #30552

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

Open Date: 2013-01-21 00:30 Last Update: 2013-12-05 00:45

Reporter:
Owner:
Status:
Closed
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

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

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

Ticket History (3/5 Histories)

2013-01-21 00:30 Updated by: yknk
  • New Ticket "演奏イベントをウィンドウメッセージからキューに変更" created
2013-01-21 00:31 Updated by: yknk
Comment

対策

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

変更前

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

変更後

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

2013-11-10 21:25 Updated by: yknk
Comment

対策詳細

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 Updated by: yknk
  • Resolution Update from None to Fixed
2013-12-05 00:45 Updated by: yknk
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2013-12-05 00:45

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login