mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-15 15:32:51 +00:00
audio: remove remains of the old backend api
Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com> Message-id: 497decab6d0f0fb9529bea63ec7ce0bd7b553038.1568927990.git.DirtY.iCE.hu@gmail.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
ef3612e11b
commit
3f5bbfc25a
|
@ -541,7 +541,7 @@ static size_t audio_pcm_hw_find_min_in (HWVoiceIn *hw)
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t audio_pcm_hw_get_live_in(HWVoiceIn *hw)
|
static size_t audio_pcm_hw_get_live_in(HWVoiceIn *hw)
|
||||||
{
|
{
|
||||||
size_t live = hw->total_samples_captured - audio_pcm_hw_find_min_in (hw);
|
size_t live = hw->total_samples_captured - audio_pcm_hw_find_min_in (hw);
|
||||||
if (audio_bug(__func__, live > hw->samples)) {
|
if (audio_bug(__func__, live > hw->samples)) {
|
||||||
|
@ -551,29 +551,7 @@ size_t audio_pcm_hw_get_live_in(HWVoiceIn *hw)
|
||||||
return live;
|
return live;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t audio_pcm_hw_clip_out(HWVoiceOut *hw, void *pcm_buf,
|
static void audio_pcm_hw_clip_out(HWVoiceOut *hw, void *pcm_buf, size_t len)
|
||||||
size_t live, size_t pending)
|
|
||||||
{
|
|
||||||
size_t left = hw->samples - pending;
|
|
||||||
size_t len = MIN (left, live);
|
|
||||||
size_t clipped = 0;
|
|
||||||
|
|
||||||
while (len) {
|
|
||||||
struct st_sample *src = hw->mix_buf + hw->rpos;
|
|
||||||
uint8_t *dst = advance (pcm_buf, hw->rpos << hw->info.shift);
|
|
||||||
size_t samples_till_end_of_buf = hw->samples - hw->rpos;
|
|
||||||
size_t samples_to_clip = MIN (len, samples_till_end_of_buf);
|
|
||||||
|
|
||||||
hw->clip (dst, src, samples_to_clip);
|
|
||||||
|
|
||||||
hw->rpos = (hw->rpos + samples_to_clip) % hw->samples;
|
|
||||||
len -= samples_to_clip;
|
|
||||||
clipped += samples_to_clip;
|
|
||||||
}
|
|
||||||
return clipped;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void audio_pcm_hw_clip_out2(HWVoiceOut *hw, void *pcm_buf, size_t len)
|
|
||||||
{
|
{
|
||||||
size_t clipped = 0;
|
size_t clipped = 0;
|
||||||
size_t pos = hw->rpos;
|
size_t pos = hw->rpos;
|
||||||
|
@ -1083,7 +1061,7 @@ static size_t audio_pcm_hw_run_out(HWVoiceOut *hw, size_t live)
|
||||||
}
|
}
|
||||||
|
|
||||||
decr = MIN(size >> hw->info.shift, live);
|
decr = MIN(size >> hw->info.shift, live);
|
||||||
audio_pcm_hw_clip_out2(hw, buf, decr);
|
audio_pcm_hw_clip_out(hw, buf, decr);
|
||||||
proc = hw->pcm_ops->put_buffer_out(hw, buf, decr << hw->info.shift) >>
|
proc = hw->pcm_ops->put_buffer_out(hw, buf, decr << hw->info.shift) >>
|
||||||
hw->info.shift;
|
hw->info.shift;
|
||||||
|
|
||||||
|
@ -1146,11 +1124,7 @@ static void audio_run_out (AudioState *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
prev_rpos = hw->rpos;
|
prev_rpos = hw->rpos;
|
||||||
if (hw->pcm_ops->run_out) {
|
played = audio_pcm_hw_run_out(hw, live);
|
||||||
played = hw->pcm_ops->run_out(hw, live);
|
|
||||||
} else {
|
|
||||||
played = audio_pcm_hw_run_out(hw, live);
|
|
||||||
}
|
|
||||||
replay_audio_out(&played);
|
replay_audio_out(&played);
|
||||||
if (audio_bug(__func__, hw->rpos >= hw->samples)) {
|
if (audio_bug(__func__, hw->rpos >= hw->samples)) {
|
||||||
dolog("hw->rpos=%zu hw->samples=%zu played=%zu\n",
|
dolog("hw->rpos=%zu hw->samples=%zu played=%zu\n",
|
||||||
|
@ -1247,12 +1221,8 @@ static void audio_run_in (AudioState *s)
|
||||||
size_t captured = 0, min;
|
size_t captured = 0, min;
|
||||||
|
|
||||||
if (replay_mode != REPLAY_MODE_PLAY) {
|
if (replay_mode != REPLAY_MODE_PLAY) {
|
||||||
if (hw->pcm_ops->run_in) {
|
captured = audio_pcm_hw_run_in(
|
||||||
captured = hw->pcm_ops->run_in(hw);
|
hw, hw->samples - audio_pcm_hw_get_live_in(hw));
|
||||||
} else {
|
|
||||||
captured = audio_pcm_hw_run_in(
|
|
||||||
hw, hw->samples - audio_pcm_hw_get_live_in(hw));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
replay_audio_in(&captured, hw->conv_buf, &hw->wpos, hw->samples);
|
replay_audio_in(&captured, hw->conv_buf, &hw->wpos, hw->samples);
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,6 @@ struct audio_driver {
|
||||||
struct audio_pcm_ops {
|
struct audio_pcm_ops {
|
||||||
int (*init_out)(HWVoiceOut *hw, audsettings *as, void *drv_opaque);
|
int (*init_out)(HWVoiceOut *hw, audsettings *as, void *drv_opaque);
|
||||||
void (*fini_out)(HWVoiceOut *hw);
|
void (*fini_out)(HWVoiceOut *hw);
|
||||||
size_t (*run_out)(HWVoiceOut *hw, size_t live);
|
|
||||||
size_t (*write) (HWVoiceOut *hw, void *buf, size_t size);
|
size_t (*write) (HWVoiceOut *hw, void *buf, size_t size);
|
||||||
/*
|
/*
|
||||||
* get a buffer that after later can be passed to put_buffer_out; optional
|
* get a buffer that after later can be passed to put_buffer_out; optional
|
||||||
|
@ -171,7 +170,6 @@ struct audio_pcm_ops {
|
||||||
|
|
||||||
int (*init_in) (HWVoiceIn *hw, audsettings *as, void *drv_opaque);
|
int (*init_in) (HWVoiceIn *hw, audsettings *as, void *drv_opaque);
|
||||||
void (*fini_in) (HWVoiceIn *hw);
|
void (*fini_in) (HWVoiceIn *hw);
|
||||||
size_t (*run_in)(HWVoiceIn *hw);
|
|
||||||
size_t (*read) (HWVoiceIn *hw, void *buf, size_t size);
|
size_t (*read) (HWVoiceIn *hw, void *buf, size_t size);
|
||||||
void *(*get_buffer_in)(HWVoiceIn *hw, size_t *size);
|
void *(*get_buffer_in)(HWVoiceIn *hw, size_t *size);
|
||||||
void (*put_buffer_in)(HWVoiceIn *hw, void *buf, size_t size);
|
void (*put_buffer_in)(HWVoiceIn *hw, void *buf, size_t size);
|
||||||
|
@ -237,11 +235,6 @@ audio_driver *audio_driver_lookup(const char *name);
|
||||||
void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as);
|
void audio_pcm_init_info (struct audio_pcm_info *info, struct audsettings *as);
|
||||||
void audio_pcm_info_clear_buf (struct audio_pcm_info *info, void *buf, int len);
|
void audio_pcm_info_clear_buf (struct audio_pcm_info *info, void *buf, int len);
|
||||||
|
|
||||||
size_t audio_pcm_hw_get_live_in(HWVoiceIn *hw);
|
|
||||||
|
|
||||||
size_t audio_pcm_hw_clip_out(HWVoiceOut *hw, void *pcm_buf,
|
|
||||||
size_t live, size_t pending);
|
|
||||||
|
|
||||||
int audio_bug (const char *funcname, int cond);
|
int audio_bug (const char *funcname, int cond);
|
||||||
void *audio_calloc (const char *funcname, int nmemb, size_t size);
|
void *audio_calloc (const char *funcname, int nmemb, size_t size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue