- (ITMTRemote *)loadRemote;
- (void)timerUpdate;
- (void)setLatestSongIdentifier:(NSString *)newIdentifier;
-- (void)showCurrentTrackInfo;
- (void)applicationLaunched:(NSNotification *)note;
- (void)applicationTerminated:(NSNotification *)note;
@end
SetITDebugMode(YES);
}
+ if (![df stringForKey:@"appVersion"]) {
+ [df removePersistentDomainForName:@"com.ithinksw.menutunes"];
+ [df setObject:@"1.2" forKey:@"appVersion"];
+ [[StatusWindowController sharedController] showPreferencesUpdateWindow];
+ }
+
currentRemote = [self loadRemote];
[[self currentRemote] begin];
[statusItem setMenu:[menuController menu]];
}
- if ( [self songChanged] && (timerUpdating != YES) ) {
+ if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) {
ITDebugLog(@"The song changed.");
timerUpdating = YES;
{
ITDebugLog(@"Selecting playlist %i", index);
NS_DURING
+ //[[self currentRemote] switchToPlaylistAtIndex:(index % 1000) ofSourceAtIndex:(index / 1000)];
[[self currentRemote] switchToPlaylistAtIndex:index];
NS_HANDLER
[self networkError:localException];
[[PreferencesController sharedPrefs] showPrefsWindow:self];
}
+- (void)showPreferencesAndClose
+{
+ ITDebugLog(@"Show preferences.");
+ [[PreferencesController sharedPrefs] showPrefsWindow:self];
+ [[StatusWindow sharedWindow] setLocked:NO];
+ [[StatusWindow sharedWindow] vanish:self];
+ [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES];
+}
+
- (void)showTestWindow
{
[self showCurrentTrackInfo];
- (ITMTRemote *)currentRemote
{
+ if ([networkController isConnectedToServer] && ![[networkController networkObject] isValid]) {
+ [self networkError:nil];
+ return nil;
+ }
return currentRemote;
}
if ([networkController checkForServerAtHost:[df stringForKey:@"sharedPlayerHost"]]) {
ITDebugLog(@"Remote server found.");
[timer invalidate];
- if (![networkController isConnectedToServer]) {
+ if (![networkController isServerOn] && ![networkController isConnectedToServer]) {
[[StatusWindowController sharedController] showReconnectQueryWindow];
}
} else {
- (void)networkError:(NSException *)exception
{
ITDebugLog(@"Remote exception thrown: %@: %@", [exception name], [exception reason]);
- NSLog(@"%@", [exception reason]);
- if ([[exception name] isEqualToString:NSPortTimeoutException] && [networkController isConnectedToServer]) {
+ if ( ((exception == nil) || [[exception name] isEqualToString:NSPortTimeoutException]) && [networkController isConnectedToServer]) {
NSRunCriticalAlertPanel(@"Remote MenuTunes Disconnected", @"The MenuTunes server you were connected to stopped responding or quit. MenuTunes will revert back to the local player.", @"OK", nil, nil);
if ([self disconnectFromServer]) {
[[PreferencesController sharedPrefs] resetRemotePlayerTextFields];
NS_DURING
if (!note || [[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[[self currentRemote] playerFullName]]) {
ITDebugLog(@"Remote application terminated.");
+ playerRunningState = ITMTRemotePlayerNotRunning;
[[self currentRemote] halt];
[refreshTimer invalidate];
[refreshTimer release];
refreshTimer = nil;
[self clearHotKeys];
- playerRunningState = ITMTRemotePlayerNotRunning;
if ([df objectForKey:@"ShowPlayer"] != nil) {
ITHotKey *hotKey;