Difference between revisions of "FRScreenSaver 101"

From AwkwardTV
Jump to: navigation, search
m
Line 1: Line 1:
[http://mouse-zae.110mb.com/bob-dylan.htm bob dylan knock on heavens door] [http://book-wench.110mb.com/text/la-signora/ la signora omicidi] [http://ultra-creator.110mb.com/articles/obiettivo-canon.htm obiettivo canon 70200 usm] [http://dialed.110mb.com/small/pmr-ricetrasmettitori/ pmr446 ricetrasmettitori] [http://blue-olusha.110mb.com/library/braun-eversoft/ braun eversoft] [http://stitchesnglue.110mb.com/lettori-divx.htm lettori divx majestic] [http://blue-olusha.110mb.com/library/carrozzeria/ carrozzeria] [http://blue-olusha.110mb.com/library/seghers-anna/ seghers anna] [http://forever-your.110mb.com/data/loro-di.htm loro di abramo] [http://trouble166.110mb.com/giacca-donna.htm giacca donna] [http://nationavce.110mb.com/view/programmi-microsoft.htm programmi microsoft office] [http://olikka.110mb.com/library/barhgn-oregon.htm bar122hgn oregon] [http://sneezingpops.110mb.com/ozaki/ ozaki 5 1] [http://lazythoughts.110mb.com/lib/masterizzatore-lite/ masterizzatore lite on] [http://blue-olusha.110mb.com/library/con-fusione/ con fusione] [http://blue-olusha.110mb.com/library/lightening-break/ lightening break] [http://yeeden.110mb.com/data/filmati-amatoriali/ filmati amatoriali porno gratis] [http://olikka.110mb.com/library/dx-fisheye.htm dx fisheye 10 5mm f 2 8g] [http://forever-your.110mb.com/data/yo-voy.htm yo voy zion y lennox] [http://olikka.110mb.com/library/etruschi-immagini.htm etruschi immagini] [http://forever-your.110mb.com/data/martina-colombari.htm martina colombari] [http://ultra-creator.110mb.com/articles/moon-day.htm moon day] [http://forever-your.110mb.com/data/la-collezione.htm la collezione autunnoinverno di nintendo] [http://unremig.110mb.com/prostitutas-calientes/ prostitutas calientes] [http://funk-mastah-ion.110mb.com/data/canon-batteria.htm canon batteria nb2lh] [http://blue-olusha.110mb.com/library/itinerari-sud/ itinerari sud americani] [http://nationavce.110mb.com/view/natura-.htm natura  inn srl] [http://unremig.110mb.com/yaris/ yaris 1 0] [http://slavkamolot.110mb.com/library/automarket-it/ automarket it] [http://funk-mastah-ion.110mb.com/data/ridi-pagliaccio.htm ridi pagliaccio ridi] [http://olikka.110mb.com/library/metal-castello.htm metal castello spa] [http://unremig.110mb.com/magic-the/ magic the] [http://trouble166.110mb.com/puppy-potty.htm puppy potty wc] [http://trouble166.110mb.com/gene-simmons.htm gene simmons] [http://unremig.110mb.com/retour-a/ retour a actarius] [http://trene-von-anty.110mb.com/description/tahj-mahal.htm tahj mahal] [http://funk-mastah-ion.110mb.com/data/un-americano.htm un americano tranquillo] [http://nationavce.110mb.com/view/racconti-incestuosi.htm racconti incestuosi nonne] [http://nationavce.110mb.com/view/ladies-room.htm ladies room] [http://gekijuls.110mb.com/samsung-vp/ samsung vp d351] [http://trene-von-anty.110mb.com/description/lamante-indiana.htm lamante indiana] [http://stitchesnglue.110mb.com/ralph-lauren.htm ralph lauren polo] [http://sneezingpops.110mb.com/kit-per/ kit per gonfiaggio] [http://ultra-creator.110mb.com/articles/cardigan-diesel.htm cardigan diesel] [http://gekijuls.110mb.com/hp-/ hp 1320 laser jet] [http://trene-von-anty.110mb.com/description/tiragraffi-gatti.htm tiragraffi gatti] [http://olikka.110mb.com/library/crea-il.htm crea il tuo pupazzo di natale] [http://gekijuls.110mb.com/penroseite/ penroseite] [http://sneezingpops.110mb.com/cw/ cw 29] [http://yeeden.110mb.com/data/matanza/ matanza] [http://lazythoughts.110mb.com/lib/marangoni/ marangoni] [http://book-wench.110mb.com/text/sedie-in/ sedie in pelle] [http://forever-your.110mb.com/data/hp.htm hp 4300] [http://funk-mastah-ion.110mb.com/data/silvia-rocca.htm silvia rocca nuda] [http://some-omeelse.110mb.com/data/il-gigante.htm il gigante della roccia del falco] [http://ultra-creator.110mb.com/articles/albergo-.htm albergo 4 stella verona] [http://book-wench.110mb.com/text/panasonic-gd/ panasonic gd70] [http://sister-sunshine.110mb.com/html/fiat-automatico/ fiat automatico] [http://some-omeelse.110mb.com/data/x-radeon.htm x700 radeon agp] [http://gekijuls.110mb.com/vignoles-charles/ vignoles charles blacker] [http://gekijuls.110mb.com/nokia-n/ nokia n90 italia] [http://nationavce.110mb.com/view/violentare.htm violentare] [http://ultra-creator.110mb.com/articles/haiduchi-gabry.htm haiduchi gabry ponte] [http://slavkamolot.110mb.com/library/anche-gli/ anche gli zingari vanno in cielo] [http://stitchesnglue.110mb.com/cindy-looper.htm cindy looper] [http://sister-sunshine.110mb.com/html/www-chicos/ www chicos desnudos com] [http://sister-sunshine.110mb.com/html/vomano/ vomano] [http://some-omeelse.110mb.com/data/maxtor-.htm maxtor 160 sata 7200] [http://blue-olusha.110mb.com/library/anfibi-donna/ anfibi donna] [http://olikka.110mb.com/library/solo-irei.htm solo irei] [http://forever-your.110mb.com/data/elezioni-sezioni.htm elezioni sezioni messina] [http://sneezingpops.110mb.com/netgear-vpn/ netgear vpn] [http://lazythoughts.110mb.com/lib/femme-a/ femme a poile] [http://slavkamolot.110mb.com/library/stampante-laser/ stampante laser hp 1160] [http://some-omeelse.110mb.com/data/la-vipera.htm la vipera del deserto] [http://slavkamolot.110mb.com/library/nessuna-rivoluzione/ nessuna rivoluzione per il controller della playstation 3] [http://lazythoughts.110mb.com/lib/ottimizza-windows/ ottimizza windows] [http://nationavce.110mb.com/view/come-l.htm come l aria] [http://nationavce.110mb.com/view/mrs.htm mrs] [http://mouse-zae.110mb.com/la-belva.htm la belva del secolo] [http://ultra-creator.110mb.com/articles/www-pesca.htm www pesca da ru] [http://nationavce.110mb.com/view/cristina-grillo.htm cristina grillo sesso tra uomini] [http://nationavce.110mb.com/view/batteria-motorola.htm batteria motorola t280] [http://yeeden.110mb.com/data/greatest-rappers/ greatest rappers] [http://slavkamolot.110mb.com/library/tomtom-moto/ tomtom moto] [http://sneezingpops.110mb.com/claudio-villa/ claudio villa video] [http://stitchesnglue.110mb.com/muse-hullabaloo.htm muse hullabaloo live at le zenith paris] [http://stitchesnglue.110mb.com/timeo-danaos.htm timeo danaos et dona ferentes] [http://sneezingpops.110mb.com/guardami-negli/ guardami negli ochhi prego] [http://unremig.110mb.com/arte-marcial/ arte marcial] [http://book-wench.110mb.com/text/neon-moto/ neon moto] [http://olikka.110mb.com/library/www-letteratura.htm www letteratura it] [http://funk-mastah-ion.110mb.com/data/musiche-film.htm musiche film il gladiatore] [http://slavkamolot.110mb.com/library/cucina-cinese/ cucina cinese] [http://ultra-creator.110mb.com/articles/video-porno.htm video porno latin] [http://olikka.110mb.com/library/lettori-cd.htm lettori cd radio portatili sony] [http://stitchesnglue.110mb.com/valutiamo.htm valutiamo] [http://sister-sunshine.110mb.com/html/dvd-ateam/ dvd ateam] [http://sister-sunshine.110mb.com/html/philips-stereo/ philips stereo 28] [http://some-omeelse.110mb.com/data/rocce-vulcaniche.htm rocce vulcaniche] [http://dialed.110mb.com/small/ford-fiesta/ ford fiesta cayman blue] [http://gekijuls.110mb.com/croff/ croff] [http://dialed.110mb.com/small/hermitage-hotel/ hermitage hotel florence] [http://sister-sunshine.110mb.com/html/bitumatura/ bitumatura] [http://ultra-creator.110mb.com/articles/nel-nome.htm nel nome di dio] [http://funk-mastah-ion.110mb.com/data/gadget-e.htm gadget e regali] [http://sister-sunshine.110mb.com/html/ghaziabad/ ghaziabad] [http://trouble166.110mb.com/dragonstea-sin.htm dragonstea sin tei] [http://funk-mastah-ion.110mb.com/data/appunti-online.htm appunti online] [http://blue-olusha.110mb.com/library/site-group/ site group msn com] [http://trouble166.110mb.com/agiustare.htm agiustare] [http://gekijuls.110mb.com/pensioni-convenienti/ pensioni convenienti a roma] [http://slavkamolot.110mb.com/library/bacchiatura/ bacchiatura] [http://sneezingpops.110mb.com/nuovo-slk/ nuovo slk] [http://dialed.110mb.com/small/spelafili/ spelafili] [http://yeeden.110mb.com/data/diritti-donna/ diritti donna] [http://forever-your.110mb.com/data/babi.htm babi] [http://nationavce.110mb.com/view/deo-brasileiro.htm deo brasileiro] [http://forever-your.110mb.com/data/nb-lh.htm nb 2lh canon] [http://ultra-creator.110mb.com/articles/era-una.htm era una notte che pioveva] [http://sister-sunshine.110mb.com/html/eminem-low/ eminem low down dirty] [http://trene-von-anty.110mb.com/description/franco-fasano.htm franco fasano rosanna fratello] [http://olikka.110mb.com/library/kate-sweetnam.htm kate sweetnam] [http://forever-your.110mb.com/data/cuccia-cani.htm cuccia cani piccoli animali] [http://forever-your.110mb.com/data/wooden-chics.htm wooden chics] [http://forever-your.110mb.com/data/michael-rennie.htm michael rennie] [http://ultra-creator.110mb.com/articles/monitor-lacie.htm monitor lacie 19 lcd photon] [http://funk-mastah-ion.110mb.com/data/czepko-daniel.htm czepko daniel von] [http://ultra-creator.110mb.com/articles/penetrazioni-multiple.htm penetrazioni multiple] [http://sister-sunshine.110mb.com/html/diphda/ diphda] [http://sneezingpops.110mb.com/mahjjong/ mahjjong] [http://blue-olusha.110mb.com/library/emmanuelle-iv/ emmanuelle iv] [http://ultra-creator.110mb.com/articles/singola-giovane.htm singola giovane] [http://unremig.110mb.com/kagame-alexis/ kagame alexis] [http://blue-olusha.110mb.com/library/monitor-acer/ monitor acer 1715] [http://unremig.110mb.com/eleonora-pedro/ eleonora pedro] [http://sister-sunshine.110mb.com/html/mross/ mross] [http://gekijuls.110mb.com/prodotti-per/ prodotti per parruchiere] [http://some-omeelse.110mb.com/data/vincenzo-paglia.htm vincenzo paglia] [http://slavkamolot.110mb.com/library/video-muse/ video muse] [http://some-omeelse.110mb.com/data/piatto-grill.htm piatto grill microonde] [http://stitchesnglue.110mb.com/veicolare-nokia.htm veicolare nokia 6630] [http://lazythoughts.110mb.com/lib/kodak-easyshare/ kodak easyshare printer dock] [http://gekijuls.110mb.com/abi-titmuss/ abi titmuss stolen sex tape] [http://olikka.110mb.com/library/in-cult.htm in cult] [http://trene-von-anty.110mb.com/description/agriturismo-a.htm agriturismo a monterotondo] [http://stitchesnglue.110mb.com/hitman-.htm hitman 3 no cd crack] [http://some-omeelse.110mb.com/data/groovec.htm groovec] [http://olikka.110mb.com/library/antonello-venditti.htm antonello venditti da san siro a samarcanda] [http://ultra-creator.110mb.com/articles/master-globe.htm master globe s] [http://nationavce.110mb.com/view/brigitta-bulgari.htm brigitta bulgari film] [http://trene-von-anty.110mb.com/description/colombo.htm colombo] [http://olikka.110mb.com/library/madri-troie.htm madri troie] [http://mouse-zae.110mb.com/looney-tunes.htm looney tunes collection all stars vol 03] [http://some-omeelse.110mb.com/data/vendita-on.htm vendita on line cellulari] [http://mouse-zae.110mb.com/registrazione-mp.htm registrazione mp3] [http://some-omeelse.110mb.com/data/animale.htm animale] [http://slavkamolot.110mb.com/library/bosch-sgu/ bosch sgu 45] [http://sister-sunshine.110mb.com/html/acqua-energize/ acqua energize] [http://lazythoughts.110mb.com/lib/san-giorgio/ san giorgio cremano] [http://olikka.110mb.com/library/jamie-lee.htm jamie lee curtis] [http://gekijuls.110mb.com/us-robotics/ us robotics  wireless turbo pc card] [http://book-wench.110mb.com/text/piaggio-beverly/ piaggio beverly] [http://slavkamolot.110mb.com/library/intel-pro/ intel pro 100] [http://unremig.110mb.com/rav/ rav4] [http://trene-von-anty.110mb.com/description/domenico-modugno.htm domenico modugno] [http://unremig.110mb.com/yum/ yum] [http://blue-olusha.110mb.com/library/www-epson/ www epson] [http://forever-your.110mb.com/data/lcd-sony.htm lcd sony 32] [http://slavkamolot.110mb.com/library/lcd-/ lcd 28 tv] [http://ultra-creator.110mb.com/articles/otta.htm otta] [http://nationavce.110mb.com/view/du-bleibst.htm du bleibst immer nur du] [http://book-wench.110mb.com/text/dvd-renato/ dvd renato zero] [http://lazythoughts.110mb.com/lib/videokiller/ videokiller] [http://blue-olusha.110mb.com/library/indesit-wixl/ indesit wixl 86] [http://trouble166.110mb.com/simple-midi.htm simple midi] [http://olikka.110mb.com/library/llue.htm llue] [http://forever-your.110mb.com/data/telefono-cordless.htm telefono cordless oregon scientific] [http://sneezingpops.110mb.com/numa-yay/ numa yay] [http://blue-olusha.110mb.com/library/usb-hardisk/ usb hardisk 80gb] [http://sister-sunshine.110mb.com/html/tammurriata-nera/ tammurriata nera] [http://sister-sunshine.110mb.com/html/pensiero-i/ pensiero i nomadi] [http://sneezingpops.110mb.com/futbol/ futbol 2004] [http://gekijuls.110mb.com/solo-mature/ solo mature] [http://gekijuls.110mb.com/volo-low/ volo low cost milano] [http://trouble166.110mb.com/rca-lyra.htm rca lyra] [http://nationavce.110mb.com/view/sony-ilink.htm sony ilink] [http://ultra-creator.110mb.com/articles/tina-tarner.htm tina tarner tonight] [http://blue-olusha.110mb.com/library/piastrellare/ piastrellare] [http://slavkamolot.110mb.com/library/ef-mm/ ef 100mm f 2 8 macro usm] [http://mouse-zae.110mb.com/seagate-.htm seagate 300 gb sata] [http://book-wench.110mb.com/text/paris-hilton/ paris hilton nick solomon video] [http://funk-mastah-ion.110mb.com/data/hi-fi.htm hi fi amplificatori] [http://unremig.110mb.com/spazio-web/ spazio web sito estero] [http://book-wench.110mb.com/text/tofu/ tofu] [http://some-omeelse.110mb.com/data/numerico.htm numerico] [http://stitchesnglue.110mb.com/hard-disk.htm hard disk usb 2 5 80 gb] [http://gekijuls.110mb.com/sexiest-university/ sexiest university] [http://some-omeelse.110mb.com/data/video-nepal.htm video nepal] [http://unremig.110mb.com/quotazioni-fondi/ quotazioni fondi comuni investimento] Finally the screen saver problem has been solved too!  
+
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.  
Line 27: Line 27:
 
<pre>
 
<pre>
 
// Override to allow FrontRow to load custom screen saver bundles
 
// Override to allow FrontRow to load custom screen saver bundles
  (NSString *) className {
+
+ (NSString *) className {
 
     // this function creates an NSString from the contents of the
 
     // this function creates an NSString from the contents of the
 
     // struct objc_class, which means using this will not call this
 
     // struct objc_class, which means using this will not call this

Revision as of 05:49, 27 August 2007

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