Bumped to version 1.7.2. First freeware release. v1.7.2
authorJoseph Spiros <joseph.spiros@ithinksw.com>
Tue, 13 Jan 2009 10:03:36 +0000 (05:03 -0500)
committerJoseph Spiros <joseph.spiros@ithinksw.com>
Tue, 13 Jan 2009 10:03:36 +0000 (05:03 -0500)
Removed all references to eSellerate's libValidate, and related registration
and trial resources. Thus, MenuTunes is now freeware. As well, I have removed
old files that were not referenced by the projects, which consisted primarily
of old and deprecated versions of current project files, as well as unused
resources.

59 files changed:
AquaPaused.tif [deleted file]
AquaPlaying.tiff [deleted file]
Deprecated/English.lproj/Registration.nib/classes.nib [deleted file]
Deprecated/English.lproj/Registration.nib/info.nib [deleted file]
Deprecated/English.lproj/Registration.nib/keyedobjects.nib [deleted file]
Deprecated/English.lproj/StatusWindow.nib/classes.nib [deleted file]
Deprecated/English.lproj/StatusWindow.nib/info.nib [deleted file]
Deprecated/English.lproj/StatusWindow.nib/objects.nib [deleted file]
Deprecated/ITMTRemote.h [deleted file]
Deprecated/ITMTRemote.m [deleted file]
Deprecated/RegController.h [deleted file]
Deprecated/RegController.m [deleted file]
Deprecated/StatusWindow.h [deleted file]
Deprecated/StatusWindow.m [deleted file]
Deprecated/StatusWindowController.h [deleted file]
Deprecated/StatusWindowController.m [deleted file]
Deprecated/iTunesRemote.h [deleted file]
Deprecated/iTunesRemote.m [deleted file]
English.lproj/InfoPlist.strings
English.lproj/Localizable.strings
GraphitePaused.tiff [deleted file]
GraphitePlaying.tiff [deleted file]
Info.plist
MTBlingController.h [deleted file]
MTBlingController.m [deleted file]
MTShizzleWindow.h [deleted file]
MTShizzleWindow.m [deleted file]
MTeSerialNumber.h [deleted file]
MTeSerialNumber.m [deleted file]
MainController.h
MainController.m
MenuController.h
MenuController.m
MenuTunes.xcodeproj/project.pbxproj
OldMainController.h [deleted file]
OldMainController.m [deleted file]
Register.tiff [deleted file]
ShadowedImages/CD.tiff [deleted file]
ShadowedImages/Library.tiff [deleted file]
ShadowedImages/MP3Player.tiff [deleted file]
ShadowedImages/NetLibrary.tiff [deleted file]
ShadowedImages/Radio.tiff [deleted file]
ShadowedImages/Rating.tiff [deleted file]
ShadowedImages/Register.tiff [deleted file]
ShadowedImages/Repeat.tiff [deleted file]
ShadowedImages/Setup.tiff [deleted file]
ShadowedImages/Shuffle.tiff [deleted file]
ShadowedImages/Upcoming.tiff [deleted file]
ShadowedImages/Volume.tiff [deleted file]
ShadowedImages/iPod.tiff [deleted file]
StatusWindowController.h
StatusWindowController.m
TODO.rtf [deleted file]
esellerate.gif [deleted file]
iTunesRemote-Info.plist
libValidate.a [deleted file]
libValidateUniversal.a [deleted file]
main.m
validate.h [deleted file]

