Index: configure
===================================================================
RCS file: /var/lib/mythcvs/mythtv/configure,v
retrieving revision 1.31
diff -u -r1.31 configure
--- configure	8 Jan 2005 16:48:12 -0000	1.31
+++ configure	5 Feb 2005 17:43:18 -0000
@@ -42,7 +42,10 @@
 #echo "  --powerpc-perf-enable    enable performance report on PPC (requires enabling PMC)"
 #echo "  --disable-mmx            disable mmx usage"
 #echo "  --disable-altivec        disable AltiVec usage"
-#echo "  --disable-audio-oss      disable OSS audio support [default=no]"
+echo "  --disable-audio-oss      disable OSS audio support [default=no]"
+echo "  --disable-audio-alsa     disable ALSA audio support [default=no]"
+echo "  --disable-audio-arts     disable aRts audio support [default=no]"
+echo "  --disable-audio-jack     disable JACK audio support [default=no]"
 #echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
 #echo "  --disable-v4l            disable video4linux grabbing [default=no]"
 #echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
@@ -138,6 +141,9 @@
 gprof="no"
 v4l="yes"
 audio_oss="yes"
+audio_alsa="yes"
+audio_arts="yes"
+audio_jack="yes"
 audio_beos="no"
 dv1394="no"
 dc1394="no"
@@ -210,7 +216,6 @@
 esac
 SHFLAGS=-nostart
 # disable linux things
-audio_oss="no"
 v4l="no"
 dv1394="no"
 # enable beos things
@@ -226,7 +231,6 @@
 fi ;;
 SunOS)
 v4l="no"
-audio_oss="no"
 dv1394="no"
 make="gmake"
 LDFLAGS=""
@@ -236,7 +240,6 @@
 ;;
 FreeBSD)
 v4l="no"
-audio_oss="yes"
 dv1394="no"
 make="gmake"
 CFLAGS="-pthread"
@@ -244,7 +247,6 @@
 ;;
 BSD/OS)
 v4l="no"
-audio_oss="yes"
 dv1394="no"
 extralibs="-lpoll -lgnugetopt -lm"
 make="gmake"
@@ -252,7 +254,6 @@
 Darwin)
 cc="cc"
 v4l="no"
-audio_oss="no"
 dv1394="no"
 ffserver="no"
 SHFLAGS="-dynamiclib"
@@ -269,7 +270,6 @@
 ;;
 CYGWIN*)
 v4l="no"
-audio_oss="yes"
 dv1394="no"
 extralibs=""
 cygwin="yes"
@@ -285,7 +285,6 @@
 IRIX*)
 ranlib="echo ignoring ranlib"
 v4l="no"
-audio_oss="no"
 make="gmake"
 ;;
 OS/2)
@@ -304,7 +303,6 @@
 EXESUF=".exe"
 extralibs=""
 v4l="no"
-audio_oss="no"
 dv1394="no"
 network="no"
 ffserver="no"
@@ -385,6 +383,12 @@
   ;;
   --disable-audio-oss) audio_oss="no"
   ;;
+  --disable-audio-alsa) audio_alsa="no"
+  ;;
+  --disable-audio-arts) audio_arts="no"
+  ;;
+  --disable-audio-jack) audio_jack="no"
+  ;;
   --disable-audio-beos) audio_beos="no"
   ;;
   --disable-dv1394) dv1394="no"
@@ -1017,6 +1021,83 @@
 fi
 fi
 
