diff mbox series

[10/11] audio: remove read and write pcm_ops

Message ID 0b7207b7ef4db3a894e9dbdefe4a007d8a19709c.1562695780.git.DirtY.iCE.hu@gmail.com
State New
Headers show
Series Multiple simultaneous audio backends | expand

Commit Message

=?UTF-8?B?Wm9sdMOhbiBLxZF2w6Fnw7M=?= July 9, 2019, 6:35 p.m. UTC
They just called audio_pcm_sw_read/write anyway, so it makes no sense
to have them too.  (The noaudio's read is the only exception, but it
should work with the generic code too.)

Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
---
 audio/audio_int.h   |  5 -----
 audio/alsaaudio.c   | 12 ------------
 audio/audio.c       |  8 ++++----
 audio/coreaudio.c   |  6 ------
 audio/dsoundaudio.c | 12 ------------
 audio/noaudio.c     | 19 -------------------
 audio/ossaudio.c    | 12 ------------
 audio/paaudio.c     | 12 ------------
 audio/sdlaudio.c    |  6 ------
 audio/spiceaudio.c  | 12 ------------
 audio/wavaudio.c    |  6 ------
 11 files changed, 4 insertions(+), 106 deletions(-)

Comments

Marc-André Lureau July 10, 2019, 7:57 p.m. UTC | #1
On Tue, Jul 9, 2019 at 10:57 PM Kővágó, Zoltán <dirty.ice.hu@gmail.com> wrote:
>
> They just called audio_pcm_sw_read/write anyway, so it makes no sense
> to have them too.  (The noaudio's read is the only exception, but it
> should work with the generic code too.)

It works with the generic code, but wouldn't it be more expensive?

Perhaps there can be something in audio_pcm_sw_write() to skip the
work if noaudio is the backend?

>
> Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
> ---
>  audio/audio_int.h   |  5 -----
>  audio/alsaaudio.c   | 12 ------------
>  audio/audio.c       |  8 ++++----
>  audio/coreaudio.c   |  6 ------
>  audio/dsoundaudio.c | 12 ------------
>  audio/noaudio.c     | 19 -------------------
>  audio/ossaudio.c    | 12 ------------
>  audio/paaudio.c     | 12 ------------
>  audio/sdlaudio.c    |  6 ------
>  audio/spiceaudio.c  | 12 ------------
>  audio/wavaudio.c    |  6 ------
>  11 files changed, 4 insertions(+), 106 deletions(-)
>
> diff --git a/audio/audio_int.h b/audio/audio_int.h
> index 7e00c1332e..003b7ab8cc 100644
> --- a/audio/audio_int.h
> +++ b/audio/audio_int.h
> @@ -150,13 +150,11 @@ struct audio_pcm_ops {
>      int  (*init_out)(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque);
>      void (*fini_out)(HWVoiceOut *hw);
>      int  (*run_out) (HWVoiceOut *hw, int live);
> -    int  (*write)   (SWVoiceOut *sw, void *buf, int size);
>      int  (*ctl_out) (HWVoiceOut *hw, int cmd, ...);
>
>      int  (*init_in) (HWVoiceIn *hw, struct audsettings *as, void *drv_opaque);
>      void (*fini_in) (HWVoiceIn *hw);
>      int  (*run_in)  (HWVoiceIn *hw);
> -    int  (*read)    (SWVoiceIn *sw, void *buf, int size);
>      int  (*ctl_in)  (HWVoiceIn *hw, int cmd, ...);
>  };
>
> @@ -210,11 +208,8 @@ audio_driver *audio_driver_lookup(const char *name);
>  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);
>
> -int  audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int len);
>  int  audio_pcm_hw_get_live_in (HWVoiceIn *hw);
>
> -int  audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int len);
> -
>  int audio_pcm_hw_clip_out (HWVoiceOut *hw, void *pcm_buf,
>                             int live, int pending);
>
> diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
> index 3daa7c8f8f..e9e3a4819c 100644
> --- a/audio/alsaaudio.c
> +++ b/audio/alsaaudio.c
> @@ -270,11 +270,6 @@ static int alsa_poll_in (HWVoiceIn *hw)
>      return alsa_poll_helper (alsa->handle, &alsa->pollhlp, POLLIN);
>  }
>
> -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 (AudioFormat fmt, int endianness)
>  {
>      switch (fmt) {
> @@ -988,11 +983,6 @@ static int alsa_run_in (HWVoiceIn *hw)
>      return read_samples;
>  }
>
> -static int alsa_read (SWVoiceIn *sw, void *buf, int size)
> -{
> -    return audio_pcm_sw_read (sw, buf, size);
> -}
> -
>  static int alsa_ctl_in (HWVoiceIn *hw, int cmd, ...)
>  {
>      ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw;
> @@ -1076,13 +1066,11 @@ static struct audio_pcm_ops alsa_pcm_ops = {
>      .init_out = alsa_init_out,
>      .fini_out = alsa_fini_out,
>      .run_out  = alsa_run_out,
> -    .write    = alsa_write,
>      .ctl_out  = alsa_ctl_out,
>
>      .init_in  = alsa_init_in,
>      .fini_in  = alsa_fini_in,
>      .run_in   = alsa_run_in,
> -    .read     = alsa_read,
>      .ctl_in   = alsa_ctl_in,
>  };
>
> diff --git a/audio/audio.c b/audio/audio.c
> index d73cc086b6..b79f56fe64 100644
> --- a/audio/audio.c
> +++ b/audio/audio.c
> @@ -594,7 +594,7 @@ static int audio_pcm_sw_get_rpos_in (SWVoiceIn *sw)
>      }
>  }
>
> -int audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int size)
> +static int audio_pcm_sw_read(SWVoiceIn *sw, void *buf, int size)
>  {
>      HWVoiceIn *hw = sw->hw;
>      int samples, live, ret = 0, swlim, isamp, osamp, rpos, total = 0;
> @@ -696,7 +696,7 @@ static int audio_pcm_hw_get_live_out (HWVoiceOut *hw, int *nb_live)
>  /*
>   * Soft voice (playback)
>   */
> -int audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int size)
> +static int audio_pcm_sw_write(SWVoiceOut *sw, void *buf, int size)
>  {
>      int hwsamples, samples, isamp, osamp, wpos, live, dead, left, swlim, blck;
>      int ret = 0, pos = 0, total = 0;
> @@ -854,7 +854,7 @@ int AUD_write (SWVoiceOut *sw, void *buf, int size)
>          return 0;
>      }
>
> -    return sw->hw->pcm_ops->write(sw, buf, size);
> +    return audio_pcm_sw_write(sw, buf, size);
>  }
>
>  int AUD_read (SWVoiceIn *sw, void *buf, int size)
> @@ -869,7 +869,7 @@ int AUD_read (SWVoiceIn *sw, void *buf, int size)
>          return 0;
>      }
>
> -    return sw->hw->pcm_ops->read(sw, buf, size);
> +    return audio_pcm_sw_read(sw, buf, size);
>  }
>
>  int AUD_get_buffer_size_out (SWVoiceOut *sw)
> diff --git a/audio/coreaudio.c b/audio/coreaudio.c
> index f0ab4014a8..091fe84a34 100644
> --- a/audio/coreaudio.c
> +++ b/audio/coreaudio.c
> @@ -489,11 +489,6 @@ static OSStatus audioDeviceIOProc(
>      return 0;
>  }
>
> -static int coreaudio_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as,
>                                void *drv_opaque)
>  {
> @@ -692,7 +687,6 @@ static struct audio_pcm_ops coreaudio_pcm_ops = {
>      .init_out = coreaudio_init_out,
>      .fini_out = coreaudio_fini_out,
>      .run_out  = coreaudio_run_out,
> -    .write    = coreaudio_write,
>      .ctl_out  = coreaudio_ctl_out
>  };
>
> diff --git a/audio/dsoundaudio.c b/audio/dsoundaudio.c
> index 07260f881e..11594c3095 100644
> --- a/audio/dsoundaudio.c
> +++ b/audio/dsoundaudio.c
> @@ -454,11 +454,6 @@ static int dsound_ctl_out (HWVoiceOut *hw, int cmd, ...)
>      return 0;
>  }
>
> -static int dsound_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  static int dsound_run_out (HWVoiceOut *hw, int live)
>  {
>      int err;
> @@ -645,11 +640,6 @@ static int dsound_ctl_in (HWVoiceIn *hw, int cmd, ...)
>      return 0;
>  }
>
> -static int dsound_read (SWVoiceIn *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_read (sw, buf, len);
> -}
> -
>  static int dsound_run_in (HWVoiceIn *hw)
>  {
>      int err;
> @@ -856,13 +846,11 @@ static struct audio_pcm_ops dsound_pcm_ops = {
>      .init_out = dsound_init_out,
>      .fini_out = dsound_fini_out,
>      .run_out  = dsound_run_out,
> -    .write    = dsound_write,
>      .ctl_out  = dsound_ctl_out,
>
>      .init_in  = dsound_init_in,
>      .fini_in  = dsound_fini_in,
>      .run_in   = dsound_run_in,
> -    .read     = dsound_read,
>      .ctl_in   = dsound_ctl_in
>  };
>
> diff --git a/audio/noaudio.c b/audio/noaudio.c
> index 14a0e4ab29..cbb02d9e49 100644
> --- a/audio/noaudio.c
> +++ b/audio/noaudio.c
> @@ -61,11 +61,6 @@ static int no_run_out (HWVoiceOut *hw, int live)
>      return decr;
>  }
>
> -static int no_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write(sw, buf, len);
> -}
> -
>  static int no_init_out(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque)
>  {
>      audio_pcm_init_info (&hw->info, as);
> @@ -118,18 +113,6 @@ static int no_run_in (HWVoiceIn *hw)
>      return samples;
>  }
>
> -static int no_read (SWVoiceIn *sw, void *buf, int size)
> -{
> -    /* use custom code here instead of audio_pcm_sw_read() to avoid
> -     * useless resampling/mixing */
> -    int samples = size >> sw->info.shift;
> -    int total = sw->hw->total_samples_captured - sw->total_hw_samples_acquired;
> -    int to_clear = MIN (samples, total);
> -    sw->total_hw_samples_acquired += total;
> -    audio_pcm_info_clear_buf (&sw->info, buf, to_clear);
> -    return to_clear << sw->info.shift;
> -}
> -
>  static int no_ctl_in (HWVoiceIn *hw, int cmd, ...)
>  {
>      (void) hw;
> @@ -151,13 +134,11 @@ static struct audio_pcm_ops no_pcm_ops = {
>      .init_out = no_init_out,
>      .fini_out = no_fini_out,
>      .run_out  = no_run_out,
> -    .write    = no_write,
>      .ctl_out  = no_ctl_out,
>
>      .init_in  = no_init_in,
>      .fini_in  = no_fini_in,
>      .run_in   = no_run_in,
> -    .read     = no_read,
>      .ctl_in   = no_ctl_in
>  };
>
> diff --git a/audio/ossaudio.c b/audio/ossaudio.c
> index 456fba7480..b99edbec17 100644
> --- a/audio/ossaudio.c
> +++ b/audio/ossaudio.c
> @@ -134,11 +134,6 @@ static void oss_poll_in (HWVoiceIn *hw)
>      qemu_set_fd_handler(oss->fd, oss_helper_poll_in, NULL, hw->s);
>  }
>
> -static int oss_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  static int aud_to_ossfmt (AudioFormat fmt, int endianness)
>  {
>      switch (fmt) {
> @@ -788,11 +783,6 @@ static int oss_run_in (HWVoiceIn *hw)
>      return read_samples;
>  }
>
> -static int oss_read (SWVoiceIn *sw, void *buf, int size)
> -{
> -    return audio_pcm_sw_read (sw, buf, size);
> -}
> -
>  static int oss_ctl_in (HWVoiceIn *hw, int cmd, ...)
>  {
>      OSSVoiceIn *oss = (OSSVoiceIn *) hw;
> @@ -855,13 +845,11 @@ static struct audio_pcm_ops oss_pcm_ops = {
>      .init_out = oss_init_out,
>      .fini_out = oss_fini_out,
>      .run_out  = oss_run_out,
> -    .write    = oss_write,
>      .ctl_out  = oss_ctl_out,
>
>      .init_in  = oss_init_in,
>      .fini_in  = oss_fini_in,
>      .run_in   = oss_run_in,
> -    .read     = oss_read,
>      .ctl_in   = oss_ctl_in
>  };
>
> diff --git a/audio/paaudio.c b/audio/paaudio.c
> index d320d2e453..12471154ed 100644
> --- a/audio/paaudio.c
> +++ b/audio/paaudio.c
> @@ -295,11 +295,6 @@ static int qpa_run_out (HWVoiceOut *hw, int live)
>      return decr;
>  }
>
> -static int qpa_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  /* capture */
>  static void *qpa_thread_in (void *arg)
>  {
> @@ -388,11 +383,6 @@ static int qpa_run_in (HWVoiceIn *hw)
>      return incr;
>  }
>
> -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 (AudioFormat afmt, int endianness)
>  {
>      int format;
> @@ -1016,13 +1006,11 @@ static struct audio_pcm_ops qpa_pcm_ops = {
>      .init_out = qpa_init_out,
>      .fini_out = qpa_fini_out,
>      .run_out  = qpa_run_out,
> -    .write    = qpa_write,
>      .ctl_out  = qpa_ctl_out,
>
>      .init_in  = qpa_init_in,
>      .fini_in  = qpa_fini_in,
>      .run_in   = qpa_run_in,
> -    .read     = qpa_read,
>      .ctl_in   = qpa_ctl_in
>  };
>
> diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c
> index 42f7614124..c7fd487e0e 100644
> --- a/audio/sdlaudio.c
> +++ b/audio/sdlaudio.c
> @@ -217,11 +217,6 @@ static void sdl_callback (void *opaque, Uint8 *buf, int len)
>      }
>  }
>
> -static int sdl_write_out (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  static int sdl_run_out (HWVoiceOut *hw, int live)
>  {
>      int decr;
> @@ -342,7 +337,6 @@ static struct audio_pcm_ops sdl_pcm_ops = {
>      .init_out = sdl_init_out,
>      .fini_out = sdl_fini_out,
>      .run_out  = sdl_run_out,
> -    .write    = sdl_write_out,
>      .ctl_out  = sdl_ctl_out,
>  };
>
> diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
> index 6f4a0558f8..6e7f13cffa 100644
> --- a/audio/spiceaudio.c
> +++ b/audio/spiceaudio.c
> @@ -193,11 +193,6 @@ static int line_out_run (HWVoiceOut *hw, int live)
>      return decr;
>  }
>
> -static int line_out_write (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  static int line_out_ctl (HWVoiceOut *hw, int cmd, ...)
>  {
>      SpiceVoiceOut *out = container_of (hw, SpiceVoiceOut, hw);
> @@ -326,11 +321,6 @@ static int line_in_run (HWVoiceIn *hw)
>      return num_samples;
>  }
>
> -static int line_in_read (SWVoiceIn *sw, void *buf, int size)
> -{
> -    return audio_pcm_sw_read (sw, buf, size);
> -}
> -
>  static int line_in_ctl (HWVoiceIn *hw, int cmd, ...)
>  {
>      SpiceVoiceIn *in = container_of (hw, SpiceVoiceIn, hw);
> @@ -378,13 +368,11 @@ static struct audio_pcm_ops audio_callbacks = {
>      .init_out = line_out_init,
>      .fini_out = line_out_fini,
>      .run_out  = line_out_run,
> -    .write    = line_out_write,
>      .ctl_out  = line_out_ctl,
>
>      .init_in  = line_in_init,
>      .fini_in  = line_in_fini,
>      .run_in   = line_in_run,
> -    .read     = line_in_read,
>      .ctl_in   = line_in_ctl,
>  };
>
> diff --git a/audio/wavaudio.c b/audio/wavaudio.c
> index bbf3f3b346..17ab921cef 100644
> --- a/audio/wavaudio.c
> +++ b/audio/wavaudio.c
> @@ -84,11 +84,6 @@ static int wav_run_out (HWVoiceOut *hw, int live)
>      return decr;
>  }
>
> -static int wav_write_out (SWVoiceOut *sw, void *buf, int len)
> -{
> -    return audio_pcm_sw_write (sw, buf, len);
> -}
> -
>  /* VICE code: Store number as little endian. */
>  static void le_store (uint8_t *buf, uint32_t val, int len)
>  {
> @@ -240,7 +235,6 @@ static struct audio_pcm_ops wav_pcm_ops = {
>      .init_out = wav_init_out,
>      .fini_out = wav_fini_out,
>      .run_out  = wav_run_out,
> -    .write    = wav_write_out,
>      .ctl_out  = wav_ctl_out,
>  };
>
> --
> 2.22.0
>
>
=?UTF-8?B?Wm9sdMOhbiBLxZF2w6Fnw7M=?= July 11, 2019, 7:20 p.m. UTC | #2
On 2019-07-10 21:57, Marc-André Lureau wrote:
> On Tue, Jul 9, 2019 at 10:57 PM Kővágó, Zoltán <dirty.ice.hu@gmail.com> wrote:
>>
>> They just called audio_pcm_sw_read/write anyway, so it makes no sense
>> to have them too.  (The noaudio's read is the only exception, but it
>> should work with the generic code too.)
> 
> It works with the generic code, but wouldn't it be more expensive?

It's a bit more expensive, but only if the guest has a sound card and
the guest is playing some sound, because otherwise the output is suspended.

> Perhaps there can be something in audio_pcm_sw_write() to skip the
> work if noaudio is the backend?

It feels like a hacky solution to the same problem what the function
pointer currently solves.  On the other hand, it's unlikely any other
backend would drop every sample without processing them.

>>
>> Signed-off-by: Kővágó, Zoltán <DirtY.iCE.hu@gmail.com>
>> ---
>>  audio/audio_int.h   |  5 -----
>>  audio/alsaaudio.c   | 12 ------------
>>  audio/audio.c       |  8 ++++----
>>  audio/coreaudio.c   |  6 ------
>>  audio/dsoundaudio.c | 12 ------------
>>  audio/noaudio.c     | 19 -------------------
>>  audio/ossaudio.c    | 12 ------------
>>  audio/paaudio.c     | 12 ------------
>>  audio/sdlaudio.c    |  6 ------
>>  audio/spiceaudio.c  | 12 ------------
>>  audio/wavaudio.c    |  6 ------
>>  11 files changed, 4 insertions(+), 106 deletions(-)
>>
>> diff --git a/audio/audio_int.h b/audio/audio_int.h
>> index 7e00c1332e..003b7ab8cc 100644
>> --- a/audio/audio_int.h
>> +++ b/audio/audio_int.h
>> @@ -150,13 +150,11 @@ struct audio_pcm_ops {
>>      int  (*init_out)(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque);
>>      void (*fini_out)(HWVoiceOut *hw);
>>      int  (*run_out) (HWVoiceOut *hw, int live);
>> -    int  (*write)   (SWVoiceOut *sw, void *buf, int size);
>>      int  (*ctl_out) (HWVoiceOut *hw, int cmd, ...);
>>
>>      int  (*init_in) (HWVoiceIn *hw, struct audsettings *as, void *drv_opaque);
>>      void (*fini_in) (HWVoiceIn *hw);
>>      int  (*run_in)  (HWVoiceIn *hw);
>> -    int  (*read)    (SWVoiceIn *sw, void *buf, int size);
>>      int  (*ctl_in)  (HWVoiceIn *hw, int cmd, ...);
>>  };
>>
>> @@ -210,11 +208,8 @@ audio_driver *audio_driver_lookup(const char *name);
>>  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);
>>
>> -int  audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int len);
>>  int  audio_pcm_hw_get_live_in (HWVoiceIn *hw);
>>
>> -int  audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int len);
>> -
>>  int audio_pcm_hw_clip_out (HWVoiceOut *hw, void *pcm_buf,
>>                             int live, int pending);
>>
>> diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
>> index 3daa7c8f8f..e9e3a4819c 100644
>> --- a/audio/alsaaudio.c
>> +++ b/audio/alsaaudio.c
>> @@ -270,11 +270,6 @@ static int alsa_poll_in (HWVoiceIn *hw)
>>      return alsa_poll_helper (alsa->handle, &alsa->pollhlp, POLLIN);
>>  }
>>
>> -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 (AudioFormat fmt, int endianness)
>>  {
>>      switch (fmt) {
>> @@ -988,11 +983,6 @@ static int alsa_run_in (HWVoiceIn *hw)
>>      return read_samples;
>>  }
>>
>> -static int alsa_read (SWVoiceIn *sw, void *buf, int size)
>> -{
>> -    return audio_pcm_sw_read (sw, buf, size);
>> -}
>> -
>>  static int alsa_ctl_in (HWVoiceIn *hw, int cmd, ...)
>>  {
>>      ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw;
>> @@ -1076,13 +1066,11 @@ static struct audio_pcm_ops alsa_pcm_ops = {
>>      .init_out = alsa_init_out,
>>      .fini_out = alsa_fini_out,
>>      .run_out  = alsa_run_out,
>> -    .write    = alsa_write,
>>      .ctl_out  = alsa_ctl_out,
>>
>>      .init_in  = alsa_init_in,
>>      .fini_in  = alsa_fini_in,
>>      .run_in   = alsa_run_in,
>> -    .read     = alsa_read,
>>      .ctl_in   = alsa_ctl_in,
>>  };
>>
>> diff --git a/audio/audio.c b/audio/audio.c
>> index d73cc086b6..b79f56fe64 100644
>> --- a/audio/audio.c
>> +++ b/audio/audio.c
>> @@ -594,7 +594,7 @@ static int audio_pcm_sw_get_rpos_in (SWVoiceIn *sw)
>>      }
>>  }
>>
>> -int audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int size)
>> +static int audio_pcm_sw_read(SWVoiceIn *sw, void *buf, int size)
>>  {
>>      HWVoiceIn *hw = sw->hw;
>>      int samples, live, ret = 0, swlim, isamp, osamp, rpos, total = 0;
>> @@ -696,7 +696,7 @@ static int audio_pcm_hw_get_live_out (HWVoiceOut *hw, int *nb_live)
>>  /*
>>   * Soft voice (playback)
>>   */
>> -int audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int size)
>> +static int audio_pcm_sw_write(SWVoiceOut *sw, void *buf, int size)
>>  {
>>      int hwsamples, samples, isamp, osamp, wpos, live, dead, left, swlim, blck;
>>      int ret = 0, pos = 0, total = 0;
>> @@ -854,7 +854,7 @@ int AUD_write (SWVoiceOut *sw, void *buf, int size)
>>          return 0;
>>      }
>>
>> -    return sw->hw->pcm_ops->write(sw, buf, size);
>> +    return audio_pcm_sw_write(sw, buf, size);
>>  }
>>
>>  int AUD_read (SWVoiceIn *sw, void *buf, int size)
>> @@ -869,7 +869,7 @@ int AUD_read (SWVoiceIn *sw, void *buf, int size)
>>          return 0;
>>      }
>>
>> -    return sw->hw->pcm_ops->read(sw, buf, size);
>> +    return audio_pcm_sw_read(sw, buf, size);
>>  }
>>
>>  int AUD_get_buffer_size_out (SWVoiceOut *sw)
>> diff --git a/audio/coreaudio.c b/audio/coreaudio.c
>> index f0ab4014a8..091fe84a34 100644
>> --- a/audio/coreaudio.c
>> +++ b/audio/coreaudio.c
>> @@ -489,11 +489,6 @@ static OSStatus audioDeviceIOProc(
>>      return 0;
>>  }
>>
>> -static int coreaudio_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as,
>>                                void *drv_opaque)
>>  {
>> @@ -692,7 +687,6 @@ static struct audio_pcm_ops coreaudio_pcm_ops = {
>>      .init_out = coreaudio_init_out,
>>      .fini_out = coreaudio_fini_out,
>>      .run_out  = coreaudio_run_out,
>> -    .write    = coreaudio_write,
>>      .ctl_out  = coreaudio_ctl_out
>>  };
>>
>> diff --git a/audio/dsoundaudio.c b/audio/dsoundaudio.c
>> index 07260f881e..11594c3095 100644
>> --- a/audio/dsoundaudio.c
>> +++ b/audio/dsoundaudio.c
>> @@ -454,11 +454,6 @@ static int dsound_ctl_out (HWVoiceOut *hw, int cmd, ...)
>>      return 0;
>>  }
>>
>> -static int dsound_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  static int dsound_run_out (HWVoiceOut *hw, int live)
>>  {
>>      int err;
>> @@ -645,11 +640,6 @@ static int dsound_ctl_in (HWVoiceIn *hw, int cmd, ...)
>>      return 0;
>>  }
>>
>> -static int dsound_read (SWVoiceIn *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_read (sw, buf, len);
>> -}
>> -
>>  static int dsound_run_in (HWVoiceIn *hw)
>>  {
>>      int err;
>> @@ -856,13 +846,11 @@ static struct audio_pcm_ops dsound_pcm_ops = {
>>      .init_out = dsound_init_out,
>>      .fini_out = dsound_fini_out,
>>      .run_out  = dsound_run_out,
>> -    .write    = dsound_write,
>>      .ctl_out  = dsound_ctl_out,
>>
>>      .init_in  = dsound_init_in,
>>      .fini_in  = dsound_fini_in,
>>      .run_in   = dsound_run_in,
>> -    .read     = dsound_read,
>>      .ctl_in   = dsound_ctl_in
>>  };
>>
>> diff --git a/audio/noaudio.c b/audio/noaudio.c
>> index 14a0e4ab29..cbb02d9e49 100644
>> --- a/audio/noaudio.c
>> +++ b/audio/noaudio.c
>> @@ -61,11 +61,6 @@ static int no_run_out (HWVoiceOut *hw, int live)
>>      return decr;
>>  }
>>
>> -static int no_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write(sw, buf, len);
>> -}
>> -
>>  static int no_init_out(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque)
>>  {
>>      audio_pcm_init_info (&hw->info, as);
>> @@ -118,18 +113,6 @@ static int no_run_in (HWVoiceIn *hw)
>>      return samples;
>>  }
>>
>> -static int no_read (SWVoiceIn *sw, void *buf, int size)
>> -{
>> -    /* use custom code here instead of audio_pcm_sw_read() to avoid
>> -     * useless resampling/mixing */
>> -    int samples = size >> sw->info.shift;
>> -    int total = sw->hw->total_samples_captured - sw->total_hw_samples_acquired;
>> -    int to_clear = MIN (samples, total);
>> -    sw->total_hw_samples_acquired += total;
>> -    audio_pcm_info_clear_buf (&sw->info, buf, to_clear);
>> -    return to_clear << sw->info.shift;
>> -}
>> -
>>  static int no_ctl_in (HWVoiceIn *hw, int cmd, ...)
>>  {
>>      (void) hw;
>> @@ -151,13 +134,11 @@ static struct audio_pcm_ops no_pcm_ops = {
>>      .init_out = no_init_out,
>>      .fini_out = no_fini_out,
>>      .run_out  = no_run_out,
>> -    .write    = no_write,
>>      .ctl_out  = no_ctl_out,
>>
>>      .init_in  = no_init_in,
>>      .fini_in  = no_fini_in,
>>      .run_in   = no_run_in,
>> -    .read     = no_read,
>>      .ctl_in   = no_ctl_in
>>  };
>>
>> diff --git a/audio/ossaudio.c b/audio/ossaudio.c
>> index 456fba7480..b99edbec17 100644
>> --- a/audio/ossaudio.c
>> +++ b/audio/ossaudio.c
>> @@ -134,11 +134,6 @@ static void oss_poll_in (HWVoiceIn *hw)
>>      qemu_set_fd_handler(oss->fd, oss_helper_poll_in, NULL, hw->s);
>>  }
>>
>> -static int oss_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  static int aud_to_ossfmt (AudioFormat fmt, int endianness)
>>  {
>>      switch (fmt) {
>> @@ -788,11 +783,6 @@ static int oss_run_in (HWVoiceIn *hw)
>>      return read_samples;
>>  }
>>
>> -static int oss_read (SWVoiceIn *sw, void *buf, int size)
>> -{
>> -    return audio_pcm_sw_read (sw, buf, size);
>> -}
>> -
>>  static int oss_ctl_in (HWVoiceIn *hw, int cmd, ...)
>>  {
>>      OSSVoiceIn *oss = (OSSVoiceIn *) hw;
>> @@ -855,13 +845,11 @@ static struct audio_pcm_ops oss_pcm_ops = {
>>      .init_out = oss_init_out,
>>      .fini_out = oss_fini_out,
>>      .run_out  = oss_run_out,
>> -    .write    = oss_write,
>>      .ctl_out  = oss_ctl_out,
>>
>>      .init_in  = oss_init_in,
>>      .fini_in  = oss_fini_in,
>>      .run_in   = oss_run_in,
>> -    .read     = oss_read,
>>      .ctl_in   = oss_ctl_in
>>  };
>>
>> diff --git a/audio/paaudio.c b/audio/paaudio.c
>> index d320d2e453..12471154ed 100644
>> --- a/audio/paaudio.c
>> +++ b/audio/paaudio.c
>> @@ -295,11 +295,6 @@ static int qpa_run_out (HWVoiceOut *hw, int live)
>>      return decr;
>>  }
>>
>> -static int qpa_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  /* capture */
>>  static void *qpa_thread_in (void *arg)
>>  {
>> @@ -388,11 +383,6 @@ static int qpa_run_in (HWVoiceIn *hw)
>>      return incr;
>>  }
>>
>> -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 (AudioFormat afmt, int endianness)
>>  {
>>      int format;
>> @@ -1016,13 +1006,11 @@ static struct audio_pcm_ops qpa_pcm_ops = {
>>      .init_out = qpa_init_out,
>>      .fini_out = qpa_fini_out,
>>      .run_out  = qpa_run_out,
>> -    .write    = qpa_write,
>>      .ctl_out  = qpa_ctl_out,
>>
>>      .init_in  = qpa_init_in,
>>      .fini_in  = qpa_fini_in,
>>      .run_in   = qpa_run_in,
>> -    .read     = qpa_read,
>>      .ctl_in   = qpa_ctl_in
>>  };
>>
>> diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c
>> index 42f7614124..c7fd487e0e 100644
>> --- a/audio/sdlaudio.c
>> +++ b/audio/sdlaudio.c
>> @@ -217,11 +217,6 @@ static void sdl_callback (void *opaque, Uint8 *buf, int len)
>>      }
>>  }
>>
>> -static int sdl_write_out (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  static int sdl_run_out (HWVoiceOut *hw, int live)
>>  {
>>      int decr;
>> @@ -342,7 +337,6 @@ static struct audio_pcm_ops sdl_pcm_ops = {
>>      .init_out = sdl_init_out,
>>      .fini_out = sdl_fini_out,
>>      .run_out  = sdl_run_out,
>> -    .write    = sdl_write_out,
>>      .ctl_out  = sdl_ctl_out,
>>  };
>>
>> diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
>> index 6f4a0558f8..6e7f13cffa 100644
>> --- a/audio/spiceaudio.c
>> +++ b/audio/spiceaudio.c
>> @@ -193,11 +193,6 @@ static int line_out_run (HWVoiceOut *hw, int live)
>>      return decr;
>>  }
>>
>> -static int line_out_write (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  static int line_out_ctl (HWVoiceOut *hw, int cmd, ...)
>>  {
>>      SpiceVoiceOut *out = container_of (hw, SpiceVoiceOut, hw);
>> @@ -326,11 +321,6 @@ static int line_in_run (HWVoiceIn *hw)
>>      return num_samples;
>>  }
>>
>> -static int line_in_read (SWVoiceIn *sw, void *buf, int size)
>> -{
>> -    return audio_pcm_sw_read (sw, buf, size);
>> -}
>> -
>>  static int line_in_ctl (HWVoiceIn *hw, int cmd, ...)
>>  {
>>      SpiceVoiceIn *in = container_of (hw, SpiceVoiceIn, hw);
>> @@ -378,13 +368,11 @@ static struct audio_pcm_ops audio_callbacks = {
>>      .init_out = line_out_init,
>>      .fini_out = line_out_fini,
>>      .run_out  = line_out_run,
>> -    .write    = line_out_write,
>>      .ctl_out  = line_out_ctl,
>>
>>      .init_in  = line_in_init,
>>      .fini_in  = line_in_fini,
>>      .run_in   = line_in_run,
>> -    .read     = line_in_read,
>>      .ctl_in   = line_in_ctl,
>>  };
>>
>> diff --git a/audio/wavaudio.c b/audio/wavaudio.c
>> index bbf3f3b346..17ab921cef 100644
>> --- a/audio/wavaudio.c
>> +++ b/audio/wavaudio.c
>> @@ -84,11 +84,6 @@ static int wav_run_out (HWVoiceOut *hw, int live)
>>      return decr;
>>  }
>>
>> -static int wav_write_out (SWVoiceOut *sw, void *buf, int len)
>> -{
>> -    return audio_pcm_sw_write (sw, buf, len);
>> -}
>> -
>>  /* VICE code: Store number as little endian. */
>>  static void le_store (uint8_t *buf, uint32_t val, int len)
>>  {
>> @@ -240,7 +235,6 @@ static struct audio_pcm_ops wav_pcm_ops = {
>>      .init_out = wav_init_out,
>>      .fini_out = wav_fini_out,
>>      .run_out  = wav_run_out,
>> -    .write    = wav_write_out,
>>      .ctl_out  = wav_ctl_out,
>>  };
>>
>> --
>> 2.22.0
>>
>>
> 
>
diff mbox series

Patch

diff --git a/audio/audio_int.h b/audio/audio_int.h
index 7e00c1332e..003b7ab8cc 100644
--- a/audio/audio_int.h
+++ b/audio/audio_int.h
@@ -150,13 +150,11 @@  struct audio_pcm_ops {
     int  (*init_out)(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque);
     void (*fini_out)(HWVoiceOut *hw);
     int  (*run_out) (HWVoiceOut *hw, int live);
-    int  (*write)   (SWVoiceOut *sw, void *buf, int size);
     int  (*ctl_out) (HWVoiceOut *hw, int cmd, ...);
 
     int  (*init_in) (HWVoiceIn *hw, struct audsettings *as, void *drv_opaque);
     void (*fini_in) (HWVoiceIn *hw);
     int  (*run_in)  (HWVoiceIn *hw);
-    int  (*read)    (SWVoiceIn *sw, void *buf, int size);
     int  (*ctl_in)  (HWVoiceIn *hw, int cmd, ...);
 };
 
@@ -210,11 +208,8 @@  audio_driver *audio_driver_lookup(const char *name);
 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);
 
-int  audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int len);
 int  audio_pcm_hw_get_live_in (HWVoiceIn *hw);
 
-int  audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int len);
-
 int audio_pcm_hw_clip_out (HWVoiceOut *hw, void *pcm_buf,
                            int live, int pending);
 
diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
index 3daa7c8f8f..e9e3a4819c 100644
--- a/audio/alsaaudio.c
+++ b/audio/alsaaudio.c
@@ -270,11 +270,6 @@  static int alsa_poll_in (HWVoiceIn *hw)
     return alsa_poll_helper (alsa->handle, &alsa->pollhlp, POLLIN);
 }
 
-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 (AudioFormat fmt, int endianness)
 {
     switch (fmt) {
@@ -988,11 +983,6 @@  static int alsa_run_in (HWVoiceIn *hw)
     return read_samples;
 }
 
-static int alsa_read (SWVoiceIn *sw, void *buf, int size)
-{
-    return audio_pcm_sw_read (sw, buf, size);
-}
-
 static int alsa_ctl_in (HWVoiceIn *hw, int cmd, ...)
 {
     ALSAVoiceIn *alsa = (ALSAVoiceIn *) hw;
@@ -1076,13 +1066,11 @@  static struct audio_pcm_ops alsa_pcm_ops = {
     .init_out = alsa_init_out,
     .fini_out = alsa_fini_out,
     .run_out  = alsa_run_out,
-    .write    = alsa_write,
     .ctl_out  = alsa_ctl_out,
 
     .init_in  = alsa_init_in,
     .fini_in  = alsa_fini_in,
     .run_in   = alsa_run_in,
-    .read     = alsa_read,
     .ctl_in   = alsa_ctl_in,
 };
 
diff --git a/audio/audio.c b/audio/audio.c
index d73cc086b6..b79f56fe64 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -594,7 +594,7 @@  static int audio_pcm_sw_get_rpos_in (SWVoiceIn *sw)
     }
 }
 
