Make a description of ${cpu} variable not so confusing.
[monky] / src / mpd.c
index a197635..b9d0a3d 100644 (file)
--- a/src/mpd.c
+++ b/src/mpd.c
@@ -1,3 +1,9 @@
+/*
+ * mpd.c: MPD stuff for Conky
+ *
+ * $Id$
+ */
+
 #include "conky.h"
 #include <stdio.h>
 #include <string.h>
@@ -8,9 +14,9 @@
 void update_mpd()
 {
        struct information *current_info = &info;
-       current_info->conn =
-           mpd_newConnection(current_info->mpd.host,
-                             current_info->mpd.port, 10);
+       if (current_info->conn == NULL) {
+               current_info->conn = mpd_newConnection(current_info->mpd.host, current_info->mpd.port, 10);
+       }
        if (strlen(current_info->mpd.password) > 1) {
                mpd_sendPasswordCommand(current_info->conn,
                                        current_info->mpd.password);
@@ -19,6 +25,7 @@ void update_mpd()
        if (current_info->conn->error) {
                //ERR("%MPD error: s\n", current_info->conn->errorStr);
                mpd_closeConnection(current_info->conn);
+               current_info->conn = 0;
                if (current_info->mpd.artist == NULL)
                        current_info->mpd.artist =
                            malloc(TEXT_BUFFER_SIZE);
@@ -41,31 +48,15 @@ void update_mpd()
                        current_info->mpd.name = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.file == NULL)
                        current_info->mpd.file = malloc(TEXT_BUFFER_SIZE);
-               strncpy(current_info->mpd.name, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.file, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.artist, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.album, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.title, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.random, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.repeat, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.track, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               if (strlen(current_info->conn->errorStr) > 1) {
-                       strncpy(current_info->mpd.status,
-                               current_info->conn->errorStr,
-                               TEXT_BUFFER_SIZE - 1);
-               } else {
-                       strncpy(current_info->mpd.status,
-                               "MPD not responding",
-                               TEXT_BUFFER_SIZE - 1);
-               }
+               *current_info->mpd.name=0;
+               *current_info->mpd.file=0;
+               *current_info->mpd.artist=0;
+               *current_info->mpd.album=0;
+               *current_info->mpd.title=0;
+               *current_info->mpd.random=0;
+               *current_info->mpd.repeat=0;
+               *current_info->mpd.track=0;
+               strncpy(current_info->mpd.status, "MPD not responding", TEXT_BUFFER_SIZE - 1);
                current_info->mpd.bitrate = 0;
                current_info->mpd.progress = 0;
                current_info->mpd.elapsed = 0;
@@ -82,6 +73,7 @@ void update_mpd()
        if ((status = mpd_getStatus(current_info->conn)) == NULL) {
                //ERR("MPD error: %s\n", current_info->conn->errorStr);
                mpd_closeConnection(current_info->conn);
+               current_info->conn = 0;
                if (current_info->mpd.artist == NULL)
                        current_info->mpd.artist =
                            malloc(TEXT_BUFFER_SIZE);
@@ -98,37 +90,20 @@ void update_mpd()
                if (current_info->mpd.track == NULL)
                        current_info->mpd.track = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.status == NULL)
-                       current_info->mpd.status =
-                           malloc(TEXT_BUFFER_SIZE);
+                       current_info->mpd.status = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.name == NULL)
                        current_info->mpd.name = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.file == NULL)
                        current_info->mpd.file = malloc(TEXT_BUFFER_SIZE);
-               strncpy(current_info->mpd.name, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.file, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.artist, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.album, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.title, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.random, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.repeat, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.track, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               if (strlen(current_info->conn->errorStr) > 1) {
-                       strncpy(current_info->mpd.status,
-                               current_info->conn->errorStr,
-                               TEXT_BUFFER_SIZE - 1);
-               } else {
-                       strncpy(current_info->mpd.status,
-                               "MPD not responding",
-                               TEXT_BUFFER_SIZE - 1);
-               }
+               *current_info->mpd.name=0;
+               *current_info->mpd.file=0;
+               *current_info->mpd.artist=0;
+               *current_info->mpd.album=0;
+               *current_info->mpd.title=0;
+               *current_info->mpd.random=0;
+               *current_info->mpd.repeat=0;
+               *current_info->mpd.track=0;
+               strncpy(current_info->mpd.status, "MPD not responding", TEXT_BUFFER_SIZE - 1);
                current_info->mpd.bitrate = 0;
                current_info->mpd.progress = 0;
                current_info->mpd.elapsed = 0;
@@ -173,23 +148,15 @@ void update_mpd()
                        current_info->mpd.name = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.file == NULL)
                        current_info->mpd.file = malloc(TEXT_BUFFER_SIZE);
-               strncpy(current_info->mpd.name, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.file, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.artist, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.album, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.title, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.random, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.repeat, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.track, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.status, "Unknown",
+               *current_info->mpd.name=0;
+               *current_info->mpd.file=0;
+               *current_info->mpd.artist=0;
+               *current_info->mpd.album=0;
+               *current_info->mpd.title=0;
+               *current_info->mpd.random=0;
+               *current_info->mpd.repeat=0;
+               *current_info->mpd.track=0;
+               strncpy(current_info->mpd.status, "Stopped",
                        TEXT_BUFFER_SIZE - 1);
        }
        if (status->state == MPD_STATUS_STATE_PAUSE) {
@@ -226,24 +193,15 @@ void update_mpd()
                        current_info->mpd.name = malloc(TEXT_BUFFER_SIZE);
                if (current_info->mpd.file == NULL)
                        current_info->mpd.file = malloc(TEXT_BUFFER_SIZE);
-               strncpy(current_info->mpd.name, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.file, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.artist, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.album, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.title, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.random, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.repeat, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.track, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
-               strncpy(current_info->mpd.status, "Unknown",
-                       TEXT_BUFFER_SIZE - 1);
+               *current_info->mpd.name=0;
+               *current_info->mpd.file=0;
+               *current_info->mpd.artist=0;
+               *current_info->mpd.album=0;
+               *current_info->mpd.title=0;
+               *current_info->mpd.random=0;
+               *current_info->mpd.repeat=0;
+               *current_info->mpd.track=0;
+               *current_info->mpd.status=0;
        }
        if (status->state == MPD_STATUS_STATE_PLAY ||
            status->state == MPD_STATUS_STATE_PAUSE) {
@@ -263,20 +221,21 @@ void update_mpd()
                } else if (status->random == 1) {
                        strcpy(current_info->mpd.random, "On");
                } else {
-                       strcpy(current_info->mpd.random, "Unknown");
+                       *current_info->mpd.random=0;
                }
                if (status->repeat == 0) {
                        strcpy(current_info->mpd.repeat, "Off");
                } else if (status->repeat == 1) {
                        strcpy(current_info->mpd.repeat, "On");
                } else {
-                       strcpy(current_info->mpd.repeat, "Unknown");
+                       *current_info->mpd.repeat=0;
                }
        }
 
        if (current_info->conn->error) {
                //fprintf(stderr, "%s\n", current_info->conn->errorStr);
                mpd_closeConnection(current_info->conn);
+               current_info->conn = 0;
                return;
        }
 
@@ -306,37 +265,37 @@ void update_mpd()
                        strncpy(current_info->mpd.artist, song->artist,
                                TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.artist, "Unknown");
+                       *current_info->mpd.artist=0;
                }
                if (song->album) {
                        strncpy(current_info->mpd.album, song->album,
                                TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.album, "Unknown");
+                       *current_info->mpd.album=0;
                }
                if (song->title) {
                        strncpy(current_info->mpd.title, song->title,
                                TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.title, "Unknown");
+                       *current_info->mpd.title=0;
                }
                if (song->track) {
                        strncpy(current_info->mpd.track, song->track,
                                TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.track, "Unknown");
+                       *current_info->mpd.track=0;
                }
                if (song->name) {
                        strncpy(current_info->mpd.name, song->name,
                                TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.name, "Unknown");
+                       *current_info->mpd.name=0;
                }
                if (song->file) {
                        strncpy(current_info->mpd.file,
                                song->file, TEXT_BUFFER_SIZE - 1);
                } else {
-                       strcpy(current_info->mpd.file, "Unknown");
+                       *current_info->mpd.file=0;
                }
                if (entity != NULL) {
                        mpd_freeInfoEntity(entity);
@@ -351,6 +310,7 @@ void update_mpd()
        if (current_info->conn->error) {
                //fprintf(stderr, "%s\n", current_info->conn->errorStr);
                mpd_closeConnection(current_info->conn);
+               current_info->conn = 0;
                return;
        }
 
@@ -358,8 +318,9 @@ void update_mpd()
        if (current_info->conn->error) {
                //fprintf(stderr, "%s\n", current_info->conn->errorStr);
                mpd_closeConnection(current_info->conn);
+               current_info->conn = 0;
                return;
        }
        mpd_freeStatus(status);
-       mpd_closeConnection(current_info->conn);
+//     mpd_closeConnection(current_info->conn);
 }