output/roar: use std::string
This commit is contained in:
parent
6db77dcf75
commit
85003429af
@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
/* libroar/services.h declares roar_service_stream::new - work around
|
/* libroar/services.h declares roar_service_stream::new - work around
|
||||||
this C++ problem */
|
this C++ problem */
|
||||||
#define new _new
|
#define new _new
|
||||||
@ -38,10 +40,10 @@
|
|||||||
class RoarOutput {
|
class RoarOutput {
|
||||||
struct audio_output base;
|
struct audio_output base;
|
||||||
|
|
||||||
|
std::string host, name;
|
||||||
|
|
||||||
roar_vs_t * vss;
|
roar_vs_t * vss;
|
||||||
int err;
|
int err;
|
||||||
char *host;
|
|
||||||
char *name;
|
|
||||||
int role;
|
int role;
|
||||||
struct roar_connection con;
|
struct roar_connection con;
|
||||||
struct roar_audio_info info;
|
struct roar_audio_info info;
|
||||||
@ -50,13 +52,7 @@ class RoarOutput {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
RoarOutput()
|
RoarOutput()
|
||||||
:err(ROAR_ERROR_NONE),
|
:err(ROAR_ERROR_NONE) {}
|
||||||
host(nullptr), name(nullptr) {}
|
|
||||||
|
|
||||||
~RoarOutput() {
|
|
||||||
g_free(host);
|
|
||||||
g_free(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
operator audio_output *() {
|
operator audio_output *() {
|
||||||
return &base;
|
return &base;
|
||||||
@ -133,8 +129,8 @@ roar_output_set_volume(RoarOutput *roar, unsigned volume)
|
|||||||
inline void
|
inline void
|
||||||
RoarOutput::Configure(const config_param ¶m)
|
RoarOutput::Configure(const config_param ¶m)
|
||||||
{
|
{
|
||||||
host = param.DupBlockString("server", nullptr);
|
host = param.GetBlockValue("server", "");
|
||||||
name = param.DupBlockString("name", "MPD");
|
name = param.GetBlockValue("name", "MPD");
|
||||||
|
|
||||||
const char *_role = param.GetBlockValue("role", "music");
|
const char *_role = param.GetBlockValue("role", "music");
|
||||||
role = _role != nullptr
|
role = _role != nullptr
|
||||||
@ -205,7 +201,9 @@ RoarOutput::Open(AudioFormat &audio_format, Error &error)
|
|||||||
{
|
{
|
||||||
const ScopeLock protect(mutex);
|
const ScopeLock protect(mutex);
|
||||||
|
|
||||||
if (roar_simple_connect(&con, host, name) < 0) {
|
if (roar_simple_connect(&con,
|
||||||
|
host.empty() ? nullptr : host.c_str(),
|
||||||
|
name.c_str()) < 0) {
|
||||||
error.Set(roar_output_domain,
|
error.Set(roar_output_domain,
|
||||||
"Failed to connect to Roar server");
|
"Failed to connect to Roar server");
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user