-int audio_pcm_sw_read (SWVoiceIn *sw, void *buf, int size)
+static int audio_pcm_sw_read(SWVoiceIn *sw, void *buf, int size)
 {
     HWVoiceIn *hw = sw->hw;
     int samples, live, ret = 0, swlim, isamp, osamp, rpos, total = 0;
@@ -696,7 +696,7 @@  static int audio_pcm_hw_get_live_out (HWVoiceOut *hw, int *nb_live)
 /*
  * Soft voice (playback)
  */
-int audio_pcm_sw_write (SWVoiceOut *sw, void *buf, int size)
+static int audio_pcm_sw_write(SWVoiceOut *sw, void *buf, int size)
 {
     int hwsamples, samples, isamp, osamp, wpos, live, dead, left, swlim, blck;
     int ret = 0, pos = 0, total = 0;
@@ -854,7 +854,7 @@  int AUD_write (SWVoiceOut *sw, void *buf, int size)
         return 0;
     }
 
-    return sw->hw->pcm_ops->write(sw, buf, size);
+    return audio_pcm_sw_write(sw, buf, size);
 }
 
 int AUD_read (SWVoiceIn *sw, void *buf, int size)
@@ -869,7 +869,7 @@  int AUD_read (SWVoiceIn *sw, void *buf, int size)
         return 0;
     }
 