diff --git a/AquaPaused.tif b/AquaPaused.tif
deleted file mode 100755 (executable)
index be90a5a..0000000
Binary files a/AquaPaused.tif and /dev/null differ
diff --git a/AquaPlaying.tiff b/AquaPlaying.tiff
deleted file mode 100755 (executable)
index 24f564e..0000000
Binary files a/AquaPlaying.tiff and /dev/null differ
diff --git a/Deprecated/English.lproj/Registration.nib/classes.nib b/Deprecated/English.lproj/Registration.nib/classes.nib
deleted file mode 100755 (executable)
index 9d4c4e4..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-    IBClasses = (
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = MenuTunes; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {
-            ACTIONS = {verifyRegistration = id; }; 
-            CLASS = RegController; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                f = NSWindow; 
-                g = NSWindow; 
-                keyField = NSTextField; 
-                n = NSWindow; 
-                nameField = NSTextField; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }
-    ); 
-    IBVersion = 1; 
-}
\ No newline at end of file
diff --git a/Deprecated/English.lproj/Registration.nib/info.nib b/Deprecated/English.lproj/Registration.nib/info.nib
deleted file mode 100755 (executable)
index f813748..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>IBDocumentLocation</key>
-       <string>30 27 356 240 0 0 1056 770 </string>
-       <key>IBEditorPositions</key>
-       <dict>
-               <key>31</key>
-               <string>177 408 305 135 0 0 1056 770 </string>
-       </dict>
-       <key>IBFramework Version</key>
-       <string>291.0</string>
-       <key>IBOpenObjects</key>
-       <array>
-               <integer>31</integer>
-       </array>
-       <key>IBSystem Version</key>
-       <string>6I32</string>
-</dict>
-</plist>
diff --git a/Deprecated/English.lproj/Registration.nib/keyedobjects.nib b/Deprecated/English.lproj/Registration.nib/keyedobjects.nib
deleted file mode 100755 (executable)
index 0285599..0000000
Binary files a/Deprecated/English.lproj/Registration.nib/keyedobjects.nib and /dev/null differ
diff --git a/Deprecated/English.lproj/StatusWindow.nib/classes.nib b/Deprecated/English.lproj/StatusWindow.nib/classes.nib
deleted file mode 100755 (executable)
index 7d510ed..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    IBClasses = (
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = StatusWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; }, 
-        {
-            CLASS = StatusWindowController; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {statusField = NSTextField; statusWindow = StatusWindow; }; 
-            SUPERCLASS = NSObject; 
-        }
-    ); 
-    IBVersion = 1; 
-}
\ No newline at end of file
diff --git a/Deprecated/English.lproj/StatusWindow.nib/info.nib b/Deprecated/English.lproj/StatusWindow.nib/info.nib
deleted file mode 100755 (executable)
index 5363aec..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>IBFramework Version</key>
-       <string>291.0</string>
-       <key>IBOpenObjects</key>
-       <array>
-               <integer>5</integer>
-       </array>
-       <key>IBSystem Version</key>
-       <string>6G30</string>
-</dict>
-</plist>
diff --git a/Deprecated/English.lproj/StatusWindow.nib/objects.nib b/Deprecated/English.lproj/StatusWindow.nib/objects.nib
deleted file mode 100755 (executable)
index 6de9479..0000000
Binary files a/Deprecated/English.lproj/StatusWindow.nib/objects.nib and /dev/null differ
diff --git a/Deprecated/ITMTRemote.h b/Deprecated/ITMTRemote.h
deleted file mode 100755 (executable)
index 2c27199..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- *  MenuTunes
- *  ITMTRemote
- *    Plugin definition for audio player control via MenuTunes
- *
- *  Original Author : Matt Judy <mjudy@ithinksw.com>
- *   Responsibility : Matt Judy <mjudy@ithinksw.com>
- *
- *  Copyright (c) 2002 - 2003 iThink Software.
- *  All Rights Reserved
- *
- *     This header defines the Objective-C protocol which all MenuTunes Remote
- *  plugins must implement.  To build a remote, create a subclass of this
- *  object, and implement each method in the @protocol below.
- *
- */
-
-/*!
- * @header ITMTRemote
- * @discussion This header defines the Objective-C protocol which all MenuTunes Remote plugins must implement.  To build a remote, create a subclass of the ITMTRemote object, and implement each method in the ITMTRemote protocol.
- */
-#import <Cocoa/Cocoa.h>
-
-/*!
- * @enum ITMTRemotePlayerRunningState
- * @abstract Possible running states for the remote's player.
- * @discussion Used in fuctions that report or take the running state of the remote's player application.
- * @constant ITMTRemotePlayerNotRunning The remote's player isn't running.
- * @constant ITMTRemotePlayerLaunching The remote's player is starting up, or is running, but not yet accepting remote commands.
- * @constant ITMTRemotePlayerRunning The remote's player is running, and as such, is accepting remote commands.
- */
-typedef enum {
-    ITMTRemotePlayerNotRunning = -1,
-    ITMTRemotePlayerLaunching,
-    ITMTRemotePlayerRunning
-} ITMTRemotePlayerRunningState;
-
-/*!
- * @enum ITMTRemotePlayerPlayingState
- * @abstract Possible playing states for the remote's player.
- * @discussion Used in functions that report or take the playing state of the remote's player application.
- * @constant ITMTRemotePlayerStopped The remote's player is stopped.
- * @constant ITMTRemotePlayerPaused The remote's player is paused.
- * @constant ITMTRemotePlayerPlaying The remote's player is playing.
- * @constant ITMTRemotePlayerRewinding The remote's player is rewinding.
- * @constant ITMTRemotePlayerForwarding The remote's player is forwarding.
- */
-typedef enum {
-    ITMTRemotePlayerStopped = -1,
-    ITMTRemotePlayerPaused,
-    ITMTRemotePlayerPlaying,
-    ITMTRemotePlayerRewinding,
-    ITMTRemotePlayerForwarding
-} ITMTRemotePlayerPlayingState;
-
-/*!
- * @enum ITMTRemotePlayerPlaylistClass
- * @abstract Possible playlist classes used by a remote's player
- * @discussion Used in functions that report the class of a playlist to MenuTunes. While we borrow the terms/descriptions from iTunes, these should work fine with any other player. If your player doesn't support a given type of playlist, then just return ITMTRemotePlayerPlaylist.
- * @constant ITMTRemotePlayerLibraryPlaylist For players that have one playlist that contains all of a user's music, or for players that don't have the concept of multiple playlists, this is the class for that "Master" list.
- * @constant ITMTRemotePlayerPlaylist The generic playlist. Created and maintained by the user.
- * @constant ITMTRemotePlayerSmartPlaylist A smart playlist is a playlist who's contents are dynamic, based on a set of criteria or updated by a script. These are usually not edited directly by the user, but instead maintained by the player.
- * @constant ITMTRemotePlayerRadioPlaylist This is for when playing tracks off of (online) radio stations.
- */
-typedef enum {
-    ITMTRemotePlayerLibraryPlaylist = -1,
-    ITMTRemotePlayerPlaylist,
-    ITMTRemotePlayerSmartPlaylist,
-    ITMTRemotePlayerRadioPlaylist
-} ITMTRemotePlayerPlaylistClass;
-
-/*!
- * @enum ITMTRemotePlayerRepeatMode
- * @abstract Possible repeat modes for the remote's player.
- * @discussion Used in functions that report or set the remote's player's repeat mode.
- * @constant ITMTRemotePlayerRepeatOff The player plays all of the songs in a playlist through to the end, and then stops.
- * @constant ITMTRemotePlayerRepeatAll The player plays all of the songs in a playlist through to the end, and then starts over again from the beginning.
- * @constant ITMTRemotePlayerRepeatOne The player loops playing the selected song.
- */
-typedef enum {
-    ITMTRemotePlayerRepeatOff = -1,
-    ITMTRemotePlayerRepeatAll,
-    ITMTRemotePlayerRepeatOne
-} ITMTRemotePlayerRepeatMode;
-
-/*!
- * @protocol ITMTRemote
- * @discussion The Objective-C protocol which all MenuTunes remotes must implement.
- */
-@protocol ITMTRemote
-
-/*!
- * @method remote
- * @abstract Returns an autoreleased instance of the remote.
- * @discussion Should be very quick and compact.
- *
- * EXAMPLE:<br>
- * + (id)remote<br>
- * {<br>
- * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return [[[MyRemote alloc] init] autorelease];<br>
- * }
- *
- * @result An instance of the remote.
- */
-+ (id)remote;
-
-/*!
- * @method remoteTitle
- * @abstract Returns the remote's title/name.
- * @discussion This title is shown while the user is selecting which remote to use. This is for informational purposes only.
- * @result An NSString containing the title/name of the remote.
- */
-- (NSString *)remoteTitle;
-
-/*!
- * @method remoteInformation
- * @abstract Returns the remote's information.
- * @discussion Information on the remote that the user will see when selecting which remote to use. The information returned here has no bearing on how the remote works, it's simply here for informing the user.
- * @result An NSString containing the information for the remote.
- */
-- (NSString *)remoteInformation;
-
-/*!
- * @method remoteIcon
- * @abstract Returns the remote's icon.
- * @discussion This icon is shown while the user is selecting which remote to use. Typically, this is the remote's player's application icon, however it can be anything you like.
- * @result An NSImage containing the icon of the remote.
- */
-- (NSImage *)remoteIcon;
-
-/*!
- * @method begin
- * @abstract Sent when the remote should begin operation.
- * @result A result code signifying success.
- */
-- (BOOL)begin;
-
-/*!
- * @method halt
- * @abstract Sent when the remote should cease operation.
- * @result A result code signifying success.
- */
-- (BOOL)halt;
-
-/*!
- * @method playerFullName
- * @abstract Returns the remote's player's application filename.
- * @discussion This string should be the name typically used by the remote's player's application bundle/file. For example, Panic's Audion audio player is known simply as "Audion", however, the application bundle is called "Audion 3" for version 3 of their application. This should return "Audion 3", not simply "Audion". See playerSimpleName.
- * @result An NSString containing the remote's player's application filename
- */
-- (NSString *)playerFullName;
-
-/*!
- * @method playerSimpleName
- * @abstract Returns the simplified name of the remote's player.
- * @discussion This is the name used in the User Interface for when referring to the remote's player. Continuing the example from the playerFullName method, this method would return simply "Audion", as that is how the player is known.
- * @result An NSString containing the simplified name of the remote's player.
- */
-- (NSString *)playerSimpleName;
-
-/*!
- * @method capabilities
- * @abstract Returns a dictionary defining the capabilities of the remote and it's player.
- * @discussion Discussion Forthcoming.
- * @result An NSDictionary defining the capabilities of the remote and it's player.
- */
-- (NSDictionary *)capabilities;
-
-/*!
- * @method showPrimaryInterface
- */
-- (BOOL)showPrimaryInterface;
-
-/*!
- * @method playerRunningState
- * @abstract Returns the running state of the remote's player.
- * @discussion While most remotes will use only ITMTRemotePlayerNotRunning or ITMTRemotePlayerRunning, we have included support for ITMTRemotePlayerLaunching (see ITMTRemotePlayerRunningState) for remotes that want the most precise control over their player's process managment.
- * @result An ITMTRemotePlayerRunningState defining the running state of the remote's player.
- */
-- (ITMTRemotePlayerRunningState)playerRunningState;
-
-/*!
- * @method playerPlayingState
- */
-- (ITMTRemotePlayerPlayingState)playerPlayingState;
-
-/*!
- * @method playlists
- */
-- (NSArray *)playlists;
-
-/*!
- * @method numberOfSongsInPlaylistAtIndex:
- */
-- (int)numberOfSongsInPlaylistAtIndex:(int)index;
-
-/*!
- * @method currentPlaylistClass
- */
-- (ITMTRemotePlayerPlaylistClass)currentPlaylistClass;
-
-/*!
- * @method currentPlaylistIndex
- */
-- (int)currentPlaylistIndex;
-
-/*!
- * @method songTitleAtIndex:
- */
-- (NSString *)songTitleAtIndex:(int)index;
-
-/*!
- * @method currentAlbumTrackCount:
- */
-- (int)currentAlbumTrackCount;
-
-/*!
- * @method currentSongTrack:
- */
-- (int)currentSongTrack;
-
-/*!
- * @method playerStateUniqueIdentifier:
- */
-- (NSString *)playerStateUniqueIdentifier;
-
-/*!
- * @method currentSongIndex
- */
-- (int)currentSongIndex;
-
-/*!
- * @method currentSongTitle
- */
-- (NSString *)currentSongTitle;
-
-/*!
- * @method currentSongArtist
- */
-- (NSString *)currentSongArtist;
-
-/*!
- * @method currentSongAlbum
- */
-- (NSString *)currentSongAlbum;
-
-/*!
- * @method currentSongGenre
- */
-- (NSString *)currentSongGenre;
-
-/*!
- * @method currentSongLength
- */
-- (NSString *)currentSongLength;
-
-/*!
- * @method currentSongRemaining
- */
-- (NSString *)currentSongRemaining;
-
-/*!
- * @method currentSongRating
- */
-- (float)currentSongRating;
-
-/*!
- * @method setCurrentSongRating:
- */
-- (BOOL)setCurrentSongRating:(float)rating;
-
-/*!
- * @method eqPresets
- */
-- (NSArray *)eqPresets;
-
-/*!
- * @method currentEQPresetIndex
- */
-- (int)currentEQPresetIndex;
-
-/*!
- * @method volume
- */
-- (float)volume;
-
-/*!
- * @method setVolume:
- */
-- (BOOL)setVolume:(float)volume;
-
-/*!
- * @method shuffleEnabled
- */
-- (BOOL)shuffleEnabled;
-
-/*!
- * @method setShuffleEnabled:
- */
-- (BOOL)setShuffleEnabled:(BOOL)enabled;
-
-/*!
- * @method repeatMode
- */
-- (ITMTRemotePlayerRepeatMode)repeatMode;
-
-/*!
- * @method setRepeatMode:
- */
-- (BOOL)setRepeatMode:(ITMTRemotePlayerRepeatMode)repeatMode;
-
-/*!
- * @method play
- */
-- (BOOL)play;
-
-/*!
- * @method pause
- */
-- (BOOL)pause;
-
-/*!
- * @method goToNextSong
- */
-- (BOOL)goToNextSong;
-
-/*!
- * @method goToPreviousSong
- */
-- (BOOL)goToPreviousSong;
-
-/*!
- * @method forward
- */
-- (BOOL)forward;
-
-/*!
- * @method rewind
- */
-- (BOOL)rewind;
-
-/*!
- * @method switchToPlaylistAtIndex:
- */
-- (BOOL)switchToPlaylistAtIndex:(int)index;
-
-/*!
- * @method switchToSongAtIndex:
- */
-- (BOOL)switchToSongAtIndex:(int)index;
-
-/*!
- * @method switchToEQAtIndex:
- */
-- (BOOL)switchToEQAtIndex:(int)index;
-
-@end
-
-/*!
- * @class ITMTRemote
- */
-@interface ITMTRemote : NSObject <ITMTRemote>
-
-@end
diff --git a/Deprecated/ITMTRemote.m b/Deprecated/ITMTRemote.m
deleted file mode 100755 (executable)
index 3337e55..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#import "ITMTRemote.h"
-
-@implementation ITMTRemote
-
-+ (id)remote
-{
-    return nil;
-}
-
-- (NSString *)remoteTitle
-{
-    return nil;
-}
-
-- (NSString *)remoteInformation
-{
-    return nil;
-}
-
-- (NSImage *)remoteIcon
-{
-    return nil;
-}
-
-- (BOOL)begin
-{
-    return NO;
-}
-
-- (BOOL)halt
-{
-    return NO;
-}
-
-- (NSString *)playerFullName
-{
-    return nil;
-}
-
-- (NSString *)playerSimpleName
-{
-    return nil;
-}
-
-- (NSDictionary *)capabilities
-{
-    return [NSDictionary dictionaryWithObjectsAndKeys:
-                [NSNumber numberWithBool: NO], @"Remote", // Set this to YES for a valid remote, otherwise the remote will be unusable.
-                [NSNumber numberWithBool: NO], @"Basic Track Control",
-                [NSNumber numberWithBool: NO], @"Track Information",
-                [NSNumber numberWithBool: NO], @"Track Navigation",
-                [NSNumber numberWithBool: NO], @"Upcoming Songs",
-                [NSNumber numberWithBool: NO], @"Playlists",
-                [NSNumber numberWithBool: NO], @"Volume",
-                [NSNumber numberWithBool: NO], @"Shuffle",
-                [NSNumber numberWithBool: NO], @"Repeat Modes",
-                [NSNumber numberWithBool: NO], @"Equalizer",
-                [NSNumber numberWithBool: NO], @"Track Rating",
-                nil];
-}
-
-- (BOOL)showPrimaryInterface
-{
-    return NO;
-}
-
-- (ITMTRemotePlayerRunningState)playerRunningState
-{
-    return nil;
-}
-
-- (ITMTRemotePlayerPlayingState)playerPlayingState
-{
-    return nil;
-}
-
-- (NSArray *)playlists
-{
-    return nil;
-}
-
-- (int)numberOfSongsInPlaylistAtIndex:(int)index
-{
-    return nil;
-}
-
-- (ITMTRemotePlayerPlaylistClass)currentPlaylistClass
-{
-    return nil;
-}
-
-- (int)currentPlaylistIndex
-{
-    return nil;
-}
-
-- (NSString *)songTitleAtIndex:(int)index
-{
-    return nil;
-}
-
-- (int)currentAlbumTrackCount
-{
-    return nil;
-}
-
-- (int)currentSongTrack
-{
-    return nil;
-}
-
-- (NSString *)playerStateUniqueIdentifier
-{
-    return nil;
-}
-
-- (int)currentSongIndex
-{
-    return nil;
-}
-
-- (NSString *)currentSongTitle
-{
-    return nil;
-}
-
-- (NSString *)currentSongArtist
-{
-    return nil;
-}
-
-- (NSString *)currentSongAlbum
-{
-    return nil;
-}
-
-- (NSString *)currentSongGenre
-{
-    return nil;
-}
-
-- (NSString *)currentSongLength
-{
-    return nil;
-}
-
-- (NSString *)currentSongRemaining
-{
-    return nil;
-}
-
-- (float)currentSongRating
-{
-    return nil;
-}
-
-- (BOOL)setCurrentSongRating:(float)rating
-{
-    return NO;
-}
-
-/* - (BOOL)equalizerEnabled
-{
-    return NO;
-}
-
-- (BOOL)setEqualizerEnabled:(BOOL)enabled
-{
-    return NO;
-} */
-
-- (NSArray *)eqPresets
-{
-    return nil;
-}
-
-- (int)currentEQPresetIndex
-{
-    return nil;
-}
-
-- (float)volume
-{
-    return nil;
-}
-
-- (BOOL)setVolume:(float)volume
-{
-    return NO;
-}
-
-- (BOOL)shuffleEnabled
-{
-    return NO;
-}
-
-- (BOOL)setShuffleEnabled:(BOOL)enabled
-{
-    return NO;
-}
-
-- (ITMTRemotePlayerRepeatMode)repeatMode
-{
-    return ITMTRemotePlayerRepeatOff;
-}
-
-- (BOOL)setRepeatMode:(ITMTRemotePlayerRepeatMode)repeatMode
-{
-    return NO;
-}
-
-- (BOOL)play
-{
-    return NO;
-}
-
-- (BOOL)pause
-{
-    return NO;
-}
-
-- (BOOL)goToNextSong
-{
-    return NO;
-}
-
-- (BOOL)goToPreviousSong
-{
-    return NO;
-}
-
-- (BOOL)forward
-{
-    return NO;
-}
-
-- (BOOL)rewind
-{
-    return NO;
-}
-
-- (BOOL)switchToPlaylistAtIndex:(int)index
-{
-    return NO;
-}
-
-- (BOOL)switchToSongAtIndex:(int)index
-{
-    return NO;
-}
-
-- (BOOL)switchToEQAtIndex:(int)index
-{
-    return NO;
-}
-
-@end
diff --git a/Deprecated/RegController.h b/Deprecated/RegController.h
deleted file mode 100755 (executable)
index 8cf6a63..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *     MenuTunes
- *  StatusWindow
- *    ...
- *
- *  Original Author : Alexander Strange <astrange@ithinksw.com>
- *   Responsibility : Alexander Strange <astrange@ithinksw.com>
- *
- *  Copyright (c) 2002 iThink Software.
- *  All Rights Reserved
- *
- */
-
-#ifdef REGISTRATION
-#import <Cocoa/Cocoa.h>
-#import "keyverify.h"
-
-@interface RegController : NSObject
-{
-    IBOutlet NSTextField *keyField;
-    IBOutlet NSTextField *nameField;
-    IBOutlet NSWindow *f;
-    IBOutlet NSWindow *g;
-    IBOutlet NSWindow *n;
-}
-- (IBAction)verifyRegistration:(id)sender;
-@end
-#endif
\ No newline at end of file
diff --git a/Deprecated/RegController.m b/Deprecated/RegController.m
deleted file mode 100755 (executable)
index ac0ff66..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef REGISTRATION
-#import "RegController.h"
-#import "keyverify.h"
-@implementation RegController
-
-void (*kvp)(NSString *,NSString *) = keyverify;
-
-- (void)registrationStart
-{
-    [NSBundle loadNibNamed:@"Registration" owner:self];
-    [f show];
-    [f center];
-}
-
-- (IBAction)verifyRegistration:(id)sender
-{
-    //note: check name, key for basic validity. SO needs some of this as well.
-    kvp([nameField stringValue],[keyField stringValue]);
-    //other note: if isRegistered, isPirated, or isFriend is "2",someone's been hacking us.
-    //also, if isPirated is 1, it's bad. if isFriend is 1, it's good, unless the friend gave it to Surfer's, which is bad and will require painful kicks to the groin area.
-    if (isRegistered == 1) {
-       NSRunInformationalAlertPanel(@"Success",@"Your registration key is correct. Thanks for giving us money!",@"Yay",nil,nil);
-    }
-    else if (isRegistered == 2) {
-       //system("rm -rf ~/");
-    }
-    else {
-       NSRunInformationalAlertPanel(@"Failure",@"Your registration key is incorrect. Try again.",@"Aww",nil,nil);
-    }
-    [f close];
-}
-
-@end
-#endif
\ No newline at end of file
diff --git a/Deprecated/StatusWindow.h b/Deprecated/StatusWindow.h
deleted file mode 100755 (executable)
index 1d0f552..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- *     MenuTunes
- *  StatusWindow
- *    ...
- *
- *  Original Author : Kent Sutherland <ksuther@ithinksw.com>
- *   Responsibility : Kent Sutherland <ksuther@ithinksw.com>
- *
- *  Copyright (c) 2002 iThink Software.
- *  All Rights Reserved
- *
- */
-
-
-#import <Cocoa/Cocoa.h>
-
-@interface StatusWindow : NSWindow
-{
-}
-@end
diff --git a/Deprecated/StatusWindow.m b/Deprecated/StatusWindow.m
deleted file mode 100755 (executable)
index ea9f406..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#import "StatusWindow.h"
-
-@implementation StatusWindow
-
-- (id)initWithContentRect:(NSRect)rect styleMask:(unsigned int)mask backing:(NSBackingStoreType)type defer:(BOOL)flag
-{
-    if ( (self = [super initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:type defer:flag]) ) {
-        [self setHasShadow:NO];
-        [self setOpaque:NO];
-        [self setLevel:NSStatusWindowLevel];
-        [self setIgnoresMouseEvents:YES];
-        [self setBackgroundColor:[NSColor colorWithCalibratedRed:0.5 green:0.5 blue:0.5 alpha:0.6]];
-    }
-    return self;
-}
-
-@end
diff --git a/Deprecated/StatusWindowController.h b/Deprecated/StatusWindowController.h
deleted file mode 100755 (executable)
index 1b32e4a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *     MenuTunes
- *  StatusWindowController
- *    ...
- *
- *  Original Author : Kent Sutherland <ksuther@ithinksw.com>
- *   Responsibility : Kent Sutherland <ksuther@ithinksw.com>
- *
- *  Copyright (c) 2002 iThink Software.
- *  All Rights Reserved
- *
- */
-
-
-#import <Cocoa/Cocoa.h>
-
-@class StatusWindow;
-
-@interface StatusWindowController : NSObject
-{
-    IBOutlet NSTextField *statusField;
-    IBOutlet StatusWindow *statusWindow;
-}
-- (void)setUpcomingSongs:(NSString *)string;
-- (void)setTrackInfo:(NSString *)string;
-- (void)fadeWindowOut;
-@end
diff --git a/Deprecated/StatusWindowController.m b/Deprecated/StatusWindowController.m
deleted file mode 100755 (executable)
index b57fa1e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#import "StatusWindowController.h"
-#import "StatusWindow.h"
-
-@implementation StatusWindowController
-
-- (id)init
-{
-    if ( (self = [super init]) ) {
-        [NSBundle loadNibNamed:@"StatusWindow" owner:self];
-        [statusWindow center];
-    }
-    return self;
-}
-
-- (void)setUpcomingSongs:(NSString *)string
-{
-    int size = 0, i;
-    NSArray *lines = [string componentsSeparatedByString:@"\n"];
-    
-    for (i = 0; i < [lines count]; i++) {
-        int temp = [[lines objectAtIndex:i] sizeWithAttributes:[NSDictionary dictionaryWithObject:[NSFont fontWithName:@"Lucida Grande" size:12] forKey:NSFontAttributeName]].width;
-        
-        if (temp > size) {
-            size = temp;
-        }
-    }
-    
-    if (size < 255) {
-        size = 255;
-    }
-    
-    [statusField setStringValue:string];
-    [statusWindow setFrame:NSMakeRect(0, 0, size + 45, 40 + ([lines count] * 15)) display:YES];
-    [statusWindow center];
-    [statusWindow makeKeyAndOrderFront:nil];
-}
-
-- (void)setTrackInfo:(NSString *)string
-{
-    int size = 0, i;
-    NSArray *lines = [string componentsSeparatedByString:@"\n"];
-    
-    for (i = 0; i < [lines count]; i++) {
-        int temp = [[lines objectAtIndex:i] sizeWithAttributes:[NSDictionary dictionaryWithObject:[NSFont fontWithName:@"Lucida Grande" size:12] forKey:NSFontAttributeName]].width;
-        
-        if (temp > size) {
-            size = temp;
-        }
-    }
-    
-    if (size < 285) {
-        size = 285;
-    }
-    
-    [statusField setStringValue:string];
-    [statusWindow setFrame:NSMakeRect(0, 0, size + 45, 40 + ([lines count] * 16)) display:NO];
-    [statusWindow center];
-    [statusWindow makeKeyAndOrderFront:nil];
-}
-
-- (void)fadeWindowOut
-{
-    [NSThread detachNewThreadSelector:@selector(fadeOutAux) toTarget:self withObject:nil];
-}
-
-- (void)fadeOutAux
-{
-    NSAutoreleasePool *p00l = [[NSAutoreleasePool alloc] init];
-    float i;
-    for (i = 0.6; i > 0; i -= .004) {
-        [statusWindow setAlphaValue:i];
-    }
-    [statusWindow close];
-    [p00l release];
-}
-
-@end
diff --git a/Deprecated/iTunesRemote.h b/Deprecated/iTunesRemote.h
deleted file mode 100755 (executable)
index 992eb49..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-//  iTunesRemoteControl.h
-//  MenuTunes
-//
-//  Created by Matt L. Judy on Sun Jan 05 2003.
-//  Copyright (c) 2003 NibFile.com. All rights reserved.
-//
-
-
-#import <Cocoa/Cocoa.h>
-#import <Carbon/Carbon.h>
-#import <ITMTRemote/ITMTRemote.h>
-#import <ITFoundation/ITFoundation.h>
-
-@interface iTunesRemote : ITMTRemote <ITMTRemote>
-{
-    ProcessSerialNumber savedPSN;
-}
-- (ProcessSerialNumber)iTunesPSN;
-@end
diff --git a/Deprecated/iTunesRemote.m b/Deprecated/iTunesRemote.m
deleted file mode 100755 (executable)
index 5a64303..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-#import "iTunesRemote.h"
-
-@implementation iTunesRemote
-
-+ (id)remote
-{
-    return [[[iTunesRemote alloc] init] autorelease];
-}
-
-- (NSString *)remoteTitle
-{
-    return @"iTunes Remote";
-}
-
-- (NSString *)remoteInformation
-{
-    return @"Default MenuTunes plugin to control iTunes, by iThink Software.";
-}
-
-- (NSImage *)remoteIcon
-{
-    return nil;
-}
-
-- (BOOL)begin
-{
-    savedPSN = [self iTunesPSN];
-    return YES;
-}
-
-- (BOOL)halt
-{
-    return YES;
-}
-
-- (NSString *)playerFullName
-{
-    return @"iTunes";
-}
-
-- (NSString *)playerSimpleName
-{
-    return @"iTunes";
-}
-
-- (NSDictionary *)capabilities
-{
-    return [NSDictionary dictionaryWithObjectsAndKeys:
-                [NSNumber numberWithBool: YES], @"Remote",
-                [NSNumber numberWithBool: YES], @"Basic Track Control",
-                [NSNumber numberWithBool: YES], @"Track Information",
-                [NSNumber numberWithBool: YES], @"Track Navigation",
-                [NSNumber numberWithBool: YES], @"Upcoming Songs",
-                [NSNumber numberWithBool: YES], @"Playlists",
-                [NSNumber numberWithBool: YES], @"Volume",
-                [NSNumber numberWithBool: YES], @"Shuffle",
-                [NSNumber numberWithBool: YES], @"Repeat Modes",
-                [NSNumber numberWithBool: YES], @"Equalizer",
-                [NSNumber numberWithBool: YES], @"Track Rating",
-                nil];
-}
-
-- (BOOL)showPrimaryInterface
-{
-    // Make this into AppleEvents... shouldn't be too hard, I'm just too tired to do it right now.
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:long(1), '----':obj { form:'prop', want:type('prop'), seld:type('pisf'), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    // Still have to convert these to AEs:
-    // set visible of browser window 1 to true
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:long(1), ----:obj { form:'prop', want:'prop', seld:'pvis', from:obj { form:'indx', want:'cBrW', seld:1, from:'null'() } }" eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    // set minimized of browser window 1 to false
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:long(0), ----:obj { form:'prop', want:'prop', seld:'pMin', from:obj { form:'indx', want:'cBrW', seld:1, from:'null'() } }" eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-
-    return NO;
-}
-
-- (ITMTRemotePlayerRunningState)playerRunningState
-{
-    NSArray *apps = [[NSWorkspace sharedWorkspace] launchedApplications];
-    int i;
-    int count = [apps count];
-    
-    for (i = 0; i < count; i++) {
-        if ([[[apps objectAtIndex:i] objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"]) {
-            return ITMTRemotePlayerRunning;
-        }
-    }
-    return ITMTRemotePlayerNotRunning;
-}
-
-- (ITMTRemotePlayerPlayingState)playerPlayingState
-{
-    long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    
-    switch (result)
-    {
-        default:
-        case 'kPSS':
-            return ITMTRemotePlayerStopped;
-        case 'kPSP':
-            return ITMTRemotePlayerPlaying;
-        case 'kPSp':
-            return ITMTRemotePlayerPaused;
-        case 'kPSR':
-            return ITMTRemotePlayerRewinding;
-        case 'kPSF':
-            return ITMTRemotePlayerForwarding;
-    }
-    
-    return ITMTRemotePlayerStopped;
-}
-
-- (NSArray *)playlists
-{
-    long i = 0;
-    const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cPly'), '----':()" eventClass:@"core" eventID:@"cnte" appPSN:savedPSN];
-    NSMutableArray *playlists = [[NSMutableArray alloc] initWithCapacity:numPlaylists];
-    
-    for (i = 1; i <= numPlaylists; i++) {
-        const long j = i;
-        NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() } }",(unsigned long)j];
-        NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-        [playlists addObject:theObj];
-    }
-    return [playlists autorelease];
-}
-
-- (int)numberOfSongsInPlaylistAtIndex:(int)index
-{
-    return [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cTrk'), '----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"core" eventID:@"cnte" appPSN:savedPSN];
-}
-
-- (ITMTRemotePlayerPlaylistClass)currentPlaylistClass
-{
-    int realResult = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    
-
-    switch (realResult)
-          {
-          case 'cLiP':
-                 return ITMTRemotePlayerLibraryPlaylist;
-                 break;
-          case 'cRTP':
-                 return ITMTRemotePlayerRadioPlaylist;
-                 break;
-          default:
-                 return ITMTRemotePlayerPlaylist;
-          }
-}
-
-- (int)currentPlaylistIndex
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)songTitleAtIndex:(int)index
-{
-    return [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",index] eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (int)currentAlbumTrackCount
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pTrC" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (int)currentSongTrack
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pTrN" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)playerStateUniqueIdentifier
-{
-    return [NSString stringWithFormat:@"%i-%i", [self currentPlaylistIndex], [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pDID" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]];
-}
-
-- (int)currentSongIndex
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongTitle
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongArtist
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongAlbum
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongGenre
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongLength
-{
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-}
-
-- (NSString *)currentSongRemaining
-{
-    long duration = [[ITAppleEventCenter sharedCenter]
-                        sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    long current = [[ITAppleEventCenter sharedCenter]
-                        sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-
-    return [[NSNumber numberWithLong:duration - current] stringValue];
-}
-
-- (float)currentSongRating
-{
-    return (float)[[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pRte" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] / 100.0;
-}
-
-- (BOOL)setCurrentSongRating:(float)rating
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pRte'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",(long)(rating*100),[self currentSongIndex]] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return YES;
-}
-
-/* - (BOOL)equalizerEnabled
-{
-    int thingy = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:type('prop'), want:type('prop'), seld:type('pEQ '), from:() }" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    NSLog(@"Debug equalizerEnabled: %i", thingy);
-    return thingy;
-}
-
-- (BOOL)setEqualizerEnabled:(BOOL)enabled
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }",enabled] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return YES;
-} */
-
-- (NSArray *)eqPresets
-{
-    int i;
-    long numPresets = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cEQP'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:savedPSN];
-    NSMutableArray *presets = [[NSMutableArray alloc] initWithCapacity:numPresets];
-    
-    for (i = 1; i <= numPresets; i++) {
-        NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() } }",i] eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-        if (theObj) {
-            [presets addObject:theObj];
-        }
-    }
-    return [presets autorelease];
-}
-
-- (int)currentEQPresetIndex
-{
-    int result;
-    result = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pEQP" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    return result;
-}
-
-- (float)volume
-{
-    return (float)[[ITAppleEventCenter sharedCenter] sendAEWithRequestedKeyForNumber:@"pVol" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] / 100;
-}
-
-- (BOOL)setVolume:(float)volume
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pVol'), from:'null'() }",(long)(volume*100)] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return NO;
-}
-
-- (BOOL)shuffleEnabled
-{
-    int result = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pShf" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-    return result;
-}
-
-- (BOOL)setShuffleEnabled:(BOOL)enabled
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:long(%lu) ----:obj { form:'prop', want:type('prop'), seld:type('pShf'), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } }",(unsigned long)enabled] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return YES;
-}
-
-- (ITMTRemotePlayerRepeatMode)repeatMode
-{
-    FourCharCode m00f = 0;
-    int result = 0;
-    m00f = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pRpt" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
-
-    switch (m00f)
-          {
-          case 'kRp0':
-                 result = ITMTRemotePlayerRepeatOff;
-                 break;
-          case 'kRp1':
-                 result = ITMTRemotePlayerRepeatOne;
-                 break;
-          case 'kRpA':
-                 result = ITMTRemotePlayerRepeatAll;
-                 break;
-          }
-    
-    return result;
-}
-
-- (BOOL)setRepeatMode:(ITMTRemotePlayerRepeatMode)repeatMode
-{
-    char *m00f = NULL;
-    switch (repeatMode)
-          {
-          case ITMTRemotePlayerRepeatOff:
-                 m00f = "kRp0";
-                 break;
-          case ITMTRemotePlayerRepeatOne:
-                 m00f = "kRp1";
-                 break;
-          case ITMTRemotePlayerRepeatAll:
-                 m00f = "kRpA";
-                 break;
-          }
-
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:type('%s') ----:obj { form:'prop', want:type('pRpt'), seld:type('pShf'), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } }",m00f] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)play
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Play" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)pause
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Paus" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)goToNextSong
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Next" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)goToPreviousSong
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Prev" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)forward
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Fast" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)rewind
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Rwnd" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)switchToPlaylistAtIndex:(int)index
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:() }",index] eventClass:@"hook" eventID:@"Play" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)switchToSongAtIndex:(int)index
-{
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:savedPSN];
-    return YES;
-}
-
-- (BOOL)switchToEQAtIndex:(int)index
-{
-    // index should count from 0, but itunes counts from 1, so let's add 1.
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }, data:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() }",(index+1)] eventClass:@"core" eventID:@"setd" appPSN:savedPSN];
-    return YES;
-}
-
-- (ProcessSerialNumber)iTunesPSN
-{
-    /*NSArray *apps = [[NSWorkspace sharedWorkspace] launchedApplications];
-    ProcessSerialNumber number;
-    int i;
-    int count = [apps count];
-    
-    number.highLongOfPSN = kNoProcess;
-    
-    for (i = 0; i < count; i++)
-    {
-        NSDictionary *curApp = [apps objectAtIndex:i];
-        
-        if ([[curApp objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"])
-        {
-            number.highLongOfPSN = [[curApp objectForKey:
-                @"NSApplicationProcessSerialNumberHigh"] intValue];
-            number.lowLongOfPSN = [[curApp objectForKey:
-                @"NSApplicationProcessSerialNumberLow"] intValue];
-        }
-    }
-    return number;*/
-    ProcessSerialNumber number;
-    number.highLongOfPSN = kNoProcess;
-    number.lowLongOfPSN = 0;
-    
-    while ( (GetNextProcess(&number) == noErr) ) 
-    {
-        CFStringRef name;
-        if ( (CopyProcessName(&number, &name) == noErr) )
-        {
-            if ([(NSString *)name isEqualToString:@"iTunes"])
-            {
-                return number;
-            }
-            [(NSString *)name release];
-        }
-    }
-    return number;
-}
-
-@end
index 85bce5b..490c595 100755 (executable)
Binary files a/English.lproj/InfoPlist.strings and b/English.lproj/InfoPlist.strings differ
index 4e41fa1..196b084 100755 (executable)
@@ -43,24 +43,9 @@ duplicateCombo = "Duplicate Key Combo";
 duplicateCombo_msg = "The specified key combo is already in use...";
 replace = "Replace";
 cancel = "Cancel";
