X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/6a84de24eb2e905de206250ee5b3a95041930713..3b5e8f80a471ff88cd39e8c295276beb7c3412ec:/MainController.m diff --git a/MainController.m b/MainController.m index f91975f..517c892 100755 --- a/MainController.m +++ b/MainController.m @@ -83,8 +83,8 @@ static MainController *sharedController; } } - [statusItem setImage:[NSImage imageNamed:@"menu"]]; - [statusItem setAlternateImage:[NSImage imageNamed:@"selected_image"]]; + [statusItem setImage:[NSImage imageNamed:@"MenuNormal"]]; + [statusItem setAlternateImage:[NSImage imageNamed:@"MenuInverted"]]; } - (ITMTRemote *)loadRemote @@ -142,7 +142,7 @@ static MainController *sharedController; - (BOOL)songIsPlaying { - return ( ! ([[currentRemote currentSongUniqueIdentifier] isEqualToString:@"0-0"]) ); + return ( ! ([[currentRemote playerStateUniqueIdentifier] isEqualToString:@"0-0"]) ); } - (BOOL)radioIsPlaying @@ -152,7 +152,7 @@ static MainController *sharedController; - (BOOL)songChanged { - return ( ! [[currentRemote currentSongUniqueIdentifier] isEqualToString:_latestSongIdentifier] ); + return ( ! [[currentRemote playerStateUniqueIdentifier] isEqualToString:_latestSongIdentifier] ); } - (NSString *)latestSongIdentifier @@ -173,13 +173,13 @@ static MainController *sharedController; ( ([self radioIsPlaying]) && (latestPlaylistClass != ITMTRemotePlayerRadioPlaylist) ) || ( (! [self radioIsPlaying]) && (latestPlaylistClass == ITMTRemotePlayerRadioPlaylist) ) )*/ - if ([self songChanged]) { - [self setLatestSongIdentifier:[currentRemote currentSongUniqueIdentifier]]; + if ( [self songChanged] ) { + [self setLatestSongIdentifier:[currentRemote playerStateUniqueIdentifier]]; latestPlaylistClass = [currentRemote currentPlaylistClass]; [menuController rebuildSubmenus]; - + if ( [df boolForKey:@"showSongInfoOnChange"] ) { - [self showCurrentTrackInfo]; +// [self performSelector:@selector(showCurrentTrackInfo) withObject:nil afterDelay:0.0]; } } } @@ -211,46 +211,64 @@ static MainController *sharedController; } else { [currentRemote play]; } + + [self timerUpdate]; } - (void)nextSong { [currentRemote goToNextSong]; + + [self timerUpdate]; } - (void)prevSong { [currentRemote goToPreviousSong]; + + [self timerUpdate]; } - (void)fastForward { [currentRemote forward]; + + [self timerUpdate]; } - (void)rewind { [currentRemote rewind]; + + [self timerUpdate]; } - (void)selectPlaylistAtIndex:(int)index { [currentRemote switchToPlaylistAtIndex:index]; + + [self timerUpdate]; } - (void)selectSongAtIndex:(int)index { [currentRemote switchToSongAtIndex:index]; + + [self timerUpdate]; } - (void)selectSongRating:(int)rating { [currentRemote setCurrentSongRating:(float)rating / 100.0]; + + [self timerUpdate]; } - (void)selectEQPresetAtIndex:(int)index { [currentRemote switchToEQAtIndex:index]; + + [self timerUpdate]; } - (void)showPlayer @@ -421,15 +439,16 @@ static MainController *sharedController; - (void)showCurrentTrackInfo { - NSString *title = [currentRemote currentSongTitle]; - + ITMTRemotePlayerSource source = [currentRemote currentSource]; + NSString *title = [currentRemote currentSongTitle]; + NSString *album = nil; + NSString *artist = nil; + NSString *time = nil; + int trackNumber = 0; + int trackTotal = 0; + int rating = -1; + if ( title ) { - NSString *album = nil; - NSString *artist = nil; - NSString *time = nil; - int trackNumber = 0; - int trackTotal = 0; - int rating = 0; if ( [df boolForKey:@"showAlbum"] ) { album = [currentRemote currentSongAlbum]; @@ -451,24 +470,19 @@ static MainController *sharedController; if ( [df boolForKey:@"showRating"] ) { rating = ( [currentRemote currentSongRating] * 5 ); } - - [statusWindowController showSongWindowWithTitle:title - album:album - artist:artist - time:time - trackNumber:trackNumber - trackTotal:trackTotal - rating:rating]; + } else { title = NSLocalizedString(@"noSongPlaying", @"No song is playing."); - [statusWindowController showSongWindowWithTitle:title - album:nil - artist:nil - time:nil - trackNumber:0 - trackTotal:0 - rating:0]; } + + [statusWindowController showSongInfoWindowWithSource:source + title:title + album:album + artist:artist + time:time + trackNumber:trackNumber + trackTotal:trackTotal + rating:rating]; } - (void)showUpcomingSongs @@ -488,37 +502,49 @@ static MainController *sharedController; } } - [statusWindowController showUpcomingSongsWithTitles:songList]; + [statusWindowController showUpcomingSongsWindowWithTitles:songList]; } else { - [statusWindowController showUpcomingSongsWithTitles:[NSArray arrayWithObject:NSLocalizedString(@"noUpcomingSongs", @"No upcoming songs.")]]; + [statusWindowController showUpcomingSongsWindowWithTitles:[NSArray arrayWithObject:NSLocalizedString(@"noUpcomingSongs", @"No upcoming songs.")]]; } } - (void)incrementVolume { - float volume = [currentRemote volume]; - volume += 0.2; + float volume = [currentRemote volume]; + float dispVol = volume; + + volume += 0.110; + dispVol += 0.100; + if (volume > 1.0) { - volume = 1.0; + volume = 1.0; + dispVol = 1.0; } + [currentRemote setVolume:volume]; - - //Show volume status window - [statusWindowController showVolumeWindowWithLevel:volume]; + + // Show volume status window + [statusWindowController showVolumeWindowWithLevel:dispVol]; } - (void)decrementVolume { - float volume = [currentRemote volume]; - volume -= 0.2; + float volume = [currentRemote volume]; + float dispVol = volume; + + volume -= 0.090; + dispVol -= 0.100; + if (volume < 0.0) { - volume = 0.0; + volume = 0.0; + dispVol = 0.0; } + [currentRemote setVolume:volume]; //Show volume status window - [statusWindowController showVolumeWindowWithLevel:volume]; + [statusWindowController showVolumeWindowWithLevel:dispVol]; } - (void)incrementRating @@ -531,7 +557,7 @@ static MainController *sharedController; [currentRemote setCurrentSongRating:rating]; //Show rating status window - [statusWindowController showRatingWindowWithLevel:rating]; + [statusWindowController showRatingWindowWithRating:rating]; } - (void)decrementRating @@ -544,7 +570,7 @@ static MainController *sharedController; [currentRemote setCurrentSongRating:rating]; //Show rating status window - [statusWindowController showRatingWindowWithLevel:rating]; + [statusWindowController showRatingWindowWithRating:rating]; } - (void)toggleLoop @@ -565,7 +591,7 @@ static MainController *sharedController; [currentRemote setRepeatMode:repeatMode]; //Show loop status window - [statusWindowController showLoopWindowWithMode:repeatMode]; + [statusWindowController showRepeatWindowWithMode:repeatMode]; } - (void)toggleShuffle @@ -573,7 +599,7 @@ static MainController *sharedController; bool newShuffleEnabled = ![currentRemote shuffleEnabled]; [currentRemote setShuffleEnabled:newShuffleEnabled]; //Show shuffle status window - [statusWindowController showLoopWindowWithMode:newShuffleEnabled]; + [statusWindowController showRepeatWindowWithMode:newShuffleEnabled]; } /*************************************************************************/