Commit 0c58ac1c76603ce639e419cedd16cfcdcd813045

Authored by malc
1 parent a214c598

Change the way audio is configured

Instead of having separate option for each card and driver use
--audio-drv-list and --audio-card-list options.

Under Linux it allows to set the default(first probed) driver
to something other than OSS.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4792 c046a42c-6fe2-441c-8c8c-71466251a162
audio/audio.c
... ... @@ -38,27 +38,7 @@
38 38 #define SW_NAME(sw) (sw)->name ? (sw)->name : "unknown"
39 39  
40 40 static struct audio_driver *drvtab[] = {
41   -#ifdef CONFIG_OSS
42   - &oss_audio_driver,
43   -#endif
44   -#ifdef CONFIG_ALSA
45   - &alsa_audio_driver,
46   -#endif
47   -#ifdef CONFIG_COREAUDIO
48   - &coreaudio_audio_driver,
49   -#endif
50   -#ifdef CONFIG_DSOUND
51   - &dsound_audio_driver,
52   -#endif
53   -#ifdef CONFIG_FMOD
54   - &fmod_audio_driver,
55   -#endif
56   -#ifdef CONFIG_SDL
57   - &sdl_audio_driver,
58   -#endif
59   -#ifdef CONFIG_ESD
60   - &esd_audio_driver,
61   -#endif
  41 + AUDIO_DRIVERS
62 42 &no_audio_driver,
63 43 &wav_audio_driver
64 44 };
... ...
configure
... ... @@ -24,6 +24,8 @@ cross_prefix=""
24 24 cc="gcc"
25 25 gcc3_search="yes"
26 26 gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
  27 +audio_drv_list=""
  28 +audio_card_list=""
27 29 host_cc="gcc"
28 30 ar="ar"
29 31 make="make"
... ... @@ -87,16 +89,6 @@ mingw32="no"
87 89 EXESUF=""
88 90 gdbstub="yes"
89 91 slirp="yes"
90   -adlib="no"
91   -ac97="no"
92   -gus="no"
93   -cs4231a="no"
94   -oss="no"
95   -dsound="no"
96   -coreaudio="no"
97   -alsa="no"
98   -esd="no"
99   -fmod="no"
100 92 fmod_lib=""
101 93 fmod_inc=""
102 94 vnc_tls="yes"
... ... @@ -133,32 +125,32 @@ if [ "$cpu" = "i386" ] ; then
133 125 fi
134 126 ;;
135 127 GNU/kFreeBSD)
136   -oss="yes"
  128 +audio_drv_list="oss"
137 129 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
138 130 kqemu="yes"
139 131 fi
140 132 ;;
141 133 FreeBSD)
142 134 bsd="yes"
143   -oss="yes"
  135 +audio_drv_list="oss"
144 136 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
145 137 kqemu="yes"
146 138 fi
147 139 ;;
148 140 NetBSD)
149 141 bsd="yes"
150   -oss="yes"
  142 +audio_drv_list="oss"
151 143 ;;
152 144 OpenBSD)
153 145 bsd="yes"
154   -oss="yes"
  146 +audio_drv_list="oss"
155 147 ;;
156 148 Darwin)
157 149 bsd="yes"
158 150 darwin="yes"
159 151 darwin_user="yes"
160 152 cocoa="yes"
161   -coreaudio="yes"
  153 +audio_drv_list="coreaudio"
162 154 OS_CFLAGS="-mdynamic-no-pic"
163 155 OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
164 156 ;;
... ... @@ -191,11 +183,11 @@ SunOS)
191 183 fi
192 184 fi
193 185 if test -f /usr/include/sys/soundcard.h ; then
194   - oss=yes
  186 + audio_drv_list="oss"
195 187 fi
196 188 ;;
197 189 *)
198   -oss="yes"
  190 +audio_drv_list="oss"
