- (void)applicationDidFinishLaunching:(NSNotification *)note
{
+ //Turn on debug mode if needed
+ if ([df boolForKey:@"ITDebugMode"]) {
+ SetITDebugMode(YES);
+ }
+
currentRemote = [self loadRemote];
[currentRemote begin];
}
}
- [statusItem setImage:[NSImage imageNamed:@"menu"]];
- [statusItem setAlternateImage:[NSImage imageNamed:@"selected_image"]];
+ [statusItem setImage:[NSImage imageNamed:@"MenuNormal"]];
+ [statusItem setAlternateImage:[NSImage imageNamed:@"MenuInverted"]];
}
- (ITMTRemote *)loadRemote
- (BOOL)songIsPlaying
{
- return ( ! ([[currentRemote currentSongUniqueIdentifier] isEqualToString:@"0-0"]) );
+ return ( ! ([[currentRemote playerStateUniqueIdentifier] isEqualToString:@"0-0"]) );
}
- (BOOL)radioIsPlaying
- (BOOL)songChanged
{
- return ( ! [[currentRemote currentSongUniqueIdentifier] isEqualToString:_latestSongIdentifier] );
+ return ( ! [[currentRemote playerStateUniqueIdentifier] isEqualToString:_latestSongIdentifier] );
}
- (NSString *)latestSongIdentifier
( ([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];
}
}
}
} 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
- (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];
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
}
}
- [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
[currentRemote setCurrentSongRating:rating];
//Show rating status window
- [statusWindowController showRatingWindowWithLevel:rating];
+ [statusWindowController showRatingWindowWithRating:rating];
}
- (void)decrementRating
[currentRemote setCurrentSongRating:rating];
//Show rating status window
- [statusWindowController showRatingWindowWithLevel:rating];
+ [statusWindowController showRatingWindowWithRating:rating];
}
- (void)toggleLoop
{
ITMTRemotePlayerRepeatMode repeatMode = [currentRemote repeatMode];
-
switch (repeatMode) {
case ITMTRemotePlayerRepeatOff:
repeatMode = ITMTRemotePlayerRepeatAll;
[currentRemote setRepeatMode:repeatMode];
//Show loop status window
- [statusWindowController showLoopWindowWithMode:repeatMode];
+ [statusWindowController showRepeatWindowWithMode:repeatMode];
}
- (void)toggleShuffle
bool newShuffleEnabled = ![currentRemote shuffleEnabled];
[currentRemote setShuffleEnabled:newShuffleEnabled];
//Show shuffle status window
- [statusWindowController showLoopWindowWithMode:newShuffleEnabled];
+ [statusWindowController showRepeatWindowWithMode:newShuffleEnabled];
}
/*************************************************************************/