aboutsummaryrefslogtreecommitdiffstats
path: root/test/run_convert.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/run_convert.cxx')
-rw-r--r--test/run_convert.cxx58
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;
}