encoder/Plugin: migrate from class Error to C++ exceptions
This commit is contained in:
@@ -148,9 +148,7 @@ RecorderOutput::Configure(const ConfigBlock &block, Error &error)
|
||||
|
||||
/* initialize encoder */
|
||||
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block, error);
|
||||
if (prepared_encoder == nullptr)
|
||||
return false;
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -160,14 +158,19 @@ RecorderOutput::Create(const ConfigBlock &block, Error &error)
|
||||
{
|
||||
RecorderOutput *recorder = new RecorderOutput();
|
||||
|
||||
if (!recorder->Initialize(block, error)) {
|
||||
delete recorder;
|
||||
return nullptr;
|
||||
}
|
||||
try {
|
||||
if (!recorder->Initialize(block, error)) {
|
||||
delete recorder;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!recorder->Configure(block, error)) {
|
||||
if (!recorder->Configure(block, error)) {
|
||||
delete recorder;
|
||||
return nullptr;
|
||||
}
|
||||
} catch (...) {
|
||||
delete recorder;
|
||||
return nullptr;
|
||||
throw;
|
||||
}
|
||||
|
||||
return recorder;
|
||||
|
||||
@@ -194,9 +194,7 @@ ShoutOutput::Configure(const ConfigBlock &block, Error &error)
|
||||
return false;
|
||||
}
|
||||
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block, error);
|
||||
if (prepared_encoder == nullptr)
|
||||
return false;
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block);
|
||||
|
||||
unsigned shout_format;
|
||||
if (strcmp(encoding, "mp3") == 0 || strcmp(encoding, "lame") == 0)
|
||||
@@ -304,9 +302,14 @@ ShoutOutput::Create(const ConfigBlock &block, Error &error)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!sd->Configure(block, error)) {
|
||||
try {
|
||||
if (!sd->Configure(block, error)) {
|
||||
delete sd;
|
||||
return nullptr;
|
||||
}
|
||||
} catch (...) {
|
||||
delete sd;
|
||||
return nullptr;
|
||||
throw;
|
||||
}
|
||||
|
||||
return sd;
|
||||
|
||||
@@ -117,9 +117,7 @@ HttpdOutput::Configure(const ConfigBlock &block, Error &error)
|
||||
|
||||
/* initialize encoder */
|
||||
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block, error);
|
||||
if (prepared_encoder == nullptr)
|
||||
return false;
|
||||
prepared_encoder = encoder_init(*encoder_plugin, block);
|
||||
|
||||
/* determine content type */
|
||||
content_type = prepared_encoder->GetMimeType();
|
||||
|
||||
Reference in New Issue
Block a user