diff -rupN aldrin.old/src/components/driver.py aldrin/src/components/driver.py
--- aldrin.old/src/components/driver.py 2009-01-09 16:25:22.000000000 -0500
+++ aldrin/src/components/driver.py 2010-03-06 04:32:27.000000000 -0500
@@ -155,22 +155,33 @@ class AudioDriver:
# second round: if we didnt find them from the config,
# pick good alternatives.
+
+ # regardless of what was chosen as input, if output
+ # has an input as well, prefer that one first.
+ # We also prefer the first device since it is usually the
+ # default system device. Unfortunately, the armstrong api
+ # does not provide us a default value.
+ if (output == -1 and input == -1):
+ for i in range(self.driver.get_count()):
+ if (self.driver.is_output(i) and self.driver.is_input(i)):
+ output = i
+ input = i
+ break
if output == -1:
for i in range(self.driver.get_count()):
if self.driver.is_output(i):
output = i
-
- # regardless of what was chosen as input, if output
- # has an input as well, prefer that one first.
- if self.driver.is_input(output):
- input = output
+ break
# take output channel if it supports input
if input == -1:
for i in range(self.driver.get_count()):
if self.driver.is_input(i):
input = i
+ break
+ if self.driver.is_input(output):
+ input = output
if output == -1:
raise self.AudioInitException