Exemple #1
0
//-------------------------------------------------------------------------------------------------
//	RegisterVisualPlugin
//-------------------------------------------------------------------------------------------------
//
OSStatus RegisterVisualPlugin( PluginMessageInfo * messageInfo )
{
	PlayerMessageInfo	playerMessageInfo;
	OSStatus			status;
		
	memset( &playerMessageInfo.u.registerVisualPluginMessage, 0, sizeof(playerMessageInfo.u.registerVisualPluginMessage) );

	GetVisualName( playerMessageInfo.u.registerVisualPluginMessage.name );

	SetNumVersion( &playerMessageInfo.u.registerVisualPluginMessage.pluginVersion, kTVisualPluginMajorVersion, kTVisualPluginMinorVersion, kTVisualPluginReleaseStage, kTVisualPluginNonFinalRelease );

	playerMessageInfo.u.registerVisualPluginMessage.options					= GetVisualOptions();
	playerMessageInfo.u.registerVisualPluginMessage.handler					= (VisualPluginProcPtr)VisualPluginHandler;
	playerMessageInfo.u.registerVisualPluginMessage.registerRefCon			= 0;
	playerMessageInfo.u.registerVisualPluginMessage.creator					= kTVisualPluginCreator;
	
	playerMessageInfo.u.registerVisualPluginMessage.pulseRateInHz			= kStoppedPulseRateInHz;	// update my state N times a second
	playerMessageInfo.u.registerVisualPluginMessage.numWaveformChannels		= 2;
	playerMessageInfo.u.registerVisualPluginMessage.numSpectrumChannels		= 2;
	
	playerMessageInfo.u.registerVisualPluginMessage.minWidth				= 64;
	playerMessageInfo.u.registerVisualPluginMessage.minHeight				= 64;
	playerMessageInfo.u.registerVisualPluginMessage.maxWidth				= 0;	// no max width limit
	playerMessageInfo.u.registerVisualPluginMessage.maxHeight				= 0;	// no max height limit
	
	status = PlayerRegisterVisualPlugin( messageInfo->u.initMessage.appCookie, messageInfo->u.initMessage.appProc, &playerMessageInfo );
		
	return status;
}
Exemple #2
0
static OSStatus
RegisterVisualPlugin( PluginMessageInfo *messageInfo )
{
    OSStatus status;
    PlayerMessageInfo playerMessageInfo;

#if TARGET_OS_WIN32
    ClearMemory( &playerMessageInfo.u.registerVisualPluginMessage, 
                 sizeof( playerMessageInfo.u.registerVisualPluginMessage ) );
#else
    memset( &playerMessageInfo.u.registerVisualPluginMessage, 
            0,
            sizeof( playerMessageInfo.u.registerVisualPluginMessage ) );
#endif

#if TARGET_OS_MAC
    const char* pluginName = kVisualPluginName;
    int const n = strlen( pluginName );
    playerMessageInfo.u.registerVisualPluginMessage.name[0] = n;
    memcpy( &playerMessageInfo.u.registerVisualPluginMessage.name[1], &pluginName[0], n );
#else
    // copy in name length byte first
    playerMessageInfo.u.registerVisualPluginMessage.name[0] = lstrlenA( kVisualPluginName );

    // now copy in actual name
    memcpy( &playerMessageInfo.u.registerVisualPluginMessage.name[1],
            kVisualPluginName,
            lstrlenA(kVisualPluginName));
#endif

    SetNumVersion( &playerMessageInfo.u.registerVisualPluginMessage.pluginVersion,
        kVisualPluginMajorVersion,
        kVisualPluginMinorVersion,
        kVisualPluginReleaseStage,
        kVisualPluginNonFinalRelease );

    LOG( 3, "Giving iTunes version number: " + GetVersionString() );

#if TARGET_OS_WIN32
    //FIXME actually, I doubt we want these
    playerMessageInfo.u.registerVisualPluginMessage.options                 = kVisualWantsIdleMessages;
#endif
    playerMessageInfo.u.registerVisualPluginMessage.handler                 = VisualPluginHandler;
    playerMessageInfo.u.registerVisualPluginMessage.registerRefCon          = 0;
    playerMessageInfo.u.registerVisualPluginMessage.creator                 = kVisualPluginCreator;

    // following sets render to be called every 100ms
    playerMessageInfo.u.registerVisualPluginMessage.timeBetweenDataInMS     = 100; // 16 milliseconds = 1 Tick, 0xFFFFFFFF = Often as possible.
    playerMessageInfo.u.registerVisualPluginMessage.numWaveformChannels     = 2;
    playerMessageInfo.u.registerVisualPluginMessage.numSpectrumChannels     = 2;

    playerMessageInfo.u.registerVisualPluginMessage.minWidth                = 64;
    playerMessageInfo.u.registerVisualPluginMessage.minHeight               = 64;
    playerMessageInfo.u.registerVisualPluginMessage.maxWidth                = 32767;
    playerMessageInfo.u.registerVisualPluginMessage.maxHeight               = 32767;
    playerMessageInfo.u.registerVisualPluginMessage.minFullScreenBitDepth   = 0;
    playerMessageInfo.u.registerVisualPluginMessage.maxFullScreenBitDepth   = 0;
    playerMessageInfo.u.registerVisualPluginMessage.windowAlignmentInBytes  = 0;

    messageInfo->u.initMessage.options = 0;
    messageInfo->u.initMessage.refCon = 0;
    
    status = PlayerRegisterVisualPlugin( messageInfo->u.initMessage.appCookie,
                                         messageInfo->u.initMessage.appProc,
                                         &playerMessageInfo );
    return status;
}