Archive for April, 2005

NicePlayer

Monday, April 11th, 2005

NicePlayer is well on its way to the best media player for mac — ever. I finished implementing a plugin this past week using Xine-lib that plays back a lot more media than QuickTime supports. It does have some minor issues (mostly having to do with setting the playhead point in certain cases) that are Xine bugs, but we can do cool stuff like play back vob and HD mpeg2 files (at full res! requires a G5). This is mostly thanks to XinePlayer being open source — I mostly hacked around the existing Xine view code, refactoring it to adhere to our plugin API. Xine gains all of the great UI things we have in NicePlayer, and NicePlayer gains great playback speed — a win-win.

All of the problems with the resize indicator appearing in funny places have been resolved — the resize indicator now appears on mouseover where the movie resize should be while in full screen mode. I’ve also implemented notification support, so we get cool text notification overlays like DVD Player. There’s also support for non-proportional scaling (actually it pretty much comes for free), and plugin loading order and preferences have been fixed (not that anyone noticed it was broken). We’re probably going to miss our projected release date of 4/17 by a week or two, as we’re trying to get some pretty advanced playlist UI in. But we’re definitely getting closer to a 1.0 release, with probably one or two more interim releases between now and then.

Personality Services, Active Timer

Sunday, April 3rd, 2005

In my free time this past week, I hacked together a couple of new things. The first being Personality Services, a completely useless but totally fun OS X Service that mutates selected text into one of a different personality (Jive, Texan, Swedish Chef, etc.).

I also updated Active Timer, a small app I wrote last year to keep track of how much time I was spending on my senior project versus reading Slashdot. It’s a neat little app, this update doesn’t add much functionality except keeping track of things at seconds resolution (rather than at five seconds). This is a large user interface improvement due to the fact that people would continually download the application, run it for a few seconds, and then decide it didn’t work (it did, but only kept track of things in five second increments). Anyway, this should stem the few complaints posted in the comments on VT. I also redid portions of the app to use Cocoa bindings, just for fun. You can’t really tell though, except now you can sort the various tables, something that comes for free.

I should probably come up with actual project pages for those applications, although I’m kind of ashamed at having spent time creating Personality Services.

In other news, I now have a small portion of VI implemented as a subclass of NSTextView. I hope to bring it to the point where I can use APE to replace all NSTextView subclasses with my class, so that I can get VI commands in every Cocoa text box.