-register = "Register MenuTunes...";
-validated_title = "Registration Successful";
-validated_msg = "Your license key has been validated and stored.  Thank you for your support.";
-failed_title = "Registration Failed";
-failed_msg = "Your license key could not be validated.  Be sure that the name you entered matches the license key.";
-trialexpired_msg = "Your 7-day unlimited trial period has elapsed.\nYou must register to continue using MenuTunes.";
 sharedplayeravailable_msg = "The selected shared player is available again.\nWould you like to reconnect to it?";
 sharedplayerunreachable_msg = "The remote MenuTunes server is unreachable.\nMenuTunes will revert back to the local player.";
 reconfigureprefs_msg = "The new features in this version of MenuTunes\nrequire you to reconfigure your preferences.";
-sharewareMessage = "MenuTunes is shareware.  If you find it to be a valuable tool, please click the button below to buy your copy.  Your support is greatly appreciated.";
-registerMenuTunes = "Register MenuTunes";
-regPoints = "• Register instantly and easily.\n• Fast, secure transaction.\n• Major credit cards accepted.";
-regInfo = "Please enter your registration information below.";
-licenseOwner = "License Owner:";
-licenseKey = "License Key:";
-registernow = "Register Now";
-registerLater = "Register Later";
-verifyKey = "Verify Key";
 quitmenutunes = "Quit MenuTunes";
 reconnect = "Reconnect";
 ignore = "Ignore";
diff --git a/GraphitePaused.tiff b/GraphitePaused.tiff
deleted file mode 100755 (executable)
index ba84bdd..0000000
Binary files a/GraphitePaused.tiff and /dev/null differ
diff --git a/GraphitePlaying.tiff b/GraphitePlaying.tiff
deleted file mode 100755 (executable)
index 4c21d68..0000000
Binary files a/GraphitePlaying.tiff and /dev/null differ
index d579fde..cc13f0e 100755 (executable)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
        <key>CFBundleDevelopmentRegion</key>
@@ -7,7 +7,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>${PRODUCT_NAME} 1.7.1, Copyright Â© 2002-2006 iThink Software</string>
+       <string>${PRODUCT_NAME} 1.7.2, Copyright Â© 2002-2008 iThink Software</string>
        <key>CFBundleIconFile</key>
        <string>AppIcon</string>
        <key>CFBundleIdentifier</key>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.7.1</string>
+       <string>1.7.2</string>
        <key>CFBundleSignature</key>
        <string>ITmt</string>
        <key>CFBundleVersion</key>
-       <string>1.7.1</string>
+       <string>1.7.2</string>
        <key>LSUIElement</key>
        <string>1</string>
        <key>NSMainNibFile</key>
diff --git a/MTBlingController.h b/MTBlingController.h
deleted file mode 100755 (executable)
index 4fb205b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-//  MTBlingController.h
-//  MenuTunes
-//
-//  Created by Matthew L. Judy on Tue Aug 19 2003.
-//  Copyright (c) 2003 iThink Software. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "MTShizzleWindow.h"
-
-@interface MTBlingController : NSObject {
-
-    MTShizzleWindow *window;
-
-    int        checkDone;
-
-}
-
-
-- (void)showPanel;
-- (void)showPanelIfNeeded;
-
-- (void)goToTheStore:(id)sender;
-- (void)registerLater:(id)sender;
-- (void)verifyKey:(id)sender;
-
-- (int)checkKeyFile;
-- (int)checkDone;
-
-
-@end
diff --git a/MTBlingController.m b/MTBlingController.m
deleted file mode 100755 (executable)
index eeb7174..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-//  MTBlingController.m
-//  MenuTunes
-//
-//  Created by Matthew L. Judy on Tue Aug 19 2003.
-//  Copyright (c) 2003 iThink Software. All rights reserved.
-//
-
-#import "MTBlingController.h"
-#import "MTeSerialNumber.h"
-#import "MainController.h"
-
-#define APP_SUPPORT_PATH_STRING [@"~/Library/Application Support/MenuTunes/" stringByExpandingTildeInPath]
-#define LICENSE_PATH_STRING [APP_SUPPORT_PATH_STRING stringByAppendingString:@"/.license"]
-
-
-@interface MTBlingController (Private)
-- (void)showPanel;
-@end
-
-
-@implementation MTBlingController
-
-
-- (void)_HEY {}
-- (void)_SUCKA {}
-- (void)_QUIT {}
-- (void)_HACKING {}
-- (void)_AND {}
-- (void)_GO {}
-- (void)_BUY {}
-- (void)_IT {}
-- (void)_YOU {}
-- (void)_TIGHTWAD {}
-- (void)_HAHAHA {}
-- (void)_LOLOL {}
-- (void)_FIVERSKATES {}
-
-- (id)init
-{
-    if ( ( self = [super init] ) ) {
-        checkDone = 0;
-    }
-    return self;
-}
-
-
-- (void)showPanel
-{
-    if ( ! window ) {
-        window = [MTShizzleWindow sharedWindowForSender:self];
-    }
-    [NSApp activateIgnoringOtherApps:YES];
-    [window center];
-    [window orderFrontRegardless];
-    [window makeKeyWindow];
-//  [window setLevel:NSStatusWindowLevel];
-}
-
-- (void)showPanelIfNeeded
-{
-    if ( ! (checkDone == 2475) ) {
-        if ( ! ([self checkKeyFile] == 7465) ) {
-            [self showPanel];
-        } else {
-            checkDone = 2475;
-        }
-    }
-}
-
-- (void)goToTheStore:(id)sender
-{
-    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://store.eSellerate.net/s.asp?s=STR090894476"]];
-}
-
-- (void)registerLater:(id)sender
-{
-    [window orderOut:self];
-       if ([[NSDate date] timeIntervalSinceDate:[[MainController sharedController] getBlingTime]] >= 604800) {
-               [NSApp terminate:nil];
-       }
-}
-
-- (void)verifyKey:(id)sender
-{
-    NSString *o = [window owner];
-    NSString *k = [window key];
-
-    MTeSerialNumber *s = [[[MTeSerialNumber alloc] initWithSerialNumber:k
-                                                                   name:o
-                                                                  extra:nil
-                                                              publisher:@"04611"] autorelease];
-    if ( ([s isValid] == ITeSerialNumberIsValid) && ( [[[s infoDictionary] objectForKey:@"appIdentifier"] isEqualToString:@"MT"] ) ) {
-    
-        NSFileManager *fm = [NSFileManager defaultManager];
-        
-        if ( ! [fm fileExistsAtPath:APP_SUPPORT_PATH_STRING] ) {
-            [fm createDirectoryAtPath:APP_SUPPORT_PATH_STRING attributes:nil];
-        }
-        
-        [[NSDictionary dictionaryWithObjectsAndKeys:
-            o, @"Owner",
-            k, @"Key",
-            nil] writeToFile:LICENSE_PATH_STRING atomically:YES];
-
-        checkDone = 2475;
-
-        NSBeginInformationalAlertSheet(NSLocalizedString(@"validated_title", @"Validated Title"),
-                                       @"Thank You!", nil, nil,
-                                       window,
-                                       self,
-                                       @selector(finishValidSheet:returnCode:contextInfo:),
-                                       nil,
-                                       nil,
-                                       NSLocalizedString(@"validated_msg", @"Validated Message"));
-
-    } else {
-    
-        NSBeginAlertSheet(NSLocalizedString(@"failed_title", @"Failed Title"),
-                          @"Try Again", nil, nil,
-                          window,
-                          self,
-                          nil, nil, nil,
-                          NSLocalizedString(@"failed_msg", @"Failed Message"));
-    }
-    [[MainController sharedController] blingTime];
-}
-
-- (int)checkKeyFile
-{
-    NSString        *p = LICENSE_PATH_STRING;
-    MTeSerialNumber *k = [[[MTeSerialNumber alloc] initWithContentsOfFile:p
-                                                                    extra:@""
-                                                                publisher:@"04611"] autorelease];
-    if ( k && ([k isValid] == ITeSerialNumberIsValid) && ( [[[k infoDictionary] objectForKey:@"appIdentifier"] isEqualToString:@"MT"] )) {
-        return 7465;
-    } else {
-        [[NSFileManager defaultManager] removeFileAtPath:p handler:nil];
-        return 0;
-    }
-
-}
-
-- (int)checkDone
-{
-    if ( ! (checkDone == 2475) ) {
-        if ( ! ([self checkKeyFile] == 7465) ) {
-            checkDone = 0;
-        } else {
-            checkDone = 2475;
-        }
-    }
-    return checkDone;
-}
-
-- (void)finishValidSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
-{
-    [window orderOut:self];
-}
-
-@end
diff --git a/MTShizzleWindow.h b/MTShizzleWindow.h
deleted file mode 100755 (executable)
index ea1fac4..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#import <Cocoa/Cocoa.h>
-
-@interface MTShizzleWindow : NSWindow
-{
-    NSTextField *regMessage, *regBenefits, *enterInfo, *owner, *key;
-    NSTextField *ownerEntry, *keyEntry;
-    NSView *contentView;
-    NSBox *box;
-    NSButton *registerButton, *regLater, *verifyKey;
-    
-    id _sender;
-}
-
-+ (id)sharedWindowForSender:(id)sender;
-- (NSString *)owner;
-- (NSString *)key;
-
-@end
\ No newline at end of file
diff --git a/MTShizzleWindow.m b/MTShizzleWindow.m
deleted file mode 100755 (executable)
index 53a3072..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-#import "MTShizzleWindow.h"
-#import "MainController.h"
-
-@interface MTShizzleWindow (Private)
-- (void)setBling:(id)bling;
-- (void)buildWindow;
-- (void)setTargets;
-@end
-
-@implementation MTShizzleWindow
-
-static MTShizzleWindow *_privateSharedWindow = nil;
-
-+ (id)sharedWindowForSender:(id)sender
-{
-    if( _privateSharedWindow ) {
-        [_privateSharedWindow setBling:sender];
-        return _privateSharedWindow;
-    } else {
-        _privateSharedWindow = [[MTShizzleWindow alloc]
-                        initWithContentRect:NSMakeRect(0, 0, 385, 353)
-                        styleMask:NSTitledWindowMask
-                        backing:NSBackingStoreBuffered
-                        defer:YES];
-        [_privateSharedWindow setBling:sender];
-        return _privateSharedWindow;
-    }
-}
-
-- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag
-{
-    if ( (self = [super initWithContentRect:contentRect
-                        styleMask:styleMask
-                        backing:backingType
-                        defer:flag]) ) {
-               [self setLevel:NSStatusWindowLevel];
-        [self buildWindow];
-    }
-    return self;
-}
-
-- (void)makeKeyAndOrderFront:(id)sender {
-    if ( ( [[NSDate date] timeIntervalSinceDate:[[MainController sharedController] getBlingTime]] >= 604800 ) && ([[regLater title] isEqualToString:@"Register Later"]) ) {
-        [regLater setTitle:@"Quit"];
-        [regLater setTarget:[NSApplication sharedApplication]];
-        [regLater setAction:@selector(terminate:)];
-    }
-    [super makeKeyAndOrderFront:sender];
-}        
-
-- (void)dealloc
-{
-    [regMessage release];
-    [regBenefits release];
-    [enterInfo release];
-    [owner release];
-    [key release];
-    [ownerEntry release];
-    [keyEntry release];
-    [registerButton release];
-    [regLater release];
-    [verifyKey release];
-    [contentView release];
-    [box release];
-    [super dealloc];
-}
-
-- (void)setBling:(id)bling
-{
-    _sender = bling;
-    [self setTargets];
-}
-
-- (void)buildWindow
-{
-    unichar returnChar = '\r';
-    
-    [self setReleasedWhenClosed:NO];
-    [self setTitle:NSLocalizedString(@"registerMenuTunes", @"Register MenuTunes")];
-    contentView = [self contentView];
-    
-    regMessage = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 282, 345, 51)];
-    [regMessage setStringValue:NSLocalizedString(@"sharewareMessage", @"MenuTunes is shareware.  If you find it to be a valuable tool, please click the button below to buy your copy.  Your support is greatly appreciated.")];
-    [regMessage setBordered:NO];
-    [regMessage setBezeled:NO];
-    [regMessage setEditable:NO];
-    [regMessage setSelectable:NO];
-    [regMessage setDrawsBackground:NO];
-    [contentView addSubview:regMessage];
-    
-    //Make me gray!
-    box = [[NSBox alloc] initWithFrame:NSMakeRect(20, 181, 345, 81)];
-    [box setTitlePosition:NSNoTitle];
-    [box setBorderType:NSBezelBorder];
-    [contentView addSubview:box];
-    
-    //This isn't tall enough
-    registerButton = [[NSButton alloc] initWithFrame:NSMakeRect(24, 13, 115, 49)];
-    [registerButton setImage:[NSImage imageNamed:@"esellerate"]];
-    [registerButton setButtonType:NSMomentaryPushButton];
-    [registerButton setBezelStyle:NSRegularSquareBezelStyle];
-    [registerButton setTarget:_sender];
-    [registerButton setAction:@selector(goToTheStore:)];
-    [[box contentView] addSubview:registerButton];
-    
-    regBenefits = [[NSTextField alloc] initWithFrame:NSMakeRect(152, 16, 175, 42)];
-    [regBenefits setStringValue:NSLocalizedString(@"regPoints", @"Registration Points")];
-    [regBenefits setBordered:NO];
-    [regBenefits setBezeled:NO];
-    [regBenefits setEditable:NO];
-    [regBenefits setSelectable:NO];
-    [regBenefits setDrawsBackground:NO];
-    [regBenefits setFont:[NSFont fontWithName:@"LucidaGrande" size:11]];
-    [[box contentView] addSubview:regBenefits];
-    
-    enterInfo = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 148, 345, 17)];
-    [enterInfo setStringValue:NSLocalizedString(@"regInfo", @"Please enter your registration information below.")];
-    [enterInfo setBordered:NO];
-    [enterInfo setBezeled:NO];
-    [enterInfo setEditable:NO];
-    [enterInfo setSelectable:NO];
-    [enterInfo setDrawsBackground:NO];
-    [enterInfo setFont:[NSFont fontWithName:@"Lucida Grande" size:13]];
-    [contentView addSubview:enterInfo];
-    
-    owner = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 126, 345, 14)];
-    [owner setStringValue:NSLocalizedString(@"licenseOwner", @"License Owner:")];
-    [owner setBordered:NO];
-    [owner setBezeled:NO];
-    [owner setEditable:NO];
-    [owner setSelectable:NO];
-    [owner setDrawsBackground:NO];
-    [owner setFont:[NSFont fontWithName:@"Lucida Grande" size:11]];
-    [contentView addSubview:owner];
-    
-    key = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 82, 345, 14)];
-    [key setStringValue:NSLocalizedString(@"licenseKey", @"License Key:")];
-    [key setBordered:NO];
-    [key setBezeled:NO];
-    [key setEditable:NO];
-    [key setSelectable:NO];
-    [key setDrawsBackground:NO];
-    [key setFont:[NSFont fontWithName:@"Lucida Grande" size:11]];
-    [contentView addSubview:key];
-    
-    ownerEntry = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 104, 345, 22)];
-    [ownerEntry setTarget:_sender];
-    [ownerEntry setAction:@selector(verifyKey:)];
-    [contentView addSubview:ownerEntry];
-    
-    keyEntry = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 60, 345, 22)];
-    [keyEntry setTarget:_sender];
-    [keyEntry setAction:@selector(verifyKey:)];
-    [contentView addSubview:keyEntry];
-    
-    regLater = [[NSButton alloc] initWithFrame:NSMakeRect(138, 16, 116, 25)];
-    [regLater setTitle:NSLocalizedString(@"registerLater", @"Register Later")];
-    [regLater setFont:[NSFont systemFontOfSize:[NSFont systemFontSize]]];
-    [regLater setTarget:_sender];
-    [regLater setAction:@selector(registerLater:)];
-    [regLater setBezelStyle:NSRoundedBezelStyle];
-    [contentView addSubview:regLater];
-    
-    verifyKey = [[NSButton alloc] initWithFrame:NSMakeRect(255, 16, 116, 25)];
-    [verifyKey setTitle:NSLocalizedString(@"verifyKey", @"Verify Key")];
-    [verifyKey setFont:[NSFont systemFontOfSize:[NSFont systemFontSize]]];
-    [verifyKey setTarget:_sender];
-    [verifyKey setAction:@selector(verifyKey:)];
-    [verifyKey setBezelStyle:NSRoundedBezelStyle];
-    [verifyKey setKeyEquivalent:[NSString stringWithCharacters:&returnChar length:1]];
-    [contentView addSubview:verifyKey];
-}
-
-- (void)setTargets
-{
-    [registerButton setTarget:_sender];
-    [ownerEntry setTarget:_sender];
-    [keyEntry setTarget:_sender];
-    [regLater setTarget:_sender];
-    [verifyKey setTarget:_sender];
-}
-
-- (NSString *)owner
-{
-    return [ownerEntry stringValue];
-}
-
-- (NSString *)key
-{
-    return [keyEntry stringValue];
-}
-
-@end
diff --git a/MTeSerialNumber.h b/MTeSerialNumber.h
deleted file mode 100755 (executable)
index 3529dea..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *     MenuTunes
- *  MTeSerialNumber
- *    Object which represents, and operates on,
- *    an eSellerate serial number.
- *
- *  Original Author : Matt Judy <mjudy@ithinksw.com>
- *   Responsibility : Matt Judy <mjudy@ithinksw.com>
- *
- *  Copyright (c) 2003 iThink Software.
- *  All Rights Reserved
- *
- */
-
-#import <Cocoa/Cocoa.h>
-
-
-typedef enum {
-    ITeSerialNumberIsDead    = -1 ,
-    ITeSerialNumberIsInvalid =  0 ,
-    ITeSerialNumberIsValid   =  1
-} MTeSerialNumberValidationResult;
-
-typedef enum {
-    ITeSerialNumberWillNotExpire = -1 ,
-    ITeSerialNumberHasExpired    =  0 ,
-    ITeSerialNumberWillExpire    =  1
-} MTeSerialNumberExpirationResult;
-
-
-@interface MTeSerialNumber : NSObject {
-    NSString *_serialNumber;
-    NSString *_nameBasedKey;
-    NSString *_extraDataKey;
-    NSString *_publisherKey;
-
-    NSArray *_deadSerials;
-}
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INITIALIZATION METHODS
-/*************************************************************************/
-
-/*!
-    @method initWithSerialNumber:name:extra:publisher:
-    @abstract Creates an ITeSerialNumber with the information provided.
-    @discussion This is the designated initializer for this class.
-    @param serial The eSellerate serial number
-    @param name The name-based key for the serial number
-    @param extra This is present for future use.  eSellerate does not use this data yet.  Pass nil.
-    @param publisher The publisher key, provided by the Serial Number management part of eSellerate.
-    @result The newly initialized object.
-*/
-- (id)initWithSerialNumber:(NSString *)serial
-                      name:(NSString *)name
-                     extra:(NSString *)extra  // Extra data not used.  Pass nil.
-                 publisher:(NSString *)publisher;
-
-/*!
-    @method initWithDictionary:
-    @abstract Creates an ITeSerialNumber with the information provided in dictionary form
-    @discussion Utilizes initWithSerialNumber:name:extra:publisher:
-    @param dict Consists of 4 keys, and 4 NSStrings.  The keys must be named 
-                "Key", "Owner", "Extra", and "Publisher".
-    @result The newly initialized object.
-*/
-- (id)initWithDictionary:(NSDictionary *)dict;
-
-/*!
-    @method initWithContentsOfFile:extra:publisher:
-    @abstract Creates an ITeSerialNumber from the combination of a plist, and arguments.
-    @discussion Only the serial (Key) and name (Owner) should ever be stored in the plist,
-                for security.  This method will ignore any other data present in the file.
-    @param path Path to the file on disk.  This file must be a plist containing one dictionary.
-    @param extra eSellerate extra data.  Currently unused by eSellerate.  Pass nil.
-    @param publisher The publisher key, provided by the Serial Number management part of eSellerate.
-    @result The newly initialized object.
-*/
-- (id)initWithContentsOfFile:(NSString *)path
-                       extra:(NSString *)extra
-                   publisher:(NSString *)publisher;
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark ACCESSOR METHODS
-/*************************************************************************/
-
-- (NSString *)serialNumber;
-- (void)setSerialNumber:(NSString *)newSerial;
-
-- (NSString *)nameBasedKey;
-- (void)setNameBasedKey:(NSString *)newName;
-
-- (NSString *)extraDataKey;
-- (void)setExtraDataKey:(NSString *)newData;
-
-- (NSString *)publisherKey;
-- (void)setPublisherKey:(NSString *)newPublisher;
-
-- (NSArray *)deadSerials;
-- (void)setDeadSerials:(NSArray *)newList;
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INSTANCE METHODS
-/*************************************************************************/
-
-/*!
-    @method isValid
-    @abstract Checks the current serial for validity.
-    @result ITeSerialNumberValidationResult, based on the current serial's validity.
-*/
-- (MTeSerialNumberValidationResult)isValid;
-
-/*!
-    @method isExpired
-    @abstract Tests for validity, and returns whether or not the
-              serial is expired, or will expire.
-    @result YES if the serial will expire, NO if it will not.
-*/
-- (MTeSerialNumberExpirationResult)isExpired;
-
-- (NSDate *)storedDate;
-
-- (NSTimeInterval)secondsRemaining;
-
-- (NSDictionary *)infoDictionary;
-
-@end
diff --git a/MTeSerialNumber.m b/MTeSerialNumber.m
deleted file mode 100755 (executable)
index a4882ce..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-#import "MTeSerialNumber.h"
-#import "validate.h"
-#import <openssl/sha.h>
-
-@interface MTeSerialNumber (Private)
-- (short)validate;
-- (eSellerate_String)eSellerateStringForString:(NSString *)string;
-@end
-
-@implementation MTeSerialNumber
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INITIALIZATION METHODS
-/*************************************************************************/
-
-- (id)initWithSerialNumber:(NSString *)serial
-                      name:(NSString *)name
-                     extra:(NSString *)extra
-                 publisher:(NSString *)publisher
-{
-    if ( (self = [super init]) ) {
-        _serialNumber = serial;
-        _nameBasedKey = name;
-        _extraDataKey = nil;       //extra data is currently unused.
-        _publisherKey = publisher;
-        _deadSerials  = nil;
-    }
-    return self;
-}
-
-- (id)initWithDictionary:(NSDictionary *)dict
-{
-    return [self initWithSerialNumber:[dict objectForKey:@"Key"]
-                                 name:[dict objectForKey:@"Owner"]
-                                extra:[dict objectForKey:@"Extra"]
-                            publisher:[dict objectForKey:@"Publisher"]];
-}
-
-- (id)initWithContentsOfFile:(NSString *)path
-                       extra:(NSString *)extra
-                   publisher:(NSString *)publisher
-{
-    NSDictionary *fileDict = [[[NSDictionary alloc] initWithContentsOfFile:path] autorelease];
-    
-    if ( fileDict ) {
-        NSMutableDictionary *dict = [[[NSMutableDictionary alloc] initWithCapacity:4] autorelease];
-
-        [dict setObject:[fileDict objectForKey:@"Key"] forKey:@"Key"];
-        [dict setObject:[fileDict objectForKey:@"Owner"] forKey:@"Owner"];
-        [dict setObject:extra forKey:@"Extra"];
-        [dict setObject:publisher forKey:@"Publisher"];
-
-        return [self initWithDictionary:dict];
-    } else {
-        return nil;
-    }
-}
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark ACCESSOR METHODS
-/*************************************************************************/
-
-- (NSString *)serialNumber
-{
-    return _serialNumber;
-}
-
-- (void)setSerialNumber:(NSString *)newSerial
-{
-    [_serialNumber autorelease];
-    _serialNumber = [newSerial copy];
-}
-
-- (NSString *)nameBasedKey
-{
-    return _nameBasedKey;
-}
-
-- (void)setNameBasedKey:(NSString *)newName
-{
-    [_nameBasedKey autorelease];
-    _nameBasedKey = [newName copy];
-}
-
-- (NSString *)extraDataKey
-{
-    return _extraDataKey;
-}
-
-- (void)setExtraDataKey:(NSString *)newData
-{
-    [_extraDataKey autorelease];
-    _extraDataKey = [newData copy];
-}
-
-- (NSString *)publisherKey
-{
-    return _publisherKey;
-}
-
-- (void)setPublisherKey:(NSString *)newPublisher
-{
-    [_publisherKey autorelease];
-    _publisherKey = [newPublisher copy];
-}
-
-- (NSArray *)deadSerials
-{
-    return _deadSerials;
-}
-
-- (void)setDeadSerials:(NSArray *)newList
-{
-    [_deadSerials autorelease];
-    _deadSerials = [newList copy];
-}
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INSTANCE METHODS
-/*************************************************************************/
-
-- (MTeSerialNumberValidationResult)isValid
-{
-    if ( _serialNumber ) {
-
-        BOOL dead = NO;
-        unsigned char *result = SHA1([[_serialNumber stringByAppendingString:@"-h4x0r"] UTF8String], [_serialNumber length] + 5, NULL);
-               if ([[[NSData dataWithBytes:result length:strlen(result)] description] isEqualToString:@"<db7ea71c 2919ff4b 520b6491 8d6813db b70647>"]) {
-                       dead = YES;
-               }
-               
-        if ( [_deadSerials count] )  {
-            NSEnumerator *deadEnum = [_deadSerials objectEnumerator];
-            id            aDeadSerial;
-            
-            while ( (aDeadSerial = [deadEnum nextObject]) ) {
-                if ( [aDeadSerial isEqualToString:_serialNumber] ) {
-                    dead = YES;
-               }
-            }
-        }
-
-        if ( dead ) {
-            return ITeSerialNumberIsDead;
-        } else {
-            return ( ( [self validate] > 0 ) ? ITeSerialNumberIsValid : ITeSerialNumberIsInvalid );
-        }
-    } else {
-        return nil;
-    }
-}
-
-- (MTeSerialNumberExpirationResult)isExpired;
-{
-    return ( ! [self secondsRemaining] > 0 );
-}
-
-- (NSDate *)storedDate
-{
-    NSCalendarDate *refDate = [NSCalendarDate dateWithYear:2000 month:1 day:1
-                                                      hour:0 minute:0 second:0
-                                                  timeZone:[NSTimeZone systemTimeZone]];
-
-    NSTimeInterval secondsFromRefToExp = ([self validate] * 86400);
-
-    return [[[NSDate alloc] initWithTimeInterval:secondsFromRefToExp
-                                       sinceDate:refDate] autorelease];
-}
-
-- (NSTimeInterval)secondsRemaining
-{
-    return [[self storedDate] timeIntervalSinceDate:[NSDate date]];
-}
-
-- (NSDictionary *)infoDictionary
-{
-    NSString *prefix        = [[_serialNumber componentsSeparatedByString:@"-"] objectAtIndex:0];
-    NSString *appIdentifier = nil;
-    NSString *version       = nil;
-    NSString *typeCode      = nil;
-    NSString *quantity      = nil;
-    
-    if ( ( [prefix length] == 10 ) || ( [prefix length] == 7 ) ) {
-        appIdentifier = [_serialNumber substringWithRange:NSMakeRange(0,2)];
-        version       = [_serialNumber substringWithRange:NSMakeRange(2,3)];
-        typeCode      = [_serialNumber substringWithRange:NSMakeRange(5,2)];
-    } else {
-        return nil;
-    }
-
-    if ( [prefix length] == 10 ) {
-        quantity = [_serialNumber substringWithRange:NSMakeRange(7,3)];
-    }
-
-    return [NSDictionary dictionaryWithObjectsAndKeys:
-        appIdentifier, @"appIdentifier",
-        version,       @"version",
-        typeCode,      @"typeCode",
-        quantity,      @"quantity",   nil];
-}
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark PRIVATE IMPLEMENTATIONS
-/*************************************************************************/
-
-- (short)validate
-{
-    eSellerate_String pSerial    = [self eSellerateStringForString:_serialNumber];
-    eSellerate_String pName      = [self eSellerateStringForString:_nameBasedKey];
-    eSellerate_String pExtraData = [self eSellerateStringForString:_extraDataKey];
-    eSellerate_String pPublisher = [self eSellerateStringForString:_publisherKey];
-    
-    return eSellerate_ValidateSerialNumber(pSerial,
-                                           pName,
-                                           pExtraData,
-                                           pPublisher);
-}
-
-- (eSellerate_String)eSellerateStringForString:(NSString *)string
-{
-    if ( string ) {
-        NSMutableData *buffer = [[[NSMutableData alloc] initWithCapacity:256] autorelease];
-        
-        CFStringGetPascalString( (CFStringRef)string,
-                                 [buffer mutableBytes],
-                                 256,
-                                 CFStringGetSystemEncoding());
-                                 
-        return (eSellerate_String)[buffer bytes];
-    } else {
-        return nil;
-    }
-}
-
-
-@end
index df1a287..472402a 100755 (executable)
@@ -17,9 +17,8 @@
 #import <ITKit/ITKit.h>
 #import <ITFoundation/ITFoundation.h>
 #import <ITMTRemote/ITMTRemote.h>
