From patchwork Tue Mar 13 15:20:58 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 146430 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 8FB03B6EEA for ; Wed, 14 Mar 2012 02:22:26 +1100 (EST) Received: from localhost ([::1]:39511 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7TYN-0002hw-74 for incoming@patchwork.ozlabs.org; Tue, 13 Mar 2012 11:22:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37847) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7TY0-0002GD-Ve for qemu-devel@nongnu.org; Tue, 13 Mar 2012 11:22:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7TXu-0003Iu-8t for qemu-devel@nongnu.org; Tue, 13 Mar 2012 11:22:00 -0400 Received: from mail-ey0-f173.google.com ([209.85.215.173]:37138) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7TXt-00038q-QF for qemu-devel@nongnu.org; Tue, 13 Mar 2012 11:21:54 -0400 Received: by mail-ey0-f173.google.com with SMTP id f11so352200eaa.4 for ; Tue, 13 Mar 2012 08:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=ZozMPQK0RpcnouXjiKFRj3bKCBdWzuE0FqZ3VYm65xY=; b=wRpymayJa9xve1AQJ48BgYHv/HRbwW1oQSrbFwUdMLH2RNg36/haMR189EkZzhIFl2 YPas9afbuCLKux6VpI8m3EPDdkmS22S44omDFcJPGGXQaT0fiypN+xaLg9MQ19F7jjsU Uzhxb3YFWUrFrwg4ud5RBnxgGr4w9I4pmE6ELGf3RmKX5OvmfVX3sXovEFt3R/BrYTIf Z/aIOViFyfbKSLBWbrT+QR6y9Um3s2kEByyhOGddta4DEhC50EZUem5BTgrZ3JhBAl0P mpzMkIc8UOwNq+HH3snPwWnJAC9jc1BNjwITtLSzF8t4YG8Saw9nV749cPQsXeQVKhHh Pahg== Received: by 10.14.127.76 with SMTP id c52mr2619724eei.37.1331652112903; Tue, 13 Mar 2012 08:21:52 -0700 (PDT) Received: from localhost (254.pool85-58-48.dynamic.orange.es. [85.58.48.254]) by mx.google.com with ESMTPS id n56sm2982167eeb.4.2012.03.13.08.21.50 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 13 Mar 2012 08:21:52 -0700 (PDT) From: "=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?=" To: qemu-devel@nongnu.org Date: Tue, 13 Mar 2012 16:20:58 +0100 Message-Id: <1331652059-10090-11-git-send-email-marcandre.lureau@redhat.com> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <1331652059-10090-1-git-send-email-marcandre.lureau@redhat.com> References: <1331652059-10090-1-git-send-email-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.215.173 Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , dnb@redhat.com, dlaor@redhat.com, kraxel@redhat.com Subject: [Qemu-devel] [PATCH v4 10/11] Enable mixemu by default, add runtime option X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Without MIXEMU, volume control on the guest doesn't work (except when volume is applied by guest "emulation", in Win7 for example). Instead rely on backend volume support, or fallback on mixeng if backend doesn't support volume control, except if mixemu is disabled with QEMU_MIXEMU=0. Signed-off-by: Marc-André Lureau --- audio/audio.c | 10 +++++++++- audio/mixeng.c | 6 ------ configure | 8 -------- hw/hda-audio.c | 4 ---- 4 files changed, 9 insertions(+), 19 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index bd9237e..bb94133 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -70,6 +70,7 @@ static struct { int log_to_monitor; int try_poll_in; int try_poll_out; + int mixemu; } conf = { .fixed_out = { /* DAC fixed settings */ .enabled = 1, @@ -100,6 +101,7 @@ static struct { .log_to_monitor = 0, .try_poll_in = 1, .try_poll_out = 1, + .mixemu = 1, }; static AudioState glob_audio_state; @@ -1044,7 +1046,7 @@ int audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int size) if (swlim) { sw->conv (sw->buf, buf, swlim); - if (!(sw->hw->ctl_caps & VOICE_VOLUME_CAP)) { + if (!(sw->hw->ctl_caps & VOICE_VOLUME_CAP) && conf.mixemu) { mixeng_volume (sw->buf, swlim, &sw->vol); } } @@ -1657,6 +1659,12 @@ static struct audio_option audio_options[] = { .valp = &conf.log_to_monitor, .descr = "Print logging messages to monitor instead of stderr" }, + { + .name = "MIXEMU", + .tag = AUD_OPT_BOOL, + .valp = &conf.mixemu, + .descr = "Enable mixer emulation (1 - enabled, 0 - disabled)" + }, { /* End of list */ } }; diff --git a/audio/mixeng.c b/audio/mixeng.c index 5446be6..0b060e3 100644 --- a/audio/mixeng.c +++ b/audio/mixeng.c @@ -336,7 +336,6 @@ void mixeng_clear (struct st_sample *buf, int len) void mixeng_volume (struct st_sample *buf, int len, struct mixeng_volume *vol) { -#ifdef CONFIG_MIXEMU if (vol->mute) { mixeng_clear (buf, len); return; @@ -352,9 +351,4 @@ void mixeng_volume (struct st_sample *buf, int len, struct mixeng_volume *vol) #endif buf += 1; } -#else - (void) buf; - (void) len; - (void) vol; -#endif } diff --git a/configure b/configure index 160bf63..09fc408 100755 --- a/configure +++ b/configure @@ -177,7 +177,6 @@ darwin_user="no" bsd_user="no" guest_base="" uname_release="" -mixemu="no" aix="no" blobs="yes" pkgversion="" @@ -770,8 +769,6 @@ for opt do ;; --enable-nptl) nptl="yes" ;; - --enable-mixemu) mixemu="yes" - ;; --disable-linux-aio) linux_aio="no" ;; --enable-linux-aio) linux_aio="yes" @@ -1028,7 +1025,6 @@ echo " --audio-card-list=LIST set list of emulated audio cards [$audio_card_l echo " Available cards: $audio_possible_cards" echo " --block-drv-whitelist=L set block driver whitelist" echo " (affects only QEMU, not qemu-img)" -echo " --enable-mixemu enable mixer emulation" echo " --disable-xen disable xen backend driver support" echo " --enable-xen enable xen backend driver support" echo " --disable-brlapi disable BrlAPI" @@ -2885,7 +2881,6 @@ echo "mingw32 support $mingw32" echo "Audio drivers $audio_drv_list" echo "Extra audio cards $audio_card_list" echo "Block whitelist $block_drv_whitelist" -echo "Mixer emulation $mixemu" echo "VirtFS support $virtfs" echo "VNC support $vnc" if test "$vnc" = "yes" ; then @@ -3047,9 +3042,6 @@ if test "$audio_win_int" = "yes" ; then echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak fi echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak -if test "$mixemu" = "yes" ; then - echo "CONFIG_MIXEMU=y" >> $config_host_mak -fi if test "$vnc" = "yes" ; then echo "CONFIG_VNC=y" >> $config_host_mak fi diff --git a/hw/hda-audio.c b/hw/hda-audio.c index 8995519..75f1402 100644 --- a/hw/hda-audio.c +++ b/hw/hda-audio.c @@ -121,15 +121,11 @@ static void hda_codec_parse_fmt(uint32_t format, struct audsettings *as) #define QEMU_HDA_AMP_NONE (0) #define QEMU_HDA_AMP_STEPS 0x4a -#ifdef CONFIG_MIXEMU #define QEMU_HDA_AMP_CAPS \ (AC_AMPCAP_MUTE | \ (QEMU_HDA_AMP_STEPS << AC_AMPCAP_OFFSET_SHIFT) | \ (QEMU_HDA_AMP_STEPS << AC_AMPCAP_NUM_STEPS_SHIFT) | \ (3 << AC_AMPCAP_STEP_SIZE_SHIFT)) -#else -#define QEMU_HDA_AMP_CAPS QEMU_HDA_AMP_NONE -#endif /* common: audio output widget */ static const desc_param common_params_audio_dac[] = {