199 191 linux="yes"
200 192 linux_user="yes"
201 193 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
... ... @@ -264,17 +256,11 @@ for opt do
264 256 ;;
265 257 --disable-sdl) sdl="no"
266 258 ;;
267   - --enable-coreaudio) coreaudio="yes"
268   - ;;
269   - --enable-alsa) alsa="yes"
270   - ;;
271   - --enable-esd) esd="yes"
272   - ;;
273   - --enable-dsound) dsound="yes"
  259 + --fmod-lib=*) fmod_lib="$optarg"
274 260 ;;
275   - --enable-fmod) fmod="yes"
  261 + --audio-card-list=*) audio_card_list="$optarg"
276 262 ;;
277   - --fmod-lib=*) fmod_lib="$optarg"
  263 + --audio-drv-list=*) audio_drv_list="$optarg"
278 264 ;;
279 265 --fmod-inc=*) fmod_inc="$optarg"
280 266 ;;
... ... @@ -284,21 +270,13 @@ for opt do
284 270 ;;
285 271 --disable-slirp) slirp="no"
286 272 ;;
287   - --enable-adlib) adlib="yes"
288   - ;;
289   - --enable-ac97) ac97="yes"
290   - ;;
291   - --enable-gus) gus="yes"
292   - ;;
293   - --enable-cs4231a) cs4231a="yes"
294   - ;;
295 273 --disable-kqemu) kqemu="no"
296 274 ;;
297 275 --disable-brlapi) brlapi="no"
298 276 ;;
299 277 --enable-profiler) profiler="yes"
300 278 ;;
301   - --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
  279 + --enable-cocoa) cocoa="yes" ; sdl="no" ;
302 280 ;;
303 281 --disable-gfx-check) check_gfx="no"
304 282 ;;
... ... @@ -422,15 +400,8 @@ echo " --disable-werror disable compilation abort on warning"
422 400 echo " --disable-sdl disable SDL"
423 401 echo " --enable-cocoa enable COCOA (Mac OS X only)"
424 402 echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
425   -echo " --enable-adlib enable Adlib emulation"
426   -echo " --enable-ac97 enable AC97 emulation"
427   -echo " --enable-gus enable Gravis Ultrasound emulation"
428   -echo " --enable-cs4231a enable CS4231A emulation"
429   -echo " --enable-coreaudio enable Coreaudio audio driver"
430   -echo " --enable-alsa enable ALSA audio driver"
431   -echo " --enable-esd enable EsoundD audio driver"
432   -echo " --enable-fmod enable FMOD audio driver"
433   -echo " --enable-dsound enable DirectSound audio driver"
  403 +echo " --audio-drv-list set audio drivers list"
  404 +echo " --audio-card-list set list of additional emulated audio cards"
434 405 echo " --enable-mixemu enable mixer emulation"
435 406 echo " --disable-brlapi disable BrlAPI"
436 407 echo " --disable-vnc-tls disable TLS encryption for VNC server"
... ... @@ -721,7 +692,7 @@ else
721 692 # Make sure to disable cocoa if sdl was set
722 693 if test "$sdl" = "yes" ; then
723 694 cocoa="no"
724   - coreaudio="no"
  695 + audio_drv_list="echo $audio_drv_list | sed s,coreaudio,,g"
725 696 fi
726 697 fi # -z $sdl
727 698  
... ... @@ -835,14 +806,8 @@ if test "$sdl" != "no" ; then
835 806 fi
836 807 echo "curses support $curses"
837 808 echo "mingw32 support $mingw32"
838   -echo "Adlib support $adlib"
839   -echo "AC97 support $ac97"
840   -echo "GUS support $gus"
841   -echo "CS4231A support $cs4231a"
842   -echo "CoreAudio support $coreaudio"
843   -echo "ALSA support $alsa"
844   -echo "EsounD support $esd"
845   -echo "DSound support $dsound"
  809 +echo "Audio drivers $audio_drv_list"
  810 +echo "Extra audio cards $audio_card_list"