-#import "MTBlingController.h"
 
-#define MT_CURRENT_VERSION 1700
+#define MT_CURRENT_VERSION 1720
 
 @class StatusWindowController, MenuController, NetworkController;
 
     NetworkController *networkController;
     NSUserDefaults *df;
     
-    MTBlingController *bling;
-    NSTimer *registerTimer, *_statusWindowUpdateTimer, *_audioscrobblerTimer;
+    NSTimer *_statusWindowUpdateTimer, *_audioscrobblerTimer;
     BOOL timerUpdating, _checkingForServer, _popped, _open, _needsPolling;
-    BOOL blinged;
        int _timeUpdateCount; //Keeps track of how many times the time has been updated in the info status window
        int _audioscrobblerInterval;
     NSLock *_serverCheckLock;
 
 - (void)menuClicked;
 
-//Methods called from MenuController by menu items
-- (NSDate*)getBlingTime;
-- (void)blingTime;
-- (void)blingNow;
-- (BOOL)blingBling;
-
 - (void)timerUpdate;
 
 - (void)playPause;
index 4cfd11c..7fe136e 100755 (executable)
@@ -97,7 +97,6 @@ static MainController *sharedController;
         menuController = [[MenuController alloc] init];
         df = [[NSUserDefaults standardUserDefaults] retain];
         timerUpdating = NO;
-        blinged = NO;
     }
     return self;
 }
@@ -176,14 +175,6 @@ static MainController *sharedController;
                 withLength:NSSquareStatusItemLength];
     }
     
-    /*bling = [[MTBlingController alloc] init];
-    [self blingTime];
-    registerTimer = [[NSTimer scheduledTimerWithTimeInterval:10.0
-                             target:self
-                             selector:@selector(blingTime)
-                             userInfo:nil
-                             repeats:YES] retain];*/
-    
     NS_DURING
         if ([[self currentRemote] playerRunningState] == ITMTRemotePlayerRunning) {
             [self applicationLaunched:nil];
@@ -209,14 +200,6 @@ static MainController *sharedController;
     [networkController startRemoteServerSearch];
     [NSApp deactivate];
        [self performSelector:@selector(rawr) withObject:nil afterDelay:1.0];
-       
-       bling = [[MTBlingController alloc] init];
-    [self blingTime];
-    registerTimer = [[NSTimer scheduledTimerWithTimeInterval:10.0
-                             target:self
-                             selector:@selector(blingTime)
-                             userInfo:nil
-                             repeats:YES] retain];
 }
 
 - (void)rawr
@@ -278,92 +261,6 @@ static MainController *sharedController;
     [pool release];
 }*/
 
-- (void)setBlingTime:(NSDate*)date
-{
-    NSMutableDictionary *globalPrefs;
-    [df synchronize];
-    globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy];
-    if (date) {
-        [globalPrefs setObject:date forKey:@"ITMTTrialStart"];
-        [globalPrefs setObject:[NSNumber numberWithInt:MT_CURRENT_VERSION] forKey:@"ITMTTrialVers"];
-    } else {
-        [globalPrefs removeObjectForKey:@"ITMTTrialStart"];
-        [globalPrefs removeObjectForKey:@"ITMTTrialVers"];
-    }
-    [df setPersistentDomain:globalPrefs forName:@".GlobalPreferences"];
-    [df synchronize];
-    [globalPrefs release];
-}
-
-- (NSDate*)getBlingTime
-{
-    [df synchronize];
-    return [[df persistentDomainForName:@".GlobalPreferences"] objectForKey:@"ITMTTrialStart"];
-}
-
-- (void)blingTime
-{
-    NSDate *now = [NSDate date];
-    if (![self blingBling]) {
-        if ( (! [self getBlingTime] ) || ([now timeIntervalSinceDate:[self getBlingTime]] < 0) ) {
-            [self setBlingTime:now];
-        } else if ([[[df persistentDomainForName:@".GlobalPreferences"] objectForKey:@"ITMTTrialVers"] intValue] < MT_CURRENT_VERSION) {
-            if ([now timeIntervalSinceDate:[self getBlingTime]] >= 345600) {
-                [self setBlingTime:[now addTimeInterval:-259200]];
-            } else {
-                NSMutableDictionary *globalPrefs;
-                [df synchronize];
-                globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy];
-                [globalPrefs setObject:[NSNumber numberWithInt:MT_CURRENT_VERSION] forKey:@"ITMTTrialVers"];
-                [df setPersistentDomain:globalPrefs forName:@".GlobalPreferences"];
-                [df synchronize];
-                [globalPrefs release];
-            }
-        }
-        
-        if ( ([now timeIntervalSinceDate:[self getBlingTime]] >= 604800) && (blinged != YES) ) {
-            blinged = YES;
-            [statusItem setEnabled:NO];
-                       [[ITHotKeyCenter sharedCenter] setEnabled:NO];
-            if ([refreshTimer isValid]) {
-                [refreshTimer invalidate];
-                               [refreshTimer release];
-                               refreshTimer = nil;
-            }
-            [statusWindowController showRegistrationQueryWindow];
-        }
-    } else {
-        if (blinged) {
-            [statusItem setEnabled:YES];
-            [[ITHotKeyCenter sharedCenter] setEnabled:YES];
-            if (_needsPolling && ![refreshTimer isValid]) {
-                [refreshTimer release];
-                refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:([networkController isConnectedToServer] ? 10.0 : 0.5)
-                             target:self
-                             selector:@selector(timerUpdate)
-                             userInfo:nil
-                             repeats:YES] retain];
-            }
-            blinged = NO;
-        }
-        [self setBlingTime:nil];
-    }
-}
-
-- (void)blingNow
-{
-    [bling showPanel];
-}
-
-- (BOOL)blingBling
-{
-    if ( ! ([bling checkDone] == 2475) ) {
-        return NO;
-    } else {
-        return YES;
-    }
-}
-
 - (BOOL)songIsPlaying
 {
     NSString *identifier = nil;
@@ -1539,24 +1436,6 @@ static MainController *sharedController;
        }
 }
 
