summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: efade62)
raw | patch | inline | side by side (parent: efade62)
author | Max Kellermann <max.kellermann@gmail.com> | |
Sat, 25 Mar 2017 19:37:13 +0000 (20:37 +0100) | ||
committer | Max Kellermann <max.kellermann@gmail.com> | |
Sat, 25 Mar 2017 19:37:13 +0000 (20:37 +0100) |
src/main.c | patch | blob | history | |
src/mpdclient.c | patch | blob | history | |
src/mpdclient.h | patch | blob | history |
diff --git a/src/main.c b/src/main.c
index a5a803f04104163562c514ffa88e9ab7281e2d44..11e46e4a698bef6c81717468ed20ea72cc446e44 100644 (file)
--- a/src/main.c
+++ b/src/main.c
mpd->events = 0;
}
-static char *
-settings_name(const struct mpd_settings *settings)
-{
- const char *host = mpd_settings_get_host(settings);
- if (host == NULL)
- host = _("unknown");
-
- if (host[0] == '/')
- return g_strdup(host);
-
- unsigned port = mpd_settings_get_port(settings);
- if (port == 0 || port == 6600)
- return g_strdup(host);
-
- return g_strdup_printf("%s:%u", host, port);
-}
-
-static char *
-default_settings_name(void)
-{
- struct mpd_settings *settings =
- mpd_settings_new(options.host, options.port, 0,
- NULL, options.password);
- if (settings == NULL)
- return g_strdup(_("unknown"));
-
- char *name = settings_name(settings);
- mpd_settings_free(settings);
-
- return name;
-}
-
/**
* This timer is installed when the connection to the MPD server is
* broken. It tries to recover by reconnecting periodically.
reconnect_source_id = 0;
- char *name = default_settings_name();
+ char *name = mpdclient_settings_name(mpd);
screen_status_printf(_("Connecting to %s... [Press %s to abort]"),
name, get_key_names(CMD_QUIT, false));
g_free(name);
diff --git a/src/mpdclient.c b/src/mpdclient.c
index 5903f1430fb3c9288c1c99d1fe208db07990e76f..8c18a0c81ab60044db6df587af04e87abc3d2e46 100644 (file)
--- a/src/mpdclient.c
+++ b/src/mpdclient.c
g_free(c);
}
+static char *
+settings_name(const struct mpd_settings *settings)
+{
+ assert(settings != NULL);
+
+ const char *host = mpd_settings_get_host(settings);
+ if (host == NULL)
+ host = "unknown";
+
+ if (host[0] == '/')
+ return g_strdup(host);
+
+ unsigned port = mpd_settings_get_port(settings);
+ if (port == 0 || port == 6600)
+ return g_strdup(host);
+
+ return g_strdup_printf("%s:%u", host, port);
+}
+
+char *
+mpdclient_settings_name(const struct mpdclient *c)
+{
+ assert(c != NULL);
+
+#ifdef ENABLE_ASYNC_CONNECT
+ return settings_name(c->settings);
+#else
+ struct mpd_settings *settings =
+ mpd_settings_new(c->host, c->port, 0, NULL, NULL);
+ if (settings == NULL)
+ return g_strdup("unknown");
+
+ char *name = settings_name(settings);
+ mpd_settings_free(settings);
+ return name;
+#endif
+}
+
static void
mpdclient_status_free(struct mpdclient *c)
{
diff --git a/src/mpdclient.h b/src/mpdclient.h
index b00709748eff7d99436d46d6675feb10a8535dd4..d51013fc8c4176b29b4b23e1b1ccf1a74c9a3573 100644 (file)
--- a/src/mpdclient.h
+++ b/src/mpdclient.h
void mpdclient_free(struct mpdclient *c);
+/**
+ * Determine a human-readable "name" of the settings currently used to
+ * connect to MPD.
+ *
+ * @return an allocated string that needs to be freed (with g_free())
+ * by the caller
+ */
+char *
+mpdclient_settings_name(const struct mpdclient *c);
+
gcc_pure
static inline bool
mpdclient_is_connected(const struct mpdclient *c)