Commit 1cde8682 authored by Max Kellermann's avatar Max Kellermann

output/pipe: use std::string

parent dbd88e6a
...@@ -24,15 +24,14 @@ ...@@ -24,15 +24,14 @@
#include "util/Error.hxx" #include "util/Error.hxx"
#include "util/Domain.hxx" #include "util/Domain.hxx"
#include <glib.h> #include <string>
#include <stdio.h> #include <stdio.h>
#include <errno.h>
struct PipeOutput { struct PipeOutput {
struct audio_output base; struct audio_output base;
char *cmd; std::string cmd;
FILE *fh; FILE *fh;
bool Initialize(const config_param &param, Error &error) { bool Initialize(const config_param &param, Error &error) {
...@@ -52,8 +51,8 @@ static constexpr Domain pipe_output_domain("pipe_output"); ...@@ -52,8 +51,8 @@ static constexpr Domain pipe_output_domain("pipe_output");
inline bool inline bool
PipeOutput::Configure(const config_param &param, Error &error) PipeOutput::Configure(const config_param &param, Error &error)
{ {
cmd = param.DupBlockString("command"); cmd = param.GetBlockValue("command", "");
if (cmd == nullptr) { if (cmd.empty()) {
error.Set(config_domain, error.Set(config_domain,
"No \"command\" parameter specified"); "No \"command\" parameter specified");
return false; return false;
...@@ -86,7 +85,6 @@ pipe_output_finish(struct audio_output *ao) ...@@ -86,7 +85,6 @@ pipe_output_finish(struct audio_output *ao)
{ {
PipeOutput *pd = (PipeOutput *)ao; PipeOutput *pd = (PipeOutput *)ao;
g_free(pd->cmd);
pd->Deinitialize(); pd->Deinitialize();
delete pd; delete pd;
} }
...@@ -98,10 +96,10 @@ pipe_output_open(struct audio_output *ao, ...@@ -98,10 +96,10 @@ pipe_output_open(struct audio_output *ao,
{ {
PipeOutput *pd = (PipeOutput *)ao; PipeOutput *pd = (PipeOutput *)ao;
pd->fh = popen(pd->cmd, "w"); pd->fh = popen(pd->cmd.c_str(), "w");
if (pd->fh == nullptr) { if (pd->fh == nullptr) {
error.FormatErrno("Error opening pipe \"%s\"", error.FormatErrno("Error opening pipe \"%s\"",
pd->cmd); pd->cmd.c_str());
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment