VisualPluginHandler[iTunes SDK]

メモ:

iTunesからのメッセージをハンドリングします。

メッセージハンドラの定義

ビジュアルプラグインのメッセージハンドラは、次のように定義されています。

OSStatus VisualPluginHandler(OSType message, 
                VisualPluginMessageInfo * messageInfo, void * refCon);

パラメータ

message : メッセージの種類 messageInfo : メッセージパラメータへのポインタ refCon :

概要:

メッセージ:

kVisualPluginInitMessage
ビジュアルプラグインを登録した直後に送信されます。refConパラメータはPlayerRegisterVisualPluginMessage.registerRefConで指定した値が入ります。プラグインはVisualPluginInitMessageのoptionsとrefConフィールドを記入して返します。
kVisualPluginCleanupMessage
iTunes終了直前に送信されます。ビジュアルプラグインで使用しているリソース(メモリ、ファイルなど)はこの時に解除します。
kVisualPluginIdleMessage
アイドルメッセージを要求した場合のみ定期的に送信されます。アイドルメッセージを要求
kVisualPluginConfigureMessage
ユーザがiTunesウインドウ右上の“オプション”ボタンをクリックした時に送信されます。 PlayerRegisterVisualPluginMessage.optionsを設定することによって使用可能となります。
kVisualPluginEnableMessage
kVisualPluginDisableMessage
iTunesはすべてのビジュアルプラグインを使用可能にするので、このメッセージに対してはnoErrを返します。
kVisualPluginShowWindowMessage
ビジュアルエフェクトが実際に稼動した時に送信されます。ビジュアルエフェクトに必要なメモリ領域などはこの時に確保します。
kVisualPluginHideWindowMessage
ビジュアルエフェクトが停止された時に送信されます。ビジュアルエフェクトで使用したメモリ領域などはこの時に解除します。
kVisualPluginSetWindowMessage
ユーザがiTunesウインドウの大きさを変更した場合や、フルスクリーンモードを入/切した場合に送信されます。
kVisualPluginRenderMessage
音楽再生中、登録時に指定した間隔で定期的に送信されます。
kVisualPluginUpdateMessage
アップデートイベントがあった時に送信されます。(この時、描画します)
kVisualPluginPlayMessage
iTunesが音楽トラックを再生した時に送信されます。
kVisualPluginChangeTrackMessage
音楽トラックの情報が変更された時に送信されます。
kVisualPluginStopMessage
音楽の再生が停止された時に送信されます。
kVisualPluginSetPositionMessage
音楽トラックの経過時間が変わった時に送信されます。
kVisualPluginPauseMessage,kVisualPluginUnpauseMessage
iTunesは現在一時停止機能を停止と再生の組み合わせで実装しています。ビジュアルプラグインはこのメッセージに対してnoErrを返します。

メッセージとパラメータの関係

メッセージVisualPluginMessageInfo
kVisualPluginInitMessage VisualPluginInitMessage
kVisualPluginCleanupMessage n/a
kVisualPluginIdleMessage n/a
kVisualPluginConfigureMessage n/a
kVisualPluginEnableMessage n/a
kVisualPluginDisableMessage n/a
kVisualPluginShowWindowMessage VisualPluginShowWindowMessage
kVisualPluginHideWindowMessage n/a
kVisualPluginSetWindowMessage VisualPluginSetWindowMessage
kVisualPluginRenderMessage VisualPluginRenderMessage
kVisualPluginUpdateMessage n/a
kVisualPluginPlayMessage VisualPluginPlayMessage
kVisualPluginChangeTrackMessage VisualPluginChangeTrackMessage
kVisualPluginStopMessage n/a
kVisualPluginSetPositionMessage VisualPluginSetPositionMessage
kVisualPluginPauseMessage n/a
kVisualPluginUnpauseMessage n/a