From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=57757 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pbc3H-0005ER-Bg for qemu-devel@nongnu.org; Sat, 08 Jan 2011 11:54:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pbc3B-0007bh-Nc for qemu-devel@nongnu.org; Sat, 08 Jan 2011 11:54:03 -0500 Received: from mail.serverraum.org ([78.47.150.89]:45336) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pbc3B-0007bH-It for qemu-devel@nongnu.org; Sat, 08 Jan 2011 11:53:57 -0500 From: Michael Walle Date: Sat, 8 Jan 2011 17:53:29 +0100 Message-Id: <1294505610-20187-1-git-send-email-michael@walle.cc> In-Reply-To: References: Subject: [Qemu-devel] [PATCH 1/2] ossaudio: add endianness support for VoiceIn List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Michael Walle Signed-off-by: Michael Walle --- audio/ossaudio.c | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-) diff --git a/audio/ossaudio.c b/audio/ossaudio.c index 42bffae..cfa8f99 100644 --- a/audio/ossaudio.c +++ b/audio/ossaudio.c @@ -161,7 +161,7 @@ static int oss_write (SWVoiceOut *sw, void *buf, int len) return audio_pcm_sw_write (sw, buf, len); } -static int aud_to_ossfmt (audfmt_e fmt) +static int aud_to_ossfmt (audfmt_e fmt, int endianness) { switch (fmt) { case AUD_FMT_S8: @@ -171,10 +171,18 @@ static int aud_to_ossfmt (audfmt_e fmt) return AFMT_U8; case AUD_FMT_S16: - return AFMT_S16_LE; + if (endianness) { + return AFMT_S16_BE; + } else { + return AFMT_S16_LE; + } case AUD_FMT_U16: - return AFMT_U16_LE; + if (endianness) { + return AFMT_U16_BE; + } else { + return AFMT_U16_LE; + } default: dolog ("Internal logic error: Bad audio format %d\n", fmt); @@ -516,7 +524,7 @@ static int oss_init_out (HWVoiceOut *hw, struct audsettings *as) oss->fd = -1; - req.fmt = aud_to_ossfmt (as->fmt); + req.fmt = aud_to_ossfmt (as->fmt, as->endianness); req.freq = as->freq; req.nchannels = as->nchannels; req.fragsize = conf.fragsize; @@ -682,7 +690,7 @@ static int oss_init_in (HWVoiceIn *hw, struct audsettings *as) oss->fd = -1; - req.fmt = aud_to_ossfmt (as->fmt); + req.fmt = aud_to_ossfmt (as->fmt, as->endianness); req.freq = as->freq; req.nchannels = as->nchannels; req.fragsize = conf.fragsize; -- 1.7.2.3