diff options
author | Max Kellermann <max@duempel.org> | 2013-07-30 09:04:05 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-07-30 09:04:05 +0200 |
commit | 9a0061c511403bc023430feb91094355da83a663 (patch) | |
tree | 7601036948af024a350f3947771375f3588442d9 /src/output | |
parent | 7a3aac1843a9c84cd87512ef4e9bbc2def727591 (diff) | |
download | mpd-9a0061c511403bc023430feb91094355da83a663.tar.gz mpd-9a0061c511403bc023430feb91094355da83a663.tar.xz mpd-9a0061c511403bc023430feb91094355da83a663.zip |
encoder_api: convert to C++
Diffstat (limited to 'src/output')
-rw-r--r-- | src/output/HttpdInternal.hxx | 3 | ||||
-rw-r--r-- | src/output/HttpdOutputPlugin.cxx | 11 | ||||
-rw-r--r-- | src/output/RecorderOutputPlugin.cxx | 9 | ||||
-rw-r--r-- | src/output/ShoutOutputPlugin.cxx | 13 |
4 files changed, 17 insertions, 19 deletions
diff --git a/src/output/HttpdInternal.hxx b/src/output/HttpdInternal.hxx index b79a22905..d7394d051 100644 --- a/src/output/HttpdInternal.hxx +++ b/src/output/HttpdInternal.hxx @@ -37,6 +37,7 @@ class EventLoop; class ServerSocket; class HttpdClient; class Page; +struct Encoder; struct HttpdOutput final : private ServerSocket { struct audio_output base; @@ -50,7 +51,7 @@ struct HttpdOutput final : private ServerSocket { /** * The configured encoder plugin. */ - struct encoder *encoder; + Encoder *encoder; /** * Number of bytes which were fed into the encoder, without diff --git a/src/output/HttpdOutputPlugin.cxx b/src/output/HttpdOutputPlugin.cxx index 8c0b5f8be..2ac462842 100644 --- a/src/output/HttpdOutputPlugin.cxx +++ b/src/output/HttpdOutputPlugin.cxx @@ -22,7 +22,7 @@ #include "HttpdInternal.hxx" #include "HttpdClient.hxx" #include "OutputAPI.hxx" -#include "encoder_plugin.h" +#include "EncoderPlugin.hxx" #include "EncoderList.hxx" #include "resolver.h" #include "Page.hxx" @@ -102,8 +102,7 @@ HttpdOutput::Configure(const config_param *param, GError **error_r) const char *encoder_name = config_get_block_string(param, "encoder", "vorbis"); - const struct encoder_plugin *encoder_plugin = - encoder_plugin_get(encoder_name); + const auto encoder_plugin = encoder_plugin_get(encoder_name); if (encoder_plugin == NULL) { g_set_error(error_r, httpd_output_quark(), 0, "No such encoder: %s", encoder_name); @@ -125,7 +124,7 @@ HttpdOutput::Configure(const config_param *param, GError **error_r) /* initialize encoder */ - encoder = encoder_init(encoder_plugin, param, error_r); + encoder = encoder_init(*encoder_plugin, param, error_r); if (encoder == nullptr) return false; @@ -190,7 +189,7 @@ inline void HttpdOutput::AddClient(int fd) { clients.emplace_front(this, fd, GetEventLoop(), - encoder->plugin->tag == NULL); + encoder->plugin.tag == nullptr); ++clients_cnt; /* pass metadata to client */ @@ -489,7 +488,7 @@ HttpdOutput::SendTag(const struct tag *tag) { assert(tag != NULL); - if (encoder->plugin->tag != NULL) { + if (encoder->plugin.tag != nullptr) { /* embed encoder tags */ /* flush the current stream, and end it */ diff --git a/src/output/RecorderOutputPlugin.cxx b/src/output/RecorderOutputPlugin.cxx index b9874debb..6b31fcbc6 100644 --- a/src/output/RecorderOutputPlugin.cxx +++ b/src/output/RecorderOutputPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "RecorderOutputPlugin.hxx" #include "OutputAPI.hxx" -#include "encoder_plugin.h" +#include "EncoderPlugin.hxx" #include "EncoderList.hxx" #include "fd_util.h" #include "open.h" @@ -40,7 +40,7 @@ struct RecorderOutput { /** * The configured encoder plugin. */ - struct encoder *encoder; + Encoder *encoder; /** * The destination file name. @@ -92,8 +92,7 @@ RecorderOutput::Configure(const config_param *param, GError **error_r) const char *encoder_name = config_get_block_string(param, "encoder", "vorbis"); - const struct encoder_plugin *encoder_plugin = - encoder_plugin_get(encoder_name); + const auto encoder_plugin = encoder_plugin_get(encoder_name); if (encoder_plugin == nullptr) { g_set_error(error_r, recorder_output_quark(), 0, "No such encoder: %s", encoder_name); @@ -109,7 +108,7 @@ RecorderOutput::Configure(const config_param *param, GError **error_r) /* initialize encoder */ - encoder = encoder_init(encoder_plugin, param, error_r); + encoder = encoder_init(*encoder_plugin, param, error_r); if (encoder == nullptr) return false; diff --git a/src/output/ShoutOutputPlugin.cxx b/src/output/ShoutOutputPlugin.cxx index 912b57dc8..0a46d8bee 100644 --- a/src/output/ShoutOutputPlugin.cxx +++ b/src/output/ShoutOutputPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "ShoutOutputPlugin.hxx" #include "OutputAPI.hxx" -#include "encoder_plugin.h" +#include "EncoderPlugin.hxx" #include "EncoderList.hxx" #include "mpd_error.h" @@ -42,7 +42,7 @@ struct ShoutOutput final { shout_t *shout_conn; shout_metadata_t *shout_meta; - struct encoder *encoder; + Encoder *encoder; float quality; int bitrate; @@ -88,7 +88,7 @@ shout_output_quark(void) return g_quark_from_static_string("shout_output"); } -static const struct encoder_plugin * +static const EncoderPlugin * shout_encoder_plugin_get(const char *name) { if (strcmp(name, "ogg") == 0) @@ -179,8 +179,7 @@ ShoutOutput::Configure(const config_param *param, GError **error_r) const char *encoding = config_get_block_string(param, "encoding", "ogg"); - const struct encoder_plugin *encoder_plugin = - shout_encoder_plugin_get(encoding); + const auto encoder_plugin = shout_encoder_plugin_get(encoding); if (encoder_plugin == nullptr) { g_set_error(error_r, shout_output_quark(), 0, "couldn't find shout encoder plugin \"%s\"", @@ -188,7 +187,7 @@ ShoutOutput::Configure(const config_param *param, GError **error_r) return false; } - encoder = encoder_init(encoder_plugin, param, error_r); + encoder = encoder_init(*encoder_plugin, param, error_r); if (encoder == nullptr) return false; @@ -514,7 +513,7 @@ static void my_shout_set_tag(struct audio_output *ao, ShoutOutput *sd = (ShoutOutput *)ao; GError *error = nullptr; - if (sd->encoder->plugin->tag != nullptr) { + if (sd->encoder->plugin.tag != nullptr) { /* encoder plugin supports stream tags */ if (!encoder_pre_tag(sd->encoder, &error)) { |