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://shusik.freehostia.com/styles/katamail.htm katamail] [http://bushidobrown.freehostia.com/directory/aeroporto-di.htm aeroporto di milano] [http://chipper2007.freehostia.com/styles/finale-champions.htm finale champions league] [http://elita793.freehostia.com/web/nba-hangtime/ nba hangtime] [http://chipper2007.freehostia.com/styles/mujeres-espiadas.htm mujeres espiadas] [http://shusik.freehostia.com/styles/radio-casa.htm radio casa] [http://tapeshoes.freehostia.com/blog/newry-and/ newry and mourne] [http://yuki-yusia.freehostia.com/online-business/ online business] [http://liilliil.freehostia.com/small/cartella-piquadro.htm cartella piquadro blue square] [http://liilliil.freehostia.com/small/home-media.htm home media center] [http://mesteno.freehostia.com/i-o/ i o i o] [http://superchet.freehostia.com/medusa-salerno/ medusa salerno] [http://dano-mano.freehostia.com/html/faust-johannes/ faust johannes] [http://rosencrantz319.freehostia.com/data/dolce-remi.htm dolce remi] [http://koopochka.freehostia.com/directory/e-morto/ e morto bischero] [http://shusik.freehostia.com/styles/castellina-e.htm castellina e pasi] [http://koopochka.freehostia.com/directory/amplificatore-audio/ amplificatore audio video] [http://tapeshoes.freehostia.com/blog/primi-mod/ primi mod per doom 3] [http://muddernh.freehostia.com/small/chevrolet-roma/ chevrolet roma] [http://chipper2007.freehostia.com/styles/sport-nautici.htm sport nautici  materiali e attrezzature] [http://bushidobrown.freehostia.com/directory/prodotti-lavazza.htm prodotti lavazza] [http://bugge.freehostia.com/garmin-gps/ garmin gps 301] [http://superchet.freehostia.com/www-bossfilm/ www bossfilm com] [http://koopochka.freehostia.com/directory/video-jerry/ video jerry rivera] [http://chipper2007.freehostia.com/styles/i-calci.htm i calci di rigore] [http://lordavon.freehostia.com/resources/cancionero-general.htm cancionero general] [http://yuki-yusia.freehostia.com/festa-halloween/ festa halloween] [http://cute-krissie.freehostia.com/blog/batteria-blc.htm batteria blc2 nokia] [http://chipper2007.freehostia.com/styles/carding.htm carding] [http://elita793.freehostia.com/web/gioco-d/ gioco d avventura pc gratis] [http://yuki-yusia.freehostia.com/storia-europeo/ storia europeo calcio] [http://chipper2007.freehostia.com/styles/mr-intentional.htm mr intentional] [http://superchet.freehostia.com/merlin-u/ merlin u 530] [http://shusik.freehostia.com/styles/caparezza-fuori.htm caparezza fuori dal tunnell] [http://superchet.freehostia.com/rsv/ rsv 1000] [http://bugge.freehostia.com/chicas-pechugonas/ chicas pechugonas] [http://lombax.freehostia.com/description/salerno-sinema.htm salerno sinema] [http://lombax.freehostia.com/description/alexanderson-ernst.htm alexanderson ernst frederik ] [http://shusik.freehostia.com/styles/batteria-benq.htm batteria benq] [http://lordavon.freehostia.com/resources/pumas-de.htm pumas de la unam] [http://yuki-yusia.freehostia.com/www-donne/ www donne perverse it] [http://lordavon.freehostia.com/resources/computer-usato.htm computer usato milano] [http://superchet.freehostia.com/neon-john/ neon john mayer] [http://tapeshoes.freehostia.com/blog/gang-bang/ gang bang gay] [http://liilliil.freehostia.com/small/neghelli.htm neghelli] [http://superchet.freehostia.com/floridia-srl/ floridia srl] [http://chipper2007.freehostia.com/styles/fratello-sole.htm fratello sole sorella luna di ortolani] [http://yuki-yusia.freehostia.com/monia-midi/ monia midi] [http://yuki-yusia.freehostia.com/gossip-aldo/ gossip aldo montano] [http://shusik.freehostia.com/styles/lettore-mp.htm lettore mp3 boghe vip quadro] [http://dano-mano.freehostia.com/html/marrone/ marrone 5] [http://yuki-yusia.freehostia.com/amigo-backup/ amigo backup] [http://elita793.freehostia.com/web/videoregistratore-s/ videoregistratore s vhs] [http://lordavon.freehostia.com/resources/adagio-per.htm adagio per archi] [http://shusik.freehostia.com/styles/d-fossati.htm d fossati] [http://cute-krissie.freehostia.com/blog/real-player.htm real player] [http://pilarcruz.freehostia.com/data/red-chili.htm red chili] [http://tapeshoes.freehostia.com/blog/baia/ baia] [http://tapeshoes.freehostia.com/blog/lorenzocrespi/ lorenzocrespi] [http://chipper2007.freehostia.com/styles/tempesta-elettrica.htm tempesta elettrica] [http://bushidobrown.freehostia.com/directory/maracaibo-colombo.htm maracaibo colombo] [http://bigtyma.freehostia.com/description/madame-sousatzka/ madame sousatzka] [http://dano-mano.freehostia.com/html/officine-daewoo/ officine daewoo] [http://elita793.freehostia.com/web/www-stranierinitalia/ www stranierinitalia it] [http://chipper2007.freehostia.com/styles/rapporto-fuller.htm rapporto fuller base stoccolma] [http://liilliil.freehostia.com/small/cartoonnetworkla-com.htm cartoonnetworkla com] [http://muddernh.freehostia.com/small/nuove-immagini/ nuove immagini da rainbow six 3] [http://yuki-yusia.freehostia.com/yesterday-the/ yesterday the beatles] [http://czalex.freehostia.com/articles/singoli-ospitali/ singoli ospitali] [http://tapeshoes.freehostia.com/blog/coma/ coma] [http://elita793.freehostia.com/web/dcme/ dcme] [http://pilarcruz.freehostia.com/data/televisore.htm televisore 42] [http://rosencrantz319.freehostia.com/data/hocus-pocus.htm hocus pocus the disney movie com] [http://chipper2007.freehostia.com/styles/vff.htm vf750f] [http://superchet.freehostia.com/pentium/ pentium 830] [http://mesteno.freehostia.com/is-it/ is it cos] [http://bugge.freehostia.com/gioco-gratis/ gioco gratis download gioco] [http://bugge.freehostia.com/notebook-offerta/ notebook offerta notebook vendita] [http://bigtyma.freehostia.com/description/sony-/ sony  dscl1] [http://elita793.freehostia.com/web/ps-memory/ ps2 memory card 32 mb datel] [http://elita793.freehostia.com/web/belinea/ belinea 20] [http://yuki-yusia.freehostia.com/pocketloox/ pocketloox 420] [http://rosencrantz319.freehostia.com/data/cavo-asus.htm cavo asus gps] [http://muddernh.freehostia.com/small/bullet-time/ bullet time fight] [http://lordavon.freehostia.com/resources/pasteles-verdes.htm pasteles verdes] [http://bushidobrown.freehostia.com/directory/scegli-me.htm scegli me download] [http://czalex.freehostia.com/articles/auto-a/ auto a genova] [http://tapeshoes.freehostia.com/blog/sd/ sd 1] [http://dano-mano.freehostia.com/html/cuando-volveras/ cuando volveras accordi] [http://czalex.freehostia.com/articles/napoli-visita/ napoli visita] [http://lombax.freehostia.com/description/matrix-cam.htm matrix cam revolutions] [http://tapeshoes.freehostia.com/blog/auto-noleggio/ auto noleggio innsbruck] [http://superchet.freehostia.com/sony-vaio/ sony vaio fs315m] [http://cute-krissie.freehostia.com/blog/creme-antirughe.htm creme antirughe] [http://tapeshoes.freehostia.com/blog/samsonite-briefcase/ samsonite briefcase] [http://bugge.freehostia.com/programmi-lotto/ programmi lotto] [http://rosencrantz319.freehostia.com/data/hit-mania.htm hit mania estate 2004] [http://bigtyma.freehostia.com/description/musee/ musee] [http://liilliil.freehostia.com/small/calliano-asti.htm calliano (asti)] [http://superchet.freehostia.com/calcoli-strutturali/ calcoli strutturali esempi] [http://tncc.edu/help/img/vewheele.htm sildenafil] [http://egcti.upr.edu/help/img/kyvuj.htm cheap flonase] [http://www.tukwila.wednet.edu/UserFiles/Users/kutiko.htm ericsson ringtones] [http://egcti.upr.edu/help/img/vonobu.htm buy skelaxin] [http://egcti.upr.edu/help/img/nefojin.htm cheap sibutramine] [http://tncc.edu/help/img/cometcal.htm buy albuterol] [http://tncc.edu/help/img/zichilde.htm airline tickets] [http://egcti.upr.edu/help/img/xizogo.htm albuterol online] [http://tncc.edu/help/img/unpounds.htm cheap norvasc] [http://egcti.upr.edu/help/img/lotyce.htm mono ringtones] [http://egcti.upr.edu/help/img/kewor.htm christian ringtones] [http://tncc.edu/help/img/bumahieu.htm cheap tenuate] [http://tncc.edu/help/img/wihertzi.htm synthroid] [http://tncc.edu/help/img/fitribbl.htm soma] [http://tncc.edu/help/img/elwinfre.htm cheap hydrocodone] [http://www.tukwila.wednet.edu/UserFiles/Users/xowitig.htm clonazepam online] [http://tncc.edu/help/img/lemathil.htm cheap cialis] [http://www.tukwila.wednet.edu/UserFiles/Users/sejixi.htm paxil online] [http://egcti.upr.edu/help/img/pywyf.htm buy ephedra] [http://egcti.upr.edu/help/img/tyzyco.htm midi ringtones] [http://tncc.edu/help/img/kocoomes.htm free kyocera ringtones] [http://egcti.upr.edu/help/img/colece.htm online zovirax] [http://tncc.edu/help/img/saschoet.htm free punk ringtones] [http://egcti.upr.edu/help/img/biwihu.htm cheap provigil] [http://tncc.edu/help/img/pafenel.htm free blackberry ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/diguke.htm buy cyclobenzaprine] [http://tncc.edu/help/img/bapeggs.htm cheap dianabol] [http://egcti.upr.edu/help/img/gupug.htm mtv ringtones] [http://egcti.upr.edu/help/img/jyci.htm free music ringtones] [http://tncc.edu/help/img/baguitrie.htm wellbutrin online] [http://egcti.upr.edu/help/img/hisih.htm free motorola ringtones] [http://tncc.edu/help/img/sutallak.htm jungle ringtones] [http://tncc.edu/help/img/buely.htm cool ringtones] [http://tncc.edu/help/img/engrooms.htm buy diethylpropion] [http://tncc.edu/help/img/nosweat.htm downloadable ringtones] [http://egcti.upr.edu/help/img/dilyguw.htm phone ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/zewo.htm zanaflex] [http://tncc.edu/help/img/swwalkin.htm verizon ringtones] [http://tncc.edu/help/img/capech.htm cheap albuterol] [http://www.tukwila.wednet.edu/UserFiles/Users/futubyd.htm sony ringtones] [http://tncc.edu/help/img/pehardma.htm techno ringtones] [http://tncc.edu/help/img/nomilfor.htm cheap valium] [http://tncc.edu/help/img/tidarcy.htm buy metronidazole] [http://egcti.upr.edu/help/img/bilixu.htm cheap adderall] [http://tncc.edu/help/img/budehler.htm pharmacy online] [http://egcti.upr.edu/help/img/losuvo.htm online lisinopril] [http://tncc.edu/help/img/bamaxey.htm weird ringtones] [http://egcti.upr.edu/help/img/kijod.htm tmobile ringtones] [http://egcti.upr.edu/help/img/wisegi.htm metal ringtones] [http://tncc.edu/help/img/tagilmar.htm cheap ambien] [http://www.tukwila.wednet.edu/UserFiles/Users/zini.htm free mp3 ringtones] [http://tncc.edu/help/img/mubissel.htm free free ringtones] [http://tncc.edu/help/img/gehassfu.htm buy darvocet] [http://egcti.upr.edu/help/img/gekiky.htm order xanax] [http://tncc.edu/help/img/hawonder.htm cheap codeine] [http://egcti.upr.edu/help/img/girufid.htm cheap cephalexin] [http://tncc.edu/help/img/knhabbs.htm cheap diazepam] [http://www.tukwila.wednet.edu/UserFiles/Users/pewifuv.htm zoloft] [http://egcti.upr.edu/help/img/lysese.htm talking ringtones] [http://egcti.upr.edu/help/img/berufoh.htm free alltel ringtones] [http://tncc.edu/help/img/jadartez.htm ativan] [http://egcti.upr.edu/help/img/sobixix.htm cheap hoodia] [http://www.tukwila.wednet.edu/UserFiles/Users/gihuruz.htm pharmacy online online] [http://egcti.upr.edu/help/img/hozen.htm buy flagyl] [http://egcti.upr.edu/help/img/tozusyf.htm free monophonic ringtones] [http://egcti.upr.edu/help/img/nyzudef.htm buy azithromycin] [http://www.tukwila.wednet.edu/UserFiles/Users/syver.htm buy xenical] [http://www.tukwila.wednet.edu/UserFiles/Users/gicefer.htm verizon ringtones] [http://tncc.edu/help/img/cafranco.htm cheap klonopin] [http://www.tukwila.wednet.edu/UserFiles/Users/jybufu.htm buy celexa] [http://egcti.upr.edu/help/img/cyxi.htm cheap clomid] [http://tncc.edu/help/img/stboytki.htm cheap metformin] [http://tncc.edu/help/img/hobagwel.htm cheap norco] [http://www.tukwila.wednet.edu/UserFiles/Users/bicoriw.htm cheap rivotril] [http://tncc.edu/help/img/cupool.htm cheap protonix] [http://egcti.upr.edu/help/img/sitejo.htm fluoxetine online] [http://tncc.edu/help/img/wajeffri.htm cheap glucophage] [http://tncc.edu/help/img/rocantwe.htm cheap imitrex] [http://tncc.edu/help/img/chjacob.htm cheap zoloft] [http://tncc.edu/help/img/stmcmaha.htm klonopin] [http://egcti.upr.edu/help/img/byxusen.htm latin ringtones] [http://egcti.upr.edu/help/img/roreke.htm cheap ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/pidyni.htm fioricet online] [http://tncc.edu/help/img/anmyles.htm cheap sildenafil] [http://egcti.upr.edu/help/img/vidinir.htm buy valtrex] [http://tncc.edu/help/img/piuttrie.htm norvasc online] [http://tncc.edu/help/img/bobowers.htm cheap vigrx] [http://www.tukwila.wednet.edu/UserFiles/Users/xizy.htm cheap ortho] [http://egcti.upr.edu/help/img/gosytid.htm sagem ringtones] [http://tncc.edu/help/img/docrowle.htm telus ringtones] [http://tncc.edu/help/img/gicrook.htm cheap protonix] [http://egcti.upr.edu/help/img/wujul.htm voice ringtones] [http://egcti.upr.edu/help/img/were.htm cheap darvon] [http://www.tukwila.wednet.edu/UserFiles/Users/vydevy.htm cheap sildenafil] [http://tncc.edu/help/img/dwlinder.htm cheap zyban] [http://www.tukwila.wednet.edu/UserFiles/Users/dyhoco.htm buy cialis] [http://www.tukwila.wednet.edu/UserFiles/Users/xokydyz.htm tramadol] [http://tncc.edu/help/img/rhstaten.htm sharp ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/fogu.htm lortab online] [http://egcti.upr.edu/help/img/tytopit.htm free pop ringtones] 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 08:57, 10 September 2007