-    return sw->hw->pcm_ops->read(sw, buf, size);
+    return audio_pcm_sw_read(sw, buf, size);
 }
 
 int AUD_get_buffer_size_out (SWVoiceOut *sw)
diff --git a/audio/coreaudio.c b/audio/coreaudio.c
index f0ab4014a8..091fe84a34 100644
--- a/audio/coreaudio.c
+++ b/audio/coreaudio.c
@@ -489,11 +489,6 @@  static OSStatus audioDeviceIOProc(
     return 0;
 }
 
-static int coreaudio_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 static int coreaudio_init_out(HWVoiceOut *hw, struct audsettings *as,
                               void *drv_opaque)
 {
@@ -692,7 +687,6 @@  static struct audio_pcm_ops coreaudio_pcm_ops = {
     .init_out = coreaudio_init_out,
     .fini_out = coreaudio_fini_out,
     .run_out  = coreaudio_run_out,
-    .write    = coreaudio_write,
     .ctl_out  = coreaudio_ctl_out
 };
 
diff --git a/audio/dsoundaudio.c b/audio/dsoundaudio.c
index 07260f881e..11594c3095 100644
--- a/audio/dsoundaudio.c
+++ b/audio/dsoundaudio.c
@@ -454,11 +454,6 @@  static int dsound_ctl_out (HWVoiceOut *hw, int cmd, ...)
     return 0;
 }
 
