diff options
Diffstat (limited to 'test/run_convert.cxx')
-rw-r--r-- | test/run_convert.cxx | 58 |
1 files changed, 25 insertions, 33 deletions
diff --git a/test/run_convert.cxx b/test/run_convert.cxx index 0e873a3b3..8b9b15cf0 100644 --- a/test/run_convert.cxx +++ b/test/run_convert.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2013 The Music Player Daemon Project + * Copyright (C) 2003-2014 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -27,28 +27,18 @@ #include "AudioParser.hxx" #include "AudioFormat.hxx" #include "pcm/PcmConvert.hxx" -#include "ConfigGlobal.hxx" -#include "util/FifoBuffer.hxx" +#include "config/ConfigGlobal.hxx" +#include "util/ConstBuffer.hxx" +#include "util/StaticFifoBuffer.hxx" #include "util/Error.hxx" +#include "Log.hxx" #include "stdbin.h" -#include <glib.h> - #include <assert.h> #include <stddef.h> #include <stdlib.h> #include <unistd.h> -static void -my_log_func(const gchar *log_domain, gcc_unused GLogLevelFlags log_level, - const gchar *message, gcc_unused gpointer user_data) -{ - if (log_domain != NULL) - g_printerr("%s: %s\n", log_domain, message); - else - g_printerr("%s\n", message); -} - const char * config_get_string(gcc_unused enum ConfigOption option, const char *default_value) @@ -59,29 +49,25 @@ config_get_string(gcc_unused enum ConfigOption option, int main(int argc, char **argv) { AudioFormat in_audio_format, out_audio_format; - const void *output; if (argc != 3) { - g_printerr("Usage: run_convert IN_FORMAT OUT_FORMAT <IN >OUT\n"); + fprintf(stderr, + "Usage: run_convert IN_FORMAT OUT_FORMAT <IN >OUT\n"); return 1; } - g_log_set_default_handler(my_log_func, NULL); - Error error; if (!audio_format_parse(in_audio_format, argv[1], false, error)) { - g_printerr("Failed to parse audio format: %s\n", - error.GetMessage()); - return 1; + LogError(error, "Failed to parse audio format"); + return EXIT_FAILURE; } AudioFormat out_audio_format_mask; if (!audio_format_parse(out_audio_format_mask, argv[2], true, error)) { - g_printerr("Failed to parse audio format: %s\n", - error.GetMessage()); - return 1; + LogError(error, "Failed to parse audio format"); + return EXIT_FAILURE; } out_audio_format = in_audio_format; @@ -90,8 +76,12 @@ int main(int argc, char **argv) const size_t in_frame_size = in_audio_format.GetFrameSize(); PcmConvert state; + if (!state.Open(in_audio_format, out_audio_format_mask, error)) { + LogError(error, "Failed to open PcmConvert"); + return EXIT_FAILURE; + } - FifoBuffer<uint8_t, 4096> buffer; + StaticFifoBuffer<uint8_t, 4096> buffer; while (true) { { @@ -114,16 +104,18 @@ int main(int argc, char **argv) buffer.Consume(src.size); - size_t length; - output = state.Convert(in_audio_format, src.data, src.size, - out_audio_format, &length, error); - if (output == NULL) { - g_printerr("Failed to convert: %s\n", error.GetMessage()); - return 2; + auto output = state.Convert({src.data, src.size}, error); + if (output.IsNull()) { + state.Close(); + LogError(error, "Failed to convert"); + return EXIT_FAILURE; } - gcc_unused ssize_t ignored = write(1, output, length); + gcc_unused ssize_t ignored = write(1, output.data, + output.size); } + state.Close(); + return EXIT_SUCCESS; } |