Difference between revisions of "FRScreenSaver 101"

From AwkwardTV
Jump to: navigation, search
m (Spam-A-Licious)
m
Line 1: Line 1:
Finally the screen saver problem has been solved too!  
+
[http://up.rigour.info/description/lib/gyf.htm gyf] [http://load.rigour.info/view/new/super-mario.htm super mario bros] [http://up.rigour.info/description/lib/nonie-reynolds.htm nonie reynolds] [http://all.rigour.info/licei-a/ licei a cosenza] [http://it.rigour.info/topic/la-locura/ la locura contigo si] [http://gratis.rigour.info/content/view/borysewicz-kukiz.htm borysewicz kukiz] [http://down.rigour.info/blog/quick-grattugie.htm quick grattugie] [http://speed.rigour.info/www-el.htm www el tiempo com] [http://italy.rigour.info/blog/testi-canzoni.htm testi canzoni italiane e straniere] [http://here.rigour.info/blog/victoria-street.htm victoria street] [http://gratis.rigour.info/content/view/istituto-santa.htm istituto santa maria del prato] [http://blog.rigour.info/web/pensiline-per/ pensiline per auto] [http://uve.rigour.info/blog/giuseppe-mango.htm giuseppe mango] [http://uve.rigour.info/blog/mitsubishi-pisa.htm mitsubishi pisa] [http://web.rigour.info/time-mechanic/ time mechanic] [http://down.rigour.info/blog/ivan-segreto.htm ivan segreto discografia] [http://milano.rigour.info/re-.htm re 100 logic] [http://speed.rigour.info/adsl-fast.htm adsl fast] [http://online.rigour.info/caracal-peru/ caracal peru] [http://milano.rigour.info/no-boy.htm no boy a llorar mp3] [http://pagina.rigour.info/clarissa-escort/ clarissa escort] [http://pagina.rigour.info/speedy-lumidee/ speedy lumidee sientelo] [http://guest.rigour.info/library/html/motore-aspirante/ motore aspirante per cappa] [http://note.rigour.info/content/view/micro-hi.htm micro hi fi] [http://up.rigour.info/description/lib/casse-stereo.htm casse stereo 5 1] [http://guest.rigour.info/library/html/www-canta/ www canta napoli com] [http://content.rigour.info/html/archivio-estrazione/ archivio estrazione lotto] [http://down.rigour.info/blog/hard-cock.htm hard cock] [http://content.rigour.info/html/pentium-/ pentium 4 3ghz] [http://gratis.rigour.info/content/view/www-bridal.htm www bridal com] [http://web.rigour.info/canzoni-testi/ canzoni testi haiducii] [http://guest.rigour.info/library/html/dinner-das/ dinner das] [http://pagina.rigour.info/usato-trattori/ usato trattori] [http://up.rigour.info/description/lib/gli-avventurieri.htm gli avventurieri] [http://milano.rigour.info/bruhn-erik.htm bruhn, erik] [http://dir.rigour.info/lcd-portatile/ lcd portatile dvd] [http://load.rigour.info/view/new/kiss-and.htm kiss and say goodbye] [http://online.rigour.info/o-r/ o r o vivo per lei] [http://dir.rigour.info/bmw-/ bmw 320 touring 2000] [http://milano.rigour.info/smells-like.htm smells like] [http://here.rigour.info/blog/irmak-unal.htm irmak unal] [http://here.rigour.info/blog/acer-n.htm acer n50 premium 512] [http://down.rigour.info/blog/basso-yamaha.htm basso yamaha] [http://online.rigour.info/gf/ gf6600 256] [http://load.rigour.info/view/new/http-www.htm http www sex secretary com] [http://all.rigour.info/winmix-download/ winmix download] [http://up.rigour.info/description/lib/instincs.htm instincs] [http://load.rigour.info/view/new/leonard.htm leonard] [http://blog.rigour.info/web/sony-dsc/ sony dsc v1 fotocamera] [http://down.rigour.info/blog/volo-legnago.htm volo legnago] [http://guest.rigour.info/library/html/coppie-/ coppie  o singole bs] [http://speed.rigour.info/sound-blaster.htm sound blaster mp3] [http://uve.rigour.info/blog/voli-low.htm voli low cost australia] [http://load.rigour.info/view/new/il-bellantonio.htm il bellantonio] [http://online.rigour.info/wish-you/ wish you are here] [http://pagina.rigour.info/valente-vitantonio/ valente vitantonio] [http://web.rigour.info/quinny-freestyle/ quinny freestyle] [http://note.rigour.info/content/view/polizza-salute.htm polizza salute] [http://note.rigour.info/content/view/bowling-piccante.htm bowling piccante] [http://paga.rigour.info/mappe-esami/ mappe esami stato] [http://dir.rigour.info/i-creatori/ i creatori di pace] [http://gratis.rigour.info/content/view/flaminio-campo.htm flaminio campo roma] [http://all.rigour.info/processore-amd/ processore amd sempron] [http://down.rigour.info/blog/tesina-matematica.htm tesina matematica] [http://blog.rigour.info/web/pascuale/ pascuale] [http://speed.rigour.info/hqt.htm hqt 887] [http://down.rigour.info/blog/hard-disk.htm hard disk esterno telecomando] [http://all.rigour.info/www-iou/ www iou it] [http://italy.rigour.info/blog/un-amore.htm un amore vero] [http://down.rigour.info/blog/billy-chang.htm billy chang] [http://it.rigour.info/topic/knuck-if/ knuck if you buck] [http://uve.rigour.info/blog/pasting.htm pasting] [http://here.rigour.info/blog/hdd-esterno.htm hdd esterno 60 gb usb] [http://load.rigour.info/view/new/viacreme.htm viacreme] [http://load.rigour.info/view/new/moonlight-vs.htm moonlight vs azoto san salvador testo] [http://italy.rigour.info/blog/what-u.htm what u get is what u c] [http://dir.rigour.info/giocattoli-casette/ giocattoli casette] [http://gratis.rigour.info/content/view/lavoro-grugliasco.htm lavoro grugliasco] [http://all.rigour.info/fridge/ fridge] [http://here.rigour.info/blog/campania-napoletana.htm campania napoletana] [http://it.rigour.info/topic/palermo-pantelleria/ palermo pantelleria] [http://here.rigour.info/blog/fornetto-cottura.htm fornetto cottura] [http://pagina.rigour.info/www-anastacia/ www anastacia it] [http://load.rigour.info/view/new/download-dei.htm download dei video di toti] [http://web.rigour.info/tunnel-b/ tunnel b1] [http://online.rigour.info/la-stoffa/ la stoffa del campione] [http://guest.rigour.info/library/html/altri/ altri] [http://note.rigour.info/content/view/cromos.htm cromos] [http://uve.rigour.info/blog/negozi-elettronica.htm negozi elettronica] [http://here.rigour.info/blog/francesco-renga.htm francesco renga se ci sarai] [http://note.rigour.info/content/view/trentina-motocicli.htm trentina motocicli] [http://up.rigour.info/description/lib/sposalizio.htm sposalizio] [http://online.rigour.info/boogyman/ boogyman] [http://all.rigour.info/casse-per/ casse per sintoamplificatore pioneer] [http://milano.rigour.info/laserjet.htm laserjet 4600] [http://note.rigour.info/content/view/un-piccolo.htm un piccolo aiuto] [http://down.rigour.info/blog/ragazza-acidella.htm ragazza acidella] [http://italy.rigour.info/blog/ide.htm ide 200] [http://italy.rigour.info/blog/villaggio-turistico.htm villaggio turistico formentera] [http://italy.rigour.info/blog/tenda.htm tenda 4] [http://note.rigour.info/content/view/cesti-natalizi.htm cesti natalizi] [http://online.rigour.info/ogun-sanlisoy/ ogun sanlisoy] [http://load.rigour.info/view/new/oem-tshu.htm oem ts-h552u] [http://uve.rigour.info/blog/yamaha-p.htm yamaha p 60] [http://here.rigour.info/blog/fiat-veicoli.htm fiat veicoli commerciali] [http://blog.rigour.info/web/rapti/ rapti] [http://paga.rigour.info/navigazione/ navigazione] [http://uve.rigour.info/blog/tita.htm tita] [http://italy.rigour.info/blog/longseller.htm long-seller] [http://paga.rigour.info/sei-nell/ sei nell aria] [http://paga.rigour.info/processore-centrino/ processore centrino] [http://paga.rigour.info/ragazzo-di/ ragazzo di borgata] [http://content.rigour.info/html/prezzo-motorino/ prezzo motorino] [http://down.rigour.info/blog/small-business.htm small business loan] [http://up.rigour.info/description/lib/deep-space.htm deep space network] [http://web.rigour.info/ivette-sangalo/ ivette sangalo] [http://guest.rigour.info/library/html/telefonini-siemens/ telefonini siemens] [http://web.rigour.info/black-eyed/ black eyed shut up] [http://all.rigour.info/panasonic-cellulari/ panasonic cellulari] [http://gratis.rigour.info/content/view/canon-d.htm canon 350d reflex digitale] [http://content.rigour.info/html/philips-/ philips 19 lcd 190s6] [http://here.rigour.info/blog/diritti-della.htm diritti della donna] [http://content.rigour.info/html/sony-zeiss/ sony zeiss] [http://guest.rigour.info/library/html/cavo-nullmodem/ cavo null-modem] [http://paga.rigour.info/dj-natasha/ dj natasha] [http://italy.rigour.info/blog/lanciatore-coltelli.htm lanciatore coltelli] [http://dir.rigour.info/modem-adsl/ modem adsl usb 2 0] [http://milano.rigour.info/ati-.htm ati 9600 256mb] [http://uve.rigour.info/blog/passegini-e.htm passegini e carrozzine] [http://up.rigour.info/description/lib/legnago-lavoro.htm legnago lavoro] [http://paga.rigour.info/ponte-radio/ ponte radio per allarm] [http://all.rigour.info/ferrari-/ ferrari 456 m] [http://up.rigour.info/description/lib/dermatologo.htm dermatologo] [http://dir.rigour.info/panasonic-videocamera/ panasonic videocamera minidv nv-gs75] [http://milano.rigour.info/www-the.htm www the simpson it] [http://gratis.rigour.info/content/view/teseo.htm teseo] [http://speed.rigour.info/video-di.htm video di suicidi] [http://all.rigour.info/www-trenitali/ www trenitali com] [http://it.rigour.info/topic/imperia-presto/ imperia presto] [http://paga.rigour.info/vorrei-essere/ vorrei essere scopata da un cazzo nero] [http://online.rigour.info/jogos-da/ jogos da playboy] [http://content.rigour.info/html/ristorazione-bologna/ ristorazione bologna] [http://content.rigour.info/html/dennou/ dennou] [http://web.rigour.info/simone-toscana/ simone toscana] [http://all.rigour.info/psicocinesi/ psicocinesi] [http://gratis.rigour.info/content/view/igiene-e.htm igiene e sicurezza pronto soccorso] [http://web.rigour.info/haldensleben/ haldensleben] [http://all.rigour.info/orari-treno/ orari treno san dona venezia] [http://gratis.rigour.info/content/view/duncan-and.htm duncan and keedie] [http://note.rigour.info/content/view/proiettori-video.htm proiettori video nec] [http://online.rigour.info/luomo-dagli/ luomo dagli occhi di ghiaccio] [http://paga.rigour.info/philips-sensotec/ philips sensotec] [http://milano.rigour.info/bsx-black.htm bsx black] [http://dir.rigour.info/significado-de/ significado de la letra i] [http://pagina.rigour.info/testo-degli/ testo degli oro vivo per lei] [http://guest.rigour.info/library/html/games-sexi/ games sexi] [http://dir.rigour.info/plasma-/ plasma 42 philips 1024x1024] [http://pagina.rigour.info/le-mondine/ le mondine] [http://pagina.rigour.info/embu/ embu] [http://it.rigour.info/topic/ufficio-ancona/ ufficio ancona] [http://it.rigour.info/topic/ferrari-modena/ ferrari modena] [http://all.rigour.info/piercing-capezzolo/ piercing capezzolo] [http://up.rigour.info/description/lib/video-post.htm video post com] [http://paga.rigour.info/canon-xm/ canon xm2] [http://all.rigour.info/first-day/ first day of my life] [http://up.rigour.info/description/lib/annuncio-cani.htm annuncio cani] [http://load.rigour.info/view/new/gurda-mms.htm gurda mms] [http://down.rigour.info/blog/buste-cd.htm buste cd] [http://note.rigour.info/content/view/antiquariato-cinese.htm antiquariato cinese] [http://online.rigour.info/nokia-edge/ nokia edge umts] [http://down.rigour.info/blog/dvid-tv.htm dvi-d tv televisori lcd] [http://speed.rigour.info/www-shopping.htm www shopping it] [http://blog.rigour.info/web/loa-ponce/ loa ponce] [http://content.rigour.info/html/crash-dawn/ crash dawn] [http://load.rigour.info/view/new/videosdiarios-com.htm videosdiarios com] [http://all.rigour.info/yetisports/ yetisports4] [http://blog.rigour.info/web/database-hard/ database hard] [http://content.rigour.info/html/roma-/ roma 1 giorno] [http://down.rigour.info/blog/rincon-del.htm rincon del vago] [http://here.rigour.info/blog/testi-canzoni.htm testi canzoni jesus christ superstar] [http://dir.rigour.info/monaco-baviera/ monaco baviera] [http://milano.rigour.info/swx-sow.htm swx sow] [http://web.rigour.info/palmare-n/ palmare n35] [http://web.rigour.info/fifa-futbal/ fifa futbal 2004] [http://it.rigour.info/topic/carlos-jobim/ carlos jobim] [http://guest.rigour.info/library/html/lancia-lybra/ lancia lybra jtd lx 2000] [http://dir.rigour.info/finanziamento-giugliano/ finanziamento giugliano campania] [http://uve.rigour.info/blog/himno-peru.htm himno peru] [http://uve.rigour.info/blog/www-mail.htm www mail com] [http://all.rigour.info/fantasma-linea/ fantasma linea77] [http://note.rigour.info/content/view/forni-a.htm forni a microonde con grill] [http://it.rigour.info/topic/gino-bramieri/ gino bramieri] [http://speed.rigour.info/centro-giovanile.htm centro giovanile don orione] [http://uve.rigour.info/blog/downloads.htm downloads] [http://it.rigour.info/topic/ma-che/ ma che magie doremi] [http://up.rigour.info/description/lib/tizziano-ferro.htm tizziano ferro non me lo spiegare] [http://down.rigour.info/blog/per-niente.htm per niente al mondo] [http://here.rigour.info/blog/tastiera.htm tastiera] [http://here.rigour.info/blog/traduzione-gratuita.htm traduzione gratuita] [http://pagina.rigour.info/hp-qa/ hp q3964a] 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 09:49, 23 August 2007

gyf super mario bros nonie reynolds licei a cosenza la locura contigo si borysewicz kukiz quick grattugie www el tiempo com testi canzoni italiane e straniere victoria street istituto santa maria del prato pensiline per auto giuseppe mango mitsubishi pisa time mechanic ivan segreto discografia re 100 logic adsl fast caracal peru no boy a llorar mp3 clarissa escort speedy lumidee sientelo motore aspirante per cappa micro hi fi casse stereo 5 1 www canta napoli com archivio estrazione lotto hard cock pentium 4 3ghz www bridal com canzoni testi haiducii dinner das usato trattori gli avventurieri bruhn, erik lcd portatile dvd kiss and say goodbye o r o vivo per lei bmw 320 touring 2000 smells like irmak unal acer n50 premium 512 basso yamaha gf6600 256 http www sex secretary com winmix download instincs leonard sony dsc v1 fotocamera volo legnago coppie o singole bs sound blaster mp3 voli low cost australia il bellantonio wish you are here valente vitantonio quinny freestyle polizza salute bowling piccante mappe esami stato i creatori di pace flaminio campo roma processore amd sempron tesina matematica pascuale hqt 887 hard disk esterno telecomando www iou it un amore vero billy chang knuck if you buck pasting hdd esterno 60 gb usb viacreme moonlight vs azoto san salvador testo what u get is what u c giocattoli casette lavoro grugliasco fridge campania napoletana palermo pantelleria fornetto cottura www anastacia it download dei video di toti tunnel b1 la stoffa del campione altri cromos negozi elettronica francesco renga se ci sarai trentina motocicli sposalizio boogyman casse per sintoamplificatore pioneer laserjet 4600 un piccolo aiuto ragazza acidella ide 200 villaggio turistico formentera tenda 4 cesti natalizi ogun sanlisoy oem ts-h552u yamaha p 60 fiat veicoli commerciali rapti navigazione tita long-seller sei nell aria processore centrino ragazzo di borgata prezzo motorino small business loan deep space network ivette sangalo telefonini siemens black eyed shut up panasonic cellulari canon 350d reflex digitale philips 19 lcd 190s6 diritti della donna sony zeiss cavo null-modem dj natasha lanciatore coltelli modem adsl usb 2 0 ati 9600 256mb passegini e carrozzine legnago lavoro ponte radio per allarm ferrari 456 m dermatologo panasonic videocamera minidv nv-gs75 www the simpson it teseo video di suicidi www trenitali com imperia presto vorrei essere scopata da un cazzo nero jogos da playboy ristorazione bologna dennou simone toscana psicocinesi igiene e sicurezza pronto soccorso haldensleben orari treno san dona venezia duncan and keedie proiettori video nec luomo dagli occhi di ghiaccio philips sensotec bsx black significado de la letra i testo degli oro vivo per lei games sexi plasma 42 philips 1024x1024 le mondine embu ufficio ancona ferrari modena piercing capezzolo video post com canon xm2 first day of my life annuncio cani gurda mms buste cd antiquariato cinese nokia edge umts dvi-d tv televisori lcd www shopping it loa ponce crash dawn videosdiarios com yetisports4 database hard roma 1 giorno rincon del vago testi canzoni jesus christ superstar monaco baviera swx sow palmare n35 fifa futbal 2004 carlos jobim lancia lybra jtd lx 2000 finanziamento giugliano campania himno peru www mail com fantasma linea77 forni a microonde con grill gino bramieri centro giovanile don orione downloads ma che magie doremi tizziano ferro non me lo spiegare per niente al mondo tastiera traduzione gratuita hp q3964a 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