Added stuff for current song rating. Right now in the submenu there are
authorKent Sutherland <ksuther@ithinksw.com>
Thu, 6 Mar 2003 20:29:16 +0000 (20:29 +0000)
committerKent Sutherland <ksuther@ithinksw.com>
Thu, 6 Mar 2003 20:29:16 +0000 (20:29 +0000)
x's and o's because stars don't want to show up. Empty song rating
methods added to the plugin.

ITMTRemote.h
ITMTRemote.m
MenuTunes.m
PreferencesController.m
iTunesRemote.m

index c757cdd..b20eaee 100755 (executable)
@@ -103,6 +103,9 @@ typedef enum {
 - (NSString *)currentSongLength;
 - (NSString *)currentSongRemaining;
 
+- (int)currentSongRating;
+- (BOOL)setCurrentSongRating:(int)rating;
+
 - (NSArray *)eqPresets;
 - (int)currentEQPresetIndex;
 
index 8653e5f..7b6742c 100755 (executable)
     return nil;
 }
 
+- (int)currentSongRating
+{
+    return 0;
+}
+
+- (BOOL)setCurrentSongRating:(int)rating
+{
+    return NO;
+}
+
 - (NSArray *)eqPresets;
 {
     return nil;
index be4dcbf..7c5e543 100755 (executable)
@@ -67,7 +67,6 @@ Things to do:
     [statusItem setMenu:menu];
     // 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__]];
-    [statusWindow orderFront:self]; //DEBUG
 }
 
 - (ITMTRemote *)loadRemote
@@ -130,6 +129,7 @@ Things to do:
                 @"<separator>",
                 @"Upcoming Songs",
                 @"Playlists",
+                @"Song Rating",
                 @"<separator>",
                 @"PreferencesÉ",
                 @"Quit",
@@ -288,6 +288,32 @@ Things to do:
             [menu addItemWithTitle:@"No Song"
                     action:nil
                     keyEquivalent:@""];
+        } else if ([item isEqualToString:@"Song Rating"]) {
+            NSMenu *ratingSubmenu = [[NSMenu alloc] initWithTitle:@""];
+            unichar whiteStar = 'o';//2606;
+            unichar blackStar = 'x';//2605;
+            NSString *whiteStarString = [NSString stringWithCharacters:&whiteStar
+                                            length:1];
+            NSString *blackStarString = [NSString stringWithCharacters:&blackStar
+                                            length:1];
+            NSString *string = @"";
+            int i;
+            
+            for (i = 0; i < 5; i++) {
+                string = [string stringByAppendingString:whiteStarString];
+            }
+            for (i = 0; i < 6; i++) {
+                NSMenuItem *ratingItem;
+                ratingItem = [ratingSubmenu addItemWithTitle:string action:@selector(setSongRating:) keyEquivalent:@""];
+                [ratingItem setTarget:self];
+                [ratingItem setTag:i * 20];
+                string = [string substringToIndex:4];
+                string = [blackStarString stringByAppendingString:string];
+            }
+            [[menu addItemWithTitle:@"Song Rating"
+                    action:nil
+                    keyEquivalent:@""] setSubmenu:ratingSubmenu];
+            [ratingSubmenu autorelease];
         } else if ([item isEqualToString:@"<separator>"]) {
             [menu addItem:[NSMenuItem separatorItem]];
         }
@@ -741,6 +767,11 @@ Things to do:
     [playPauseMenuItem setTitle:@"Play"];
 }
 
+- (void)setSongRating:(id)sender
+{
+    //[currentRemote setCurrentSongRating:[sender tag]];
+}
+
 //
 //
 // Plugin independent selectors
index 4e5a84f..8acaab7 100755 (executable)
@@ -32,7 +32,7 @@
         [allTableView registerForDraggedTypes:[NSArray arrayWithObjects:@"MenuTableViewPboardType", @"AllTableViewPboardType", nil]];
         
         //Set the list of items you can have.
-        availableItems = [[NSMutableArray alloc] initWithObjects:@"Current Track Info",  @"Upcoming Songs", @"Playlists", @"EQ Presets", @"Play/Pause", @"Next Track", @"Previous Track", @"Fast Forward", @"Rewind", @"<separator>", nil];
+        availableItems = [[NSMutableArray alloc] initWithObjects:@"Current Track Info",  @"Upcoming Songs", @"Playlists", @"EQ Presets", @"Song Rating", @"Play/Pause", @"Next Track", @"Previous Track", @"Fast Forward", @"Rewind", @"<separator>", nil];
         
         //Get our preferred menu
         myItems = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"menu"] mutableCopy];
@@ -47,7 +47,7 @@
         }
         
         //Items that show should a submenu image
-        submenuItems = [[NSArray alloc] initWithObjects:@"Upcoming Songs", @"Playlists", @"EQ Presets", nil];
+        submenuItems = [[NSArray alloc] initWithObjects:@"Upcoming Songs", @"Playlists", @"EQ Presets", @"Song Rating", nil];
         
         //Fill in the number of songs in advance to show field
         [songsInAdvance setIntValue:[defaults integerForKey:@"SongsInAdvance"]];
index b06c989..a66105f 100755 (executable)
     return [[NSNumber numberWithLong:duration - current] stringValue];
 }
 
+- (int)currentSongRating
+{
+    return 0;
+}
+
+- (BOOL)setCurrentSongRating:(int)rating
+{
+    return NO;
+}
+
 - (NSArray *)eqPresets;
 {
     int i;
 - (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:iTunesPSN];
-    return NO;
+    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:iTunesPSN];
-    return NO;
+    return YES;
 }
 
 - (BOOL)switchToEQAtIndex:(int)index
 {
     [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() }, '----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }",index] eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
     [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
-    return NO;
+    return YES;
 }
 
 - (ProcessSerialNumber)iTunesPSN