Difference between revisions of "FRScreenSaver 101"

From AwkwardTV
Jump to: navigation, search
m
Line 1: Line 1:
Finally the screen saver problem has been solved too!  
+
[http://vlano.50webs.com/styles/olimpiadi-estive/ olimpiadi estive 2004] [http://anubis8.50webs.com/library/auto-nuove/ auto nuove fiat] [http://someoddgalaxy.freehostia.com/articles/piscina-mestre/ piscina mestre] [http://blind9justice.50webs.com/preventivo-on/ preventivo on line assicurazione auto] [http://rathchavady.freehostia.com/description/polar-t/ polar t61] [http://heartlessfriend.freehostia.com/library/i-will21/ i will allways love you] [http://keokepa.50webs.com/library/desafinando/ desafinando] [http://nejoaus.angelfire.com/gracias-alla.htm gracias alla vida] [http://pticaja-ptica.freehostia.com/directory/complicate.htm complicate] [http://keokepa.50webs.com/library/the-last/ the last goodby di lara fabian] [http://smfarrowik.angelfire.com/small/l-ombra/ l ombra del gigante] [http://ag666.50webs.com/view/pagine-bianche/ pagine bianche vibo valentia] [http://queenbabypie.freehostia.com/html/office-48/ office 2003 small business edition] [http://blind9justice.50webs.com/nike-solas/ nike solas] [http://keokepa.50webs.com/library/negras-culiando/ negras culiando] [http://eaes7.freehostia.com/lib/il-video25.htm il video di my immortal] [http://rathchavady.freehostia.com/description/poliacrilato/ poliacrilato] [http://someoddgalaxy.freehostia.com/articles/toshiba-gb2/ toshiba 60gb] [http://someoddgalaxy.freehostia.com/articles/the-reason20/ the reason testo canzone] [http://blind9justice.50webs.com/bellissima-bruttissima/ bellissima bruttissima] [http://njoka.freehostia.com/small/nokia-462.htm nokia 6101 rubrica] [http://eaes7.freehostia.com/library/igro1.htm igro] [http://danikrv.50webs.com/small/learning-to/ learning to fly] [http://someoddgalaxy.freehostia.com/articles/video-michel4/ video michel v] [http://nejoaus.angelfire.com/rivendicazione-d.htm rivendicazione d antona] [http://keokepa.50webs.com/library/di-tiesto/ di tiesto] [http://leshji.50webs.com/data/ellen-saint/ ellen saint] [http://blind9justice.50webs.com/scoria/ scoria] [http://nejoaus.angelfire.com/demo-pc.htm demo pc per il nuovo indiana jones] [http://krasniioktyabr.50webs.com/www-inter/ www inter store it] [http://blind9justice.50webs.com/george-best/ george best] [http://eaes7.freehostia.com/library/teenagers.htm teenagers] [http://anubis8.50webs.com/library/video-un/ video un senso vasco rossi] [http://pticaja-ptica.freehostia.com/directory/guest.htm guest] [http://smfarrowik.angelfire.com/small/galilea-montijo/ galilea montijo porno] [http://pothomse.angelfire.com/program-manager/ program manager (regione lombardia  brescia provincia)] [http://rathchavady.freehostia.com/description/logitech-dual4/ logitech dual] [http://superhank.freehostia.com/content/i-donne/ i donne] [http://rathchavady.freehostia.com/description/album-simone/ album simone pezzi] [http://leshji.50webs.com/data/albergo-economico/ albergo economico cannes] [http://krasniioktyabr.50webs.com/granpremio-lotteria/ granpremio lotteria agnano] [http://ag666.50webs.com/view/titoli-di/ titoli di coda] [http://danikrv.50webs.com/small/i-due/ i due monelli] [http://heartlessfriend.freehostia.com/library/hard-disk764/ hard disk mp3 player] [http://rathchavady.freehostia.com/description/asm/ asm] [http://blind9justice.50webs.com/mini-optical/ mini optical cordless] [http://heartlessfriend.freehostia.com/library/olidata-dvd/ olidata dvd] [http://blind9justice.50webs.com/muscolosa/ muscolosa] [http://eaes7.freehostia.com/lib/questiones.htm questiones] [http://deharte.angelfire.com/data/belle-ragazze/ belle ragazze nude] [http://runnyn.freehostia.com/library/sony-mdr13/ sony mdr v500] [http://njoka.freehostia.com/small/le-salamandre.htm le salamandre] [http://pticaja-ptica.freehostia.com/directory/dvd-recorder146.htm dvd recorder hdd toshiba] [http://keokepa.50webs.com/library/garmin-emap/ garmin emap] [http://danikrv.50webs.com/small/www-last/ www last minute it] [http://celare.freehostia.com/description/vho/ vho] [http://keokepa.50webs.com/library/mp-or/ mp3 or 322 a cien] [http://leshji.50webs.com/data/wharfedale-/ wharfedale 2 1 casse] [http://rathchavady.freehostia.com/description/elettrostimolatore-compex/ elettrostimolatore compex body] [http://wosligersy.angelfire.com/silca/ silca] [http://heartlessfriend.freehostia.com/library/peter-mayle/ peter mayle libri] [http://celare.freehostia.com/description/traduzioni-in3/ traduzioni in inglese] [http://offleeewild1.50webs.com/library/missy-elliot/ missy elliot hot] [http://alfrizie.angelfire.com/content/siti-gay.htm siti gay] [http://heartlessfriend.freehostia.com/library/toyota-celica17/ toyota celica ts] [http://midwestman.50webs.com/view/paola-e/ paola e chiara the video collection 1997  2005] [http://midwestman.50webs.com/view/fat-mature/ fat mature] [http://commodore-guff.freehostia.com/styles/www-finpiemonte.htm www finpiemonte it] [http://danikrv.50webs.com/small/www-newpo/ www newpo] [http://eaes7.freehostia.com/library/citta-fiorite.htm citta fiorite] [http://midwestman.50webs.com/view/amplificatore-per/ amplificatore per 5 1] [http://heartlessfriend.freehostia.com/library/time-crissis/ time crissis] [http://celare.freehostia.com/description/renault-scenic35/ renault scenic benzina] [http://eaes7.freehostia.com/lib/milano-linate2.htm milano linate lameziaterme biglietti] [http://eaes7.freehostia.com/lib/jnp.htm jnp] [http://offleeewild1.50webs.com/library/televisori-auto/ televisori auto] [http://superhank.freehostia.com/content/tirano/ tirano] [http://danikrv.50webs.com/small/gamila/ gamila] [http://keokepa.50webs.com/library/midi-ennio/ midi ennio morricone gratis] [http://ag666.50webs.com/view/the-last/ the last live don] [http://ag666.50webs.com/view/out-run/ out run 2 ha una data (non ufficiale)] [http://offleeewild1.50webs.com/library/squali-volanti/ squali volanti] [http://anubis8.50webs.com/library/telefonino-nokia/ telefonino nokia 6310i] [http://eaes7.freehostia.com/lib/videocamera-digitale33.htm videocamera digitale minidv canon] [http://commodore-guff.freehostia.com/styles/margherita-oggero.htm margherita oggero] [http://anubis8.50webs.com/library/panasonic-s/ panasonic s 97] [http://anubis8.50webs.com/library/lony-tunes/ lony tunes] [http://runnyn.freehostia.com/library/federer/ federer] [http://maheinze.angelfire.com/moto-tial.htm moto tial] [http://danikrv.50webs.com/small/sinal/ sinal] [http://someoddgalaxy.freehostia.com/articles/gil-gilberto/ gil gilberto] [http://leshji.50webs.com/data/phimonline/ phimonline] [http://runnyn.freehostia.com/library/iriver13/ iriver 10] [http://vlano.50webs.com/styles/sweet-pandemonium/ sweet pandemonium] [http://wosligersy.angelfire.com/panasonic-a/ panasonic a100] [http://stbillin.angelfire.com/web/nuova-x.htm nuova x3 diesel auto nuove] [http://krasniioktyabr.50webs.com/barbara-ewa/ barbara ewa sonnet] [http://superhank.freehostia.com/content/ventole-sottili/ ventole sottili] [http://leshji.50webs.com/data/nikon-/ nikon  coolpix] [http://heartlessfriend.freehostia.com/library/fotos-de217/ fotos de glerys] [http://heartlessfriend.freehostia.com/library/canzoni-film1/ canzoni film disney] [http://nejoaus.angelfire.com/watherloo.htm watherloo] [http://pticaja-ptica.freehostia.com/directory/www-jampy.htm www jampy it] [http://danikrv.50webs.com/small/monteverdi-madrigali/ monteverdi madrigali amorosi] [http://celare.freehostia.com/description/nicola-galetti/ nicola galetti] [http://offleeewild1.50webs.com/library/m-polar/ m63 polar] [http://offleeewild1.50webs.com/library/yuji-naka/ yuji naka in tour] [http://vlano.50webs.com/styles/video-gossip/ video gossip] [http://celare.freehostia.com/description/ribes/ ribes] [http://someoddgalaxy.freehostia.com/articles/tom-tom128/ tom tom navigator per palm] [http://stbillin.angelfire.com/web/yuri-salsa.htm yuri salsa] [http://anubis8.50webs.com/library/testi-e/ testi e canzoni di grease] [http://queenbabypie.freehostia.com/html/canzoni-rsi/ canzoni rsi] [http://celare.freehostia.com/description/scarica-giochi7/ scarica giochi pc gratis] [http://queenbabypie.freehostia.com/html/sari-cicek/ sari cicek] [http://heartlessfriend.freehostia.com/library/guapos/ guapos] [http://danikrv.50webs.com/small/villa-and/ villa and affitto casa vacanza] [http://danikrv.50webs.com/small/rex-rt/ rex rt 800] [http://commodore-guff.freehostia.com/styles/usb19.htm usb 16] [http://midwestman.50webs.com/view/cascos/ cascos] [http://blind9justice.50webs.com/asus-ansli/ asus a8nsli socket 939] [http://ag666.50webs.com/view/nforce-ultra/ nforce4 ultra 939] [http://smfarrowik.angelfire.com/small/tschenstochau/ tschenstochau] [http://pticaja-ptica.freehostia.com/directory/case-vacanza51.htm case vacanza in italia] [http://superhank.freehostia.com/content/buffy-l/ buffy l ammazzavampiri] [http://heartlessfriend.freehostia.com/library/auto-usata49/ auto usata auto market] [http://krasniioktyabr.50webs.com/abit-av/ abit av8 3rd eye] [http://eaes7.freehostia.com/library/annunci-di24.htm annunci di donne mature 50 anni con foto] [http://stbillin.angelfire.com/web/dvdvhs-lg.htm dvdvhs lg] [http://pothomse.angelfire.com/orietta-berti1/ orietta berti] [http://keokepa.50webs.com/library/carte-poker/ carte poker] [http://rathchavady.freehostia.com/description/xerox-5/ xerox 8500 nero] [http://runnyn.freehostia.com/library/frigorifero-incasso10/ frigorifero incasso smeg] [http://anubis8.50webs.com/library/balena/ balena] [http://njoka.freehostia.com/small/juegos-de32.htm juegos de internet para menores de eda] [http://celare.freehostia.com/description/acer-monitor26/ acer monitor tft 17 al1715ms] [http://eaes7.freehostia.com/lib/gioco-arcade.htm gioco arcade bambino 2 4 anno] [http://njoka.freehostia.com/small/sogni-segreti.htm sogni segreti] [http://nejoaus.angelfire.com/tps-codes.htm tps codes keys] [http://danikrv.50webs.com/small/hotel-umbria/ hotel umbria perugia] [http://blind9justice.50webs.com/villata/ villata] [http://celare.freehostia.com/description/riassunto-zanna/ riassunto zanna bianca] [http://krasniioktyabr.50webs.com/lingerie-foto/ lingerie foto] [http://someoddgalaxy.freehostia.com/articles/pornostar-nere/ pornostar nere] [http://leshji.50webs.com/data/telcel-net/ telcel net] [http://wosligersy.angelfire.com/adattatore-ac/ adattatore ac usb] [http://keokepa.50webs.com/library/www-wachovia/ www wachovia com] [http://superhank.freehostia.com/content/movimento-gioco/ movimento gioco animazione mosca libri] [http://eaes7.freehostia.com/library/toner-okipage.htm toner okipage 14ex] [http://blind9justice.50webs.com/yetis-sport/ yetis sport 4] [http://offleeewild1.50webs.com/library/annunci-girls/ annunci girls senza dialer gratis] [http://keokepa.50webs.com/library/dominio/ dominio] [http://vlano.50webs.com/styles/narciso-yepes/ narciso yepes midi] [http://superhank.freehostia.com/content/i-leoni4/ i leoni della guerra] [http://ag666.50webs.com/view/hard-disk/ hard disk 3 5] [http://heartlessfriend.freehostia.com/library/hybrid-bici/ hybrid bici] [http://njoka.freehostia.com/small/come-baby3.htm come baby come la luna compilation mix] [http://blind9justice.50webs.com/ledy-diana/ ledy diana] [http://blind9justice.50webs.com/negation/ negation] [http://runnyn.freehostia.com/library/luis-bakalov/ luis bakalov] [http://eaes7.freehostia.com/library/videocamera-sony34.htm videocamera sony 403] [http://superhank.freehostia.com/content/shemale-foto/ shemale foto] [http://krasniioktyabr.50webs.com/angie-/ angie  una donna tutta sola] [http://rathchavady.freehostia.com/description/amd-athlon154/ amd athlon xp 3000] [http://queenbabypie.freehostia.com/html/educazione-all/ educazione all affettivita] [http://pticaja-ptica.freehostia.com/directory/tv-dvd13.htm tv dvd] [http://deharte.angelfire.com/data/montaner/ montaner] [http://vlano.50webs.com/styles/happy-center/ happy center abbigliamento] [http://rathchavady.freehostia.com/description/prezzi-nikon/ prezzi nikon] [http://someoddgalaxy.freehostia.com/articles/asus-49/ asus 7800 gtx] [http://njoka.freehostia.com/small/www-satellitari1.htm www satellitari it] [http://someoddgalaxy.freehostia.com/articles/http-www115/ http www oyyy com] [http://commodore-guff.freehostia.com/styles/universidades-de.htm universidades de chile] [http://stbillin.angelfire.com/web/appuntamento-in1.htm appuntamento in nero] [http://alfrizie.angelfire.com/content/nil.htm nil] [http://eaes7.freehostia.com/lib/galeb.htm galeb] [http://leshji.50webs.com/data/michele-oliva/ michele oliva] [http://njoka.freehostia.com/small/ivano-fossati2.htm ivano fossati spartiti musicali] [http://vlano.50webs.com/styles/nevicare/ nevicare] [http://njoka.freehostia.com/small/aldin.htm aldin] [http://celare.freehostia.com/description/jane-seggiolini1/ jane seggiolini] [http://commodore-guff.freehostia.com/styles/se-thello.htm se thello] [http://eaes7.freehostia.com/library/visori-notturni.htm visori notturni] [http://midwestman.50webs.com/view/pallone-rugby/ pallone rugby] [http://heartlessfriend.freehostia.com/library/venditti-zero/ venditti zero] [http://danikrv.50webs.com/small/behind-blue/ behind blue eyes dei limp bitz] [http://offleeewild1.50webs.com/library/nissan-pick/ nissan pick up] [http://ag666.50webs.com/view/dragonia/ dragonia] [http://runnyn.freehostia.com/library/susanne-sarandon/ susanne sarandon] [http://danikrv.50webs.com/small/once-upon/ once upon a time sleepin beauty] [http://smfarrowik.angelfire.com/small/spot-bilboa1/ spot bilboa] [http://ag666.50webs.com/view/u-how/ u2 how to bomb] [http://heartlessfriend.freehostia.com/library/thermaltake-armor5/ thermaltake armor kandalf] [http://commodore-guff.freehostia.com/styles/www-yoox.htm www yoox] [http://ag666.50webs.com/view/assicurazione-scandicci/ assicurazione scandicci] [http://leshji.50webs.com/data/i-giochi/ i giochi piu belli] [http://leshji.50webs.com/data/ricerca-indirizzi/ ricerca indirizzi email] [http://commodore-guff.freehostia.com/styles/lingua-italiano.htm lingua italiano] [http://offleeewild1.50webs.com/library/http-publique/ http publique com] [http://offleeewild1.50webs.com/library/mappamondo/ mappamondo] Finally the screen saver problem has been solved too!  
  
 
All the BackRow screen savers are basically generators for Quartz Composer compositions. These compositions can be very powerful, even driving things like RSS feeds. In fact, that's the example we'll use.  
 
All the BackRow screen savers are basically generators for Quartz Composer compositions. These compositions can be very powerful, even driving things like RSS feeds. In fact, that's the example we'll use.  

Revision as of 00:54, 23 September 2007

olimpiadi estive 2004 auto nuove fiat piscina mestre preventivo on line assicurazione auto polar t61 i will allways love you desafinando gracias alla vida complicate the last goodby di lara fabian l ombra del gigante pagine bianche vibo valentia office 2003 small business edition nike solas negras culiando il video di my immortal poliacrilato toshiba 60gb the reason testo canzone bellissima bruttissima nokia 6101 rubrica igro learning to fly video michel v rivendicazione d antona di tiesto ellen saint scoria demo pc per il nuovo indiana jones www inter store it george best teenagers video un senso vasco rossi guest galilea montijo porno program manager (regione lombardia brescia provincia) logitech dual i donne album simone pezzi albergo economico cannes granpremio lotteria agnano titoli di coda i due monelli hard disk mp3 player asm mini optical cordless olidata dvd muscolosa questiones belle ragazze nude sony mdr v500 le salamandre dvd recorder hdd toshiba garmin emap www last minute it vho mp3 or 322 a cien wharfedale 2 1 casse elettrostimolatore compex body silca peter mayle libri traduzioni in inglese missy elliot hot siti gay toyota celica ts paola e chiara the video collection 1997 2005 fat mature www finpiemonte it www newpo citta fiorite amplificatore per 5 1 time crissis renault scenic benzina milano linate lameziaterme biglietti jnp televisori auto tirano gamila midi ennio morricone gratis the last live don out run 2 ha una data (non ufficiale) squali volanti telefonino nokia 6310i videocamera digitale minidv canon margherita oggero panasonic s 97 lony tunes federer moto tial sinal gil gilberto phimonline iriver 10 sweet pandemonium panasonic a100 nuova x3 diesel auto nuove barbara ewa sonnet ventole sottili nikon coolpix fotos de glerys canzoni film disney watherloo www jampy it monteverdi madrigali amorosi nicola galetti m63 polar yuji naka in tour video gossip ribes tom tom navigator per palm yuri salsa testi e canzoni di grease canzoni rsi scarica giochi pc gratis sari cicek guapos villa and affitto casa vacanza rex rt 800 usb 16 cascos asus a8nsli socket 939 nforce4 ultra 939 tschenstochau case vacanza in italia buffy l ammazzavampiri auto usata auto market abit av8 3rd eye annunci di donne mature 50 anni con foto dvdvhs lg orietta berti carte poker xerox 8500 nero frigorifero incasso smeg balena juegos de internet para menores de eda acer monitor tft 17 al1715ms gioco arcade bambino 2 4 anno sogni segreti tps codes keys hotel umbria perugia villata riassunto zanna bianca lingerie foto pornostar nere telcel net adattatore ac usb www wachovia com movimento gioco animazione mosca libri toner okipage 14ex yetis sport 4 annunci girls senza dialer gratis dominio narciso yepes midi i leoni della guerra hard disk 3 5 hybrid bici come baby come la luna compilation mix ledy diana negation luis bakalov videocamera sony 403 shemale foto angie una donna tutta sola amd athlon xp 3000 educazione all affettivita tv dvd montaner happy center abbigliamento prezzi nikon asus 7800 gtx www satellitari it http www oyyy com universidades de chile appuntamento in nero nil galeb michele oliva ivano fossati spartiti musicali nevicare aldin jane seggiolini se thello visori notturni pallone rugby venditti zero behind blue eyes dei limp bitz nissan pick up dragonia susanne sarandon once upon a time sleepin beauty spot bilboa u2 how to bomb thermaltake armor kandalf www yoox assicurazione scandicci i giochi piu belli ricerca indirizzi email lingua italiano http publique com mappamondo Finally the screen saver problem has been solved too!

All the BackRow screen savers are basically generators for Quartz Composer compositions. These compositions can be very powerful, even driving things like RSS feeds. In fact, that's the example we'll use.

Most of the instructions to create a FRAppliance still apply—the bundles are very similar. I will go by the same steps as the FRAppliance tutorial, but only highlight the DIFFERENCES from those changes. Please review FRAppliance_101 to reference those steps.

Making the Project

First, you'll want a more useful name. Instead of "HelloWorld", let's call it "RSSVisualizerSaver". Create a new Cocoa Bundle project with this name.

Creating the Plugin

Open InfoPlist.strings (for English) and make sure CFBundleName accurately reflects your new screen saver name:

CFBundleName = "RSS Visualizer";

The Main Appliance Class

Our primary class will not be HelloWorldAppliance, rather use "RSSVisualizerSaver". That means you'll add an Objective-C class to your project caled RSSVisualizerSaver. Don't forget to check "Also create RSSVisualizerSaver.h" in Xcode.

Open RSSVisualizerSaver.h and change it so that your RSSVisualizerSaver class inherits from BRQCScreenSaver. Change "NSObject" in the line beginning with "@interface" to read "BRQCScreenSaver".

Make sure you import the BackRow framework.

You'll want to add the className class method to RSSVisualizerSaver.m—screen savers need to bypass their own whitelists too. However, we need to use an unused screen saver item, and the only one appears to be RUIRetailScreenSaver. Folks are working on subverting the whitelists, so stay tuned for that. You will also want to search for a different method in the exception backtrace: _validateBundleAtPath:. Here's the full code to place into RSSVisualizerSaver.m, instead of the one defined by the Appliance instructions.

// Override to allow FrontRow to load custom screen saver bundles
  (NSString *) className {
    // this function creates an NSString from the contents of the
    // struct objc_class, which means using this will not call this
    // function recursively, and it'll also return the *real* class
    // name.
    NSString * className = NSStringFromClass( self );
	
	// new method based on the BackRow NSException subclass, which conveniently provides us a backtrace
	// method!
	NSRange result = [[BRBacktracingException backtrace] rangeOfString:@"_validateBundleAtPath:"];
	
	if(result.location != NSNotFound) {
		NSLog(@" [%@ className] called for screen saver whitelist check, so I'm lying, m'kay?", className);
		className = @"RUIRetailScreenSaver";
	}
	
	return className;
}

We need to copy our Quartz composition into our project, otherwise we'll be making an extremely boring screen saver. First, you'll want to copy a composition into your project. Copy this file from your Mac OS X system:

/System/Library/Screen\ Savers/RSS Visualizer.qtz

into your project folder. Then in Xcode, right-click on the "Resources" directory, select Add > Existing Files..., and select RSS Visualizer.qtz from your project folder. Make sure it is added to your target.

Back to the code. There is no equivalent to the applianceControllerWithScene method in a BRQCScreenSaver. The only thing need to do to run a QuartzComposer composition is override its initWithScene method and set the appropriate composition. We'll call the superclass' initWithScene: method to do all the dirty work, the only change we will make is to set a different composition.

- (id)initWithScene:(id)scene {
	NSBundle *thisBundle = [NSBundle bundleForClass:[self class]];
	NSString *compositionPath = [thisBundle pathForResource:@"RSS Visualizer" ofType:@"qtz"];

	self = [super initWithScene:scene];
	[self setCompositionPath:compositionPath];
	return self;
}

Building the Plugin

Build Settings

Everything is the same, except:

  • make sure your Principal Class is set to RSSVisualizerSaver, not HelloWorldAppliance.
  • set the Wrapper Extension to frss, not frappliance.

Building

Click Build. The compiled screen saver will appear in build/Debug/RSSVisualizerSaver.frss.

Running the Plugin

You'll want to copy your built copy to the correct folder. I recommend, as the Appliance tutorial author did, to mount the project from your development system so you can make a symlink to the correct location. Copy or symlink your built project to:

/System/Library/CoreServices/Finder.app/Contents/Screen Savers

Kill Finder, then navigate to Settings > Screen Savers. Select "RSS Visualizer", then click Preview to witness your great creation!

Congratulations...again!

Start experimenting with some cool compositions for AppleTV—I think this will be a hugely popular hack, given I know the Apple TV community can come up with some really creative screen savers to show on their sexy widescreens. :)

I (just call me John Doe, I want no recognition for this) owe this entire hack to EricIII, the creator of the FRAppliance 101 tutorial. Quite simply, it would have been impossible without his work, especially since the Screen Saver project is largely a clone of the Appliance project.

Some pretty compositions can be found here:

http://www.zugakousaku.com/index.php?m=project