-static int dsound_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 static int dsound_run_out (HWVoiceOut *hw, int live)
 {
     int err;
@@ -645,11 +640,6 @@  static int dsound_ctl_in (HWVoiceIn *hw, int cmd, ...)
     return 0;
 }
 
-static int dsound_read (SWVoiceIn *sw, void *buf, int len)
-{
-    return audio_pcm_sw_read (sw, buf, len);
-}
-
 static int dsound_run_in (HWVoiceIn *hw)
 {
     int err;
@@ -856,13 +846,11 @@  static struct audio_pcm_ops dsound_pcm_ops = {
     .init_out = dsound_init_out,
     .fini_out = dsound_fini_out,
     .run_out  = dsound_run_out,
-    .write    = dsound_write,
     .ctl_out  = dsound_ctl_out,
 
     .init_in  = dsound_init_in,
     .fini_in  = dsound_fini_in,
     .run_in   = dsound_run_in,
-    .read     = dsound_read,
     .ctl_in   = dsound_ctl_in
 };
 
diff --git a/audio/noaudio.c b/audio/noaudio.c
index 14a0e4ab29..cbb02d9e49 100644
--- a/audio/noaudio.c
+++ b/audio/noaudio.c
@@ -61,11 +61,6 @@  static int no_run_out (HWVoiceOut *hw, int live)
     return decr;
 }
 
