aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/plugins/RecorderOutputPlugin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/output/plugins/RecorderOutputPlugin.cxx')
-rw-r--r--src/output/plugins/RecorderOutputPlugin.cxx25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/output/plugins/RecorderOutputPlugin.cxx b/src/output/plugins/RecorderOutputPlugin.cxx
index 5a082538c..3a25ada2d 100644
--- a/src/output/plugins/RecorderOutputPlugin.cxx
+++ b/src/output/plugins/RecorderOutputPlugin.cxx
@@ -20,6 +20,7 @@
#include "config.h"
#include "RecorderOutputPlugin.hxx"
#include "../OutputAPI.hxx"
+#include "../Wrapper.hxx"
#include "encoder/EncoderPlugin.hxx"
#include "encoder/EncoderList.hxx"
#include "config/ConfigError.hxx"
@@ -213,16 +214,6 @@ RecorderOutput::Open(AudioFormat &audio_format, Error &error)
return true;
}
-static bool
-recorder_output_open(AudioOutput *ao,
- AudioFormat &audio_format,
- Error &error)
-{
- RecorderOutput &recorder = *(RecorderOutput *)ao;
-
- return recorder.Open(audio_format, error);
-}
-
inline void
RecorderOutput::Close()
{
@@ -238,14 +229,6 @@ RecorderOutput::Close()
close(fd);
}
-static void
-recorder_output_close(AudioOutput *ao)
-{
- RecorderOutput &recorder = *(RecorderOutput *)ao;
-
- recorder.Close();
-}
-
inline void
RecorderOutput::SendTag(const Tag &tag)
{
@@ -275,6 +258,8 @@ recorder_output_play(AudioOutput *ao, const void *chunk, size_t size,
? size : 0;
}
+typedef AudioOutputWrapper<RecorderOutput> Wrapper;
+
const struct AudioOutputPlugin recorder_output_plugin = {
"recorder",
nullptr,
@@ -282,8 +267,8 @@ const struct AudioOutputPlugin recorder_output_plugin = {
recorder_output_finish,
nullptr,
nullptr,
- recorder_output_open,
- recorder_output_close,
+ &Wrapper::Open,
+ &Wrapper::Close,
nullptr,
recorder_output_send_tag,
recorder_output_play,