summaryrefslogtreecommitdiffstats
path: root/libaf/af_volume.c
diff options
context:
space:
mode:
Diffstat (limited to 'libaf/af_volume.c')
-rw-r--r--libaf/af_volume.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libaf/af_volume.c b/libaf/af_volume.c
index 620a66bfa2..4fc6905f4e 100644
--- a/libaf/af_volume.c
+++ b/libaf/af_volume.c
@@ -60,7 +60,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch;
- if(s->fast){
+ if(s->fast && (((af_data_t*)arg)->format != (AF_FORMAT_F | AF_FORMAT_NE))){
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE;
af->data->bps = 2;
}
@@ -83,7 +83,8 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
return control(af,AF_CONTROL_VOLUME_LEVEL | AF_CONTROL_SET, vol);
}
case AF_CONTROL_POST_CREATE:
- s->fast = ((af_cfg_t*)arg)->force == AF_INIT_SLOW ? 1 : 0;
+ s->fast = (((af_cfg_t*)arg)->force & AF_INIT_FORMAT_MASK) ==
+ AF_INIT_FLOAT ? 1 : 0;
return AF_OK;
case AF_CONTROL_VOLUME_ON_OFF | AF_CONTROL_SET:
memcpy(s->enable,(int*)arg,AF_NCH*sizeof(int));