[Goodies-commits] r2787 - xfce4-mpc-plugin/trunk/panel-plugin

Landry Breuil landry at xfce.org
Sun May 27 17:39:15 CEST 2007


Author: landry
Date: 2007-05-27 15:39:15 +0000 (Sun, 27 May 2007)
New Revision: 2787

Modified:
   xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.c
   xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.h
   xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
Log:
- fixed stupid #ifdef instead of #if
- removed recv_buffer, was unnecessary
- rewritten parser loops when reading buffer in simple-libmpd.c
- if no bugs arise, this will be 0.3.2


Modified: xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.c
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.c	2007-05-27 08:44:44 UTC (rev 2786)
+++ xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.c	2007-05-27 15:39:15 UTC (rev 2787)
@@ -125,7 +125,7 @@
    FD_SET(mo->socket,&fds);
    if((err = select(mo->socket+1,&fds,NULL,NULL,&tv)) == 1)
    {
-      if ((nbread = recv(mo->socket, mo->recv_buffer, MAXBUFLEN, 0)) < 0)
+      if ((nbread = recv(mo->socket, mo->buffer, MAXBUFLEN, 0)) < 0)
       {
          mo->error = MPD_ERROR_NORESPONSE;
          DBG("ERROR @recv(), err=%s",strerror(errno));
@@ -138,7 +138,6 @@
           return;
       }
       mo->buflen = nbread;
-      strncpy(mo->buffer, mo->recv_buffer, mo->buflen);
       mo->buffer[mo->buflen] = '\0';
    }
    else if(err < 0)
@@ -196,7 +195,7 @@
    FD_SET(mo->socket,&fds);
    if((err = select(mo->socket+1,&fds,NULL,NULL,&tv)) == 1)
    {
-      if ((nbread = recv(mo->socket, mo->recv_buffer, MAXBUFLEN, 0)) < 0)
+      if ((nbread = recv(mo->socket, mo->buffer, MAXBUFLEN, 0)) < 0)
       {
          mo->error = MPD_ERROR_NORESPONSE;
          DBG("ERROR @recv(), err=%s",strerror(errno));
@@ -209,10 +208,9 @@
          return -1;
       }
 
-      DBG("Read %d bytes, buff=\"%s\"", nbread, mo->recv_buffer);
       mo->buflen = nbread;
-      strncpy(mo->buffer, mo->recv_buffer, mo->buflen);
       mo->buffer[mo->buflen] = '\0';
+      DBG("Read %d bytes, buff=\"%s\"", nbread, mo->buffer);
    }
    else if(err < 0)
    {
@@ -334,7 +332,7 @@
    int i;
    mo->songid = -1;
    lines = g_strsplit(mo->buffer, "\n", 0);
-   for (i = 0 ; mo->songid != -1 && lines[i] != NULL ; i++)
+   for (i = 0 ; lines[i] && mo->songid == -1 ; i++)
    {
       tokens = g_strsplit(lines[i], ":", 2);
       /* remove leading whitespace */
@@ -375,7 +373,7 @@
    ms->id = ms->pos = 0;
 
    lines = g_strsplit(mo->buffer, "\n", 0);
-   for (i = 0 ; !ms->id && lines[i] != NULL ; i++)
+   for (i = 0 ; lines[i] && !ms->id ; i++)
    {
       tokens = g_strsplit(lines[i], ":", 2);
       /* remove leading whitespace */
@@ -395,36 +393,34 @@
 void parse_playlistinfo_answer(MpdObj *mo, void *param)
 {
    MpdData* md = (MpdData*) param;
-   mpd_Song* ms = &md->allsongs[0];
+   mpd_Song* ms;
    gchar **lines, **tokens;
    int i = 0;
-   ms->artist = ms->album = ms->title = ms->track = NULL;
-   ms->id = ms->pos = 0;
 
-   lines = g_strsplit(mo->buffer, "\n", 2);
-   for (i = 0 ; !strcmp(lines[i],"OK") ; i++)
+   lines = g_strsplit(mo->buffer, "\n", 0);
+   while(lines[i] && strcmp(lines[i],"OK"))
    {
+      ms = &md->allsongs[md->nb];
+      ms->artist = ms->album = ms->title = ms->track = NULL;
+      ms->id = ms->pos = 0;
       DBG("Going to parse song #%d", md->nb);
 
-      tokens = g_strsplit(lines[i], ":", 0);
-      /* remove leading whitespace */
-      tokens[1] = g_strchug(tokens[1]);
-      DBG("key=\"%s\",value=\"%s\"", tokens[0], tokens[1]);
-      if      (!ms->artist && 0 == strcmp("Artist",tokens[0])) ms->artist= g_strdup(tokens[1]);
-      else if (!ms->album  && 0 == strcmp("Album", tokens[0])) ms->album = g_strdup(tokens[1]);
-      else if (!ms->title  && 0 == strcmp("Title", tokens[0])) ms->title = g_strdup(tokens[1]);
-      else if (!ms->track  && 0 == strcmp("Track", tokens[0])) ms->track = g_strdup(tokens[1]);
-      else if (!ms->pos    && 0 == strcmp("Pos",   tokens[0])) ms->pos   = atoi(tokens[1]);
-      else if (!ms->id     && 0 == strcmp("Id",    tokens[0])) ms->id    = atoi(tokens[1]);
-
-      if (ms->id)
+      while(lines[i] && !ms->id)
       {
-         md->nb++;
-         ms = &md->allsongs[md->nb];
-         ms->artist = ms->album = ms->title = ms->track = NULL;
-         ms->id = ms->pos = 0;
+         tokens = g_strsplit(lines[i], ":", 2);
+         /* remove leading whitespace */
+         tokens[1] = g_strchug(tokens[1]);
+         DBG("key=\"%s\",value=\"%s\"", tokens[0], tokens[1]);
+         if      (!ms->artist && 0 == strcmp("Artist",tokens[0])) ms->artist= g_strdup(tokens[1]);
+         else if (!ms->album  && 0 == strcmp("Album", tokens[0])) ms->album = g_strdup(tokens[1]);
+         else if (!ms->title  && 0 == strcmp("Title", tokens[0])) ms->title = g_strdup(tokens[1]);
+         else if (!ms->track  && 0 == strcmp("Track", tokens[0])) ms->track = g_strdup(tokens[1]);
+         else if (!ms->pos    && 0 == strcmp("Pos",   tokens[0])) ms->pos   = atoi(tokens[1]);
+         else if (!ms->id     && 0 == strcmp("Id",    tokens[0])) ms->id    = atoi(tokens[1]);
+         i++;
+         g_strfreev(tokens);
       }
-      g_strfreev(tokens);
+      md->nb++;
    }
    g_strfreev(lines);
    DBG("Got 'OK', md->nb = %d", md->nb);

Modified: xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.h
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.h	2007-05-27 08:44:44 UTC (rev 2786)
+++ xfce4-mpc-plugin/trunk/panel-plugin/simple-libmpd.h	2007-05-27 15:39:15 UTC (rev 2787)
@@ -64,7 +64,6 @@
    mpd_Song* cursong;
    int error;
    char buffer[MAXBUFLEN*2];
-   char recv_buffer[MAXBUFLEN];
    int buflen;
 } MpdObj;
 

Modified: xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h	2007-05-27 08:44:44 UTC (rev 2786)
+++ xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h	2007-05-27 15:39:15 UTC (rev 2787)
@@ -22,7 +22,7 @@
 #include <libxfce4panel/xfce-hvbox.h>
 #include <libxfce4panel/xfce-panel-convenience.h>
 
-#ifdef HAVE_LIBMPD
+#if HAVE_LIBMPD
 #include <libmpd/libmpd.h>
 #if DEBUG
 #include <libmpd/debug_printf.h>




More information about the Goodies-commits mailing list