From d98b5549d1c01c97aeb58a5456917eba2f493c25 Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Fri, 11 Oct 2013 05:37:11 -0700 Subject: [PATCH] mamburu: Only launch last.fm client if it isn't already running (prevents last.fm client's window from popping up on Cog restarts) --- AudioScrobbler/AudioScrobbler.m | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/AudioScrobbler/AudioScrobbler.m b/AudioScrobbler/AudioScrobbler.m index c2129aab2..4783d3a1c 100644 --- a/AudioScrobbler/AudioScrobbler.m +++ b/AudioScrobbler/AudioScrobbler.m @@ -72,10 +72,23 @@ escapeForLastFM(NSString *string) if((self = [super init])) { _pluginID = @"cog"; - - if([[NSUserDefaults standardUserDefaults] boolForKey:@"automaticallyLaunchLastFM"]) - [[NSWorkspace sharedWorkspace] launchApplication:@"Last.fm.app"]; - + + if([[NSUserDefaults standardUserDefaults] boolForKey:@"automaticallyLaunchLastFM"]) { + + NSArray *launchedApps = [[NSWorkspace sharedWorkspace] runningApplications]; + BOOL running = NO; + for(NSRunningApplication *app in launchedApps) { + if([[app bundleIdentifier] isEqualToString:@"fm.last.Last.fm"]) { + running = YES; + break; + } + } + + if(!running) { + [[NSWorkspace sharedWorkspace] launchApplication:@"Last.fm.app"]; + } + } + _keepProcessingAudioScrobblerCommands = YES; kern_return_t result = semaphore_create(mach_task_self(), &_semaphore, SYNC_POLICY_FIFO, 0);