diff options
-rw-r--r-- | libpiano/main.c | 2 | ||||
-rw-r--r-- | src/main.c | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/libpiano/main.c b/libpiano/main.c index 185d94c..0a14311 100644 --- a/libpiano/main.c +++ b/libpiano/main.c @@ -68,6 +68,7 @@ void PianoDestroyStations (PianoHandle_t *ph) { memset (lastStation, 0, sizeof (*lastStation)); free (lastStation); } + ph->stations = NULL; } /* FIXME: copy & waste */ @@ -94,6 +95,7 @@ void PianoDestroyPlaylist (PianoHandle_t *ph) { memset (lastSong, 0, sizeof (*lastSong)); free (lastSong); } + ph->playlist = NULL; } /* frees the whole piano handle structure @@ -285,12 +285,15 @@ int main (int argc, char **argv) { player.doQuit = 1; PianoRateTrack (&ph, curStation, curSong, PIANO_RATE_BAN); + printf ("Banned.\n"); + /* pandora does this too, I think */ PianoDestroyPlaylist (&ph); break; case 'l': PianoRateTrack (&ph, curStation, curSong, PIANO_RATE_LOVE); + printf ("Loved.\n"); break; case 'n': @@ -303,13 +306,11 @@ int main (int argc, char **argv) { break; case 's': - /* FIXME: does not work, segfault... */ player.doQuit = 1; PianoDestroyPlaylist (&ph); curStation = selectStation (&ph); printf ("changed station to %s\n", curStation->name); break; - } } } @@ -321,10 +322,11 @@ int main (int argc, char **argv) { curSong = lastSong->next; if (curSong == NULL && !doQuit) { printf ("receiving new playlist\n"); + PianoDestroyPlaylist (&ph); PianoGetPlaylist (&ph, curStation->id); - curSong = lastSong->next; + curSong = ph.playlist; if (curSong == NULL) { - /* no tracks left */ + printf ("no tracks left\n"); doQuit = 1; } } |