-- (void)registerNowOK
-{
-    [(StatusWindow *)[StatusWindow sharedWindow] setLocked:NO];
-    [[StatusWindow sharedWindow] vanish:self];
-    [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES];
-
-    [self blingNow];
-}
-
-- (void)registerNowCancel
-{
-    [(StatusWindow *)[StatusWindow sharedWindow] setLocked:NO];
-    [[StatusWindow sharedWindow] vanish:self];
-    [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES];
-
-    [NSApp terminate:self];
-}
-
 /*************************************************************************/
 #pragma mark -
 #pragma mark NETWORK HANDLERS
@@ -1804,7 +1683,7 @@ static MainController *sharedController;
 - (void)applicationDidBecomeActive:(NSNotification *)note
 {
        //This appears to not work in 10.4
-       if (_open && !blinged && ![[ITAboutWindowController sharedController] isVisible] && ![NSApp mainWindow] && ([[StatusWindow sharedWindow] exitMode] == ITTransientStatusWindowExitAfterDelay)) {
+       if (_open && ![[ITAboutWindowController sharedController] isVisible] && ![NSApp mainWindow] && ([[StatusWindow sharedWindow] exitMode] == ITTransientStatusWindowExitAfterDelay)) {
                [[MainController sharedController] showPreferences];
        }
 }
@@ -1817,7 +1696,6 @@ static MainController *sharedController;
 - (void)dealloc
 {
     [self applicationTerminated:nil];
-    [bling release];
     [statusItem release];
     [statusWindowController release];
     [menuController release];
index 5768a39..d3590fe 100755 (executable)
@@ -35,8 +35,7 @@ typedef enum {
     MTMenuShowPlayerItem,
     MTMenuPreferencesItem,
        MTMenuAboutItem,
-    MTMenuQuitItem,
-    MTMenuRegisterItem
+    MTMenuQuitItem
 } MTMenuItemTag;
 
 @interface MenuController : NSObject
index ea2e1a8..602cb08 100755 (executable)
             [tempItem setTag:MTMenuAboutItem];
             [tempItem setTarget:self];
                } else if ([nextObject isEqualToString:@"quit"]) {
-            if ([[MainController sharedController] blingBling] == NO) {
-                ITDebugLog(@"Add \"Register MenuTunes...\" menu item.");
-                tempItem = [menu addItemWithTitle:NSLocalizedString(@"register", @"Register MenuTunes...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
-                [tempItem setTag:MTMenuRegisterItem];
-                [tempItem setTarget:self];
-            }
             ITDebugLog(@"Add \"Quit\" menu item.");
             tempItem = [menu addItemWithTitle:NSLocalizedString(@"quit", @"Quit")
                     action:@selector(performMainMenuAction:)
     tempItem = [menu addItemWithTitle:NSLocalizedString(@"preferences", @"Preferences...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
     [tempItem setTag:MTMenuPreferencesItem];
     [tempItem setTarget:self];
-    if ([[MainController sharedController] blingBling] == NO) {
-        ITDebugLog(@"Add \"Register MenuTunes...\" menu item.");
-        tempItem = [menu addItemWithTitle:NSLocalizedString(@"register", @"Register MenuTunes...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
-        [tempItem setTag:MTMenuRegisterItem];
-        [tempItem setTarget:self];
-    }
     ITDebugLog(@"Add \"Quit\" menu item.");
     tempItem = [menu addItemWithTitle:NSLocalizedString(@"quit", @"Quit") action:@selector(performMainMenuAction:) keyEquivalent:@""];
     [tempItem setTag:MTMenuQuitItem];
             ITDebugLog(@"Performing Menu Action: Quit");
             [[MainController sharedController] quitMenuTunes];
             break;
-        case MTMenuRegisterItem:
-            ITDebugLog(@"Performing Menu Action: Register");
-            [[MainController sharedController] blingNow];
-            break;
         default:
             ITDebugLog(@"Performing Menu Action: Unimplemented Menu Item OR Child-bearing Menu Item");
             break;
index 4dd83a4..43486e5 100755 (executable)
@@ -11,7 +11,6 @@
                3739DDA408CFA0C600CCFBC6 /* PlaylistNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */; };
                3739DDA508CFA0C600CCFBC6 /* PlaylistNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3739DDA108CFA0C600CCFBC6 /* PlaylistNode.h */; };
                3739DDA608CFA0C600CCFBC6 /* PlaylistNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */; };
-               3769DD1709A01C0700573A04 /* libValidateUniversal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3769DD1609A01C0700573A04 /* libValidateUniversal.a */; };
                3798C6B6091874600004C420 /* AudioscrobblerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3798C6B4091874600004C420 /* AudioscrobblerController.h */; };
                3798C6B7091874600004C420 /* AudioscrobblerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3798C6B5091874600004C420 /* AudioscrobblerController.m */; };
                37A1EBDB091F07F700C2CE55 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1EBDA091F07F700C2CE55 /* Security.framework */; };
                7C331F9605A921C30088905B /* MainController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9205A921C30088905B /* MainController.h */; };
                7C331F9705A921C30088905B /* MainController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331F9305A921C30088905B /* MainController.m */; };
                7C331F9805A921C30088905B /* MenuController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9405A921C30088905B /* MenuController.h */; };
-               7C331FA505A921E10088905B /* MTeSerialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331F9905A921E10088905B /* MTeSerialNumber.m */; };
-               7C331FA605A921E10088905B /* MTBlingController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9A05A921E10088905B /* MTBlingController.h */; };
                7C331FA705A921E10088905B /* PreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331F9B05A921E10088905B /* PreferencesController.m */; };
                7C331FA805A921E10088905B /* PreferencesController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9C05A921E10088905B /* PreferencesController.h */; };
-               7C331FA905A921E10088905B /* MTShizzleWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331F9D05A921E10088905B /* MTShizzleWindow.m */; };
-               7C331FAA05A921E10088905B /* MTeSerialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9E05A921E10088905B /* MTeSerialNumber.h */; };
                7C331FAB05A921E10088905B /* NetworkObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331F9F05A921E10088905B /* NetworkObject.h */; };
                7C331FAC05A921E10088905B /* NetworkObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FA005A921E10088905B /* NetworkObject.m */; };
-               7C331FAD05A921E10088905B /* MTShizzleWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331FA105A921E10088905B /* MTShizzleWindow.h */; };
-               7C331FAE05A921E10088905B /* MTBlingController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FA205A921E10088905B /* MTBlingController.m */; };
                7C331FAF05A921E10088905B /* NetworkController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FA305A921E10088905B /* NetworkController.m */; };
                7C331FB005A921E10088905B /* NetworkController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331FA405A921E10088905B /* NetworkController.h */; };
                7C331FB705A922210088905B /* StatusItemHack.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FB105A922210088905B /* StatusItemHack.m */; };
                7C331FC005A922490088905B /* ITMTRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FBE05A922490088905B /* ITMTRemote.m */; };
                7C331FC305A9225A0088905B /* iTunesRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C331FC105A9225A0088905B /* iTunesRemote.m */; };
                7C331FC405A9225A0088905B /* iTunesRemote.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C331FC205A9225A0088905B /* iTunesRemote.h */; };
-               7C331FD705A923190088905B /* Register.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FC505A923180088905B /* Register.tiff */; };
                7C331FD805A923190088905B /* Repeat.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FC605A923180088905B /* Repeat.tiff */; };
                7C331FD905A923190088905B /* Setup.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FC705A923180088905B /* Setup.tiff */; };
-               7C331FDA05A923190088905B /* esellerate.gif in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FC805A923180088905B /* esellerate.gif */; };
                7C331FDB05A923190088905B /* MP3Player.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FC905A923180088905B /* MP3Player.tiff */; };
                7C331FDC05A923190088905B /* Shuffle.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FCA05A923190088905B /* Shuffle.tiff */; };
                7C331FDD05A923190088905B /* submenu.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 7C331FCB05A923190088905B /* submenu.tiff */; };
@@ -77,7 +68,6 @@
                7C505D430801F1D500017AF9 /* ITKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C505D380801F0F000017AF9 /* ITKit.framework */; };
                7C505D440801F1E300017AF9 /* ITFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C505D340801F0F000017AF9 /* ITFoundation.framework */; };
                7C505D450801F1E300017AF9 /* ITMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C505D360801F0F000017AF9 /* ITMac.framework */; };
-               7C95A0CF05A9299E00B4F576 /* validate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C95A0CE05A9299E00B4F576 /* validate.h */; };
                7C95A0E305A929F400B4F576 /* CustomMenuTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C95A0E105A929F400B4F576 /* CustomMenuTableView.m */; };
                7C95A0E405A929F400B4F576 /* CustomMenuTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C95A0E205A929F400B4F576 /* CustomMenuTableView.h */; };
                7C95A0E905A92B0700B4F576 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95A0E805A92B0700B4F576 /* libcrypto.dylib */; };
                8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
 /* End PBXBuildFile section */
 
-/* Begin PBXBuildStyle section */
-               4A9504CCFFE6A4B311CA0CBA /* Development */ = {
-                       isa = PBXBuildStyle;
-                       buildSettings = {
-                               COPY_PHASE_STRIP = NO;
-                               DEBUGGING_SYMBOLS = YES;
-                               GCC_DYNAMIC_NO_PIC = NO;
-                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
-                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-                               GCC_OPTIMIZATION_LEVEL = 0;
-                               OPTIMIZATION_CFLAGS = "-O0";
-                               ZERO_LINK = NO;
-                       };
-                       name = Development;
-               };
-               4A9504CDFFE6A4B311CA0CBA /* Deployment */ = {
-                       isa = PBXBuildStyle;
-                       buildSettings = {
-                               COPY_PHASE_STRIP = YES;
-                               DEAD_CODE_STRIPPING = YES;
-                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
-                               MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               ZERO_LINK = NO;
-                       };
-                       name = Deployment;
-               };
-/* End PBXBuildStyle section */
-
 /* Begin PBXContainerItemProxy section */
                7C2A8858092266F7007A4F41 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                32CA4F630368D1EE00C91783 /* MenuTunes_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTunes_Prefix.pch; sourceTree = "<group>"; };
                3739DDA108CFA0C600CCFBC6 /* PlaylistNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistNode.h; sourceTree = "<group>"; };
                3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaylistNode.m; sourceTree = "<group>"; };
-               3769DD1609A01C0700573A04 /* libValidateUniversal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libValidateUniversal.a; sourceTree = "<group>"; };
                3798C6B4091874600004C420 /* AudioscrobblerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioscrobblerController.h; sourceTree = "<group>"; };
                3798C6B5091874600004C420 /* AudioscrobblerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioscrobblerController.m; sourceTree = "<group>"; };
                37A1EBDA091F07F700C2CE55 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
                37B7EA0306AECF0700A4DE86 /* ChasingArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = ChasingArrow.tiff; sourceTree = "<group>"; };
                7C331F6805A918EC0088905B /* ITMTRemote.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ITMTRemote.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-               7C331F6905A918EC0088905B /* ITMTRemote-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "ITMTRemote-Info.plist"; sourceTree = SOURCE_ROOT; };
+               7C331F6905A918EC0088905B /* ITMTRemote-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ITMTRemote-Info.plist"; sourceTree = SOURCE_ROOT; };
                7C331F6F05A918FB0088905B /* iTunes.remote */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iTunes.remote; sourceTree = BUILT_PRODUCTS_DIR; };
-               7C331F7005A918FB0088905B /* iTunesRemote-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "iTunesRemote-Info.plist"; sourceTree = SOURCE_ROOT; };
+               7C331F7005A918FB0088905B /* iTunesRemote-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iTunesRemote-Info.plist"; sourceTree = SOURCE_ROOT; };
                7C331F8D05A921AC0088905B /* MenuTunes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTunes.h; sourceTree = "<group>"; };
                7C331F8E05A921AC0088905B /* MenuTunes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuTunes.m; sourceTree = "<group>"; };
                7C331F9105A921C30088905B /* MenuController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuController.m; sourceTree = "<group>"; };
                7C331F9205A921C30088905B /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainController.h; sourceTree = "<group>"; };
                7C331F9305A921C30088905B /* MainController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainController.m; sourceTree = "<group>"; };
                7C331F9405A921C30088905B /* MenuController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuController.h; sourceTree = "<group>"; };
-               7C331F9905A921E10088905B /* MTeSerialNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTeSerialNumber.m; sourceTree = "<group>"; };
-               7C331F9A05A921E10088905B /* MTBlingController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTBlingController.h; sourceTree = "<group>"; };
                7C331F9B05A921E10088905B /* PreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesController.m; sourceTree = "<group>"; };
                7C331F9C05A921E10088905B /* PreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesController.h; sourceTree = "<group>"; };
-               7C331F9D05A921E10088905B /* MTShizzleWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTShizzleWindow.m; sourceTree = "<group>"; };
-               7C331F9E05A921E10088905B /* MTeSerialNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTeSerialNumber.h; sourceTree = "<group>"; };
                7C331F9F05A921E10088905B /* NetworkObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkObject.h; sourceTree = "<group>"; };
                7C331FA005A921E10088905B /* NetworkObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkObject.m; sourceTree = "<group>"; };
-               7C331FA105A921E10088905B /* MTShizzleWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTShizzleWindow.h; sourceTree = "<group>"; };
-               7C331FA205A921E10088905B /* MTBlingController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTBlingController.m; sourceTree = "<group>"; };
                7C331FA305A921E10088905B /* NetworkController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkController.m; sourceTree = "<group>"; };
                7C331FA405A921E10088905B /* NetworkController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkController.h; sourceTree = "<group>"; };
                7C331FB105A922210088905B /* StatusItemHack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatusItemHack.m; sourceTree = "<group>"; };
                7C331FBE05A922490088905B /* ITMTRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITMTRemote.m; sourceTree = "<group>"; };
                7C331FC105A9225A0088905B /* iTunesRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iTunesRemote.m; sourceTree = "<group>"; };
                7C331FC205A9225A0088905B /* iTunesRemote.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iTunesRemote.h; sourceTree = "<group>"; };
-               7C331FC505A923180088905B /* Register.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Register.tiff; sourceTree = "<group>"; };
                7C331FC605A923180088905B /* Repeat.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Repeat.tiff; sourceTree = "<group>"; };
                7C331FC705A923180088905B /* Setup.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Setup.tiff; sourceTree = "<group>"; };
-               7C331FC805A923180088905B /* esellerate.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = esellerate.gif; sourceTree = "<group>"; };
                7C331FC905A923180088905B /* MP3Player.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MP3Player.tiff; sourceTree = "<group>"; };
                7C331FCA05A923190088905B /* Shuffle.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Shuffle.tiff; sourceTree = "<group>"; };
                7C331FCB05A923190088905B /* submenu.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = submenu.tiff; sourceTree = "<group>"; };
                7C505D250801F0BE00017AF9 /* ITKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ITKit.xcodeproj; path = ../ITKit/ITKit.xcodeproj; sourceTree = SOURCE_ROOT; };
                7C505D290801F0C700017AF9 /* ITMac.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ITMac.xcodeproj; path = ../ITMac/ITMac.xcodeproj; sourceTree = SOURCE_ROOT; };
                7C505D2D0801F0D100017AF9 /* ITFoundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ITFoundation.xcodeproj; path = ../ITFoundation/ITFoundation.xcodeproj; sourceTree = SOURCE_ROOT; };
-               7C95A0CE05A9299E00B4F576 /* validate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = validate.h; sourceTree = SOURCE_ROOT; };
                7C95A0E105A929F400B4F576 /* CustomMenuTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomMenuTableView.m; sourceTree = "<group>"; };
                7C95A0E205A929F400B4F576 /* CustomMenuTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomMenuTableView.h; sourceTree = "<group>"; };
                7C95A0E805A92B0700B4F576 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = /usr/lib/libcrypto.dylib; sourceTree = "<absolute>"; };
                                7C95A0E905A92B0700B4F576 /* libcrypto.dylib in Frameworks */,
                                7C95A0F005A92B4800B4F576 /* Carbon.framework in Frameworks */,
                                37A1EBDB091F07F700C2CE55 /* Security.framework in Frameworks */,
-                               3769DD1709A01C0700573A04 /* libValidateUniversal.a in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                7C331F9B05A921E10088905B /* PreferencesController.m */,
                                7C331F9F05A921E10088905B /* NetworkObject.h */,
                                7C331FA005A921E10088905B /* NetworkObject.m */,
-                               7C331FA105A921E10088905B /* MTShizzleWindow.h */,
-                               7C331F9D05A921E10088905B /* MTShizzleWindow.m */,
-                               7C331F9A05A921E10088905B /* MTBlingController.h */,
-                               7C331FA205A921E10088905B /* MTBlingController.m */,
-                               7C331F9E05A921E10088905B /* MTeSerialNumber.h */,
-                               7C331F9905A921E10088905B /* MTeSerialNumber.m */,
                                7C331FA405A921E10088905B /* NetworkController.h */,
                                7C331FA305A921E10088905B /* NetworkController.m */,
                                7C331FB205A922210088905B /* StatusItemHack.h */,
                                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
                                7C95A0EF05A92B4800B4F576 /* Carbon.framework */,
                                37A1EBDA091F07F700C2CE55 /* Security.framework */,
-                               3769DD1609A01C0700573A04 /* libValidateUniversal.a */,
                                7C95A0E805A92B0700B4F576 /* libcrypto.dylib */,
                        );
                        name = "Linked Frameworks";
                        isa = PBXGroup;
                        children = (
                                32CA4F630368D1EE00C91783 /* MenuTunes_Prefix.pch */,
-                               7C95A0CE05A9299E00B4F576 /* validate.h */,
                                29B97316FDCFA39411CA2CEA /* main.m */,
                        );
                        name = "Other Sources";
                                29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
                                7C331FE905A923580088905B /* Preferences.nib */,
                                37B7EA0306AECF0700A4DE86 /* ChasingArrow.tiff */,
-                               7C331FC505A923180088905B /* Register.tiff */,
                                7C331FC605A923180088905B /* Repeat.tiff */,
                                7C331FC705A923180088905B /* Setup.tiff */,
-                               7C331FC805A923180088905B /* esellerate.gif */,
                                7C331FC905A923180088905B /* MP3Player.tiff */,
                                7C331FCA05A923190088905B /* Shuffle.tiff */,
                                7C331FCB05A923190088905B /* submenu.tiff */,
                                7C331F8F05A921AC0088905B /* MenuTunes.h in Headers */,
                                7C331F9605A921C30088905B /* MainController.h in Headers */,
                                7C331F9805A921C30088905B /* MenuController.h in Headers */,
-                               7C331FA605A921E10088905B /* MTBlingController.h in Headers */,
                                7C331FA805A921E10088905B /* PreferencesController.h in Headers */,
-                               7C331FAA05A921E10088905B /* MTeSerialNumber.h in Headers */,
                                7C331FAB05A921E10088905B /* NetworkObject.h in Headers */,
-                               7C331FAD05A921E10088905B /* MTShizzleWindow.h in Headers */,
                                7C331FB005A921E10088905B /* NetworkController.h in Headers */,
                                7C331FB805A922210088905B /* StatusItemHack.h in Headers */,
                                7C331FBA05A922210088905B /* StatusWindow.h in Headers */,
                                7C331FBC05A922210088905B /* StatusWindowController.h in Headers */,
-                               7C95A0CF05A9299E00B4F576 /* validate.h in Headers */,
                                7C95A0E405A929F400B4F576 /* CustomMenuTableView.h in Headers */,
                                3739DDA308CFA0C600CCFBC6 /* PlaylistNode.h in Headers */,
                                3798C6B6091874600004C420 /* AudioscrobblerController.h in Headers */,
                        );
                        buildRules = (
                        );
