Difference between revisions of "FRScreenSaver 101"

From AwkwardTV
Jump to: navigation, search
m (reverting spammed page)
m
Line 1: Line 1:
Finally the screen saver problem has been solved too!  
+
[http://funkall.us/images/small/bonders/ bonders] [http://sneck.info/data/geforce-go/ geforce go 6] [http://xionny.cn/topic/pic-hong/ pic hong nhung] [http://xionny.cn/topic/ombre-chiare/ ombre chiare] [http://xionny.cn/topic/disposta-al/ disposta al piacere] [http://wedner.info/content/view/prisionera-pilar.htm prisionera pilar montenegro] [http://polex.com.cn/resources/articles/lavastoviglie-ariston.htm lavastoviglie ariston] [http://joperan.org/data/zubair/ zubair] [http://primonona.info/content/view/modello-side/ modello side] [http://soler.net.cn/data/guida-micheline.htm guida micheline] [http://soler.net.cn/data/batterie-sony.htm batterie sony t610] [http://funkall.us/images/small/claudia-koll/ claudia koll in cosi fan tutte] [http://joperan.org/data/pirollo/ pirollo] [http://wedner.info/content/view/julia-robers.htm julia robers nudo integrale] [http://xionny.cn/topic/diga-di/ diga di assuan] [http://primonona.info/content/view/vico-nel/ vico nel lazio] [http://xionny.cn/topic/www-pesca/ www pesca in it] [http://svike.info/view/new/video-al.htm video al qaida] [http://polex.com.cn/resources/articles/linea-aerea.htm linea aerea volare] [http://manoke.cn/topic/samsung-q/ samsung q] [http://klohy.info/img/styles/spartiti-forza.htm spartiti forza venite gente] [http://veggis.org.cn/resources/articles/foto-fighe.htm foto fighe pelose gratis] [http://primonona.info/content/view/residan-evil/ residan evil] [http://wedner.info/content/view/la-grande.htm la grande caccia] [http://klohy.info/img/styles/ludacris-stand.htm ludacris stand up] [http://budget7i.info/lib/lcd/ lcd 17 16] [http://polex.com.cn/resources/articles/pugni-chiusi.htm pugni chiusi] [http://polex.com.cn/resources/articles/jaguar-xjs.htm jaguar xjs leather] [http://veggis.org.cn/resources/articles/schemi-di.htm schemi di posa] [http://veggis.org.cn/resources/articles/supersex.htm supersex] [http://joperan.org/data/cinquemiglia/ cinquemiglia] [http://funkall.us/images/small/richie-poveri/ richie poveri] [http://manoke.cn/topic/concerto-di/ concerto di tiziano ferro] [http://primonona.info/content/view/hidraulica-y/ hidraulica y neumatica] [http://funkall.us/images/small/ati-radeon/ ati radeon x800xl 512mb] [http://xionny.cn/topic/lancome-gloss/ lancome gloss] [http://polex.com.cn/resources/articles/incesti-storie.htm incesti storie] [http://joperan.org/data/editto-di/ editto di rotari] [http://budget7i.info/lib/borsa-titolo/ borsa titolo] [http://veggis.org.cn/resources/articles/rio-de.htm rio de janero] [http://primonona.info/content/view/sdram-mb/ sdram 256mb 133mhz] [http://budget7i.info/lib/vaffanculo-mp/ vaffanculo mp3 elio] [http://primonona.info/content/view/lultima-notte/ lultima notte damore] [http://klohy.info/img/styles/nicon-coolpix.htm nicon coolpix 7600] [http://manoke.cn/topic/salemme/ salemme] [http://svike.info/view/new/titoli-canzoni.htm titoli canzoni di hit mania dance estate] [http://veggis.org.cn/resources/articles/natali-dizdar.htm natali dizdar] [http://xionny.cn/topic/hotel-in/ hotel in sri lanka] [http://sneck.info/data/panico-a/ panico a echo park] [http://sneck.info/data/la-morte/ la morte al telefono] [http://sneck.info/data/ho-un/ ho un cazzo enorme] [http://soler.net.cn/data/free-matura.htm free matura movie gallery] [http://sneck.info/data/maschi-bsx/ maschi bsx a palermo] [http://polex.com.cn/resources/articles/utesa.htm utesa] [http://primonona.info/content/view/cavo-surround/ cavo surround] [http://funkall.us/images/small/stivali-rosa/ stivali rosa tacco alto] [http://funkall.us/images/small/exagerate-zelig/ exagerate zelig music] [http://primonona.info/content/view/x-ball/ x ball] [http://veggis.org.cn/resources/articles/oscena.htm oscena] [http://wedner.info/content/view/fox-estate.htm fox estate] [http://svike.info/view/new/coal-chamber.htm coal chamber] [http://sneck.info/data/ef-/ ef 100 macro] [http://svike.info/view/new/lumidee-never.htm lumidee never leave you remix] [http://klohy.info/img/styles/israelsex.htm israelsex] [http://xionny.cn/topic/ferrari-/ ferrari 308 gts] [http://soler.net.cn/data/tomba-di.htm tomba di machiavelli a firenze foto] [http://primonona.info/content/view/meccanica-a/ meccanica a forli] [http://funkall.us/images/small/ipod-nano/ ipod nano mp3] [http://xionny.cn/topic/marce-per/ marce per bande] [http://xionny.cn/topic/www-muro/ www muro it] [http://klohy.info/img/styles/kia-joice.htm kia joice] [http://sneck.info/data/agriturismo-san/ agriturismo san michele vacanza] [http://manoke.cn/topic/tv-e/ tv e wifi] [http://polex.com.cn/resources/articles/panasonic-gd.htm panasonic gd92 batteria] [http://xionny.cn/topic/gino-paoli/ gino paoli per una storia] [http://veggis.org.cn/resources/articles/sale-gran.htm sale (gran bretagna)] [http://sneck.info/data/transcend-photobank/ transcend photobank] [http://funkall.us/images/small/foto-hard/ foto hard ed sesso] [http://veggis.org.cn/resources/articles/il-vecchio.htm il vecchio e il mare di ernest hemingway] [http://joperan.org/data/philips-sensotec/ philips sensotec] [http://joperan.org/data/gioielli-fede/ gioielli fede] [http://budget7i.info/lib/giochi-strategia/ giochi strategia on line] [http://funkall.us/images/small/francesco-degregori/ francesco degregori] [http://polex.com.cn/resources/articles/logiciel-de.htm logiciel de hack] [http://joperan.org/data/la-storia/ la storia di ian curtis e dei joy] [http://soler.net.cn/data/sony-dcrpc.htm sony dcr-pc 53] [http://wedner.info/content/view/dvd-r.htm dvd r philips 8x] [http://sneck.info/data/aegolius/ aegolius] [http://joperan.org/data/hotel-alexander/ hotel alexander] [http://joperan.org/data/turn-me/ turn me around] [http://xionny.cn/topic/macchina-caffe/ macchina caffe in cialde] [http://polex.com.cn/resources/articles/pro-loco.htm pro loco moncalieri] [http://manoke.cn/topic/incontri-friuli/ incontri friuli] [http://xionny.cn/topic/hp-/ hp 3745 hp cartucce] [http://klohy.info/img/styles/casta-bikini.htm casta bikini] [http://manoke.cn/topic/uahex/ uahex] [http://veggis.org.cn/resources/articles/eveanescence.htm eveanescence] [http://manoke.cn/topic/www-intimissimi/ www intimissimi] [http://sneck.info/data/www-informazioni/ www informazioni brasile it] [http://polex.com.cn/resources/articles/ingrassata.htm ingrassata] [http://polex.com.cn/resources/articles/bmx-fristail.htm bmx fristail] [http://funkall.us/images/small/zahl-peter/ zahl, peter paul] [http://sneck.info/data/cherchez-la/ cherchez la femme] [http://budget7i.info/lib/raffaele/ raffaele] [http://sneck.info/data/rikki-pure/ rikki pure heart] [http://budget7i.info/lib/fodero-lg/ fodero lg] [http://sneck.info/data/ux-cb/ ux c70b] [http://soler.net.cn/data/dedo.htm dedo] [http://wedner.info/content/view/buscar-sexo.htm buscar sexo en vivo] [http://polex.com.cn/resources/articles/e-vado.htm e vado via] [http://primonona.info/content/view/differenziale-anteriore/ differenziale anteriore] [http://primonona.info/content/view/www-volare/ www volare it] [http://soler.net.cn/data/jimi-hendrix.htm jimi hendrix red house] [http://veggis.org.cn/resources/articles/renault-megane.htm renault megane grand tour] [http://wedner.info/content/view/bellissime-ragazze.htm bellissime ragazze calendari gratis] [http://svike.info/view/new/dissipatori-schede.htm dissipatori schede video ati] [http://xionny.cn/topic/laschewski/ laschewski] [http://soler.net.cn/data/altec-benevento.htm altec benevento] [http://joperan.org/data/musica-italia/ musica italia] [http://joperan.org/data/proteggi-schermo/ proteggi schermo] [http://funkall.us/images/small/the-dream/ the dream within] [http://wedner.info/content/view/nansy.htm nansy] [http://soler.net.cn/data/b-tight.htm b tight] [http://wedner.info/content/view/roadstar-radio.htm roadstar radio] [http://veggis.org.cn/resources/articles/fiorista-bandera.htm fiorista bandera] [http://primonona.info/content/view/audio-esterna/ audio esterna accessori video] [http://xionny.cn/topic/circolari-persomil/ circolari persomil] [http://polex.com.cn/resources/articles/un-piccolo.htm un piccolo aiuto] [http://budget7i.info/lib/pc-packard/ pc packard bell] [http://wedner.info/content/view/venere-lucente.htm venere lucente] [http://polex.com.cn/resources/articles/dlink-adsl.htm d-link adsl wireless kit] [http://manoke.cn/topic/ali-sulla/ ali sulla cina] [http://xionny.cn/topic/iquique/ iquique] [http://sneck.info/data/una-lira/ una lira banconote] [http://budget7i.info/lib/www-livepoint/ www livepoint it] [http://wedner.info/content/view/tanzania-zanzibar.htm tanzania zanzibar voli per] [http://budget7i.info/lib/il-pianeta/ il pianeta vivente i mari d erba] [http://xionny.cn/topic/william-hurt/ william hurt] [http://budget7i.info/lib/la-sciarpa/ la sciarpa] [http://primonona.info/content/view/moje-lane/ moje lane] [http://funkall.us/images/small/laser-hp/ laser hp stampante] [http://xionny.cn/topic/olio-e/ olio e aceto] [http://xionny.cn/topic/plasma-lg/ plasma lg monitor] [http://primonona.info/content/view/mercedes-/ mercedes 220 c sw] [http://sneck.info/data/gaggia-gelateria/ gaggia gelateria] [http://funkall.us/images/small/culo-aperti/ culo aperti] [http://manoke.cn/topic/laurea-ringraziamenti/ laurea ringraziamenti] [http://klohy.info/img/styles/sapphire-radeon.htm sapphire radeon x800 gto] [http://funkall.us/images/small/borsa-per/ borsa per dvd in alluminio] [http://primonona.info/content/view/usb-/ usb 2 adattatore] [http://wedner.info/content/view/resident-evil.htm resident evil outbreak parte bene] [http://primonona.info/content/view/midi-nunziali/ midi nunziali] [http://sneck.info/data/asset-intangibili/ asset intangibili] [http://funkall.us/images/small/psp-italia/ psp italia] [http://budget7i.info/lib/auto-noleggio/ auto noleggio frosinone] [http://klohy.info/img/styles/hs-motorola.htm hs805 motorola] [http://sneck.info/data/gen-rosso/ gen rosso canti] [http://sneck.info/data/repent-walpurgis/ repent walpurgis] [http://funkall.us/images/small/audigy/ audigy 4] [http://primonona.info/content/view/nike-solas/ nike solas air] [http://sneck.info/data/intel-pentium/ intel pentium m asus] [http://joperan.org/data/www-leoni/ www leoni com] [http://veggis.org.cn/resources/articles/momenti-no.htm momenti no] [http://budget7i.info/lib/sosta-a/ sosta a verona] [http://sneck.info/data/amore-e/ amore e pallottole] [http://funkall.us/images/small/star-ocean/ star ocean till the end of time] [http://veggis.org.cn/resources/articles/dumble-rumble.htm dumble rumble] [http://polex.com.cn/resources/articles/sammichele-ba.htm sammichele ba] [http://manoke.cn/topic/nikon-cscp/ nikon cs-cp20] [http://joperan.org/data/ps-gt/ ps2 gt 4] [http://veggis.org.cn/resources/articles/ninna-nanna.htm ninna nanna federico salvatore] [http://budget7i.info/lib/cancion-del/ cancion del mariachi morena de mi corazon] [http://sneck.info/data/night-nurse/ night nurse] [http://veggis.org.cn/resources/articles/tariffe-aeroflot.htm tariffe aeroflot] [http://veggis.org.cn/resources/articles/the-sims.htm the sims advance] [http://svike.info/view/new/tango-bar.htm tango bar] [http://xionny.cn/topic/cicli-con/ cicli con insulina] [http://veggis.org.cn/resources/articles/stampante-codici.htm stampante codici barra] [http://wedner.info/content/view/ischia.htm ischia] [http://joperan.org/data/mobili-giapponesi/ mobili giapponesi] [http://polex.com.cn/resources/articles/inovix-imp.htm inovix imp-10] [http://manoke.cn/topic/mase/ mase] [http://polex.com.cn/resources/articles/dlink-wireless.htm d-link wireless bridge] [http://primonona.info/content/view/trasmettitore-radio/ trasmettitore radio in fm] [http://budget7i.info/lib/mitchel-viet/ mitchel viet desnuda] [http://wedner.info/content/view/the-touch.htm the touch] [http://veggis.org.cn/resources/articles/altoparlanti-senza.htm altoparlanti senza fili] [http://polex.com.cn/resources/articles/sonidos-enigmaticos.htm sonidos enigmaticos] [http://budget7i.info/lib/luo/ luo] [http://svike.info/view/new/jeep-cherokee.htm jeep cherokee 2 5] [http://xionny.cn/topic/thomson-dvd/ thomson dvd recorder] [http://xionny.cn/topic/un/ un] [http://veggis.org.cn/resources/articles/una-trappola.htm una trappola per jeffrey] [http://svike.info/view/new/i-racconti.htm i racconti di canterbury] [http://soler.net.cn/data/modem-adsl.htm modem adsl telecom] [http://svike.info/view/new/hd-.htm hd 2 5 40 gb] [http://veggis.org.cn/resources/articles/orchetra.htm orchetra] [http://soler.net.cn/data/trattori-pg.htm trattori pg] [http://polex.com.cn/resources/articles/aspire.htm aspire 1520] [http://funkall.us/images/small/portami-in/ portami in cielo] 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 19:14, 29 August 2007

bonders geforce go 6 pic hong nhung ombre chiare disposta al piacere prisionera pilar montenegro lavastoviglie ariston zubair modello side guida micheline batterie sony t610 claudia koll in cosi fan tutte pirollo julia robers nudo integrale diga di assuan vico nel lazio www pesca in it video al qaida linea aerea volare samsung q spartiti forza venite gente foto fighe pelose gratis residan evil la grande caccia ludacris stand up lcd 17 16 pugni chiusi jaguar xjs leather schemi di posa supersex cinquemiglia richie poveri concerto di tiziano ferro hidraulica y neumatica ati radeon x800xl 512mb lancome gloss incesti storie editto di rotari borsa titolo rio de janero sdram 256mb 133mhz vaffanculo mp3 elio lultima notte damore nicon coolpix 7600 salemme titoli canzoni di hit mania dance estate natali dizdar hotel in sri lanka panico a echo park la morte al telefono ho un cazzo enorme free matura movie gallery maschi bsx a palermo utesa cavo surround stivali rosa tacco alto exagerate zelig music x ball oscena fox estate coal chamber ef 100 macro lumidee never leave you remix israelsex ferrari 308 gts tomba di machiavelli a firenze foto meccanica a forli ipod nano mp3 marce per bande www muro it kia joice agriturismo san michele vacanza tv e wifi panasonic gd92 batteria gino paoli per una storia sale (gran bretagna) transcend photobank foto hard ed sesso il vecchio e il mare di ernest hemingway philips sensotec gioielli fede giochi strategia on line francesco degregori logiciel de hack la storia di ian curtis e dei joy sony dcr-pc 53 dvd r philips 8x aegolius hotel alexander turn me around macchina caffe in cialde pro loco moncalieri incontri friuli hp 3745 hp cartucce casta bikini uahex eveanescence www intimissimi www informazioni brasile it ingrassata bmx fristail zahl, peter paul cherchez la femme raffaele rikki pure heart fodero lg ux c70b dedo buscar sexo en vivo e vado via differenziale anteriore www volare it jimi hendrix red house renault megane grand tour bellissime ragazze calendari gratis dissipatori schede video ati laschewski altec benevento musica italia proteggi schermo the dream within nansy b tight roadstar radio fiorista bandera audio esterna accessori video circolari persomil un piccolo aiuto pc packard bell venere lucente d-link adsl wireless kit ali sulla cina iquique una lira banconote www livepoint it tanzania zanzibar voli per il pianeta vivente i mari d erba william hurt la sciarpa moje lane laser hp stampante olio e aceto plasma lg monitor mercedes 220 c sw gaggia gelateria culo aperti laurea ringraziamenti sapphire radeon x800 gto borsa per dvd in alluminio usb 2 adattatore resident evil outbreak parte bene midi nunziali asset intangibili psp italia auto noleggio frosinone hs805 motorola gen rosso canti repent walpurgis audigy 4 nike solas air intel pentium m asus www leoni com momenti no sosta a verona amore e pallottole star ocean till the end of time dumble rumble sammichele ba nikon cs-cp20 ps2 gt 4 ninna nanna federico salvatore cancion del mariachi morena de mi corazon night nurse tariffe aeroflot the sims advance tango bar cicli con insulina stampante codici barra ischia mobili giapponesi inovix imp-10 mase d-link wireless bridge trasmettitore radio in fm mitchel viet desnuda the touch altoparlanti senza fili sonidos enigmaticos luo jeep cherokee 2 5 thomson dvd recorder un una trappola per jeffrey i racconti di canterbury modem adsl telecom hd 2 5 40 gb orchetra trattori pg aspire 1520 portami in cielo 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