]> www.infradead.org Git - users/dwmw2/mpc-car2pc.git/commitdiff
save playlist changes at runtime
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 20 May 2009 23:21:02 +0000 (00:21 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 20 May 2009 23:21:02 +0000 (00:21 +0100)
mpc-car2pc.c

index e745cd35e49299021bc05ea9c1507109456f0bc6..884bc936bd2ae3a3287474982115a279ce6e5948 100644 (file)
@@ -190,6 +190,19 @@ void change_disc(int direction)
                        break;
        }
 }
+void save_disc(void)
+{
+       char buf[6];
+       sprintf(buf, "disc%d", disc);
+
+       mpd_sendCommandListBegin(mpd);
+       mpd_sendRmCommand(mpd, buf);
+       mpd_sendSaveCommand(mpd, buf);
+       mpd_sendCommandListEnd(mpd);
+       mpd_finishCommand(mpd);
+
+       syslog(LOG_NOTICE, "Saved changes to playlist %s\n", buf);
+}
 
 int mainloop(void)
 {
@@ -221,6 +234,11 @@ int mainloop(void)
                        continue;
                }
 
+               if (sts->playlist != plid) {
+                       save_disc();
+                       track = -1;
+               }
+
                if (sts->state == MPD_STATUS_STATE_PLAY) {
                        if (sts->song != track ||
                            sts->playlist != plid) {
@@ -331,7 +349,7 @@ void startup_disc(void)
                mpd_freeInfoEntity(e);
        }
        
-       for (i = 0; i < CAR2PC_MAX_DISC; i++) {
+       for (i = 0; i <= CAR2PC_MAX_DISC; i++) {
                struct file_list *tmp = pl_files;
                int matched = 1;
                char buf[6];