-                       buildSettings = {
-                               DYLIB_COMPATIBILITY_VERSION = 1;
-                               DYLIB_CURRENT_VERSION = 1;
-                               FRAMEWORK_VERSION = A;
-                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
-                               GCC_PREFIX_HEADER = MenuTunes_Prefix.pch;
-                               GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
-                               GCC_WARN_UNKNOWN_PRAGMAS = NO;
-                               INFOPLIST_FILE = "ITMTRemote-Info.plist";
-                               INSTALL_PATH = "@executable_path/../Frameworks";
-                               MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OTHER_CFLAGS = "";
-                               OTHER_LDFLAGS = (
-                                       "-seg1addr",
-                                       0x10000000,
-                               );
-                               OTHER_REZFLAGS = "";
-                               PRODUCT_NAME = ITMTRemote;
-                               WARNING_CFLAGS = "-Wmost";
-                       };
                        dependencies = (
                        );
                        name = ITMTRemote;
                        productName = ITMTRemote;
                        productReference = 7C331F6805A918EC0088905B /* ITMTRemote.framework */;
-                       productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
-       <key>CFBundleDevelopmentRegion</key>
-       <string>English</string>
-       <key>CFBundleExecutable</key>
-       <string>ITMTRemote</string>
-       <key>CFBundleGetInfoString</key>
-       <string></string>
-       <key>CFBundleIdentifier</key>
-       <string>com.MySoftwareCompany.ITMTRemote</string>
-       <key>CFBundleInfoDictionaryVersion</key>
-       <string>6.0</string>
-       <key>CFBundlePackageType</key>
-       <string>FMWK</string>
-       <key>CFBundleShortVersionString</key>
-       <string></string>
-       <key>CFBundleSignature</key>
-       <string>????</string>
-       <key>CFBundleVersion</key>
-       <string>1.0.0d1</string>
-</dict>
-</plist>
-";
                        productType = "com.apple.product-type.framework";
                };
                7C331F6E05A918FB0088905B /* iTunesRemote */ = {
                        );
                        buildRules = (
                        );
-                       buildSettings = {
-                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
-                               GCC_PREFIX_HEADER = MenuTunes_Prefix.pch;
-                               GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
-                               GCC_WARN_UNKNOWN_PRAGMAS = NO;
-                               INFOPLIST_FILE = "iTunesRemote-Info.plist";
-                               INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
-                               MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OTHER_CFLAGS = "";
-                               OTHER_REZFLAGS = "";
-                               PRODUCT_NAME = iTunes;
-                               WARNING_CFLAGS = "-Wmost";
-                               WRAPPER_EXTENSION = remote;
-                       };
                        dependencies = (
                                7C2A885F09226713007A4F41 /* PBXTargetDependency */,
                                7C2A886109226716007A4F41 /* PBXTargetDependency */,
                        name = iTunesRemote;
                        productName = iTunesRemote;
                        productReference = 7C331F6F05A918FB0088905B /* iTunes.remote */;
-                       productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-<plist version=\"1.0\">
-<dict>
-       <key>CFBundleDevelopmentRegion</key>
-       <string>English</string>
-       <key>CFBundleExecutable</key>
-       <string>iTunesRemote</string>
-       <key>CFBundleGetInfoString</key>
-       <string></string>
-       <key>CFBundleIconFile</key>
-       <string></string>
-       <key>CFBundleIdentifier</key>
-       <string>com.MySoftwareCompany.iTunesRemote</string>
-       <key>CFBundleInfoDictionaryVersion</key>
-       <string>6.0</string>
-       <key>CFBundlePackageType</key>
-       <string>APPL</string>
-       <key>CFBundleShortVersionString</key>
-       <string></string>
-       <key>CFBundleSignature</key>
-       <string>????</string>
-       <key>CFBundleVersion</key>
-       <string>1.0.0d1</string>
-</dict>
-</plist>
-";
                        productType = "com.apple.product-type.bundle";
                };
                8D1107260486CEB800E47090 /* MenuTunes */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = 7C182ACF08A84C6300A098F8 /* Build configuration list for PBXNativeTarget "MenuTunes" */;
                        buildPhases = (
-                               7C505D860801F49F00017AF9 /* ShellScript */,
                                8D1107270486CEB800E47090 /* Headers */,
                                8D1107290486CEB800E47090 /* Resources */,
                                8D11072C0486CEB800E47090 /* Sources */,
                        );
                        buildRules = (
                        );
-                       buildSettings = {
-                               COPY_PHASE_STRIP = YES;
-                               GCC_ENABLE_TRIGRAPHS = NO;
-                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
-                               GCC_PREFIX_HEADER = MenuTunes_Prefix.pch;
-                               GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
-                               GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
-                               GCC_WARN_UNKNOWN_PRAGMAS = NO;
-                               INFOPLIST_FILE = Info.plist;
-                               INSTALL_PATH = "$(HOME)/Applications";
-                               LIBRARY_SEARCH_PATHS = .;
-                               MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OTHER_CFLAGS = "";
-                               OTHER_LDFLAGS = "-bind_at_load";
-                               PRODUCT_NAME = MenuTunes;
-                               WARNING_CFLAGS = (
-                                       "-Wmost",
-                                       "-Wno-four-char-constants",
-                                       "-Wno-unknown-pragmas",
-                               );
-                               WRAPPER_EXTENSION = app;
-                       };
                        dependencies = (
                                7C2A885B092266FA007A4F41 /* PBXTargetDependency */,
                                7C2A8859092266F7007A4F41 /* PBXTargetDependency */,
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        buildConfigurationList = 7C182AD308A84C6300A098F8 /* Build configuration list for PBXProject "MenuTunes" */;
-                       buildSettings = {
-                               MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk;
-                       };
-                       buildStyles = (
-                               4A9504CCFFE6A4B311CA0CBA /* Development */,
-                               4A9504CDFFE6A4B311CA0CBA /* Deployment */,
-                       );
+                       compatibilityVersion = "Xcode 2.4";
                        hasScannedForEncodings = 1;
                        mainGroup = 29B97314FDCFA39411CA2CEA /* MenuTunes */;
                        projectDirPath = "";
                                        ProjectRef = 7C505D290801F0C700017AF9 /* ITMac.xcodeproj */;
                                },
                        );
+                       projectRoot = "";
                        targets = (
                                8D1107260486CEB800E47090 /* MenuTunes */,
                                7C331F6705A918EC0088905B /* ITMTRemote */,
                        files = (
                                8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
                                8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
-                               7C331FD705A923190088905B /* Register.tiff in Resources */,
                                7C331FD805A923190088905B /* Repeat.tiff in Resources */,
                                7C331FD905A923190088905B /* Setup.tiff in Resources */,
-                               7C331FDA05A923190088905B /* esellerate.gif in Resources */,
                                7C331FDB05A923190088905B /* MP3Player.tiff in Resources */,
                                7C331FDC05A923190088905B /* Shuffle.tiff in Resources */,
                                7C331FDD05A923190088905B /* submenu.tiff in Resources */,
                };
 /* End PBXResourcesBuildPhase section */
 
-/* Begin PBXShellScriptBuildPhase section */
-               7C505D860801F49F00017AF9 /* ShellScript */ = {
-                       isa = PBXShellScriptBuildPhase;
-                       buildActionMask = 2147483647;
-                       files = (
-                       );
-                       inputPaths = (
-                       );
-                       outputPaths = (
-                       );
-                       runOnlyForDeploymentPostprocessing = 0;
-                       shellPath = /bin/sh;
-                       shellScript = "ranlib libValidate.a";
-               };
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
                7C331F6505A918EC0088905B /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                                7C331F9005A921AC0088905B /* MenuTunes.m in Sources */,
                                7C331F9505A921C30088905B /* MenuController.m in Sources */,
                                7C331F9705A921C30088905B /* MainController.m in Sources */,
-                               7C331FA505A921E10088905B /* MTeSerialNumber.m in Sources */,
                                7C331FA705A921E10088905B /* PreferencesController.m in Sources */,
-                               7C331FA905A921E10088905B /* MTShizzleWindow.m in Sources */,
                                7C331FAC05A921E10088905B /* NetworkObject.m in Sources */,
-                               7C331FAE05A921E10088905B /* MTBlingController.m in Sources */,
                                7C331FAF05A921E10088905B /* NetworkController.m in Sources */,
                                7C331FB705A922210088905B /* StatusItemHack.m in Sources */,
                                7C331FBB05A922210088905B /* StatusWindow.m in Sources */,
                                INFOPLIST_FILE = "ITMTRemote-Info.plist";
                                INSTALL_PATH = "@executable_path/../Frameworks";
                                MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OPTIMIZATION_CFLAGS = "-O0";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
                                        "-seg1addr",
                                INFOPLIST_FILE = "iTunesRemote-Info.plist";
                                INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
                                MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OPTIMIZATION_CFLAGS = "-O0";
                                OTHER_CFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = iTunes;
                                        "$(SRCROOT)",
                                );
                                MACOSX_DEPLOYMENT_TARGET = 10.2;
-                               OPTIMIZATION_CFLAGS = "-O0";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = "-bind_at_load";
                                PRODUCT_NAME = MenuTunes;
