PlayerRegisterVisualPlugIn[iTunes SDK]

メモ:  Category:sdk_mfc

ビジュアルプラグインを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のオプションボタンクリックメッセージを要求する
};

bluenote by BBB