846 811 echo "Mixer emulation $mixemu"
847 812 if test "$fmod" = "yes"; then
848 813 if test -z $fmod_lib || test -z $fmod_inc; then
... ... @@ -1036,52 +1001,26 @@ if test "$slirp" = "yes" ; then
1036 1001 echo "CONFIG_SLIRP=yes" >> $config_mak
1037 1002 echo "#define CONFIG_SLIRP 1" >> $config_h
1038 1003 fi
1039   -if test "$adlib" = "yes" ; then
1040   - echo "CONFIG_ADLIB=yes" >> $config_mak
1041   - echo "#define CONFIG_ADLIB 1" >> $config_h
1042   -fi
1043   -if test "$ac97" = "yes" ; then
1044   - echo "CONFIG_AC97=yes" >> $config_mak
1045   - echo "#define CONFIG_AC97 1" >> $config_h
1046   -fi
1047   -if test "$gus" = "yes" ; then
1048   - echo "CONFIG_GUS=yes" >> $config_mak
1049   - echo "#define CONFIG_GUS 1" >> $config_h
1050   -fi
1051   -if test "$cs4231a" = "yes" ; then
1052   - echo "CONFIG_CS4231A=yes" >> $config_mak
1053   - echo "#define CONFIG_CS4231A 1" >> $config_h
1054   -fi
1055   -if test "$oss" = "yes" ; then
1056   - echo "CONFIG_OSS=yes" >> $config_mak
1057   - echo "#define CONFIG_OSS 1" >> $config_h
1058   -fi
1059   -if test "$coreaudio" = "yes" ; then
1060   - echo "CONFIG_COREAUDIO=yes" >> $config_mak
1061   - echo "#define CONFIG_COREAUDIO 1" >> $config_h
1062   -fi
1063   -if test "$alsa" = "yes" ; then
1064   - echo "CONFIG_ALSA=yes" >> $config_mak
1065   - echo "#define CONFIG_ALSA 1" >> $config_h
1066   -fi
1067   -if test "$esd" = "yes" ; then
1068   - echo "CONFIG_ESD=yes" >> $config_mak
1069   - echo "#define CONFIG_ESD 1" >> $config_h
1070   -fi
1071   -if test "$dsound" = "yes" ; then
1072   - echo "CONFIG_DSOUND=yes" >> $config_mak
1073   - echo "#define CONFIG_DSOUND 1" >> $config_h
1074   -fi
  1004 +for card in $audio_card_list; do
  1005 + def=CONFIG_`echo $card | tr [:lower:] [:upper:]`
  1006 + echo "$def=yes" >> $config_mak
  1007 + echo "#define $def 1" >> $config_h
  1008 +done
  1009 +echo "#define AUDIO_DRIVERS \\" >> $config_h
  1010 +for drv in $audio_drv_list; do
  1011 + echo " &${drv}_audio_driver, \\" >>$config_h
  1012 + def=CONFIG_`echo $drv | tr [:lower:] [:upper:]`
  1013 + echo "$def=yes" >> $config_mak
  1014 + if test "$drv" == "fmod"; then
  1015 + echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
  1016 + echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
  1017 + fi
  1018 +done
  1019 +echo "" >>$config_h
1075 1020 if test "$mixemu" = "yes" ; then
1076 1021 echo "CONFIG_MIXEMU=yes" >> $config_mak
1077 1022 echo "#define CONFIG_MIXEMU 1" >> $config_h
1078 1023 fi
1079   -if test "$fmod" = "yes" ; then
1080   - echo "CONFIG_FMOD=yes" >> $config_mak
1081   - echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1082   - echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1083   - echo "#define CONFIG_FMOD 1" >> $config_h
1084   -fi
1085 1024 if test "$vnc_tls" = "yes" ; then
1086 1025 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1087 1026 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
... ...
qemu-doc.texi
... ... @@ -183,8 +183,8 @@ PCI UHCI USB controller and a virtual USB hub.
183 183 SMP is supported with up to 255 CPUs.
184 184  
185 185 Note that adlib, ac97, gus and cs4231a are only available when QEMU
186   -was configured with --enable-adlib, --enable-ac97, --enable-gus or
187   ---enable-cs4231a respectively.
  186 +was configured with --audio-card-list option containing the name(s) of
  187 +required cards.
188 188  
189 189 QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL
190 190 VGA BIOS.
... ...