Commit 0c58ac1c76603ce639e419cedd16cfcdcd813045
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
Showing
3 changed files
with
37 additions
and
118 deletions
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. | ... | ... |