Index: roard/include/mixer.h
===================================================================
--- roard/include/mixer.h	(revision 2932)
+++ roard/include/mixer.h	(revision 2938)
@@ -28,10 +28,4 @@
 #include <roaraudio.h>
 
-int change_vol       (void * output, int bits, void * input, int samples, int channels, struct roar_mixer_settings * set);
-int change_vol_8bit  (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set);
-int change_vol_16bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set);
-int change_vol_24bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set);
-int change_vol_32bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set);
-
 int need_vol_change  (int channels, struct roar_mixer_settings * set);
 
Index: roard/mixer.c
===================================================================
--- roard/mixer.c	(revision 2936)
+++ roard/mixer.c	(revision 2938)
@@ -25,110 +25,4 @@
 #include "roard.h"
 
-int change_vol (void * output, int bits, void * input, int samples, int channels, struct roar_mixer_settings * set) {
-
- ROAR_DBG("change_vol(*): mixer at %p", set->mixer);
-
- if ( bits == 8 ) {
-  return  change_vol_8bit(output, input, samples, channels, set);
- } else if ( bits == 16 ) {
-  return  change_vol_16bit(output, input, samples, channels, set);
- } else if ( bits == 24 ) {
-  return  change_vol_24bit(output, input, samples, channels, set);
- } else if ( bits == 32 ) {
-  return  change_vol_32bit(output, input, samples, channels, set);
- } else {
-  return -1;
- }
-}
-
-int change_vol_8bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) {
- char * in = input, * out = output;
- int    i;
- register int s;
-
- if ( !(in && out) )
-  return -1;
-
- if (set->rpg_mul == set->rpg_div) {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= set->mixer[i % channels];
-   s /= set->scale;
-   out[i] = s;
-  }
- } else {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= (set->mixer[i % channels] * set->rpg_mul) / set->rpg_div;
-   s /= set->scale;
-   out[i] = s;
-  }
- }
-
- return 0;
-}
-
-int change_vol_16bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) {
- int16_t * in = input, * out = output;
- int       i;
- register int s;
-
- if ( !(in && out) )
-  return -1;
-
- if (set->rpg_mul == set->rpg_div) {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= set->mixer[i % channels];
-   s /= set->scale;
-   out[i] = s;
-  }
- } else {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= (set->mixer[i % channels] * set->rpg_mul) / set->rpg_div;
-   s /= set->scale;
-   out[i] = s;
-  }
- }
-
- return 0;
-}
-
-int change_vol_24bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) {
- return -1;
-}
-
-int change_vol_32bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) {
-#ifdef ROAR_NATIVE_INT64
- int32_t * in = input, * out = output;
- int       i;
- ROAR_NATIVE_INT64 s;
-
- if ( !(in && out) )
-  return -1;
-
- if (set->rpg_mul == set->rpg_div) {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= set->mixer[i % channels];
-   s /= set->scale;
-   out[i] = s;
-  }
- } else {
-  for (i = 0; i < samples; i++) {
-   s  = in[i];
-   s *= (set->mixer[i % channels] * set->rpg_mul) / set->rpg_div;
-   s /= set->scale;
-   out[i] = s;
-  }
- }
-
- return 0;
-#else
- return -1;
-#endif
-}
-
 int need_vol_change  (int channels, struct roar_mixer_settings * set) {
  int i;
Index: roard/streams.c
===================================================================
--- roard/streams.c	(revision 2840)
+++ roard/streams.c	(revision 2938)
@@ -991,6 +991,6 @@
 
  if ( !streams_get_flag(id, ROAR_FLAG_HWMIXER) && !streams_get_flag(id, ROAR_FLAG_PASSMIXER) ) {
-  ROAR_DBG("streams_fill_mixbuffer2(*): CALL change_vol(*)...");
-  if ( change_vol(outdata, info->bits, outdata, 8*outlen / info->bits, info->channels, &(ss->mixer)) == -1 )
+  ROAR_DBG("streams_fill_mixbuffer2(*): CALL roar_amp_pcm(*)...");
+  if ( roar_amp_pcm(outdata, info->bits, outdata, 8*outlen / info->bits, info->channels, &(ss->mixer)) == -1 )
    return -1;
  }
@@ -1571,5 +1571,5 @@
 
  if ( !is_vol_eq ) {
-  if ( change_vol(obuf, g_sa->bits, ip, ROAR_OUTPUT_BUFFER_SAMPLES*g_sa->channels, g_sa->channels, &(ss->mixer)) == -1 ) {
+  if ( roar_amp_pcm(obuf, g_sa->bits, ip, ROAR_OUTPUT_BUFFER_SAMPLES*g_sa->channels, g_sa->channels, &(ss->mixer)) == -1 ) {
    _return(-1);
   }
