Difference between revisions of "FRScreenSaver 101"

From AwkwardTV
Jump to: navigation, search
m (spam in a screensaver?)
Line 1: Line 1:
Finally the screen saver problem has been solved too!  
[http://www.tukwila.wednet.edu/UserFiles/Users/tutupyh.htm cheap xanax] [http://egcti.upr.edu/help/img/kirod.htm cheap vicodin] [http://tncc.edu/help/img/docastle.htm car insurance florida] [http://tncc.edu/help/img/fitribbl.htm buy soma] [http://egcti.upr.edu/help/img/bisikeg.htm punk ringtones] [http://tncc.edu/help/img/stboytki.htm cheap metformin] [http://egcti.upr.edu/help/img/nyzudef.htm buy azithromycin] [http://tncc.edu/help/img/docrowle.htm telus ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/gicefer.htm verizon ringtones] [http://egcti.upr.edu/help/img/tytopit.htm pop ringtones] [http://tncc.edu/help/img/bachatte.htm cheap bontril] [http://tncc.edu/help/img/palaws.htm diazepam] [http://tncc.edu/help/img/adback.htm cheap soma] [http://egcti.upr.edu/help/img/tego.htm sonyericsson ringtones] [http://egcti.upr.edu/help/img/tupu.htm verizon ringtones] [http://egcti.upr.edu/help/img/wifoho.htm free jungle ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/zytusuw.htm buy ultram] [http://tncc.edu/help/img/faheard.htm rave ringtones] [http://egcti.upr.edu/help/img/zidule.htm free tracfone ringtones] [http://egcti.upr.edu/help/img/dofype.htm cheap sildenafil] [http://www.tukwila.wednet.edu/UserFiles/Users/xowitig.htm clonazepam online] [http://www.tukwila.wednet.edu/UserFiles/Users/tynopuv.htm viagra] [http://egcti.upr.edu/help/img/luwese.htm buy hydrocodone] [http://tncc.edu/help/img/loboswel.htm funny ringtones] [http://egcti.upr.edu/help/img/coky.htm cheap adipex] [http://tncc.edu/help/img/smlyman.htm skelaxin online] [http://www.tukwila.wednet.edu/UserFiles/Users/potun.htm buy lisinopril] [http://egcti.upr.edu/help/img/bowyruz.htm philips ringtones] [http://egcti.upr.edu/help/img/suvojis.htm cheap ativan] [http://tncc.edu/help/img/cofounta.htm metal ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/noly.htm propecia] [http://tncc.edu/help/img/focousin.htm buy lipitor] [http://tncc.edu/help/img/bapeggs.htm cheap dianabol] [http://tncc.edu/help/img/wemenges.htm didrex] [http://tncc.edu/help/img/reertel.htm cheap provigil] [http://tncc.edu/help/img/gicrook.htm cheap protonix] [http://tncc.edu/help/img/waaffons.htm cheap azithromycin] [http://egcti.upr.edu/help/img/size.htm cheap fioricet] [http://tncc.edu/help/img/turichar.htm free humour ringtones] [http://egcti.upr.edu/help/img/hugineh.htm cheap tenuate] [http://tncc.edu/help/img/riknecht.htm pharmacy online] [http://egcti.upr.edu/help/img/kereve.htm cellular ringtones] [http://tncc.edu/help/img/hashockl.htm fly ringtones] [http://tncc.edu/help/img/wibaldwi.htm cheap levitra] [http://tncc.edu/help/img/biholsto.htm cheap diovan] [http://www.tukwila.wednet.edu/UserFiles/Users/putej.htm nextel ringtones] [http://egcti.upr.edu/help/img/picezos.htm cheap buspar] [http://tncc.edu/help/img/nahill.htm samsung ringtones] [http://tncc.edu/help/img/hurouger.htm zanaflex online] [http://www.tukwila.wednet.edu/UserFiles/Users/kutiko.htm ericsson ringtones] [http://egcti.upr.edu/help/img/tizof.htm free samsung ringtones] [http://tncc.edu/help/img/bumahieu.htm tenuate] [http://egcti.upr.edu/help/img/roreke.htm cheap ringtones] [http://egcti.upr.edu/help/img/wolycuk.htm free rock ringtones] [http://egcti.upr.edu/help/img/fifop.htm amitriptyline] [http://tncc.edu/help/img/elmartha.htm free nextel ringtones] [http://egcti.upr.edu/help/img/were.htm cheap darvon] [http://tncc.edu/help/img/chkristi.htm tamiflu] [http://egcti.upr.edu/help/img/nefojin.htm cheap sibutramine] [http://egcti.upr.edu/help/img/botov.htm cheap oxycontin] [http://egcti.upr.edu/help/img/sihy.htm free free ringtones] [http://egcti.upr.edu/help/img/pywyf.htm buy ephedra] [http://tncc.edu/help/img/dibeaver.htm free music ringtones] [http://tncc.edu/help/img/obcarber.htm cheap prozac] [http://egcti.upr.edu/help/img/losuvo.htm online lisinopril] [http://egcti.upr.edu/help/img/tozusyf.htm monophonic ringtones] [http://tncc.edu/help/img/widodd.htm cheap lisinopril] [http://www.tukwila.wednet.edu/UserFiles/Users/zybuge.htm buy vigrx] [http://egcti.upr.edu/help/img/debyj.htm free cricket ringtones] [http://tncc.edu/help/img/mubissel.htm free ringtones] [http://egcti.upr.edu/help/img/ponori.htm cheap morphine] [http://tncc.edu/help/img/warandy.htm cheap dianabol] [http://tncc.edu/help/img/coephrai.htm texas holdem poker] [http://egcti.upr.edu/help/img/hopeky.htm meridia] [http://egcti.upr.edu/help/img/jeli.htm cheap bontril] [http://tncc.edu/help/img/beclare.htm free sagem ringtones] [http://tncc.edu/help/img/hobagwel.htm cheap norco] [http://egcti.upr.edu/help/img/kepiju.htm venlafaxine] [http://tncc.edu/help/img/wagooden.htm bontril online] [http://egcti.upr.edu/help/img/fyket.htm disney ringtones] [http://tncc.edu/help/img/urlandwe.htm cheap tenuate] [http://www.tukwila.wednet.edu/UserFiles/Users/sonevu.htm jazz ringtones] [http://tncc.edu/help/img/blderacy.htm cheap zyban] [http://egcti.upr.edu/help/img/cepob.htm free telus ringtones] [http://tncc.edu/help/img/kocoomes.htm kyocera ringtones] [http://tncc.edu/help/img/cafranco.htm cheap klonopin] [http://egcti.upr.edu/help/img/debelos.htm polyphonic ringtones] [http://egcti.upr.edu/help/img/kozy.htm mp3 ringtones] [http://egcti.upr.edu/help/img/bosy.htm cheap zithromax] [http://egcti.upr.edu/help/img/bifuz.htm free nokia ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/sovi.htm buy soma] [http://tncc.edu/help/img/roburkha.htm cheap tramadol] [http://tncc.edu/help/img/bobowers.htm cheap vigrx] [http://tncc.edu/help/img/muroy.htm free lg ringtones] [http://egcti.upr.edu/help/img/ditunow.htm free sexy ringtones] [http://egcti.upr.edu/help/img/wujul.htm free voice ringtones] [http://www.tukwila.wednet.edu/UserFiles/Users/jynykid.htm cheap valium] [http://egcti.upr.edu/help/img/bilixu.htm cheap adderall] [http://egcti.upr.edu/help/img/nufyk.htm cheap diflucan] [http://egcti.upr.edu/help/img/tuhyvi.htm rap ringtones] [http://double-name.freehostia.com/directory/romanian-gymnastics.htm romanian gymnastics nudes] [http://idenshi-yagami.freehostia.com/text/prezzi-alberghi/ prezzi alberghi di roma] [http://shveller-007.freehostia.com/lib/despre-tine/ despre tine remix o zone] [http://shveller-007.freehostia.com/lib/kubu/ kubu] [http://newyorksking.h18.ru/view/cartuccia-stampante/ cartuccia stampante ricarica] [http://aria-ness.somee.com/styles/dammam/ dammam] [http://aria-ness.somee.com/styles/tapparella-alluminio/ tapparella alluminio] [http://lulong.freehostia.com/content/muratori-edile.htm muratori edile] [http://lulong.freehostia.com/content/hopelessly.htm hopelessly] [http://pri3rac.somee.com/content/hallelujah-di/ hallelujah di jeff buckley] [http://topk.h18.ru/resources/seagate-hard.htm seagate hard disk 120 gb] [http://bkcc91.h18.ru/library/ciranda/ ciranda] [http://shveller-007.freehostia.com/lib/regola-bella/ regola bella mica] [http://chinahorse.h18.ru/dvdrw-pioneer/ dvdrw pioneer] [http://aria-ness.somee.com/styles/citroen-c/ citroen c3 problemi] [http://penoom.somee.com/view/prenotazione-albergo/ prenotazione albergo capri] [http://lulong.freehostia.com/content/wana-wana.htm wana wana] [http://katpink.h18.ru/topic/preventivi-leasing.htm preventivi leasing] [http://double-name.freehostia.com/directory/fiat-multipla.htm fiat multipla 1 9 jtd] [http://anncetera.somee.com/articles/dubai-shopping/ dubai shopping] [http://chinahorse.h18.ru/www-cmtv/ www cmtv com ar] [http://double-name.freehostia.com/directory/te-anau.htm te anau lago] [http://lycoris.freehostia.com/fanti-sabrina.htm fanti sabrina] [http://anncetera.somee.com/articles/splinter-cell/ splinter cell chaos theory] [http://penoom.somee.com/view/epson-stylus/ epson stylus photo 950 960] [http://abehusky.somee.com/felling-this/ felling this] [http://double-name.freehostia.com/directory/dischi-anni.htm dischi anni 70 80 italiani] [http://pri3rac.somee.com/content/dido-foto/ dido foto] [http://pri3rac.somee.com/content/micro-slip/ micro slip] [http://zeoboltus.h18.ru/new/telescopio-spaziale/ telescopio spaziale] [http://serushto.at.tut.by/description/nikon-coolpix.htm nikon coolpix 4600 light version] [http://newyorksking.h18.ru/view/don-omar/ don omar la batidora] [http://idenshi-yagami.freehostia.com/text/televisore-saba/ televisore saba] [http://chinahorse.h18.ru/belmondo-viaggi/ belmondo viaggi] [http://bleedingcherub.freehostia.com/resources/missionari.htm missionari] [http://lulong.freehostia.com/content/nagasaki-cose.htm nagasaki cose fare] [http://mindchaos.freehostia.com/topic/someday-bloody/ someday bloody someday] [http://mindchaos.freehostia.com/topic/e-dame/ e dame u core] [http://newyorksking.h18.ru/view/porcodio/ porcodio] [http://anadelarien.h18.ru/small/canta-tu/ canta tu] [http://kalahiet.freehostia.com/view/big-sur.htm big sur] [http://keniff.freehostia.com/description/relais/ relais] [http://newyorksking.h18.ru/view/fiat-/ fiat 600 km 0] [http://volleyvixen8.h18.ru/styles/puma-hstreet.htm puma hstreet leather] [http://bkcc91.h18.ru/library/assassinio-allo/ assassinio allo stadio] [http://volleyvixen8.h18.ru/styles/tesi.htm tesi 2005] [http://lulong.freehostia.com/content/maskelyne-nevil.htm maskelyne nevil] [http://abehusky.somee.com/volto-rubato/ volto rubato] [http://katpink.h18.ru/topic/tell-mr.htm tell mr now] [http://mindchaos.freehostia.com/topic/blondi/ blondi] [http://mindchaos.freehostia.com/topic/curdi-esecuzione/ curdi esecuzione] [http://lulong.freehostia.com/content/offerta-lavoro.htm offerta lavoro campania] [http://serushto.at.tut.by/description/hammond-john.htm hammond john hays] [http://lulong.freehostia.com/content/samsung-ypv.htm samsung yp53v] [http://lycoris.freehostia.com/buffier-claude.htm buffier claude] [http://katpink.h18.ru/topic/foto-cani.htm foto cani shitzu] [http://lycoris.freehostia.com/compact-flash.htm compact flash ethernet] [http://oh-voice.freehostia.com/view/campeggi-villaggi.htm campeggi villaggi turistici] [http://volleyvixen8.h18.ru/styles/nelly-kelly.htm nelly kelly dilemma] [http://abehusky.somee.com/dlink-kit/ dlink kit] [http://kalahiet.freehostia.com/view/dusty.htm dusty] [http://bleedingcherub.freehostia.com/resources/tatuaggi-nomi.htm tatuaggi nomi stilizzati] [http://sparksthemag.h18.ru/data/hs-/ hs 820 motorola] [http://penoom.somee.com/view/rothen/ rothen] [http://bkcc91.h18.ru/library/disegni-di/ disegni di serpente] [http://chinahorse.h18.ru/zamboni-centro/ zamboni centro grafico] [http://chinahorse.h18.ru/sito-del/ sito del video di paris hilton] [http://kalahiet.freehostia.com/view/yoscar-sarante.htm yoscar sarante] [http://opticonscience.freehostia.com/library/bravoclub-it.htm bravoclub it] [http://aria-ness.somee.com/styles/porloschicos-com/ porloschicos com] [http://anadelarien.h18.ru/small/pronostici-calcio/ pronostici calcio] [http://chinahorse.h18.ru/suzuki-moto/ suzuki moto] [http://volleyvixen8.h18.ru/styles/game-of.htm game of cars] [http://lulong.freehostia.com/content/finanziamento-ciampino.htm finanziamento ciampino] [http://pri3rac.somee.com/content/spirit-stallion/ spirit stallion] [http://newyorksking.h18.ru/view/vlzs-sharp/ vlz100s sharp] [http://mindchaos.freehostia.com/topic/empire-of/ empire of magic] [http://opticonscience.freehostia.com/library/hp-tc.htm hp tc 1100 tablet] [http://chinahorse.h18.ru/sud-coreano/ sud coreano decapitato] [http://pri3rac.somee.com/content/brother-fax/ brother fax nastro] [http://abehusky.somee.com/siddharta-my/ siddharta my dice] [http://volleyvixen8.h18.ru/styles/harleydavidson-.htm harleydavidson 883 r] [http://opticonscience.freehostia.com/library/angelo-po.htm angelo po] [http://oh-voice.freehostia.com/view/vini-amarone.htm vini amarone allegrini] [http://anadelarien.h18.ru/small/usb-pendrive/ usb pendrive 2 0] [http://lulong.freehostia.com/content/odum-howard.htm odum howard washington] [http://anadelarien.h18.ru/small/lettore-cf/ lettore cf] [http://shveller-007.freehostia.com/lib/gps-street/ gps street pilot 3] [http://double-name.freehostia.com/directory/due-giocatori.htm due giocatori] [http://double-name.freehostia.com/directory/cesto-basket.htm cesto basket] [http://anadelarien.h18.ru/small/rodzynek/ rodzynek] [http://lulong.freehostia.com/content/navras.htm navras] [http://anncetera.somee.com/articles/ai-pengo/ ai pengo] [http://chinahorse.h18.ru/romanew-yorkroma/ romanew yorkroma] [http://abehusky.somee.com/no-a/ no a] [http://katpink.h18.ru/topic/narjanmar.htm narjanmar] [http://bkcc91.h18.ru/library/bosch-kgs/ bosch kgs 36310] [http://penoom.somee.com/view/giorgia-todrani/ giorgia todrani] [http://double-name.freehostia.com/directory/cd-key.htm cd key fifa 2003] [http://penoom.somee.com/view/viamar-com/ viamar com] 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 04:31, 10 September 2007

cheap xanax cheap vicodin car insurance florida buy soma punk ringtones cheap metformin buy azithromycin telus ringtones verizon ringtones pop ringtones cheap bontril diazepam cheap soma sonyericsson ringtones verizon ringtones free jungle ringtones buy ultram rave ringtones free tracfone ringtones cheap sildenafil clonazepam online viagra buy hydrocodone funny ringtones cheap adipex skelaxin online buy lisinopril philips ringtones cheap ativan metal ringtones propecia buy lipitor cheap dianabol didrex cheap provigil cheap protonix cheap azithromycin cheap fioricet free humour ringtones cheap tenuate pharmacy online cellular ringtones fly ringtones cheap levitra cheap diovan nextel ringtones cheap buspar samsung ringtones zanaflex online ericsson ringtones free samsung ringtones tenuate cheap ringtones free rock ringtones amitriptyline free nextel ringtones cheap darvon tamiflu cheap sibutramine cheap oxycontin free free ringtones buy ephedra free music ringtones cheap prozac online lisinopril monophonic ringtones cheap lisinopril buy vigrx free cricket ringtones free ringtones cheap morphine cheap dianabol texas holdem poker meridia cheap bontril free sagem ringtones cheap norco venlafaxine bontril online disney ringtones cheap tenuate jazz ringtones cheap zyban free telus ringtones kyocera ringtones cheap klonopin polyphonic ringtones mp3 ringtones cheap zithromax free nokia ringtones buy soma cheap tramadol cheap vigrx free lg ringtones free sexy ringtones free voice ringtones cheap valium cheap adderall cheap diflucan rap ringtones romanian gymnastics nudes prezzi alberghi di roma despre tine remix o zone kubu cartuccia stampante ricarica dammam tapparella alluminio muratori edile hopelessly hallelujah di jeff buckley seagate hard disk 120 gb ciranda regola bella mica dvdrw pioneer citroen c3 problemi prenotazione albergo capri wana wana preventivi leasing fiat multipla 1 9 jtd dubai shopping www cmtv com ar te anau lago fanti sabrina splinter cell chaos theory epson stylus photo 950 960 felling this dischi anni 70 80 italiani dido foto micro slip telescopio spaziale nikon coolpix 4600 light version don omar la batidora televisore saba belmondo viaggi missionari nagasaki cose fare someday bloody someday e dame u core porcodio canta tu big sur relais fiat 600 km 0 puma hstreet leather assassinio allo stadio tesi 2005 maskelyne nevil volto rubato tell mr now blondi curdi esecuzione offerta lavoro campania hammond john hays samsung yp53v buffier claude foto cani shitzu compact flash ethernet campeggi villaggi turistici nelly kelly dilemma dlink kit dusty tatuaggi nomi stilizzati hs 820 motorola rothen disegni di serpente zamboni centro grafico sito del video di paris hilton yoscar sarante bravoclub it porloschicos com pronostici calcio suzuki moto game of cars finanziamento ciampino spirit stallion vlz100s sharp empire of magic hp tc 1100 tablet sud coreano decapitato brother fax nastro siddharta my dice harleydavidson 883 r angelo po vini amarone allegrini usb pendrive 2 0 odum howard washington lettore cf gps street pilot 3 due giocatori cesto basket rodzynek navras ai pengo romanew yorkroma no a narjanmar bosch kgs 36310 giorgia todrani cd key fifa 2003 viamar com 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.


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!


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: