PlayerRegisterVisualPlugIn[iTunes SDK]
ビジュアルプラグインをiTunesに登録するためには、PlayerRegisterVisualPlugInを呼びます。
iTunesにプラグインを登録
OSStatus PlayerRegisterVisualPlugin (void *appCookie, ITAppProcPtr appProc,
PlayerMessageInfo *messageInfo);
パラメータ
appCookie : プラグインが必要とするcookieパラメータ(起動時のmessageInfo) appProc : プラグインが必要とするコールバック関数(起動時のmessageInfo) messageInfo : PlayerRegisterVisualPluginMessageで定義されている構造体
概要:
1つ目と2つ目のパラメータは、エントリポイントで受け取ったmessageInfoのappCookie,appProc。 3つ目のパラメータは、自分のビジュアルプラグインのメッセージハンドラ関数へのポインタです。 kVisualPlugIn…で始まるメッセージはすべてこのメッセージハンドラ関数に送信されます。 例えば、登録直後には、kVisualPluginInitMessageメッセージがメッセージハンドラ関数に送信されます。
PlayerRegisterVisualPluginMessage
iTunesにプラグインを登録際に渡す構造体
struct PlayerRegisterVisualPluginMessage {
// Input from plugin
Str63 name; // ビジュアルメニューの名称
OptionBits options; // オプション(enum参照)
OSType creator; // pluginの識別(クリエータ)
NumVersion pluginVersion; // プラグインのバージョン番号
VisualPluginProcPtr handler; // メッセージハンドラ関数へのポインタ
void * registerRefCon; // ビジュアルプラグインハンドラのRefCon値
UInt32 timeBetweenDataInMS; // メッセージ間隔 (0xFFFFFFFF = 頻繁)
UInt32 numWaveformChannels; // 0-2 waveforms requested
UInt32 numSpectrumChannels; // 0-2 spectrums requested
SInt16 minWidth; // Minimum resizeable width
SInt16 minHeight; // Minimum resizeable height
SInt16 maxWidth; // Maximum resizeable width
SInt16 maxHeight; // Maximum resizeable height
UInt16 minFullScreenBitDepth; // 0 = Any
UInt16 maxFullScreenBitDepth; // 0 = Any
UInt16 windowAlignmentInBytes; // Reserved (should be zero)
};
optionsの値
enum {
// PlayerRegisterVisualPluginMessage.options
kVisualWantsIdleMessages = (1L << 3), //アイドルメッセージを要求する
kVisualWantsConfigure = (1L << 5) //iTunesのオプションボタンクリックメッセージを要求する
};