-static int no_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write(sw, buf, len);
-}
-
 static int no_init_out(HWVoiceOut *hw, struct audsettings *as, void *drv_opaque)
 {
     audio_pcm_init_info (&hw->info, as);
@@ -118,18 +113,6 @@  static int no_run_in (HWVoiceIn *hw)
     return samples;
 }
 
-static int no_read (SWVoiceIn *sw, void *buf, int size)
-{
-    /* use custom code here instead of audio_pcm_sw_read() to avoid
-     * useless resampling/mixing */
-    int samples = size >> sw->info.shift;
-    int total = sw->hw->total_samples_captured - sw->total_hw_samples_acquired;
-    int to_clear = MIN (samples, total);
-    sw->total_hw_samples_acquired += total;
-    audio_pcm_info_clear_buf (&sw->info, buf, to_clear);
-    return to_clear << sw->info.shift;
-}
-
 static int no_ctl_in (HWVoiceIn *hw, int cmd, ...)
 {
     (void) hw;
@@ -151,13 +134,11 @@  static struct audio_pcm_ops no_pcm_ops = {
     .init_out = no_init_out,
     .fini_out = no_fini_out,
     .run_out  = no_run_out,
-    .write    = no_write,
     .ctl_out  = no_ctl_out,
 
     .init_in  = no_init_in,
     .fini_in  = no_fini_in,
     .run_in   = no_run_in,
-    .read     = no_read,
     .ctl_in   = no_ctl_in
 };
 
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index 456fba7480..b99edbec17 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -134,11 +134,6 @@  static void oss_poll_in (HWVoiceIn *hw)
     qemu_set_fd_handler(oss->fd, oss_helper_poll_in, NULL, hw->s);
 }
 
