projects
/
qemu
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of /home/nchip/public_html/qemu into garage-push
[qemu]
/
audio
/
esdaudio.c
diff --git
a/audio/esdaudio.c
b/audio/esdaudio.c
index
fa42348
..
0102c5a
100644
(file)
--- a/
audio/esdaudio.c
+++ b/
audio/esdaudio.c
@@
-84,6
+84,10
@@
static void *qesd_thread_out (void *arg)
threshold = conf.divisor ? hw->samples / conf.divisor : 0;
threshold = conf.divisor ? hw->samples / conf.divisor : 0;
+ if (audio_pt_lock (&esd->pt, AUDIO_FUNC)) {
+ return NULL;
+ }
+
for (;;) {
int decr, to_mix, rpos;
for (;;) {
int decr, to_mix, rpos;
@@
-111,7
+115,7
@@
static void *qesd_thread_out (void *arg)
while (to_mix) {
ssize_t written;
int chunk = audio_MIN (to_mix, hw->samples - rpos);
while (to_mix) {
ssize_t written;
int chunk = audio_MIN (to_mix, hw->samples - rpos);
- st_sample_t *src = hw->mix_buf + rpos;
+ struct st_sample *src = hw->mix_buf + rpos;
hw->clip (esd->pcm_buf, src, chunk);
hw->clip (esd->pcm_buf, src, chunk);
@@
-184,10
+188,10
@@
static int qesd_write (SWVoiceOut *sw, void *buf, int len)
return audio_pcm_sw_write (sw, buf, len);
}
return audio_pcm_sw_write (sw, buf, len);
}
-static int qesd_init_out (HWVoiceOut *hw, audsettings_t *as)
+static int qesd_init_out (HWVoiceOut *hw, struct audsettings *as)
{
ESDVoiceOut *esd = (ESDVoiceOut *) hw;
{
ESDVoiceOut *esd = (ESDVoiceOut *) hw;
- audsettings_t obt_as = *as;
+ struct audsettings obt_as = *as;
int esdfmt = ESD_STREAM | ESD_PLAY;
int err;
sigset_t set, old_set;
int esdfmt = ESD_STREAM | ESD_PLAY;
int err;
sigset_t set, old_set;
@@
-215,13
+219,10
@@
static int qesd_init_out (HWVoiceOut *hw, audsettings_t *as)
default:
dolog ("Internal logic error: Bad audio format %d\n", as->fmt);
default:
dolog ("Internal logic error: Bad audio format %d\n", as->fmt);
-#ifdef DEBUG_FMOD
- abort ();
-#endif
goto deffmt;
}
goto deffmt;
}
- obt_as.endianness = 0;
+ obt_as.endianness = AUDIO_HOST_ENDIANNESS;
audio_pcm_init_info (&hw->info, &obt_as);
audio_pcm_init_info (&hw->info, &obt_as);
@@
-315,6
+316,10
@@
static void *qesd_thread_in (void *arg)
threshold = conf.divisor ? hw->samples / conf.divisor : 0;
threshold = conf.divisor ? hw->samples / conf.divisor : 0;
+ if (audio_pt_lock (&esd->pt, AUDIO_FUNC)) {
+ return NULL;
+ }
+
for (;;) {
int incr, to_grab, wpos;
for (;;) {
int incr, to_grab, wpos;
@@
-416,10
+421,10
@@
static int qesd_read (SWVoiceIn *sw, void *buf, int len)
return audio_pcm_sw_read (sw, buf, len);
}
return audio_pcm_sw_read (sw, buf, len);
}
-static int qesd_init_in (HWVoiceIn *hw, audsettings_t *as)
+static int qesd_init_in (HWVoiceIn *hw, struct audsettings *as)
{
ESDVoiceIn *esd = (ESDVoiceIn *) hw;
{
ESDVoiceIn *esd = (ESDVoiceIn *) hw;
- audsettings_t obt_as = *as;
+ struct audsettings obt_as = *as;
int esdfmt = ESD_STREAM | ESD_RECORD;
int err;
sigset_t set, old_set;
int esdfmt = ESD_STREAM | ESD_RECORD;
int err;
sigset_t set, old_set;
@@
-447,7
+452,7
@@
static int qesd_init_in (HWVoiceIn *hw, audsettings_t *as)
obt_as.fmt = AUD_FMT_S16;
break;
}
obt_as.fmt = AUD_FMT_S16;
break;
}
- obt_as.endianness = 0;
+ obt_as.endianness = AUDIO_HOST_ENDIANNESS;
audio_pcm_init_info (&hw->info, &obt_as);
audio_pcm_init_info (&hw->info, &obt_as);
@@
-561,7
+566,7
@@
struct audio_option qesd_options[] = {
{NULL, 0, NULL, NULL, NULL, 0}
};
{NULL, 0, NULL, NULL, NULL, 0}
};
-struct audio_pcm_ops qesd_pcm_ops = {
+static struct audio_pcm_ops qesd_pcm_ops = {
qesd_init_out,
qesd_fini_out,
qesd_run_out,
qesd_init_out,
qesd_fini_out,
qesd_run_out,