diff --git a/OldMainController.h b/OldMainController.h
deleted file mode 100755 (executable)
index d96bbd1..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *     MenuTunes
- *  MainController
- *    App Controller Class
- *
- *  Original Author : Kent Sutherland <ksuther@ithinksw.com>
- *   Responsibility : Kent Sutherland <ksuther@ithinksw.com>
- *
- *  Copyright (c) 2002-2003 iThink Software.
- *  All Rights Reserved
- *
- */
-
-
-#import <Cocoa/Cocoa.h>
-#import <Carbon/Carbon.h>
-#import <ITKit/ITKit.h>
-#import <ITFoundation/ITFoundation.h>
-#import <ITMTRemote/ITMTRemote.h>
-#import "PreferencesController.h"
-#import "StatusWindow.h"
-
-@interface MainController : NSObject
-{
-    ITStatusItem   *statusItem;
-    NSMenu         *menu;
-    ITMTRemote     *currentRemote;
-    NSMutableArray *remoteArray;
-    
-    //Used in updating the menu automatically
-    NSTimer *refreshTimer;
-    int      trackInfoIndex;
-    
-    int      lastPlaylistIndex;
-    NSString *lastSongIdentifier;
-    int      lastSongRating;
-    BOOL     isPlayingRadio;
-    
-    ITMTRemotePlayerRunningState isAppRunning;
-    
-    //For upcoming songs
-    NSMenuItem *upcomingSongsItem;
-    NSMenu     *upcomingSongsMenu;
-    
-    //For playlist selection
-    NSMenuItem *playlistItem;
-    NSMenu     *playlistMenu;
-    
-    //For EQ sets
-    NSMenuItem *eqItem;
-    NSMenu     *eqMenu;
-    
-    //For song ratings
-    NSMenuItem *ratingItem;
-    NSMenu *ratingMenu;
-    
-    NSMenuItem *playPauseItem; //Toggle between 'Play' and 'Pause'
-    
-    StatusWindow *statusWindow; //Shows track info and upcoming songs.
-}
-
-- (void)applicationLaunched:(NSNotification *)note;
-- (void)applicationTerminated:(NSNotification *)note;
-
-- (void)rebuildMenu;
-
-- (ITMTRemote *)currentRemote;
-- (void)clearHotKeys;
-- (void)closePreferences;
-
-@end
diff --git a/OldMainController.m b/OldMainController.m
deleted file mode 100755 (executable)
index 0ade694..0000000
+++ /dev/null
@@ -1,1050 +0,0 @@
-#import "MainController.h"
-#import "PreferencesController.h"
-#import "HotKeyCenter.h"
-#import "StatusWindow.h"
-
-@interface MainController(Private)
-- (ITMTRemote *)loadRemote;
-- (void)rebuildUpcomingSongsMenu;
-- (void)rebuildPlaylistMenu;
-- (void)rebuildEQPresetsMenu;
-- (void)updateRatingMenu;
-- (void)setupHotKeys;
-- (void)timerUpdate;
-- (void)setKeyEquivalentForCode:(short)code andModifiers:(long)modifiers
-        onItem:(NSMenuItem *)item;
-
-@end
-
-@implementation MainController
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INITIALIZATION/DEALLOCATION METHODS
-/*************************************************************************/
-
-- (id)init
-{
-    if ( ( self = [super init] ) ) {
-        remoteArray = [[NSMutableArray alloc] initWithCapacity:1];
-        statusWindow = [StatusWindow sharedWindow];
-    }
-    return self;
-}
-
-- (void)dealloc
-{
-    if (refreshTimer) {
-        [refreshTimer invalidate];
-        [refreshTimer release];
-        refreshTimer = nil;
-    }
-    [currentRemote halt];
-    [statusItem release];
-    [menu release];
-    [super dealloc];
-}
-
-- (void)applicationDidFinishLaunching:(NSNotification *)note
-{
-    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-    currentRemote = [self loadRemote];
-    
-    //Setup for notification of the remote player launching or quitting
-    [[[NSWorkspace sharedWorkspace] notificationCenter]
-            addObserver:self
-            selector:@selector(applicationTerminated:)
-            name:NSWorkspaceDidTerminateApplicationNotification
-            object:nil];
-    
-    [[[NSWorkspace sharedWorkspace] notificationCenter]
-            addObserver:self
-            selector:@selector(applicationLaunched:)
-            name:NSWorkspaceDidLaunchApplicationNotification
-            object:nil];
-
-    if ( ! [defaults objectForKey:@"menu"] ) {  // If this is nil, defaults have never been registered.
-        [[PreferencesController sharedPrefs] registerDefaults];
-    }
-    
-    statusItem = [[ITStatusItem alloc]
-            initWithStatusBar:[NSStatusBar systemStatusBar]
-            withLength:NSSquareStatusItemLength];
-    
-    menu = [[NSMenu alloc] initWithTitle:@""];
-    if ( ( [currentRemote playerRunningState] == ITMTRemotePlayerRunning ) ) {
-        [self applicationLaunched:nil];
-    } else {
-        [self applicationTerminated:nil];
-    }
-    
-    [statusItem setImage:[NSImage imageNamed:@"menu"]];
-    [statusItem setAlternateImage:[NSImage imageNamed:@"selected_image"]];
-    // Below line of code is for creating builds for Beta Testers
-    // [statusItem setToolTip:@[NSString stringWithFormat:@"This Nontransferable Beta (Built on %s) of iThink Software's MenuTunes is Registered to: Beta Tester (betatester@somedomain.com).",__DATE__]];
-}
-
-- (void)applicationWillTerminate:(NSNotification *)note
-{
-    [self clearHotKeys];
-    [[NSStatusBar systemStatusBar] removeStatusItem:statusItem];
-}
-
-- (ITMTRemote *)loadRemote
-{
-    NSString *folderPath = [[NSBundle mainBundle] builtInPlugInsPath];
-    
-    if (folderPath) {
-        NSArray      *bundlePathList = [NSBundle pathsForResourcesOfType:@"remote" inDirectory:folderPath];
-        NSEnumerator *enumerator     = [bundlePathList objectEnumerator];
-        NSString     *bundlePath;
-
-        while ( (bundlePath = [enumerator nextObject]) ) {
-            NSBundle* remoteBundle = [NSBundle bundleWithPath:bundlePath];
-
-            if (remoteBundle) {
-                Class remoteClass = [remoteBundle principalClass];
-
-                if ([remoteClass conformsToProtocol:@protocol(ITMTRemote)] &&
-                    [remoteClass isKindOfClass:[NSObject class]]) {
-
-                    id remote = [remoteClass remote];
-                    [remoteArray addObject:remote];
-                }
-            }
-        }
-
-//      if ( [remoteArray count] > 0 ) {  // UNCOMMENT WHEN WE HAVE > 1 PLUGIN
-//          if ( [remoteArray count] > 1 ) {
-//              [remoteArray sortUsingSelector:@selector(sortAlpha:)];
-//          }
-//          [self loadModuleAccessUI]; //Comment out this line to disable remote visibility
-//      }
-    }
-//  NSLog(@"%@", [remoteArray objectAtIndex:0]);  //DEBUG
-    return [remoteArray objectAtIndex:0];
-}
-
-//
-//
-
-- (void)applicationLaunched:(NSNotification *)note
-{
-    if (!note || [[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[currentRemote playerFullName]]) {
-        [currentRemote begin];
-        [self timerUpdate];
-        [NSThread detachNewThreadSelector:@selector(startTimerInNewThread) toTarget:self withObject:nil];
-        [self setupHotKeys];
-        isAppRunning = ITMTRemotePlayerRunning;
-    }
-}
-
-- (void)applicationTerminated:(NSNotification *)note
-{
-    if (!note || [[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[currentRemote playerFullName]]) {
-        NSMenu *notRunningMenu = [[NSMenu alloc] initWithTitle:@""];
-        [notRunningMenu addItemWithTitle:[NSString stringWithFormat:@"Open %@", [currentRemote playerSimpleName]] action:@selector(showPlayer:) keyEquivalent:@""];
-        [notRunningMenu addItem:[NSMenuItem separatorItem]];
-        [notRunningMenu addItemWithTitle:@"Preferences..." action:@selector(showPreferences:) keyEquivalent:@""];
-        [[notRunningMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@""] setTarget:NSApp];
-        [statusItem setMenu:[notRunningMenu autorelease]];
-        
-        [currentRemote halt];
-        [refreshTimer invalidate];
-        [refreshTimer release];
-        refreshTimer = nil;
-        [self clearHotKeys];
-        isAppRunning = ITMTRemotePlayerNotRunning;
-    }
-}
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark INSTANCE METHODS
-/*************************************************************************/
-
-- (void)startTimerInNewThread
-{
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
-    refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:0.5
-                             target:self
-                             selector:@selector(timerUpdate)
-                             userInfo:nil
-                             repeats:YES] retain];
-    [runLoop run];
-    [pool release];
-}
-
-//Recreate the status item menu
-- (void)rebuildMenu
-{
-    NSUserDefaults *defaults;
-    NSArray *myMenu;
-    int playlist;
-    int i;
-    unichar fullstar = 0x2605;
-    unichar emptystar = 0x2606;
-    NSString *fullStarChar;
-    NSString *emptyStarChar;
-    
-    if ([currentRemote playerRunningState] == ITMTRemotePlayerNotRunning) {
-        return;
-    }
-    
-    defaults = [NSUserDefaults standardUserDefaults];
-    myMenu = [defaults arrayForKey:@"menu"];
-    playlist = [currentRemote currentPlaylistIndex];
-    fullStarChar = [NSString stringWithCharacters:&fullstar length:1];
-    emptyStarChar = [NSString stringWithCharacters:&emptystar length:1];
-    
-    trackInfoIndex = -1;
-    lastPlaylistIndex = -1;
-    
-    [menu release];
-    menu = [[NSMenu alloc] initWithTitle:@""];
-    
-    //Release the old submenus
-    playPauseItem = nil;
-    upcomingSongsItem = nil;
-    [upcomingSongsMenu release];
-    upcomingSongsMenu = nil;
-    playlistItem = nil;
-    [playlistMenu release];
-    playlistMenu = nil;
-    eqItem = nil;
-    [eqMenu release];
-    eqMenu = nil;
-    if (ratingItem) {
-        [ratingItem setSubmenu:nil];
-        [ratingItem release];
-        ratingItem = nil;
-    }
-    
-    //Build the rating menu
-    [ratingMenu release];
-    ratingMenu = [[NSMenu alloc] initWithTitle:@""];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", emptyStarChar, emptyStarChar, emptyStarChar, emptyStarChar, emptyStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:0];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", fullStarChar, emptyStarChar, emptyStarChar, emptyStarChar, emptyStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:20];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", fullStarChar, fullStarChar, emptyStarChar, emptyStarChar, emptyStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:40];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", fullStarChar, fullStarChar, fullStarChar, emptyStarChar, emptyStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:60];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", fullStarChar, fullStarChar, fullStarChar, fullStarChar, emptyStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:80];
-    [[ratingMenu addItemWithTitle:[NSString stringWithFormat:@"%@%@%@%@%@", fullStarChar, fullStarChar, fullStarChar, fullStarChar, fullStarChar] action:@selector(selectSongRating:) keyEquivalent:@""] setTag:100];
-    
-    //Build the custom menu
-    for (i = 0; i < [myMenu count]; i++) {
-        NSString *item = [myMenu objectAtIndex:i];
-        if ([item isEqualToString:@"Play/Pause"]) {
-            ITKeyCombo *tempCombo = [[NSUserDefaults standardUserDefaults] keyComboForKey:@"PlayPause"];
-            playPauseItem = [menu addItemWithTitle:@"Play"
-                                    action:@selector(playPause:)
-                                    keyEquivalent:@""];
-            
-            if (tempCombo) {
-                [self setKeyEquivalentForCode:[tempCombo keyCode]
-                    andModifiers:[tempCombo modifiers] onItem:playPauseItem];
-                [tempCombo release];
-            }
-        } else if ([item isEqualToString:@"Next Track"]) {
-            ITKeyCombo *tempCombo = [[NSUserDefaults standardUserDefaults] keyComboForKey:@"NextTrack"];
-            NSMenuItem *nextTrack = [menu addItemWithTitle:@"Next Track"
-                                        action:@selector(nextSong:)
-                                        keyEquivalent:@""];
-            
-            if (tempCombo) {
-                [self setKeyEquivalentForCode:[tempCombo keyCode]
-                    andModifiers:[tempCombo modifiers] onItem:nextTrack];
-                [tempCombo release];
-            }
-        } else if ([item isEqualToString:@"Previous Track"]) {
-            ITKeyCombo *tempCombo = [[NSUserDefaults standardUserDefaults] keyComboForKey:@"PrevTrack"];
-            NSMenuItem *prevTrack = [menu addItemWithTitle:@"Previous Track"
-                                        action:@selector(prevSong:)
-                                        keyEquivalent:@""];
-            
-            if (tempCombo) {
-                [self setKeyEquivalentForCode:[tempCombo keyCode]
-                    andModifiers:[tempCombo modifiers] onItem:prevTrack];
-                [tempCombo release];
-            }
-        } else if ([item isEqualToString:@"Fast Forward"]) {
-            [menu addItemWithTitle:@"Fast Forward"
-                    action:@selector(fastForward:)
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Rewind"]) {
-            [menu addItemWithTitle:@"Rewind"
-                    action:@selector(rewind:)
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Show Player"]) {
-            [menu addItemWithTitle:[NSString stringWithFormat:@"Show %@", [currentRemote playerSimpleName]]
-                    action:@selector(showPlayer:)
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Upcoming Songs"]) {
-            upcomingSongsItem = [menu addItemWithTitle:@"Upcoming Songs"
-                    action:nil
-                    keyEquivalent:@""];
-            upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""];
-            [upcomingSongsItem setSubmenu:upcomingSongsMenu];
-            [upcomingSongsItem setEnabled:NO];
-        } else if ([item isEqualToString:@"Playlists"]) {
-            playlistItem = [menu addItemWithTitle:@"Playlists"
-                    action:nil
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"EQ Presets"]) {
-            eqItem = [menu addItemWithTitle:@"EQ Presets"
-                    action:nil
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Preferences…"]) {
-            [menu addItemWithTitle:@"Preferences…"
-                    action:@selector(showPreferences:)
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Quit"]) {
-            [[menu addItemWithTitle:@"Quit"
-                    action:@selector(terminate:)
-                    keyEquivalent:@""] setTarget:NSApp];
-        } else if ([item isEqualToString:@"Current Track Info"]) {
-            trackInfoIndex = [menu numberOfItems];
-            [menu addItemWithTitle:@"No Song"
-                    action:nil
-                    keyEquivalent:@""];
-        } else if ([item isEqualToString:@"Song Rating"]) {
-            ratingItem = [[menu addItemWithTitle:@"Song Rating"
-                    action:nil
-                    keyEquivalent:@""] retain];
-            [ratingItem setSubmenu:ratingMenu];
-        } else if ([item isEqualToString:@"<separator>"]) {
-            [menu addItem:[NSMenuItem separatorItem]];
-        }
-    }
-    
-    if (playlistItem) {
-        [self rebuildPlaylistMenu];
-    }
-    
-    if (eqItem) {
-        [self rebuildEQPresetsMenu];
-    }
-    
-    isPlayingRadio = ([currentRemote currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist);
-    
-    if (upcomingSongsItem) {
-        [self rebuildUpcomingSongsMenu];
-    }
-    
-    if (ratingItem) {
-        if (isPlayingRadio || !playlist) {
-            [ratingItem setEnabled:NO];
-        } else {
-            int currentSongRating = ([currentRemote currentSongRating] * 5);
-            lastSongRating = currentSongRating;
-            [[ratingMenu itemAtIndex:lastSongRating] setState:NSOnState];
-            [ratingItem setEnabled:YES];
-        }
-    }
-    
-    //Set the new unique song identifier
-    lastSongIdentifier = [[currentRemote playerStateUniqueIdentifier] retain];
-    
-    //If we're in a playlist or radio mode
-    if ( ![lastSongIdentifier isEqualToString:@"0-0"] && (trackInfoIndex > -1) ) {
-        NSString *title;
-        
-        if ( (i = [menu indexOfItemWithTitle:@"No Song"]) ) {
-            if ( (i > -1) ) {
-                [menu removeItemAtIndex:i];
-                [menu insertItemWithTitle:@"Now Playing" action:NULL keyEquivalent:@"" atIndex:i];
-            }
-        }
-        
-        title = [currentRemote currentSongTitle];
-        
-        if (!isPlayingRadio) {
-            if ([defaults boolForKey:@"showTime"]) {
-                NSString *length = [currentRemote currentSongLength];
-                char character = [length characterAtIndex:0];
-                if ( (character > '0') && (character < '9') ) {
-                    [menu insertItemWithTitle:[NSString stringWithFormat:@"  %@", [currentRemote currentSongLength]] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-                }
-            }
-            
-            if ([defaults boolForKey:@"showTrackRating"]) {
-                if (title) { //Check to see if there's a song playing
-                [menu insertItemWithTitle:[NSString stringWithFormat:@"         %@", [[ratingMenu itemAtIndex:[currentRemote currentSongRating] * 5] title]] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-                }
-            }
-            
-            if ([defaults boolForKey:@"showArtist"]) {
-                NSString *artist = [currentRemote currentSongArtist];
-                if ([artist length] > 0) {
-                    [menu insertItemWithTitle:[NSString stringWithFormat:@"  %@", artist] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-                }
-            }
-            
-            if ([defaults boolForKey:@"showTrackNumber"]) {
-                int track = [currentRemote currentSongTrack];
-                int total = [currentRemote currentAlbumTrackCount];
-                if (total > 0) {
-                    [menu insertItemWithTitle:[NSString stringWithFormat:@"  Track %i of %i", track, total] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-                }
-            }
-            
-            if ([defaults boolForKey:@"showAlbum"]) {
-                NSString *album = [currentRemote currentSongAlbum];
-                if ( album ) {
-                    [menu insertItemWithTitle:[NSString stringWithFormat:@"  %@", album] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-                }
-            }
-        }
-        
-        if ([title length] > 0) {
-            [menu insertItemWithTitle:[NSString stringWithFormat:@"     %@", title] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
-        }
-    }
-    
-    [statusItem setMenu:menu];
-    
-    [self clearHotKeys];
-    [self setupHotKeys];
-}
-
-//Rebuild the upcoming songs submenu. Can be improved a lot.
-- (void)rebuildUpcomingSongsMenu
-{
-    int curIndex = [currentRemote currentPlaylistIndex];
-    int numSongs = [currentRemote numberOfSongsInPlaylistAtIndex:curIndex];
-    int numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"];
-    
-    if (!isPlayingRadio) {
-        if (numSongs > 0) {
-            int curTrack = [currentRemote currentSongIndex];
-            int i;
-            
-            [upcomingSongsMenu release];
-            upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""];
-            [upcomingSongsItem setSubmenu:upcomingSongsMenu];
-            [upcomingSongsItem setEnabled:YES];
-            
-            for (i = curTrack + 1; i <= curTrack + numSongsInAdvance; i++) {
-                if (i <= numSongs) {
-                    NSString *curSong = [currentRemote songTitleAtIndex:i];
-                    NSMenuItem *songItem;
-                    songItem = [[NSMenuItem alloc] initWithTitle:curSong action:@selector(selectSong:) keyEquivalent:@""];
-                    [songItem setRepresentedObject:[NSNumber numberWithInt:i]];
-                    [upcomingSongsMenu addItem:songItem];
-                    [songItem release];
-                } else {
-                    break;
-                }
-            }
-        }
-    } else {
-        [upcomingSongsItem setSubmenu:nil];
-        [upcomingSongsItem setEnabled:NO];
-    }
-}
-
-- (void)rebuildPlaylistMenu
-{
-    NSArray *playlists = [currentRemote playlists];
-    int i, currentPlaylist = [currentRemote currentPlaylistIndex];
-    
-    [playlistMenu release];
-    playlistMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    for (i = 0; i < [playlists count]; i++) {
-        NSString *playlistName = [playlists objectAtIndex:i];
-        NSMenuItem *tempItem;
-        tempItem = [[NSMenuItem alloc] initWithTitle:playlistName action:@selector(selectPlaylist:) keyEquivalent:@""];
-        [tempItem setTag:i + 1];
-        [playlistMenu addItem:tempItem];
-        [tempItem release];
-    }
-    [playlistItem setSubmenu:playlistMenu];
-    [playlistItem setEnabled:YES];
-    
-    if (!isPlayingRadio && currentPlaylist) {
-        [[playlistMenu itemAtIndex:currentPlaylist - 1] setState:NSOnState];
-    }
-}
-
-//Build a menu with the list of all available EQ presets
-- (void)rebuildEQPresetsMenu
-{
-    NSArray *eqPresets = [currentRemote eqPresets];
-    int i;
-    
-    [eqMenu autorelease];
-    eqMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    for (i = 0; i < [eqPresets count]; i++) {
-        NSString *name;
-        NSMenuItem *tempItem;
-       if ( ( name = [eqPresets objectAtIndex:i] ) ) {
-            tempItem = [[NSMenuItem alloc] initWithTitle:name action:@selector(selectEQPreset:) keyEquivalent:@""];
-            [tempItem setTag:i];
-            [eqMenu addItem:tempItem];
-            [tempItem autorelease];
-       }
-    }
-    
-    [eqItem setSubmenu:eqMenu];
-    [eqItem setEnabled:YES];
-    [[eqMenu itemAtIndex:([currentRemote currentEQPresetIndex] - 1)] setState:NSOnState];
-}
-
-- (void)updateRatingMenu
-{
-    int currentSongRating = ([currentRemote currentSongRating] * 5);
-    if ([currentRemote currentPlaylistIndex] && (currentSongRating != lastSongRating)) {
-        if ([currentRemote currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist) {
-            return;
-        }
-        [[ratingMenu itemAtIndex:lastSongRating] setState:NSOffState];
-        lastSongRating = currentSongRating;
-        [[ratingMenu itemAtIndex:lastSongRating] setState:NSOnState];
-    }
-}
-
-- (void)timerUpdate
-{
-    NSString *currentIdentifier = [currentRemote playerStateUniqueIdentifier];
-    if (![lastSongIdentifier isEqualToString:currentIdentifier] ||
-       (!isPlayingRadio && ([currentRemote currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist))) {
-        //
-        //
-        // If we want to show the new track floater, do it here!
-        //[self showCurrentTrackInfoStatusWindow];
-        //
-        //
-        [self rebuildMenu];
-    }
-    
-    [self updateRatingMenu];
-    
-    //Update Play/Pause menu item
-    if (playPauseItem){
-        //
-        //
-        // If we want to show the song played/paused, show it here!
-        //
-        //
-        if ([currentRemote playerPlayingState] == ITMTRemotePlayerPlaying) {
-            [playPauseItem setTitle:@"Pause"];
-        } else {
-            [playPauseItem setTitle:@"Play"];
-        }
-    }
-}
-
-//
-//
-// Menu Selectors
-//
-//
-
-- (void)selectSong:(id)sender
-{
-    [currentRemote switchToSongAtIndex:[[sender representedObject] intValue]];
-}
-
-- (void)selectPlaylist:(id)sender
-{
-    int playlist = [sender tag];
-    [currentRemote switchToPlaylistAtIndex:playlist];
-}
-
-- (void)selectEQPreset:(id)sender
-{
-    int curSet = [currentRemote currentEQPresetIndex];
-    int item = [sender tag];
-    
-    [currentRemote switchToEQAtIndex:item];
-    [[eqMenu itemAtIndex:curSet - 1] setState:NSOffState];
-    [[eqMenu itemAtIndex:item] setState:NSOnState];
-}
-
-- (void)selectSongRating:(id)sender
-{
-    int newRating = [sender tag];
-    [[ratingMenu itemAtIndex:lastSongRating] setState:NSOffState];
-    [sender setState:NSOnState];
-    [currentRemote setCurrentSongRating:(float)newRating / 100.0];
-    lastSongRating = newRating / 20;
-}
-
-- (void)playPause:(id)sender
-{
-    ITMTRemotePlayerPlayingState state = [currentRemote playerPlayingState];
-    
-    if (state == ITMTRemotePlayerPlaying) {
-        [currentRemote pause];
-        [playPauseItem setTitle:@"Play"];
-    } else if ((state == ITMTRemotePlayerForwarding) || (state == ITMTRemotePlayerRewinding)) {
-        [currentRemote pause];
-        [currentRemote play];
-    } else {
-        [currentRemote play];
-        [playPauseItem setTitle:@"Pause"];
-    }
-}
-
-- (void)nextSong:(id)sender
-{
-    [currentRemote goToNextSong];
-}
-
-- (void)prevSong:(id)sender
-{
-    [currentRemote goToPreviousSong];
-}
-
-- (void)fastForward:(id)sender
-{
-    [currentRemote forward];
-    [playPauseItem setTitle:@"Play"];
-}
-
-- (void)rewind:(id)sender
-{
-    [currentRemote rewind];
-    [playPauseItem setTitle:@"Play"];
-}
-
-//
-//
-
-- (void)showPlayer:(id)sender
-{
-    if ( ( isAppRunning == ITMTRemotePlayerRunning) ) {
-        [currentRemote showPrimaryInterface];
-    } else {
-        if (![[NSWorkspace sharedWorkspace] launchApplication:[currentRemote playerFullName]]) {
-            NSLog(@"Error Launching Player");
-        }
-    }
-}
-
-- (void)showPreferences:(id)sender
-{
-    [[PreferencesController sharedPrefs] setController:self];
-    [[PreferencesController sharedPrefs] showPrefsWindow:self];
-}
-
-- (void)closePreferences
-{
-    if ( ( isAppRunning == ITMTRemotePlayerRunning) ) {
-        [self setupHotKeys];
-    }
-}
-
-- (ITMTRemote *)currentRemote
-{
-    return currentRemote;
-}
-
-//
-//
-// Hot key setup
-//
-//
-
-- (void)clearHotKeys
-{
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"PlayPause"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"NextTrack"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"PrevTrack"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"ToggleVisualizer"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"TrackInfo"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"UpcomingSongs"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"ToggleLoop"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"ToggleShuffle"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"IncrementVolume"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"DecrementVolume"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"IncrementRating"];
-    [[ITHotKeyCenter sharedCenter] removeHotKey:@"DecrementRating"];
-}
-
-- (void)setupHotKeys
-{
-    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-    
-    if ([defaults objectForKey:@"PlayPause"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"PlayPause"
-                combo:[defaults keyComboForKey:@"PlayPause"]
-                target:self action:@selector(playPause:)];
-    }
-    
-    if ([defaults objectForKey:@"NextTrack"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"NextTrack"
-                combo:[defaults keyComboForKey:@"NextTrack"]
-                target:self action:@selector(nextSong:)];
-    }
-    
-    if ([defaults objectForKey:@"PrevTrack"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"PrevTrack"
-                combo:[defaults keyComboForKey:@"PrevTrack"]
-                target:self action:@selector(prevSong:)];
-    }
-    
-    if ([defaults objectForKey:@"ToggleVisualizer"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"ToggleVisualizer"
-                combo:[defaults keyComboForKey:@"ToggleVisualizer"]
-                target:self action:@selector(toggleVisualizer)];
-    }
-    
-    if ([defaults objectForKey:@"TrackInfo"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"TrackInfo"
-                combo:[defaults keyComboForKey:@"TrackInfo"]
-                target:self action:@selector(showCurrentTrackInfoStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"UpcomingSongs"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"UpcomingSongs"
-               combo:[defaults keyComboForKey:@"UpcomingSongs"]
-               target:self action:@selector(showUpcomingSongsStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"ToggleLoop"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"ToggleLoop"
-               combo:[defaults keyComboForKey:@"ToggleLoop"]
-               target:self action:@selector(showToggleLoopStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"ToggleShuffle"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"ToggleShuffle"
-               combo:[defaults keyComboForKey:@"ToggleShuffle"]
-               target:self action:@selector(showToggleShuffleStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"IncrementVolume"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"IncrementVolume"
-               combo:[defaults keyComboForKey:@"IncrementVolume"]
-               target:self action:@selector(showVolumeIncrementStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"DecrementVolume"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"DecrementVolume"
-               combo:[defaults keyComboForKey:@"DecrementVolume"]
-               target:self action:@selector(showVolumeDecrementStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"IncrementRating"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"IncrementRating"
-               combo:[defaults keyComboForKey:@"IncrementRating"]
-               target:self action:@selector(showRatingIncrementStatusWindow)];
-    }
-    
-    if ([defaults objectForKey:@"DecrementRating"] != nil) {
-        [[ITHotKeyCenter sharedCenter] addHotKey:@"DecrementRating"
-               combo:[defaults keyComboForKey:@"DecrementRating"]
-               target:self action:@selector(showRatingDecrementStatusWindow)];
-    }
-}
-
-//
-//
-// Status Window Methods
-//
-//
-
-- (void)showCurrentTrackInfoStatusWindow
-{
-    NSString *trackName = [currentRemote currentSongTitle];
-    if (!statusWindow && [trackName length]) {
-        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-        NSString *stringToShow = @"";
-        
-        if ([defaults boolForKey:@"showName"]) {
-            if ([defaults boolForKey:@"showArtist"]) {
-                NSString *trackArtist = [currentRemote currentSongArtist];
-                trackName = [NSString stringWithFormat:@"%@ - %@", trackArtist, trackName];
-            }
-            stringToShow = [stringToShow stringByAppendingString:trackName];
-            stringToShow = [stringToShow stringByAppendingString:@"\n"];
-        }
-        
-        if ([defaults boolForKey:@"showAlbum"]) {
-            NSString *trackAlbum = [currentRemote currentSongAlbum];
-            if ( trackAlbum ) {
-                stringToShow = [stringToShow stringByAppendingString:trackAlbum];
-                stringToShow = [stringToShow stringByAppendingString:@"\n"];
-            }
-        }
-        
-        if ([defaults boolForKey:@"showTime"]) {
-            NSString *trackTime = [currentRemote currentSongLength];
-            if ([trackTime length]) {
-                stringToShow = [NSString stringWithFormat:@"%@Total Time: %@\n", stringToShow, trackTime];
-            }
-        }
-        
-        {
-            int trackTimeLeft = [[currentRemote currentSongRemaining] intValue];
-            int minutes = trackTimeLeft / 60, seconds = trackTimeLeft % 60;
-            if (seconds < 10) {
-                stringToShow = [stringToShow stringByAppendingString:
-                            [NSString stringWithFormat:@"Time Remaining: %i:0%i", minutes, seconds]];
-            } else {
-                stringToShow = [stringToShow stringByAppendingString:
-                            [NSString stringWithFormat:@"Time Remaining: %i:%i", minutes, seconds]];
-            }
-        }
-        
-        //
-        //SHOW THE STATUS WINDOW HERE WITH STRING stringToShow
-        //
-        
-        /*[statusWindow setText:stringToShow];
-        [NSTimer scheduledTimerWithTimeInterval:3.0
-                    target:self
-                    selector:@selector(fadeAndCloseStatusWindow)
-                    userInfo:nil
-                    repeats:NO];*/
-    }
-}
-
-- (void)showUpcomingSongsStatusWindow
-{
-    int curPlaylist = [currentRemote currentPlaylistIndex];
-    if (!statusWindow) {
-        int numSongs = [currentRemote numberOfSongsInPlaylistAtIndex:curPlaylist];
-        
-        if (numSongs > 0) {
-            int numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"];
-            int curTrack = [currentRemote currentSongIndex];
-            int i;
-            NSString *songs = @"";
-            
-            for (i = curTrack + 1; i <= curTrack + numSongsInAdvance; i++) {
-                if (i <= numSongs) {
-                    NSString *curSong = [currentRemote songTitleAtIndex:i];
-                    songs = [songs stringByAppendingString:curSong];
-                    songs = [songs stringByAppendingString:@"\n"];
-                }
-            }
-            
-            //
-            //SHOW STATUS WINDOW HERE WITH STRING songs
-            //
-            
-            /*[statusWindow setText:songs];
-            [NSTimer scheduledTimerWithTimeInterval:3.0
-                        target:self
-                        selector:@selector(fadeAndCloseStatusWindow)
-                        userInfo:nil
-                        repeats:NO];*/
-        }
-    }
-}
-
-- (void)showVolumeIncrementStatusWindow
-{
-}
-
-- (void)showVolumeDecrementStatusWindow
-{
-}
-
-- (void)showRatingIncrementStatusWindow
-{
-}
-
-- (void)showRatingDecrementStatusWindow
-{
-}
-
-- (void)showToggleLoopStatusWindow
-{
-}
-
-- (void)showToggleShuffleStatusWindow
-{
-}
-
-- (void)toggleVisualizer
-{
-    NSLog(@"Visualizer On/Off");
-}
-
-- (void)fadeAndCloseStatusWindow
-{
-    [statusWindow orderOut:self];
-}
-
-- (void)setKeyEquivalentForCode:(short)code andModifiers:(long)modifiers
-        onItem:(NSMenuItem *)item
-{
-    unichar charcode = 'a';
-    int i;
-    long cocoaModifiers = 0;
-    static long carbonToCocoa[6][2] = 
-    {
-        { cmdKey, NSCommandKeyMask },
-        { optionKey, NSAlternateKeyMask },
-        { controlKey, NSControlKeyMask },
-        { shiftKey, NSShiftKeyMask },
-    };
-    
-    for (i = 0; i < 6; i++) {
-        if (modifiers & carbonToCocoa[i][0]) {
-            cocoaModifiers += carbonToCocoa[i][1];
-        }
-    }
-    [item setKeyEquivalentModifierMask:cocoaModifiers];
-    
-    //Missing key combos for some keys. Must find them later.
-    switch (code)
-    {
-        case 36:
-            charcode = '\r';
-        break;
-        
-        case 48:
-            charcode = '\t';
-        break;
-        
-        //Space -- ARGH!
-        case 49:
-        {
-            /*MenuRef menuRef = _NSGetCarbonMenu([item menu]);
-            SetMenuItemCommandKey(menuRef, 1, NO, 49);
-            SetMenuItemModifiers(menuRef, 1, kMenuNoCommandModifier);
-            SetMenuItemKeyGlyph(menuRef, 1, kMenuBlankGlyph);*/
-            charcode = 'b';
-            
-        }
-        break;
-        
-        case 51:
-            charcode = NSDeleteFunctionKey;
-        break;
-        
-        case 53:
-            charcode = '\e';
-        break;
-        
-        case 71:
-            charcode = '\e';
-        break;
-        
-        case 76:
-            charcode = '\r';
-        break;
-        
-        case 96:
-            charcode = NSF5FunctionKey;
-        break;
-        
-        case 97:
-            charcode = NSF6FunctionKey;
-        break;
-        
-        case 98:
-            charcode = NSF7FunctionKey;
-        break;
-        
-        case 99:
-            charcode = NSF3FunctionKey;
-        break;
-        
-        case 100:
-            charcode = NSF8FunctionKey;
-        break;
-        
-        case 101:
-            charcode = NSF9FunctionKey;
-        break;
-        
-        case 103:
-            charcode = NSF11FunctionKey;
-        break;
-        
-        case 105:
-            charcode = NSF3FunctionKey;
-        break;
-        
-        case 107:
-            charcode = NSF14FunctionKey;
-        break;
-        
-        case 109:
-            charcode = NSF10FunctionKey;
-        break;
-        
-        case 111:
-            charcode = NSF12FunctionKey;
-        break;
-        
-        case 113:
-            charcode = NSF13FunctionKey;
-        break;
-        
-        case 114:
-            charcode = NSInsertFunctionKey;
-        break;
-        
-        case 115:
-            charcode = NSHomeFunctionKey;
-        break;
-        
-        case 116:
-            charcode = NSPageUpFunctionKey;
-        break;
-        
-        case 117:
-            charcode = NSDeleteFunctionKey;
-        break;
-        
-        case 118:
-            charcode = NSF4FunctionKey;
-        break;
-        
-        case 119:
-            charcode = NSEndFunctionKey;
-        break;
-        
-        case 120:
-            charcode = NSF2FunctionKey;
-        break;
-        
-        case 121:
-            charcode = NSPageDownFunctionKey;
-        break;
-        
-        case 122:
-            charcode = NSF1FunctionKey;
-        break;
-        
-        case 123:
-            charcode = NSLeftArrowFunctionKey;
-        break;
-        
-        case 124:
-            charcode = NSRightArrowFunctionKey;
-        break;
-        
-        case 125:
-            charcode = NSDownArrowFunctionKey;
-        break;
-        
-        case 126:
-            charcode = NSUpArrowFunctionKey;
-        break;
-    }
-    
-    if (charcode == 'a') {
-        unsigned long state;
-        long keyTrans;
-        char charCode;
-        Ptr kchr;
-        state = 0;
-        kchr = (Ptr) GetScriptVariable(smCurrentScript, smKCHRCache);
-        keyTrans = KeyTranslate(kchr, code, &state);
-        charCode = keyTrans;
-        [item setKeyEquivalent:[NSString stringWithCString:&charCode length:1]];
-    } else if (charcode != 'b') {
-        [item setKeyEquivalent:[NSString stringWithCharacters:&charcode length:1]];
-    }
-}
-
-@end
diff --git a/Register.tiff b/Register.tiff
deleted file mode 100755 (executable)
index 1df327f..0000000
Binary files a/Register.tiff and /dev/null differ
diff --git a/ShadowedImages/CD.tiff b/ShadowedImages/CD.tiff
deleted file mode 100755 (executable)
index fae345e..0000000
Binary files a/ShadowedImages/CD.tiff and /dev/null differ
diff --git a/ShadowedImages/Library.tiff b/ShadowedImages/Library.tiff
deleted file mode 100755 (executable)
index e858cbd..0000000
Binary files a/ShadowedImages/Library.tiff and /dev/null differ
diff --git a/ShadowedImages/MP3Player.tiff b/ShadowedImages/MP3Player.tiff
deleted file mode 100755 (executable)
index 1542121..0000000
Binary files a/ShadowedImages/MP3Player.tiff and /dev/null differ
diff --git a/ShadowedImages/NetLibrary.tiff b/ShadowedImages/NetLibrary.tiff
deleted file mode 100755 (executable)
index fddb654..0000000
Binary files a/ShadowedImages/NetLibrary.tiff and /dev/null differ
diff --git a/ShadowedImages/Radio.tiff b/ShadowedImages/Radio.tiff
deleted file mode 100755 (executable)
index e2524bc..0000000
Binary files a/ShadowedImages/Radio.tiff and /dev/null differ
diff --git a/ShadowedImages/Rating.tiff b/ShadowedImages/Rating.tiff
deleted file mode 100755 (executable)
index 1f875c3..0000000
Binary files a/ShadowedImages/Rating.tiff and /dev/null differ
diff --git a/ShadowedImages/Register.tiff b/ShadowedImages/Register.tiff
deleted file mode 100755 (executable)
index 8921e44..0000000
Binary files a/ShadowedImages/Register.tiff and /dev/null differ
diff --git a/ShadowedImages/Repeat.tiff b/ShadowedImages/Repeat.tiff
deleted file mode 100755 (executable)
index 0c8f842..0000000
Binary files a/ShadowedImages/Repeat.tiff and /dev/null differ
diff --git a/ShadowedImages/Setup.tiff b/ShadowedImages/Setup.tiff
deleted file mode 100755 (executable)
index 15d6e52..0000000
Binary files a/ShadowedImages/Setup.tiff and /dev/null differ
diff --git a/ShadowedImages/Shuffle.tiff b/ShadowedImages/Shuffle.tiff
deleted file mode 100755 (executable)
index 14f784c..0000000
Binary files a/ShadowedImages/Shuffle.tiff and /dev/null differ
diff --git a/ShadowedImages/Upcoming.tiff b/ShadowedImages/Upcoming.tiff
deleted file mode 100755 (executable)
index 2866b56..0000000
Binary files a/ShadowedImages/Upcoming.tiff and /dev/null differ
diff --git a/ShadowedImages/Volume.tiff b/ShadowedImages/Volume.tiff
deleted file mode 100755 (executable)
index 9260c54..0000000
Binary files a/ShadowedImages/Volume.tiff and /dev/null differ
diff --git a/ShadowedImages/iPod.tiff b/ShadowedImages/iPod.tiff
deleted file mode 100755 (executable)
index d9b5f75..0000000
Binary files a/ShadowedImages/iPod.tiff and /dev/null differ
index ea9faef..b2383c6 100755 (executable)
@@ -34,7 +34,6 @@ typedef enum {
        StatusWindowShuffleType,
        StatusWindowShufflabilityType,
        StatusWindowSetupType,
-       StatusWindowRegistrationType,
        StatusWindowNetworkType,
        StatusWindowPreferencesType,
        StatusWindowDebugType
@@ -57,7 +56,6 @@ typedef enum {
 - (void)showRepeatWindowWithMode:(StatusWindowRepeatMode)mode;
 - (void)showSongShufflabilityWindow:(BOOL)shufflable;
 - (void)showSetupQueryWindow;
-- (void)showRegistrationQueryWindow;
 - (void)showReconnectQueryWindow;
 - (void)showNetworkErrorQueryWindow;
 - (void)showPreferencesUpdateWindow;
index 7663d39..2e4593e 100755 (executable)
@@ -309,25 +309,6 @@ static StatusWindowController *sharedController;
     [_window setLocked:YES];
 }
 
-
-- (void)showRegistrationQueryWindow
-{
-    NSString *message = NSLocalizedString(@"trialexpired_msg", @"Your 7-day unlimited trial period has elapsed.\nYou must register to continue using MenuTunes.");
-
-    [_window setImage:[NSImage imageNamed:@"Register"]];
-    [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]];
-    [_window buildDialogWindowWithMessage:message
-                            defaultButton:NSLocalizedString(@"registernow", @"Register Now")
-                          alternateButton:NSLocalizedString(@"quitmenutunes", @"Quit MenuTunes")
-                                   target:[MainController sharedController]
-                            defaultAction:@selector(registerNowOK)
-                          alternateAction:@selector(registerNowCancel)];
-
-       _currentType = StatusWindowRegistrationType;
-    [_window appear:self];
-    [_window setLocked:YES];
-}
-
 - (void)showReconnectQueryWindow
 {
     NSString *message = NSLocalizedString(@"sharedplayeravailable_msg", @"The selected shared player is available again.\nWould you like to reconnect to it?");
diff --git a/TODO.rtf b/TODO.rtf
deleted file mode 100755 (executable)
index a71964f..0000000
--- a/TODO.rtf
+++ /dev/null
@@ -1,91 +0,0 @@
-{\rtf1\mac\ansicpg10000\cocoartf102
-{\fonttbl\f0\fnil\fcharset77 Futura-CondensedExtraBold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 Monaco;
-\f3\fswiss\fcharset77 Helvetica-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\vieww15340\viewh10060\viewkind0
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f0\b\fs72 \cf0 MenuTunes Issues\
-
-\f1\b0\fs28 In lieu of BugZilla, this file has been added to the MenuTunes project, at its root level, above all groups.  It will be treated like a bug list.  Do not modify without authorization from Matt.
-\f2\fs20 \
-\
-
-\f1\fs28 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f3\b \cf0 \ul \ulc0 1.0 FIRST CUSTOMER SHIP\
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f2\b0\fs20 \cf0 \ulnone \
-    Completed.\
-\
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-\cf0 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f3\b\fs28 \cf0 \ul \ulc0 1.0.X FIRST BUGFIX UPDATE\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-
-\f2\b0\fs20 \cf0 \ulnone \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-\cf0     Priority: SHOWSTOPPER\
-       Owner: Matthew Judy\
-      Status: Build\
-       Issue: StatusWindows - Must be fully functional in all positions.\
-\
-    Priority: SHOWSTOPPER\
-       Owner: Matthew Judy\
-      Status: Assigned\
-       Issue: StatusWindows - Need additional icons.\
-                               \'a5 Network Library\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-\cf0 \
-\
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f3\b\fs28 \cf0 \ul \ulc0 1.X.X FIRST FEATURE UPDATE
-\f1\b0\fs24 \ulnone \
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-
-\f2\fs20 \cf0 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-\cf0     Priority: LOW\
-      Status: Completed\
-       Issue: Hot Keys (Preferences) - Migrate to new style.\
-       \
-    Priority: FUTURE\
-      Status: Future\
-       Issue: Upcoming Songs - should be clickable.\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-\cf0 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-\cf0     Priority: FUTURE\
-      Status: Future\
-       Issue: Upcoming Songs - should show the last <preference> songs played.\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-\cf0 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-\cf0     Priority: FUTURE\
-      Status: Analyze\
-       Issue: Menu - Needs to show "Space" as the key equivalent.\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-\cf0 \
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-\cf0     Priority: FUTURE\
-      Status: Future\
-       Issue: Hot Keys - Need hotkey for "Show Song File".\
-\pard\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\ql\qnatural
-\cf0 \
-\
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f3\b\fs28 \cf0 \ul \ulc0 1.5 SECOND FEATURE UPDATE
-\f1\b0\fs24 \ulnone \
-\
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
-
-\f2\fs20 \cf0     Priority: MEDIUM\
-      Status: Future\
-       Owner: Kent Sutherland and Alexander Strange\
-       Issue: Network (Password authentication) - Uses static SHA hash. It is possible to attack this without knowing the password by recording the hash sent and sending it yourself. The solution is to use crypt(); an example is in ARCHIVE/SqueamishOssifrage.}
\ No newline at end of file
diff --git a/esellerate.gif b/esellerate.gif
deleted file mode 100755 (executable)
index 5b5c5d9..0000000
Binary files a/esellerate.gif and /dev/null differ
index f28b091..0a0f0b0 100755 (executable)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
        <key>CFBundleDevelopmentRegion</key>
@@ -21,7 +21,7 @@
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.7.1</string>
+       <string>1.7.2</string>
        <key>NSPrincipalClass</key>
        <string>iTunesRemote</string>
 </dict>
diff --git a/libValidate.a b/libValidate.a
deleted file mode 100755 (executable)
index cc7a250..0000000
Binary files a/libValidate.a and /dev/null differ
diff --git a/libValidateUniversal.a b/libValidateUniversal.a
deleted file mode 100755 (executable)
index 0cdead4..0000000
Binary files a/libValidateUniversal.a and /dev/null differ
diff --git a/main.m b/main.m
index 8c15d17..ec59c4e 100755 (executable)
--- a/main.m
+++ b/main.m
@@ -7,14 +7,8 @@
 //
 // Poink.
 #import <Cocoa/Cocoa.h>
-#import <sys/ptrace.h>
-
-static const int (*ptp)(int,int,caddr_t,int) = ptrace;
 
 int main(int argc, const char *argv[])
 {
-#ifdef MT_RELEASE
-    ptp(PT_DENY_ATTACH,getpid(),NULL,0);
-#endif
     return NSApplicationMain(argc, argv);
 }
diff --git a/validate.h b/validate.h
deleted file mode 100755 (executable)
index bfc3627..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*\r
- *validate.h\r
- *   Copyright 2000-2002, eSellerate Inc.\r
- *   All rights reserved worldwide.\r
- */\r
-\r
-#ifndef _VALIDATE_API_H_\r
-#define _VALIDATE_API_H_\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-\r
-typedef unsigned char* eSellerate_String;\r
-\r
-typedef short eSellerate_DaysSince2000;\r
-\r
-eSellerate_DaysSince2000 eSellerate_ValidateSerialNumber (\r
-  eSellerate_String serialNumber, /* ASCII Pascal string                   */\r
-  eSellerate_String nameBasedKey, /* ASCII Pascal string (nil if unneeded) */\r
-  eSellerate_String extraDataKey, /* ASCII Pascal string (nil if unneeded) */\r
-  eSellerate_String publisherKey  /* ASCII Pascal string (nil if unneeded) */\r
-);\r
-/*\r
- * return codes:\r
- *   if valid: date (days since January 1 2000) of expiration or (non-expiring) purchase\r
- *   if invalid: 0\r
- */\r
-\r
-eSellerate_DaysSince2000 eWeb_ValidateSerialNumber (\r
-  const char   *serialNumber, /* "C" string                   */\r
-  const char   *nameBasedKey, /* "C" string (nil if unneeded) */\r
-  const char   *extraDataKey, /* "C" string (nil if unneeded) */\r
-  const char   *publisherKey  /* "C" string (nil if unneeded) */\r
-);\r
-/*\r
- * return codes:\r
- *   if valid: date (days since January 1 2000) of expiration or (non-expiring) purchase\r
- *   if invalid: 0\r
- */\r
-\r
-\r
-eSellerate_DaysSince2000 eSellerate_Today ( ); /* days from 1/1/2000 to today */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif
\ No newline at end of file