EncoderPlugin: pass config_param reference

This commit is contained in:
Max Kellermann 2013-08-04 12:24:36 +02:00
parent 81c3224076
commit ca0d09c50f
13 changed files with 47 additions and 49 deletions

View File

@ -49,7 +49,7 @@ struct Encoder {
struct EncoderPlugin {
const char *name;
Encoder *(*init)(const struct config_param *param,
Encoder *(*init)(const config_param &param,
GError **error);
void (*finish)(Encoder *encoder);
@ -87,7 +87,7 @@ struct EncoderPlugin {
* @return an encoder object on success, NULL on failure
*/
static inline Encoder *
encoder_init(const EncoderPlugin &plugin, const config_param *param,
encoder_init(const EncoderPlugin &plugin, const config_param &param,
GError **error_r)
{
return plugin.init(param, error_r);

View File

@ -63,17 +63,16 @@ flac_encoder_quark(void)
}
static bool
flac_encoder_configure(struct flac_encoder *encoder,
const struct config_param *param, G_GNUC_UNUSED GError **error)
flac_encoder_configure(struct flac_encoder *encoder, const config_param &param,
gcc_unused GError **error)
{
encoder->compression = config_get_block_unsigned(param,
"compression", 5);
encoder->compression = param.GetBlockValue("compression", 5u);
return true;
}
static Encoder *
flac_encoder_init(const struct config_param *param, GError **error)
flac_encoder_init(const config_param &param, GError **error)
{
flac_encoder *encoder = new flac_encoder();

View File

@ -43,7 +43,7 @@ struct LameEncoder final {
LameEncoder():encoder(lame_encoder_plugin) {}
bool Configure(const config_param *param, GError **error);
bool Configure(const config_param &param, GError **error);
};
static inline GQuark
@ -53,12 +53,12 @@ lame_encoder_quark(void)
}
bool
LameEncoder::Configure(const config_param *param, GError **error)
LameEncoder::Configure(const config_param &param, GError **error)
{
const char *value;
char *endptr;
value = config_get_block_string(param, "quality", nullptr);
value = param.GetBlockValue("quality");
if (value != nullptr) {
/* a quality was configured (VBR) */
@ -68,26 +68,26 @@ LameEncoder::Configure(const config_param *param, GError **error)
g_set_error(error, lame_encoder_quark(), 0,
"quality \"%s\" is not a number in the "
"range -1 to 10, line %i",
value, param->line);
value, param.line);
return false;
}
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
if (param.GetBlockValue("bitrate") != nullptr) {
g_set_error(error, lame_encoder_quark(), 0,
"quality and bitrate are "
"both defined (line %i)",
param->line);
param.line);
return false;
}
} else {
/* a bit rate was configured */
value = config_get_block_string(param, "bitrate", nullptr);
value = param.GetBlockValue("bitrate");
if (value == nullptr) {
g_set_error(error, lame_encoder_quark(), 0,
"neither bitrate nor quality defined "
"at line %i",
param->line);
param.line);
return false;
}
@ -97,7 +97,7 @@ LameEncoder::Configure(const config_param *param, GError **error)
if (*endptr != '\0' || bitrate <= 0) {
g_set_error(error, lame_encoder_quark(), 0,
"bitrate at line %i should be a positive integer",
param->line);
param.line);
return false;
}
}
@ -106,7 +106,7 @@ LameEncoder::Configure(const config_param *param, GError **error)
}
static Encoder *
lame_encoder_init(const struct config_param *param, GError **error_r)
lame_encoder_init(const config_param &param, GError **error_r)
{
LameEncoder *encoder = new LameEncoder();

View File

@ -40,7 +40,7 @@ struct NullEncoder final {
};
static Encoder *
null_encoder_init(gcc_unused const struct config_param *param,
null_encoder_init(gcc_unused const config_param &param,
gcc_unused GError **error)
{
NullEncoder *encoder = new NullEncoder();

View File

@ -75,9 +75,9 @@ opus_encoder_quark(void)
static bool
opus_encoder_configure(struct opus_encoder *encoder,
const struct config_param *param, GError **error_r)
const config_param &param, GError **error_r)
{
const char *value = config_get_block_string(param, "bitrate", "auto");
const char *value = param.GetBlockValue("bitrate", "auto");
if (strcmp(value, "auto") == 0)
encoder->bitrate = OPUS_AUTO;
else if (strcmp(value, "max") == 0)
@ -93,15 +93,14 @@ opus_encoder_configure(struct opus_encoder *encoder,
}
}
encoder->complexity = config_get_block_unsigned(param, "complexity",
10);
encoder->complexity = param.GetBlockValue("complexity", 10u);
if (encoder->complexity > 10) {
g_set_error(error_r, opus_encoder_quark(), 0,
"Invalid complexity");
return false;
}
value = config_get_block_string(param, "signal", "auto");
value = param.GetBlockValue("signal", "auto");
if (strcmp(value, "auto") == 0)
encoder->signal = OPUS_AUTO;
else if (strcmp(value, "voice") == 0)
@ -118,7 +117,7 @@ opus_encoder_configure(struct opus_encoder *encoder,
}
static Encoder *
opus_encoder_init(const struct config_param *param, GError **error)
opus_encoder_init(const config_param &param, GError **error)
{
opus_encoder *encoder = new opus_encoder();

View File

@ -48,7 +48,7 @@ struct TwolameEncoder final {
TwolameEncoder():encoder(twolame_encoder_plugin) {}
bool Configure(const config_param *param, GError **error);
bool Configure(const config_param &param, GError **error);
};
static inline GQuark
@ -58,12 +58,12 @@ twolame_encoder_quark(void)
}
bool
TwolameEncoder::Configure(const config_param *param, GError **error)
TwolameEncoder::Configure(const config_param &param, GError **error)
{
const char *value;
char *endptr;
value = config_get_block_string(param, "quality", nullptr);
value = param.GetBlockValue("quality");
if (value != nullptr) {
/* a quality was configured (VBR) */
@ -73,26 +73,26 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
g_set_error(error, twolame_encoder_quark(), 0,
"quality \"%s\" is not a number in the "
"range -1 to 10, line %i",
value, param->line);
value, param.line);
return false;
}
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
if (param.GetBlockValue("bitrate") != nullptr) {
g_set_error(error, twolame_encoder_quark(), 0,
"quality and bitrate are "
"both defined (line %i)",
param->line);
param.line);
return false;
}
} else {
/* a bit rate was configured */
value = config_get_block_string(param, "bitrate", nullptr);
value = param.GetBlockValue("bitrate");
if (value == nullptr) {
g_set_error(error, twolame_encoder_quark(), 0,
"neither bitrate nor quality defined "
"at line %i",
param->line);
param.line);
return false;
}
@ -102,7 +102,7 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
if (*endptr != '\0' || bitrate <= 0) {
g_set_error(error, twolame_encoder_quark(), 0,
"bitrate at line %i should be a positive integer",
param->line);
param.line);
return false;
}
}
@ -111,7 +111,7 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
}
static Encoder *
twolame_encoder_init(const struct config_param *param, GError **error_r)
twolame_encoder_init(const config_param &param, GError **error_r)
{
g_debug("libtwolame version %s", get_twolame_version());

View File

@ -62,9 +62,9 @@ vorbis_encoder_quark(void)
static bool
vorbis_encoder_configure(struct vorbis_encoder *encoder,
const struct config_param *param, GError **error)
const config_param &param, GError **error)
{
const char *value = config_get_block_string(param, "quality", nullptr);
const char *value = param.GetBlockValue("quality");
if (value != nullptr) {
/* a quality was configured (VBR) */
@ -76,26 +76,26 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
g_set_error(error, vorbis_encoder_quark(), 0,
"quality \"%s\" is not a number in the "
"range -1 to 10, line %i",
value, param->line);
value, param.line);
return false;
}
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
if (param.GetBlockValue("bitrate") != nullptr) {
g_set_error(error, vorbis_encoder_quark(), 0,
"quality and bitrate are "
"both defined (line %i)",
param->line);
param.line);
return false;
}
} else {
/* a bit rate was configured */
value = config_get_block_string(param, "bitrate", nullptr);
value = param.GetBlockValue("bitrate");
if (value == nullptr) {
g_set_error(error, vorbis_encoder_quark(), 0,
"neither bitrate nor quality defined "
"at line %i",
param->line);
param.line);
return false;
}
@ -106,7 +106,7 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
if (*endptr != '\0' || encoder->bitrate <= 0) {
g_set_error(error, vorbis_encoder_quark(), 0,
"bitrate at line %i should be a positive integer",
param->line);
param.line);
return false;
}
}
@ -115,7 +115,7 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
}
static Encoder *
vorbis_encoder_init(const struct config_param *param, GError **error)
vorbis_encoder_init(const config_param &param, GError **error)
{
vorbis_encoder *encoder = new vorbis_encoder();

View File

@ -83,7 +83,7 @@ fill_wave_header(struct wave_header *header, int channels, int bits,
}
static Encoder *
wave_encoder_init(gcc_unused const struct config_param *param,
wave_encoder_init(gcc_unused const config_param &param,
gcc_unused GError **error)
{
WaveEncoder *encoder = new WaveEncoder();

View File

@ -123,7 +123,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;

View File

@ -108,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;

View File

@ -185,7 +185,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;

View File

@ -71,7 +71,7 @@ int main(int argc, char **argv)
config_param param;
param.AddBlockParam("quality", "5.0", -1);
const auto encoder = encoder_init(*plugin, &param, &error);
const auto encoder = encoder_init(*plugin, param, &error);
if (encoder == NULL) {
g_printerr("Failed to initialize encoder: %s\n",
error->message);

View File

@ -56,7 +56,7 @@ main(G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
config_param param;
param.AddBlockParam("quality", "5.0", -1);
const auto encoder = encoder_init(*plugin, &param, NULL);
const auto encoder = encoder_init(*plugin, param, NULL);
assert(encoder != NULL);
/* open the encoder */