summaryrefslogtreecommitdiff
path: root/commands.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-08-18 01:40:54 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2010-08-18 01:40:54 +0200
commite6ed2da856ec02f3982af4017f20ff873dde0485 (patch)
treed550157c897892ffa3ce0025f9237e2c59dd7906 /commands.c
parent4f153bf7b20a76da5563f86047a8c0e74436644d (diff)
Dynamically select decoder using decoder_find().
Diffstat (limited to 'commands.c')
-rw-r--r--commands.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/commands.c b/commands.c
index dd32a7c..38d760f 100644
--- a/commands.c
+++ b/commands.c
@@ -197,10 +197,17 @@ static void commands_get_mp3(GSocketConnection *connection, const gchar *cmd) {
g_string_free(string, TRUE);
- extern const struct decoder_plugin decoder_mpg123_decoder;
+ const struct decoder_plugin *decoder = decoder_find(path);
extern const struct encoder_plugin encoder_lame_encoder;
- transcode((GInputStream*)is, &decoder_mpg123_decoder, os, &encoder_lame_encoder);
+ if(decoder == NULL) {
+ g_warning("no suitable decoder found");
+ goto commands_get_mp3_file_unref;
+ } else {
+ g_debug("using decoder %s", decoder->name);
+ }
+
+ transcode((GInputStream*)is, decoder, os, &encoder_lame_encoder);
commands_get_mp3_file_unref: