mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
audio: use qapi AudioFormat instead of audfmt_e
I had to include an enum for audio sampling formats into qapi, but that meant duplicating the audfmt_e enum. This patch replaces audfmt_e and associated values with the qapi generated AudioFormat enum. This patch is mostly a search-and-replace, except for switches where the qapi generated AUDIO_FORMAT_MAX caused problems. Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-id: 01251b2758a1679c66842120b77c0fb46d7d0eaf.1552083282.git.DirtY.iCE.hu@gmail.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
8c3a7d0087
commit
85bc58520c
26 changed files with 196 additions and 189 deletions
|
@ -87,7 +87,7 @@ struct alsa_params_req {
|
|||
|
||||
struct alsa_params_obt {
|
||||
int freq;
|
||||
audfmt_e fmt;
|
||||
AudioFormat fmt;
|
||||
int endianness;
|
||||
int nchannels;
|
||||
snd_pcm_uframes_t samples;
|
||||
|
@ -294,16 +294,16 @@ static int alsa_write (SWVoiceOut *sw, void *buf, int len)
|
|||
return audio_pcm_sw_write (sw, buf, len);
|
||||
}
|
||||
|
||||
static snd_pcm_format_t aud_to_alsafmt (audfmt_e fmt, int endianness)
|
||||
static snd_pcm_format_t aud_to_alsafmt (AudioFormat fmt, int endianness)
|
||||
{
|
||||
switch (fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
return SND_PCM_FORMAT_S8;
|
||||
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
return SND_PCM_FORMAT_U8;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
if (endianness) {
|
||||
return SND_PCM_FORMAT_S16_BE;
|
||||
}
|
||||
|
@ -311,7 +311,7 @@ static snd_pcm_format_t aud_to_alsafmt (audfmt_e fmt, int endianness)
|
|||
return SND_PCM_FORMAT_S16_LE;
|
||||
}
|
||||
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
if (endianness) {
|
||||
return SND_PCM_FORMAT_U16_BE;
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ static snd_pcm_format_t aud_to_alsafmt (audfmt_e fmt, int endianness)
|
|||
return SND_PCM_FORMAT_U16_LE;
|
||||
}
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
if (endianness) {
|
||||
return SND_PCM_FORMAT_S32_BE;
|
||||
}
|
||||
|
@ -327,7 +327,7 @@ static snd_pcm_format_t aud_to_alsafmt (audfmt_e fmt, int endianness)
|
|||
return SND_PCM_FORMAT_S32_LE;
|
||||
}
|
||||
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
if (endianness) {
|
||||
return SND_PCM_FORMAT_U32_BE;
|
||||
}
|
||||
|
@ -344,58 +344,58 @@ static snd_pcm_format_t aud_to_alsafmt (audfmt_e fmt, int endianness)
|
|||
}
|
||||
}
|
||||
|
||||
static int alsa_to_audfmt (snd_pcm_format_t alsafmt, audfmt_e *fmt,
|
||||
static int alsa_to_audfmt (snd_pcm_format_t alsafmt, AudioFormat *fmt,
|
||||
int *endianness)
|
||||
{
|
||||
switch (alsafmt) {
|
||||
case SND_PCM_FORMAT_S8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S8;
|
||||
*fmt = AUDIO_FORMAT_S8;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_U8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U8;
|
||||
*fmt = AUDIO_FORMAT_U8;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_S16_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_U16_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_S16_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_U16_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_S32_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S32;
|
||||
*fmt = AUDIO_FORMAT_S32;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_U32_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U32;
|
||||
*fmt = AUDIO_FORMAT_U32;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_S32_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_S32;
|
||||
*fmt = AUDIO_FORMAT_S32;
|
||||
break;
|
||||
|
||||
case SND_PCM_FORMAT_U32_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_U32;
|
||||
*fmt = AUDIO_FORMAT_U32;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -638,19 +638,22 @@ static int alsa_open (int in, struct alsa_params_req *req,
|
|||
bytes_per_sec = freq << (nchannels == 2);
|
||||
|
||||
switch (obt->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
break;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
bytes_per_sec <<= 1;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
bytes_per_sec <<= 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
||||
threshold = (conf->threshold * bytes_per_sec) / 1000;
|
||||
|
|
|
@ -113,7 +113,7 @@ static struct {
|
|||
.settings = {
|
||||
.freq = 44100,
|
||||
.nchannels = 2,
|
||||
.fmt = AUD_FMT_S16,
|
||||
.fmt = AUDIO_FORMAT_S16,
|
||||
.endianness = AUDIO_HOST_ENDIANNESS,
|
||||
}
|
||||
},
|
||||
|
@ -125,7 +125,7 @@ static struct {
|
|||
.settings = {
|
||||
.freq = 44100,
|
||||
.nchannels = 2,
|
||||
.fmt = AUD_FMT_S16,
|
||||
.fmt = AUDIO_FORMAT_S16,
|
||||
.endianness = AUDIO_HOST_ENDIANNESS,
|
||||
}
|
||||
},
|
||||
|
@ -257,58 +257,61 @@ static char *audio_alloc_prefix (const char *s)
|
|||
return r;
|
||||
}
|
||||
|
||||
static const char *audio_audfmt_to_string (audfmt_e fmt)
|
||||
static const char *audio_audfmt_to_string (AudioFormat fmt)
|
||||
{
|
||||
switch (fmt) {
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
return "U8";
|
||||
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
return "U16";
|
||||
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
return "S8";
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
return "S16";
|
||||
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
return "U32";
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
return "S32";
|
||||
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
||||
dolog ("Bogus audfmt %d returning S16\n", fmt);
|
||||
return "S16";
|
||||
}
|
||||
|
||||
static audfmt_e audio_string_to_audfmt (const char *s, audfmt_e defval,
|
||||
static AudioFormat audio_string_to_audfmt (const char *s, AudioFormat defval,
|
||||
int *defaultp)
|
||||
{
|
||||
if (!strcasecmp (s, "u8")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_U8;
|
||||
return AUDIO_FORMAT_U8;
|
||||
}
|
||||
else if (!strcasecmp (s, "u16")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_U16;
|
||||
return AUDIO_FORMAT_U16;
|
||||
}
|
||||
else if (!strcasecmp (s, "u32")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_U32;
|
||||
return AUDIO_FORMAT_U32;
|
||||
}
|
||||
else if (!strcasecmp (s, "s8")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_S8;
|
||||
return AUDIO_FORMAT_S8;
|
||||
}
|
||||
else if (!strcasecmp (s, "s16")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_S16;
|
||||
return AUDIO_FORMAT_S16;
|
||||
}
|
||||
else if (!strcasecmp (s, "s32")) {
|
||||
*defaultp = 0;
|
||||
return AUD_FMT_S32;
|
||||
return AUDIO_FORMAT_S32;
|
||||
}
|
||||
else {
|
||||
dolog ("Bogus audio format `%s' using %s\n",
|
||||
|
@ -318,8 +321,8 @@ static audfmt_e audio_string_to_audfmt (const char *s, audfmt_e defval,
|
|||
}
|
||||
}
|
||||
|
||||
static audfmt_e audio_get_conf_fmt (const char *envname,
|
||||
audfmt_e defval,
|
||||
static AudioFormat audio_get_conf_fmt (const char *envname,
|
||||
AudioFormat defval,
|
||||
int *defaultp)
|
||||
{
|
||||
const char *var = getenv (envname);
|
||||
|
@ -421,7 +424,7 @@ static void audio_print_options (const char *prefix,
|
|||
|
||||
case AUD_OPT_FMT:
|
||||
{
|
||||
audfmt_e *fmtp = opt->valp;
|
||||
AudioFormat *fmtp = opt->valp;
|
||||
printf (
|
||||
"format, %s = %s, (one of: U8 S8 U16 S16 U32 S32)\n",
|
||||
state,
|
||||
|
@ -492,7 +495,7 @@ static void audio_process_options (const char *prefix,
|
|||
|
||||
case AUD_OPT_FMT:
|
||||
{
|
||||
audfmt_e *fmtp = opt->valp;
|
||||
AudioFormat *fmtp = opt->valp;
|
||||
*fmtp = audio_get_conf_fmt (optname, *fmtp, &def);
|
||||
}
|
||||
break;
|
||||
|
@ -524,22 +527,22 @@ static void audio_print_settings (struct audsettings *as)
|
|||
dolog ("frequency=%d nchannels=%d fmt=", as->freq, as->nchannels);
|
||||
|
||||
switch (as->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
AUD_log (NULL, "S8");
|
||||
break;
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
AUD_log (NULL, "U8");
|
||||
break;
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
AUD_log (NULL, "S16");
|
||||
break;
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
AUD_log (NULL, "U16");
|
||||
break;
|
||||
case AUD_FMT_S32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
AUD_log (NULL, "S32");
|
||||
break;
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
AUD_log (NULL, "U32");
|
||||
break;
|
||||
default:
|
||||
|
@ -570,12 +573,12 @@ static int audio_validate_settings (struct audsettings *as)
|
|||
invalid |= as->endianness != 0 && as->endianness != 1;
|
||||
|
||||
switch (as->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUD_FMT_U8:
|
||||
case AUD_FMT_S16:
|
||||
case AUD_FMT_U16:
|
||||
case AUD_FMT_S32:
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_S8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
case AUDIO_FORMAT_S16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
case AUDIO_FORMAT_S32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
break;
|
||||
default:
|
||||
invalid = 1;
|
||||
|
@ -591,25 +594,28 @@ static int audio_pcm_info_eq (struct audio_pcm_info *info, struct audsettings *a
|
|||
int bits = 8, sign = 0;
|
||||
|
||||
switch (as->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
sign = 1;
|
||||
/* fall through */
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
break;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
sign = 1;
|
||||
/* fall through */
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
bits = 16;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
sign = 1;
|
||||
/* fall through */
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
bits = 32;
|
||||
break;
|
||||
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
return info->freq == as->freq
|
||||
&& info->nchannels == as->nchannels
|
||||
|
@ -623,24 +629,27 @@ void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as)
|
|||
int bits = 8, sign = 0, shift = 0;
|
||||
|
||||
switch (as->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
sign = 1;
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
break;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
sign = 1;
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
bits = 16;
|
||||
shift = 1;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
sign = 1;
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
bits = 32;
|
||||
shift = 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
||||
info->freq = as->freq;
|
||||
|
|
|
@ -26,18 +26,10 @@
|
|||
#define QEMU_AUDIO_H
|
||||
|
||||
#include "qemu/queue.h"
|
||||
#include "qapi/qapi-types-audio.h"
|
||||
|
||||
typedef void (*audio_callback_fn) (void *opaque, int avail);
|
||||
|
||||
typedef enum {
|
||||
AUD_FMT_U8,
|
||||
AUD_FMT_S8,
|
||||
AUD_FMT_U16,
|
||||
AUD_FMT_S16,
|
||||
AUD_FMT_U32,
|
||||
AUD_FMT_S32
|
||||
} audfmt_e;
|
||||
|
||||
#ifdef HOST_WORDS_BIGENDIAN
|
||||
#define AUDIO_HOST_ENDIANNESS 1
|
||||
#else
|
||||
|
@ -47,7 +39,7 @@ typedef enum {
|
|||
struct audsettings {
|
||||
int freq;
|
||||
int nchannels;
|
||||
audfmt_e fmt;
|
||||
AudioFormat fmt;
|
||||
int endianness;
|
||||
};
|
||||
|
||||
|
|
|
@ -24,20 +24,20 @@ int waveformat_from_audio_settings (WAVEFORMATEX *wfx,
|
|||
wfx->cbSize = 0;
|
||||
|
||||
switch (as->fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
wfx->wBitsPerSample = 8;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
wfx->wBitsPerSample = 16;
|
||||
wfx->nAvgBytesPerSec <<= 1;
|
||||
wfx->nBlockAlign <<= 1;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
wfx->wBitsPerSample = 32;
|
||||
wfx->nAvgBytesPerSec <<= 2;
|
||||
wfx->nBlockAlign <<= 2;
|
||||
|
@ -85,15 +85,15 @@ int waveformat_to_audio_settings (WAVEFORMATEX *wfx,
|
|||
|
||||
switch (wfx->wBitsPerSample) {
|
||||
case 8:
|
||||
as->fmt = AUD_FMT_U8;
|
||||
as->fmt = AUDIO_FORMAT_U8;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
as->fmt = AUD_FMT_S16;
|
||||
as->fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case 32:
|
||||
as->fmt = AUD_FMT_S32;
|
||||
as->fmt = AUDIO_FORMAT_S32;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -70,7 +70,7 @@ typedef struct OSSVoiceIn {
|
|||
|
||||
struct oss_params {
|
||||
int freq;
|
||||
audfmt_e fmt;
|
||||
AudioFormat fmt;
|
||||
int nchannels;
|
||||
int nfrags;
|
||||
int fragsize;
|
||||
|
@ -148,16 +148,16 @@ 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, int endianness)
|
||||
static int aud_to_ossfmt (AudioFormat fmt, int endianness)
|
||||
{
|
||||
switch (fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
return AFMT_S8;
|
||||
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
return AFMT_U8;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
if (endianness) {
|
||||
return AFMT_S16_BE;
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ static int aud_to_ossfmt (audfmt_e fmt, int endianness)
|
|||
return AFMT_S16_LE;
|
||||
}
|
||||
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
if (endianness) {
|
||||
return AFMT_U16_BE;
|
||||
}
|
||||
|
@ -182,37 +182,37 @@ static int aud_to_ossfmt (audfmt_e fmt, int endianness)
|
|||
}
|
||||
}
|
||||
|
||||
static int oss_to_audfmt (int ossfmt, audfmt_e *fmt, int *endianness)
|
||||
static int oss_to_audfmt (int ossfmt, AudioFormat *fmt, int *endianness)
|
||||
{
|
||||
switch (ossfmt) {
|
||||
case AFMT_S8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S8;
|
||||
*fmt = AUDIO_FORMAT_S8;
|
||||
break;
|
||||
|
||||
case AFMT_U8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U8;
|
||||
*fmt = AUDIO_FORMAT_U8;
|
||||
break;
|
||||
|
||||
case AFMT_S16_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case AFMT_U16_LE:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
case AFMT_S16_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case AFMT_U16_BE:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -500,7 +500,7 @@ static int oss_init_out(HWVoiceOut *hw, struct audsettings *as,
|
|||
int endianness;
|
||||
int err;
|
||||
int fd;
|
||||
audfmt_e effective_fmt;
|
||||
AudioFormat effective_fmt;
|
||||
struct audsettings obt_as;
|
||||
OSSConf *conf = drv_opaque;
|
||||
|
||||
|
@ -667,7 +667,7 @@ static int oss_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
|
|||
int endianness;
|
||||
int err;
|
||||
int fd;
|
||||
audfmt_e effective_fmt;
|
||||
AudioFormat effective_fmt;
|
||||
struct audsettings obt_as;
|
||||
OSSConf *conf = drv_opaque;
|
||||
|
||||
|
|
|
@ -385,21 +385,21 @@ static int qpa_read (SWVoiceIn *sw, void *buf, int len)
|
|||
return audio_pcm_sw_read (sw, buf, len);
|
||||
}
|
||||
|
||||
static pa_sample_format_t audfmt_to_pa (audfmt_e afmt, int endianness)
|
||||
static pa_sample_format_t audfmt_to_pa (AudioFormat afmt, int endianness)
|
||||
{
|
||||
int format;
|
||||
|
||||
switch (afmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
format = PA_SAMPLE_U8;
|
||||
break;
|
||||
case AUD_FMT_S16:
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
format = endianness ? PA_SAMPLE_S16BE : PA_SAMPLE_S16LE;
|
||||
break;
|
||||
case AUD_FMT_S32:
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
format = endianness ? PA_SAMPLE_S32BE : PA_SAMPLE_S32LE;
|
||||
break;
|
||||
default:
|
||||
|
@ -410,26 +410,26 @@ static pa_sample_format_t audfmt_to_pa (audfmt_e afmt, int endianness)
|
|||
return format;
|
||||
}
|
||||
|
||||
static audfmt_e pa_to_audfmt (pa_sample_format_t fmt, int *endianness)
|
||||
static AudioFormat pa_to_audfmt (pa_sample_format_t fmt, int *endianness)
|
||||
{
|
||||
switch (fmt) {
|
||||
case PA_SAMPLE_U8:
|
||||
return AUD_FMT_U8;
|
||||
return AUDIO_FORMAT_U8;
|
||||
case PA_SAMPLE_S16BE:
|
||||
*endianness = 1;
|
||||
return AUD_FMT_S16;
|
||||
return AUDIO_FORMAT_S16;
|
||||
case PA_SAMPLE_S16LE:
|
||||
*endianness = 0;
|
||||
return AUD_FMT_S16;
|
||||
return AUDIO_FORMAT_S16;
|
||||
case PA_SAMPLE_S32BE:
|
||||
*endianness = 1;
|
||||
return AUD_FMT_S32;
|
||||
return AUDIO_FORMAT_S32;
|
||||
case PA_SAMPLE_S32LE:
|
||||
*endianness = 0;
|
||||
return AUD_FMT_S32;
|
||||
return AUDIO_FORMAT_S32;
|
||||
default:
|
||||
dolog ("Internal logic error: Bad pa_sample_format %d\n", fmt);
|
||||
return AUD_FMT_U8;
|
||||
return AUDIO_FORMAT_U8;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -68,19 +68,19 @@ static void GCC_FMT_ATTR (1, 2) sdl_logerr (const char *fmt, ...)
|
|||
AUD_log (AUDIO_CAP, "Reason: %s\n", SDL_GetError ());
|
||||
}
|
||||
|
||||
static int aud_to_sdlfmt (audfmt_e fmt)
|
||||
static int aud_to_sdlfmt (AudioFormat fmt)
|
||||
{
|
||||
switch (fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
return AUDIO_S8;
|
||||
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
return AUDIO_U8;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
return AUDIO_S16LSB;
|
||||
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
return AUDIO_U16LSB;
|
||||
|
||||
default:
|
||||
|
@ -92,37 +92,37 @@ static int aud_to_sdlfmt (audfmt_e fmt)
|
|||
}
|
||||
}
|
||||
|
||||
static int sdl_to_audfmt(int sdlfmt, audfmt_e *fmt, int *endianness)
|
||||
static int sdl_to_audfmt(int sdlfmt, AudioFormat *fmt, int *endianness)
|
||||
{
|
||||
switch (sdlfmt) {
|
||||
case AUDIO_S8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S8;
|
||||
*fmt = AUDIO_FORMAT_S8;
|
||||
break;
|
||||
|
||||
case AUDIO_U8:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U8;
|
||||
*fmt = AUDIO_FORMAT_U8;
|
||||
break;
|
||||
|
||||
case AUDIO_S16LSB:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case AUDIO_U16LSB:
|
||||
*endianness = 0;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
case AUDIO_S16MSB:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_S16;
|
||||
*fmt = AUDIO_FORMAT_S16;
|
||||
break;
|
||||
|
||||
case AUDIO_U16MSB:
|
||||
*endianness = 1;
|
||||
*fmt = AUD_FMT_U16;
|
||||
*fmt = AUDIO_FORMAT_U16;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -265,7 +265,7 @@ static int sdl_init_out(HWVoiceOut *hw, struct audsettings *as,
|
|||
SDL_AudioSpec req, obt;
|
||||
int endianness;
|
||||
int err;
|
||||
audfmt_e effective_fmt;
|
||||
AudioFormat effective_fmt;
|
||||
struct audsettings obt_as;
|
||||
|
||||
req.freq = as->freq;
|
||||
|
|
|
@ -130,7 +130,7 @@ static int line_out_init(HWVoiceOut *hw, struct audsettings *as,
|
|||
settings.freq = SPICE_INTERFACE_PLAYBACK_FREQ;
|
||||
#endif
|
||||
settings.nchannels = SPICE_INTERFACE_PLAYBACK_CHAN;
|
||||
settings.fmt = AUD_FMT_S16;
|
||||
settings.fmt = AUDIO_FORMAT_S16;
|
||||
settings.endianness = AUDIO_HOST_ENDIANNESS;
|
||||
|
||||
audio_pcm_init_info (&hw->info, &settings);
|
||||
|
@ -258,7 +258,7 @@ static int line_in_init(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
|
|||
settings.freq = SPICE_INTERFACE_RECORD_FREQ;
|
||||
#endif
|
||||
settings.nchannels = SPICE_INTERFACE_RECORD_CHAN;
|
||||
settings.fmt = AUD_FMT_S16;
|
||||
settings.fmt = AUDIO_FORMAT_S16;
|
||||
settings.endianness = AUDIO_HOST_ENDIANNESS;
|
||||
|
||||
audio_pcm_init_info (&hw->info, &settings);
|
||||
|
|
|
@ -117,20 +117,23 @@ static int wav_init_out(HWVoiceOut *hw, struct audsettings *as,
|
|||
|
||||
stereo = wav_as.nchannels == 2;
|
||||
switch (wav_as.fmt) {
|
||||
case AUD_FMT_S8:
|
||||
case AUD_FMT_U8:
|
||||
case AUDIO_FORMAT_S8:
|
||||
case AUDIO_FORMAT_U8:
|
||||
bits16 = 0;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S16:
|
||||
case AUD_FMT_U16:
|
||||
case AUDIO_FORMAT_S16:
|
||||
case AUDIO_FORMAT_U16:
|
||||
bits16 = 1;
|
||||
break;
|
||||
|
||||
case AUD_FMT_S32:
|
||||
case AUD_FMT_U32:
|
||||
case AUDIO_FORMAT_S32:
|
||||
case AUDIO_FORMAT_U32:
|
||||
dolog ("WAVE files can not handle 32bit formats\n");
|
||||
return -1;
|
||||
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
||||
hdr[34] = bits16 ? 0x10 : 0x08;
|
||||
|
@ -225,7 +228,7 @@ static int wav_ctl_out (HWVoiceOut *hw, int cmd, ...)
|
|||
static WAVConf glob_conf = {
|
||||
.settings.freq = 44100,
|
||||
.settings.nchannels = 2,
|
||||
.settings.fmt = AUD_FMT_S16,
|
||||
.settings.fmt = AUDIO_FORMAT_S16,
|
||||
.wav_path = "qemu.wav"
|
||||
};
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ int wav_start_capture (CaptureState *s, const char *path, int freq,
|
|||
|
||||
as.freq = freq;
|
||||
as.nchannels = 1 << stereo;
|
||||
as.fmt = bits16 ? AUD_FMT_S16 : AUD_FMT_U8;
|
||||
as.fmt = bits16 ? AUDIO_FORMAT_S16 : AUDIO_FORMAT_U8;
|
||||
as.endianness = 0;
|
||||
|
||||
ops.notify = wav_notify;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue