fix(mpd): Avoid nullptrs
This commit is contained in:
parent
78effb28b8
commit
89a476e94c
@ -122,15 +122,15 @@ namespace mpd
|
|||||||
bool mpd_idle = false;
|
bool mpd_idle = false;
|
||||||
int mpd_fd;
|
int mpd_fd;
|
||||||
|
|
||||||
void check_connection() throw(ClientError);
|
void check_connection();
|
||||||
void check_prerequisites();
|
void check_prerequisites();
|
||||||
void check_prerequisites_commands_list();
|
void check_prerequisites_commands_list();
|
||||||
void check_errors() throw(ClientError, ServerError);
|
void check_errors();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static std::shared_ptr<Connection> &get();
|
static std::shared_ptr<Connection> &get();
|
||||||
|
|
||||||
void connect() throw (ClientError);
|
void connect();
|
||||||
void disconnect();
|
void disconnect();
|
||||||
bool connected();
|
bool connected();
|
||||||
bool retry_connection(int interval = 1);
|
bool retry_connection(int interval = 1);
|
||||||
|
@ -21,7 +21,7 @@ namespace mpd
|
|||||||
|
|
||||||
// Base
|
// Base
|
||||||
|
|
||||||
void Connection::connect() throw (ClientError)
|
void Connection::connect()
|
||||||
{
|
{
|
||||||
assert(!this->connection);
|
assert(!this->connection);
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ namespace mpd
|
|||||||
this->check_errors();
|
this->check_errors();
|
||||||
} catch(ClientError &e) {
|
} catch(ClientError &e) {
|
||||||
this->disconnect();
|
this->disconnect();
|
||||||
throw e;
|
throw &e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ namespace mpd
|
|||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Connection::check_connection() throw(ClientError)
|
void Connection::check_connection()
|
||||||
{
|
{
|
||||||
if (!this->connection)
|
if (!this->connection)
|
||||||
throw ClientError("Not connected to MPD server", MPD_ERROR_STATE, false);
|
throw ClientError("Not connected to MPD server", MPD_ERROR_STATE, false);
|
||||||
@ -116,7 +116,7 @@ namespace mpd
|
|||||||
this->check_prerequisites();
|
this->check_prerequisites();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Connection::check_errors() throw(ClientError, ServerError)
|
void Connection::check_errors()
|
||||||
{
|
{
|
||||||
auto connection = this->connection.get();
|
auto connection = this->connection.get();
|
||||||
mpd_error code = mpd_connection_get_error(connection);
|
mpd_error code = mpd_connection_get_error(connection);
|
||||||
@ -367,19 +367,28 @@ namespace mpd
|
|||||||
std::string Song::get_artist()
|
std::string Song::get_artist()
|
||||||
{
|
{
|
||||||
assert(this->song);
|
assert(this->song);
|
||||||
return mpd_song_get_tag(this->song.get(), MPD_TAG_ARTIST, 0);
|
auto tag = mpd_song_get_tag(this->song.get(), MPD_TAG_ARTIST, 0);
|
||||||
|
if (tag == nullptr)
|
||||||
|
return "";
|
||||||
|
return std::string(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Song::get_album()
|
std::string Song::get_album()
|
||||||
{
|
{
|
||||||
assert(this->song);
|
assert(this->song);
|
||||||
return mpd_song_get_tag(this->song.get(), MPD_TAG_ALBUM, 0);
|
auto tag = mpd_song_get_tag(this->song.get(), MPD_TAG_ALBUM, 0);
|
||||||
|
if (tag == nullptr)
|
||||||
|
return "";
|
||||||
|
return std::string(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Song::get_title()
|
std::string Song::get_title()
|
||||||
{
|
{
|
||||||
assert(this->song);
|
assert(this->song);
|
||||||
return mpd_song_get_tag(this->song.get(), MPD_TAG_TITLE, 0);
|
auto tag = mpd_song_get_tag(this->song.get(), MPD_TAG_TITLE, 0);
|
||||||
|
if (tag == nullptr)
|
||||||
|
return "";
|
||||||
|
return std::string(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned Song::get_duration()
|
unsigned Song::get_duration()
|
||||||
|
Loading…
Reference in New Issue
Block a user