+##########################################
+# OSS probe
+
+if test "$audio_oss" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <sys/ioctl.h>
+#include <sys/soundcard.h>
+int main(void) { return (int) EV_SEQ_LOCAL; }
+EOF
+
+audio_oss=no
+if $cc -o $TMPE $TMPC > /dev/null 2>&1; then
+audio_oss=yes
+fi
+
+fi
+
+##########################################
+# ALSA probe
+
+if test "$audio_alsa" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <alsa/asoundlib.h>
+int main(void) { return (int) SND_LIB_MAJOR; }
+EOF
+
+audio_alsa=no
+audio_alsa_libs="-lasound"
+if $cc -o $TMPE $TMPC $audio_alsa_libs > /dev/null 2>&1; then
+audio_alsa=yes
+fi
+
+fi
+
+##########################################
+# aRts probe
+
+if test "$audio_arts" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <artsc/artsc.h>
+int main(void) { return (int) ARTS_P_BUFFER_SIZE; }
+EOF
+
+audio_arts=no
+if (artsc-config --version) > /dev/null 2>&1; then
+audio_arts_libs=`artsc-config --libs`
+audio_arts_cflags=`artsc-config --cflags`
+if $cc -o $TMPE $TMPC $audio_arts_cflags $audio_arts_libs > /dev/null 2>&1; then
+audio_arts=yes
+fi
+fi
+
+fi
+
+##########################################
+# JACK probe
+
+if test "$audio_jack" = "yes" ; then
+
+cat > $TMPC << EOF
+#include <jack/jack.h>
+int main(void) { return (int) JACK_MAX_FRAMES; }
+EOF
+
+audio_jack=no
+audio_jack_libs="-ljack"
+if $cc -o $TMPE $TMPC $audio_jack_libs > /dev/null 2>&1; then
+audio_jack=yes
+fi
+
+fi
+
+
+
 case "`$cc -v 2>&1 | grep version`" in
     *gcc*)
 	CFLAGS="-Wall -Wno-switch $CFLAGS"
@@ -1109,7 +1190,10 @@
 #else
 #echo "License: GPL"
 #fi
-
+echo "OSS support      $audio_oss"
+echo "ALSA support     $audio_alsa"
+echo "aRts support     $audio_arts"
+echo "JACK support     $audio_jack"
 
 echo "Creating config.mak and config.h"
 
@@ -1346,6 +1430,25 @@
   echo "CONFIG_AUDIO_OSS=yes" >> config.mak
 fi
 
+if test "$audio_alsa" = "yes" ; then
+  echo "#define CONFIG_AUDIO_ALSA 1" >> $TMPH
+  echo "CONFIG_AUDIO_ALSA=yes" >> config.mak
+  echo "CONFIG_AUDIO_ALSA_LIBS=$audio_alsa_libs" >> config.mak
+fi
+
+if test "$audio_arts" = "yes" ; then
+  echo "#define CONFIG_AUDIO_ARTS 1" >> $TMPH
+  echo "CONFIG_AUDIO_ARTS=yes" >> config.mak
+  echo "CONFIG_AUDIO_ARTS_LIBS=$audio_arts_libs" >> config.mak
+  echo "CONFIG_AUDIO_ARTS_CFLAGS=$audio_arts_cflags" >> config.mak
+fi
+
+if test "$audio_jack" = "yes" ; then
+  echo "#define CONFIG_AUDIO_JACK 1" >> $TMPH
+  echo "CONFIG_AUDIO_JACK=yes" >> config.mak
+  echo "CONFIG_AUDIO_JACK_LIBS=$audio_jack_libs" >> config.mak
+fi
+
 if test "$audio_beos" = "yes" ; then
   echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
   echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
@@ -1534,6 +1637,7 @@
   echo
 fi
 
+
 fi
 
 diff $TMPH config.h >/dev/null 2>&1
Index: settings.pro
===================================================================
RCS file: /var/lib/mythcvs/mythtv/settings.pro,v
retrieving revision 1.98
diff -u -r1.98 settings.pro
--- settings.pro	4 Feb 2005 17:30:24 -0000	1.98
+++ settings.pro	5 Feb 2005 17:43:18 -0000
@@ -61,28 +61,6 @@
 # LCDProc support
 #DEFINES += LCD_DEVICE
 
-# Default audio output, OSS.  
-# Do NOT disable unless compiling on a non-linux platform.
-CONFIG += using_oss
-
-# Native ALSA support
-#CONFIG += using_alsa
-#ALSA_LIBS = -lasound
-
-# Native ARTS support
-#CONFIG += using_arts
-#ARTS_LIBS = -L/opt/kde3/lib -ldl -lartsc -lpthread
-#EXTRA_LIBS += -L/opt/kde3/lib -ldl -lartsc -lpthread
-#INCLUDEPATH += /opt/kde3/include
-# For Mandrake, use the following:
-#ARTS_LIBS = -ldl -lartsc -lpthread
-#EXTRA_LIBS += -ldl -lartsc -lpthread
-#INCLUDEPATH += /usr/include/artsc
-
-# Native JACK support
-#CONFIG += using_jack
-#JACK_LIBS += -ljack
-
 # DVB support
 #CONFIG += using_dvb
 #DEFINES += USING_DVB
