#import "StatusWindowController.h"
#import "StatusItemHack.h"
+@interface NSImage (WeeAdditions)
+- (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize;
+@end
+
+@implementation NSImage (WeeAdditions)
+
+- (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize
+{
+ NSImage *newImage;
+ NSImageRep *rep = [self bestRepresentationForDevice:nil];
+
+ newImage = [[NSImage alloc] initWithSize:scaledSize];
+ [newImage lockFocus];
+ {
+ [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
+ [[NSGraphicsContext currentContext] setShouldAntialias:YES];
+ [rep drawInRect:NSMakeRect(3, 3, scaledSize.width - 6, scaledSize.height - 6)];
+ }
+ [newImage unlockFocus];
+ return [newImage autorelease];
+}
+
+@end
+
@interface MainController(Private)
- (ITMTRemote *)loadRemote;
- (void)timerUpdate;
{
ITDebugLog(@"Selecting playlist %i", index);
NS_DURING
- //[[self currentRemote] switchToPlaylistAtIndex:(index % 1000) ofSourceAtIndex:(index / 1000)];
- [[self currentRemote] switchToPlaylistAtIndex:index];
+ [[self currentRemote] switchToPlaylistAtIndex:(index % 1000) ofSourceAtIndex:(index / 1000)];
+ //[[self currentRemote] switchToPlaylistAtIndex:index];
NS_HANDLER
[self networkError:localException];
NS_ENDHANDLER
} else {
ITDebugLog(@"Launching player.");
NS_DURING
- if (![[NSWorkspace sharedWorkspace] launchApplication:[[self currentRemote] playerFullName]]) {
+ NSString *path;
+ if ( (path = [df stringForKey:@"CustomPlayerPath"]) ) {
+ } else {
+ path = [[self currentRemote] playerFullName];
+ }
+ if (![[NSWorkspace sharedWorkspace] launchApplication:path]) {
ITDebugLog(@"Error Launching Player");
}
NS_HANDLER
} else {
title = NSLocalizedString(@"noSongPlaying", @"No song is playing.");
}
-
[statusWindowController showSongInfoWindowWithSource:source
title:title
album:album
time:time
track:track
rating:rating
- image:art];
+ image:[[[[NSImage alloc] initWithData:[art TIFFRepresentation]] autorelease] imageScaledSmoothlyToSize:NSMakeSize(110,110)]];
}
- (void)showUpcomingSongs