Song rating stuff back in programatically. No stars yet ;(
authorKent Sutherland <ksuther@ithinksw.com>
Sun, 16 Mar 2003 00:24:31 +0000 (00:24 +0000)
committerKent Sutherland <ksuther@ithinksw.com>
Sun, 16 Mar 2003 00:24:31 +0000 (00:24 +0000)
English.lproj/MainMenu.nib/classes.nib
English.lproj/MainMenu.nib/info.nib
MenuTunes.h
MenuTunes.m

index b342736..eda69cc 100755 (executable)
@@ -3,10 +3,10 @@
         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
         {CLASS = MTApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; }, 
         {
-            ACTIONS = {setSongRating = id; }; 
+            ACTIONS = {}; 
             CLASS = MenuTunes; 
             LANGUAGE = ObjC; 
-            OUTLETS = {ratingMenu = NSMenu; }; 
+            OUTLETS = {}; 
             SUPERCLASS = NSObject; 
         }
     ); 
index 2d71d80..adeae52 100755 (executable)
@@ -2,17 +2,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>IBEditorPositions</key>
-       <dict>
-               <key>198</key>
-               <string>106 271 72 120 0 0 1152 746 </string>
-       </dict>
        <key>IBFramework Version</key>
        <string>291.0</string>
-       <key>IBOpenObjects</key>
-       <array>
-               <integer>198</integer>
-       </array>
        <key>IBSystem Version</key>
        <string>6I32</string>
 </dict>
index 2d3c5fa..393c5ec 100755 (executable)
@@ -24,8 +24,6 @@
 
 @interface MenuTunes : NSObject
 {
-    IBOutlet NSMenu *ratingMenu;
-    
     ITStatusItem   *statusItem;
     NSMenu         *menu;
     ITMTRemote     *currentRemote;
     NSMenuItem *eqItem;
     NSMenu     *eqMenu;
     
-    NSMenuItem *songRatingMenuItem; //Song Rating submenu item
+    //For song ratings
+    NSMenuItem *songRatingMenuItem;
+    NSMenu *ratingMenu;
+    
     NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause'
     
     PreferencesController *prefsController;
@@ -69,7 +70,7 @@
 
 - (void)runTimerInNewThread;
 
-- (IBAction)setSongRating:(id)sender;
+- (void)setSongRating:(id)sender;
 
 - (void)clearHotKeys;
 - (void)closePreferences;
index 3c96ed0..eea31d2 100755 (executable)
                     action:nil
                     keyEquivalent:@""];
         } else if ([item isEqualToString:@"Song Rating"]) {
+            NSMenuItem *item;
+            int i;
+            NSString *curTitle = @".....";
+            
             songRatingMenuItem = [menu addItemWithTitle:@"Song Rating"
                     action:nil
                     keyEquivalent:@""];
+            
+            ratingMenu = [[NSMenu alloc] initWithTitle:@""];
+            
+            item = [ratingMenu addItemWithTitle:@"....."
+                            action:@selector(setSongRating:)
+                            keyEquivalent:@""];
+            [item setTarget:self];
+            [item setTag:0];
+            
+            for (i = 1; i < 6; i++) {
+                curTitle = [curTitle substringToIndex:4];
+                curTitle = [@"x" stringByAppendingString:curTitle];
+                item = [ratingMenu addItemWithTitle:curTitle
+                            action:@selector(setSongRating:)
+                            keyEquivalent:@""];
+                [item setTarget:self];
+                [item setTag:(i * 20)];
+            }
         } else if ([item isEqualToString:@"<separator>"]) {
             [menu addItem:[NSMenuItem separatorItem]];
         }
                 if (songRatingMenuItem) {
                     int rating = (int)[currentRemote currentSongRating] * 10;
                     int i;
-                    
                     for (i = 0; i < 5; i++) {
                         [[ratingMenu itemAtIndex:i] setState:NSOffState];
+                        [[ratingMenu itemAtIndex:i] setTarget:self];
                     }
-                    
-                    switch (rating) {
-                        case 0:
-                            [[ratingMenu itemAtIndex:5] setState:NSOnState];
-                        break;
-                        case 2:
-                            [[ratingMenu itemAtIndex:4] setState:NSOnState];
-                        break;
-                        case 4:
-                            [[ratingMenu itemAtIndex:3] setState:NSOnState];
-                        break;
-                        case 6:
-                            [[ratingMenu itemAtIndex:2] setState:NSOnState];
-                        break;
-                        case 8:
-                            [[ratingMenu itemAtIndex:1] setState:NSOnState];
-                        break;
-                        case 10:
-                            [[ratingMenu itemAtIndex:0] setState:NSOnState];
-                        break;
-                    }
+                    [[ratingMenu itemAtIndex:rating / 2] setState:NSOnState];
                 }
             }
             
         
         if (trackPlayingIndex != lastSongIndex) {
             BOOL wasPlayingRadio = isPlayingRadio;
-            isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+            isPlayingRadio = ([currentRemote classOfPlaylistAtIndex:playlist] == ITMTRemotePlayerRadioPlaylist);
             
             if (isPlayingRadio && !wasPlayingRadio) {
                 int i;
         } else {
             if (playlist != lastPlaylistIndex) {
                 BOOL wasPlayingRadio = isPlayingRadio;
-                isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+                isPlayingRadio = ([currentRemote classOfPlaylistAtIndex:playlist] == ITMTRemotePlayerRadioPlaylist);
                 
                 if (isPlayingRadio && !wasPlayingRadio) {
                     int i;
 {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
-    refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES] retain];
+    refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES] retain];
     [runLoop run];
     [pool release];
 }
 - (void)playTrack:(id)sender
 {
     [currentRemote switchToSongAtIndex:[[sender representedObject] intValue]];
-    [self updateMenu];
 }
 
 - (void)selectPlaylist:(id)sender
     [currentRemote setEqualizerEnabled:![currentRemote equalizerEnabled]];
 }
 
-- (IBAction)setSongRating:(id)sender
+- (void)setSongRating:(id)sender
 {
     NSLog(@"%f", [currentRemote currentSongRating]);
     NSLog(@"%f", (float)[sender tag] / 100.0);