@@ -165,7 +143,6 @@
     EXTRA_LIBS -= $${LOCAL_LIBDIR_X11} -lXinerama -lXv -lX11 -lXext -lXxf86vm
     CONFIG     -= using_ivtv
     DEFINES    -= USING_IVTV
-    CONFIG     -= using_oss
     CONFIG     -= using_joystick_menu
 }
 win32 {
@@ -174,7 +151,6 @@
     EXTRA_LIBS -= $${LOCAL_LIBDIR_X11} -lXinerama -lXv -lX11 -lXext -lXxf86vm
     CONFIG     -= using_ivtv
     DEFINES    -= USING_IVTV
-    CONFIG     -= using_oss
     CONFIG     -= using_joystick_menu
 }
 freebsd {
Index: libs/libmyth/libmyth.pro
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/libmyth.pro,v
retrieving revision 1.68
diff -u -r1.68 libmyth.pro
--- libs/libmyth/libmyth.pro	4 Feb 2005 19:36:03 -0000	1.68
+++ libs/libmyth/libmyth.pro	5 Feb 2005 17:43:18 -0000
@@ -53,12 +53,6 @@
 inc.files += uilistbtntype.h uiphoneentry.h generictree.h managedlist.h
 inc.files += visual.h volumebase.h output.h langsettings.h
 
-using_oss {
-    DEFINES += USING_OSS
-    SOURCES += audiooutputoss.cpp
-    HEADERS += audiooutputoss.h
-}
-
 unix {
     SOURCES += mythcdrom.cpp mythmediamonitor.cpp
     HEADERS += mythcdrom.h   mythmediamonitor.h
@@ -96,38 +90,28 @@
 
 INSTALLS += inc
 
-using_alsa {
-    DEFINES += USE_ALSA
-    HEADERS += audiooutputalsa.h
-    SOURCES += audiooutputalsa.cpp
-    LIBS += $$ALSA_LIBS
-}
-
-using_joystick_menu {
-    DEFINES += USE_JOYSTICK_MENU
-    HEADERS += jsmenu.h jsmenuevent.h
-    SOURCES += jsmenu.cpp jsmenuevent.cpp
+contains(CONFIG_AUDIO_OSS, yes) {
+    SOURCES += audiooutputoss.cpp
+    HEADERS += audiooutputoss.h
 }
 
-using_lirc {
-    DEFINES += USE_LIRC
-    HEADERS += lirc.h lircevent.h
-    SOURCES += lirc.cpp lircevent.cpp
-    LIBS += $$LIRC_LIBS
+contains(CONFIG_AUDIO_ALSA, yes) {
+    HEADERS += audiooutputalsa.h
+    SOURCES += audiooutputalsa.cpp
+    LIBS += $$CONFIG_AUDIO_ALSA_LIBS
 }
 
-using_arts {
-    DEFINES += USE_ARTS
+contains(CONFIG_AUDIO_ARTS, yes) {
     HEADERS += audiooutputarts.h
     SOURCES += audiooutputarts.cpp
-    LIBS += $$ARTS_LIBS
+    LIBS += $$CONFIG_AUDIO_ARTS_LIBS
+    QMAKE_CXXFLAGS += $$CONFIG_AUDIO_ARTS_CFLAGS
 }
 
-using_jack {
-    DEFINES += USE_JACK
+contains(CONFIG_AUDIO_JACK, yes) {
     HEADERS += bio2jack.h audiooutputjack.h
     SOURCES += bio2jack.c audiooutputjack.cpp
-    LIBS += $$JACK_LIBS
+    LIBS += $$CONFIG_AUDIO_JACK_LIBS
 }
 
 using_directx {
@@ -135,6 +119,19 @@
     SOURCES += audiooutputdx.cpp
 }
 
+using_joystick_menu {
+    DEFINES += USE_JOYSTICK_MENU
+    HEADERS += jsmenu.h jsmenuevent.h
+    SOURCES += jsmenu.cpp jsmenuevent.cpp
+}
+
+using_lirc {
+    DEFINES += USE_LIRC
+    HEADERS += lirc.h lircevent.h
+    SOURCES += lirc.cpp lircevent.cpp
+    LIBS += $$LIRC_LIBS
+}
+
 using_x11 {
     HEADERS += screensaver-x11.h
     SOURCES += screensaver-x11.cpp
Index: libs/libmyth/audiooutput.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/audiooutput.cpp,v
retrieving revision 1.15
diff -u -r1.15 audiooutput.cpp
--- libs/libmyth/audiooutput.cpp	28 Jan 2005 03:00:00 -0000	1.15
+++ libs/libmyth/audiooutput.cpp	5 Feb 2005 17:43:18 -0000
@@ -9,19 +9,19 @@
 #ifdef USING_DIRECTX
 #include "audiooutputdx.h"
 #endif
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
 #include "audiooutputoss.h"
 #endif
-#ifdef USE_ALSA
+#ifdef CONFIG_AUDIO_ALSA
 #include "audiooutputalsa.h"
 #endif
-#ifdef USE_ARTS
+#ifdef CONFIG_AUDIO_ARTS
 #include "audiooutputarts.h"
 #endif
 #ifdef CONFIG_DARWIN
 #include "audiooutputca.h"
 #endif
-#ifdef USE_JACK
+#ifdef CONFIG_AUDIO_JACK
 #include "audiooutputjack.h"
 #endif
 
@@ -31,7 +31,7 @@
 {
     if (audiodevice.startsWith("ALSA:"))
     {
-#ifdef USE_ALSA
+#ifdef CONFIG_AUDIO_ALSA
         return new AudioOutputALSA(audiodevice.remove(0, 5), audio_bits,
                                    audio_channels, audio_samplerate, source, set_initial_vol);
 #else
@@ -42,7 +42,7 @@
     }
     else if (audiodevice.startsWith("ARTS:"))
     {
-#ifdef USE_ARTS
+#ifdef CONFIG_AUDIO_ARTS
         return new AudioOutputARTS(audiodevice.remove(0, 5), audio_bits,
                                    audio_channels, audio_samplerate, source, set_initial_vol);
 #else
@@ -53,7 +53,7 @@
     }
     else if (audiodevice.startsWith("JACK:"))
     {
-#ifdef USE_JACK
+#ifdef CONFIG_AUDIO_JACK
         return new AudioOutputJACK(audiodevice.remove(0, 5), audio_bits,
                                    audio_channels, audio_samplerate, source, set_initial_vol);
 #else
@@ -66,7 +66,7 @@
     else
         return new AudioOutputDX(audiodevice, audio_bits,
                                   audio_channels, audio_samplerate, source, set_initial_vol);
-#elif defined(USING_OSS)
+#elif defined(CONFIG_AUDIO_OSS)
     else
         return new AudioOutputOSS(audiodevice, audio_bits,
                                   audio_channels, audio_samplerate, source, set_initial_vol);
Index: libs/libmyth/volumecontrol.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/volumecontrol.cpp,v
retrieving revision 1.13
diff -u -r1.13 volumecontrol.cpp
--- libs/libmyth/volumecontrol.cpp	22 Oct 2004 09:32:54 -0000	1.13
+++ libs/libmyth/volumecontrol.cpp	5 Feb 2005 17:43:18 -0000
@@ -1,6 +1,7 @@
 #include "volumecontrol.h"
+#include "config.h"
 
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
 #include <sys/soundcard.h>
 #endif
 
@@ -19,7 +20,7 @@
     mixerfd = -1;
     volume = 0;
 
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
     mute = false;
     current_mute_state = MUTE_OFF;
   
@@ -72,7 +73,7 @@
 
 int VolumeControl::GetCurrentVolume(void)
 {
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
     int realvol;
     
     if (mute)
@@ -96,7 +97,7 @@
 
 void VolumeControl::SetCurrentVolume(int value)
 {
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
     volume = value;
 
     if (volume > 100)
@@ -133,7 +134,7 @@
 
 void VolumeControl::SetMute(bool on)
 {
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
     int realvol;
 
     if (on)
@@ -165,7 +166,7 @@
 // current_mute_state is initialized to "MUTE_OFF".  If individual muting
 // is enabled, each call to SetMute will advance to the next state:
 // MUTE_OFF -> MUTE_LEFT -> MUTE_RIGHT -> MUTE_BOTH -> MUTE_OFF
-#ifdef USING_OSS
+#ifdef CONFIG_AUDIO_OSS
     int realvol;
 
     switch (current_mute_state)