-static int oss_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 static int aud_to_ossfmt (AudioFormat fmt, int endianness)
 {
     switch (fmt) {
@@ -788,11 +783,6 @@  static int oss_run_in (HWVoiceIn *hw)
     return read_samples;
 }
 
-static int oss_read (SWVoiceIn *sw, void *buf, int size)
-{
-    return audio_pcm_sw_read (sw, buf, size);
-}
-
 static int oss_ctl_in (HWVoiceIn *hw, int cmd, ...)
 {
     OSSVoiceIn *oss = (OSSVoiceIn *) hw;
@@ -855,13 +845,11 @@  static struct audio_pcm_ops oss_pcm_ops = {
     .init_out = oss_init_out,
     .fini_out = oss_fini_out,
     .run_out  = oss_run_out,
-    .write    = oss_write,
     .ctl_out  = oss_ctl_out,
 
     .init_in  = oss_init_in,
     .fini_in  = oss_fini_in,
     .run_in   = oss_run_in,
-    .read     = oss_read,
     .ctl_in   = oss_ctl_in
 };
 
diff --git a/audio/paaudio.c b/audio/paaudio.c
index d320d2e453..12471154ed 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -295,11 +295,6 @@  static int qpa_run_out (HWVoiceOut *hw, int live)
     return decr;
 }
 
-static int qpa_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 /* capture */
 static void *qpa_thread_in (void *arg)
 {
@@ -388,11 +383,6 @@  static int qpa_run_in (HWVoiceIn *hw)
     return incr;
 }
 
-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 (AudioFormat afmt, int endianness)
 {
     int format;
@@ -1016,13 +1006,11 @@  static struct audio_pcm_ops qpa_pcm_ops = {
     .init_out = qpa_init_out,
     .fini_out = qpa_fini_out,
     .run_out  = qpa_run_out,
-    .write    = qpa_write,
     .ctl_out  = qpa_ctl_out,
 
     .init_in  = qpa_init_in,
     .fini_in  = qpa_fini_in,
     .run_in   = qpa_run_in,
-    .read     = qpa_read,
     .ctl_in   = qpa_ctl_in
 };
 
diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c
index 42f7614124..c7fd487e0e 100644
--- a/audio/sdlaudio.c
+++ b/audio/sdlaudio.c
@@ -217,11 +217,6 @@  static void sdl_callback (void *opaque, Uint8 *buf, int len)
     }
 }
 
-static int sdl_write_out (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 static int sdl_run_out (HWVoiceOut *hw, int live)
 {
     int decr;
@@ -342,7 +337,6 @@  static struct audio_pcm_ops sdl_pcm_ops = {
     .init_out = sdl_init_out,
     .fini_out = sdl_fini_out,
     .run_out  = sdl_run_out,
-    .write    = sdl_write_out,
     .ctl_out  = sdl_ctl_out,
 };
 
diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
index 6f4a0558f8..6e7f13cffa 100644
--- a/audio/spiceaudio.c
+++ b/audio/spiceaudio.c
@@ -193,11 +193,6 @@  static int line_out_run (HWVoiceOut *hw, int live)
     return decr;
 }
 
-static int line_out_write (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 static int line_out_ctl (HWVoiceOut *hw, int cmd, ...)
 {
     SpiceVoiceOut *out = container_of (hw, SpiceVoiceOut, hw);
@@ -326,11 +321,6 @@  static int line_in_run (HWVoiceIn *hw)
     return num_samples;
 }
 
-static int line_in_read (SWVoiceIn *sw, void *buf, int size)
-{
-    return audio_pcm_sw_read (sw, buf, size);
-}
-
 static int line_in_ctl (HWVoiceIn *hw, int cmd, ...)
 {
     SpiceVoiceIn *in = container_of (hw, SpiceVoiceIn, hw);
@@ -378,13 +368,11 @@  static struct audio_pcm_ops audio_callbacks = {
     .init_out = line_out_init,
     .fini_out = line_out_fini,
     .run_out  = line_out_run,
-    .write    = line_out_write,
     .ctl_out  = line_out_ctl,
 
     .init_in  = line_in_init,
     .fini_in  = line_in_fini,
     .run_in   = line_in_run,
-    .read     = line_in_read,
     .ctl_in   = line_in_ctl,
 };
 
diff --git a/audio/wavaudio.c b/audio/wavaudio.c
index bbf3f3b346..17ab921cef 100644
--- a/audio/wavaudio.c
+++ b/audio/wavaudio.c
@@ -84,11 +84,6 @@  static int wav_run_out (HWVoiceOut *hw, int live)
     return decr;
 }
 
-static int wav_write_out (SWVoiceOut *sw, void *buf, int len)
-{
-    return audio_pcm_sw_write (sw, buf, len);
-}
-
 /* VICE code: Store number as little endian. */
 static void le_store (uint8_t *buf, uint32_t val, int len)
 {
@@ -240,7 +235,6 @@  static struct audio_pcm_ops wav_pcm_ops = {
     .init_out = wav_init_out,
     .fini_out = wav_fini_out,
     .run_out  = wav_run_out,
-    .write    = wav_write_out,
     .ctl_out  = wav_ctl_out,
 };