From 0d249ce0fffada1e84b53ebc0693aaebf78fcadb Mon Sep 17 00:00:00 2001
From: vspader <unknown>
Date: Tue, 20 Feb 2007 02:08:37 +0000
Subject: [PATCH] Select device when preference window appears.

---
 Preferences/General/OutputsArrayController.m | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/Preferences/General/OutputsArrayController.m b/Preferences/General/OutputsArrayController.m
index b9426104c..804be6a21 100644
--- a/Preferences/General/OutputsArrayController.m
+++ b/Preferences/General/OutputsArrayController.m
@@ -17,6 +17,9 @@
 	verify_noerr(AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &propsize, devids));
 	int i;
 	NSLog(@"Number of devices: %d", nDevices);
+	
+	NSDictionary *defaultDevice = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"outputDevice"];
+	
 	for (i = 0; i < nDevices; ++i) {
 		char name[64];
 		UInt32 maxlen = 64;
@@ -37,11 +40,21 @@
 			[NSNumber numberWithLong:devids[i]], @"deviceID",
 			nil];
 		[self addObject:deviceInfo];
+		
+		if (defaultDevice) {
+			if ([[defaultDevice objectForKey:@"deviceID"] isEqualToNumber:[deviceInfo objectForKey:@"deviceID"]]) {
+				[self setSelectedObjects:[NSArray arrayWithObject:deviceInfo]];
+				NSLog(@"Selected default!");
+			}
+		}
+
 		[deviceInfo release];
 	}
 	free(devids);
 	
-	[self setSelectionIndex:0];
+		
+	if (!defaultDevice)
+		[self setSelectionIndex:0];
 }
 
 @end