aboutsummaryrefslogtreecommitdiff
path: root/src/filter/NullFilterPlugin.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-02-01 18:40:36 +0100
committerMax Kellermann <max@duempel.org>2013-02-02 09:34:07 +0100
commita9ce0218c1879a752c9d9ec6ef21fcf44eab51ab (patch)
treef30de05c9f0a45906d31d2d4a3dad2281fe8d49c /src/filter/NullFilterPlugin.cxx
parent7bb5a960fde46363adf888db5b05b7b883d2b16b (diff)
FilterInternal: convert struct filter to a OO interface
Diffstat (limited to 'src/filter/NullFilterPlugin.cxx')
-rw-r--r--src/filter/NullFilterPlugin.cxx68
1 files changed, 17 insertions, 51 deletions
diff --git a/src/filter/NullFilterPlugin.cxx b/src/filter/NullFilterPlugin.cxx
index 83082de5..d68065a3 100644
--- a/src/filter/NullFilterPlugin.cxx
+++ b/src/filter/NullFilterPlugin.cxx
@@ -30,65 +30,31 @@
#include "FilterRegistry.hxx"
#include "gcc.h"
-#include <glib.h>
-
-struct null_filter {
- struct filter filter;
+class NullFilter final : public Filter {
+public:
+ virtual const audio_format *Open(audio_format &af,
+ gcc_unused GError **error_r) {
+ return &af;
+ }
+
+ virtual void Close() {}
+
+ virtual const void *FilterPCM(const void *src, size_t src_size,
+ size_t *dest_size_r,
+ gcc_unused GError **error_r) {
+ *dest_size_r = src_size;
+ return src;
+ }
};
-static struct filter *
+static Filter *
null_filter_init(gcc_unused const struct config_param *param,
gcc_unused GError **error_r)
{
- struct null_filter *filter = g_new(struct null_filter, 1);
-
- filter_init(&filter->filter, &null_filter_plugin);
- return &filter->filter;
-}
-
-static void
-null_filter_finish(struct filter *_filter)
-{
- struct null_filter *filter = (struct null_filter *)_filter;
-
- g_free(filter);
-}
-
-static const struct audio_format *
-null_filter_open(struct filter *_filter, struct audio_format *audio_format,
- gcc_unused GError **error_r)
-{
- struct null_filter *filter = (struct null_filter *)_filter;
- (void)filter;
-
- return audio_format;
-}
-
-static void
-null_filter_close(struct filter *_filter)
-{
- struct null_filter *filter = (struct null_filter *)_filter;
- (void)filter;
-}
-
-static const void *
-null_filter_filter(struct filter *_filter,
- const void *src, size_t src_size,
- size_t *dest_size_r, gcc_unused GError **error_r)
-{
- struct null_filter *filter = (struct null_filter *)_filter;
- (void)filter;
-
- /* return the unmodified source buffer */
- *dest_size_r = src_size;
- return src;
+ return new NullFilter();
}
const struct filter_plugin null_filter_plugin = {
"null",
null_filter_init,
- null_filter_finish,
- null_filter_open,
- null_filter_close,
- null_filter_filter,
};