Introduce decoder_execute().
[paraslash.git] / wmadec_filter.c
index 96fb50082d2bff52ba082904341851048c66c6ef..aab7cf94f76adc0311aa6cd925da00ad5d8323a4 100644 (file)
@@ -1208,19 +1208,8 @@ static int wmadec_execute(struct btr_node *btrn, const char *cmd, char **result)
        struct filter_node *fn = btr_context(btrn);
        struct private_wmadec_data *pwd = fn->private_data;
 
-       if (!strcmp(cmd, "samplerate")) {
-               if (pwd->ahi.sample_rate == 0)
-                       return -E_BTR_NAVAIL;
-               *result = make_message("%u", pwd->ahi.sample_rate);
-               return 1;
-       }
-       if (!strcmp(cmd, "channels")) {
-               if (pwd->ahi.channels == 0)
-                       return -E_BTR_NAVAIL;
-               *result = make_message("%u", pwd->ahi.channels);
-               return 1;
-       }
-       return -ERRNO_TO_PARA_ERROR(ENOTSUP);
+       return decoder_execute(cmd, pwd->ahi.sample_rate, pwd->ahi.channels,
+               result);
 }
 
 #define WMA_OUTPUT_BUFFER_SIZE (128 * 1024)
@@ -1279,7 +1268,7 @@ next_buffer:
        }
 success:
        btr_consume(btrn, converted);
-       goto next_buffer;
+       return;
 err:
        assert(ret < 0);
        t->error = ret;