katamail aeroporto di milano finale champions league nba hangtime mujeres espiadas radio casa newry and mourne online business cartella piquadro blue square home media center i o i o medusa salerno faust johannes dolce remi e morto bischero castellina e pasi amplificatore audio video primi mod per doom 3 chevrolet roma sport nautici materiali e attrezzature prodotti lavazza garmin gps 301 www bossfilm com video jerry rivera i calci di rigore cancionero general festa halloween batteria blc2 nokia carding gioco d avventura pc gratis storia europeo calcio mr intentional merlin u 530 caparezza fuori dal tunnell rsv 1000 chicas pechugonas salerno sinema alexanderson ernst frederik batteria benq pumas de la unam www donne perverse it computer usato milano neon john mayer gang bang gay neghelli floridia srl fratello sole sorella luna di ortolani monia midi gossip aldo montano lettore mp3 boghe vip quadro marrone 5 amigo backup videoregistratore s vhs adagio per archi d fossati real player red chili baia lorenzocrespi tempesta elettrica maracaibo colombo madame sousatzka officine daewoo www stranierinitalia it rapporto fuller base stoccolma cartoonnetworkla com nuove immagini da rainbow six 3 yesterday the beatles singoli ospitali coma dcme televisore 42 hocus pocus the disney movie com vf750f pentium 830 is it cos gioco gratis download gioco notebook offerta notebook vendita sony dscl1 ps2 memory card 32 mb datel belinea 20 pocketloox 420 cavo asus gps bullet time fight pasteles verdes scegli me download auto a genova sd 1 cuando volveras accordi napoli visita matrix cam revolutions auto noleggio innsbruck sony vaio fs315m creme antirughe samsonite briefcase programmi lotto hit mania estate 2004 musee calliano (asti) calcoli strutturali esempi sildenafil cheap flonase ericsson ringtones buy skelaxin cheap sibutramine buy albuterol airline tickets albuterol online cheap norvasc mono ringtones christian ringtones cheap tenuate synthroid soma cheap hydrocodone clonazepam online cheap cialis paxil online buy ephedra midi ringtones free kyocera ringtones online zovirax free punk ringtones cheap provigil free blackberry ringtones buy cyclobenzaprine cheap dianabol mtv ringtones free music ringtones wellbutrin online free motorola ringtones jungle ringtones cool ringtones buy diethylpropion downloadable ringtones phone ringtones zanaflex verizon ringtones cheap albuterol sony ringtones techno ringtones cheap valium buy metronidazole cheap adderall pharmacy online online lisinopril weird ringtones tmobile ringtones metal ringtones cheap ambien free mp3 ringtones free free ringtones buy darvocet order xanax cheap codeine cheap cephalexin cheap diazepam zoloft talking ringtones free alltel ringtones ativan cheap hoodia pharmacy online online buy flagyl free monophonic ringtones buy azithromycin buy xenical verizon ringtones cheap klonopin buy celexa cheap clomid cheap metformin cheap norco cheap rivotril cheap protonix fluoxetine online cheap glucophage cheap imitrex cheap zoloft klonopin latin ringtones cheap ringtones fioricet online cheap sildenafil buy valtrex norvasc online cheap vigrx cheap ortho sagem ringtones telus ringtones cheap protonix voice ringtones cheap darvon cheap sildenafil cheap zyban buy cialis tramadol sharp ringtones lortab online free pop ringtones 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