All (indirect) callers of queueSong() ensure that the queue state is
BLANK, so there is no need to check it in queueSong() again.  As a
side effect, queueSong() cannot fail anymore, and can return void.
Also, playlist_queueError and all its error handling can go away.
---

 src/player.c   |   11 ++++-------
 src/player.h   |    2 +-
 src/playlist.c |   16 +++-------------
 3 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/src/player.c b/src/player.c
index 2df6b6c..84fd163 100644
--- a/src/player.c
+++ b/src/player.c
@@ -165,15 +165,12 @@ char *getPlayerErrorStr(void)
        return *error ? error : NULL;
 }
 
-int queueSong(Song * song)
+void queueSong(Song * song)
 {
-       if (pc.queueState == PLAYER_QUEUE_BLANK) {
-               set_current_song(song);
-               pc.queueState = PLAYER_QUEUE_FULL;
-               return 0;
-       }
+       assert(pc.queueState == PLAYER_QUEUE_BLANK);
 
-       return -1;
+       set_current_song(song);
+       pc.queueState = PLAYER_QUEUE_FULL;
 }
 
 enum player_queue_state getPlayerQueueState(void)
diff --git a/src/player.h b/src/player.h
index b3cf207..de237c4 100644
--- a/src/player.h
+++ b/src/player.h
@@ -129,7 +129,7 @@ int getPlayerError(void);
 
 void playerWait(void);
 
-int queueSong(Song * song);
+void queueSong(Song * song);
 
 enum player_queue_state getPlayerQueueState(void);
 
diff --git a/src/playlist.c b/src/playlist.c
index cc2a67f..0f6f1d0 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -62,7 +62,6 @@ static int playlist_state = PLAYLIST_STATE_STOP;
 int playlist_max_length = DEFAULT_PLAYLIST_MAX_LENGTH;
 static int playlist_stopOnError;
 static int playlist_errorCount;
-static int playlist_queueError;
 static int playlist_noGoToNext;
 
 int playlist_saveAbsolutePaths = DEFAULT_PLAYLIST_SAVE_ABSOLUTE_PATHS;
@@ -491,11 +490,7 @@ static void queueNextSongInPlaylist(void)
                      get_song_url(path_max_tmp,
                                   playlist.
                                   songs[playlist.order[playlist.queued]]));
-               if (queueSong(playlist.songs[playlist.order[playlist.queued]]) <
-                   0) {
-                       playlist.queued = -1;
-                       playlist_queueError = 1;
-               }
+               queueSong(playlist.songs[playlist.order[playlist.queued]]);
        } else if (playlist.length && playlist.repeat) {
                if (playlist.length > 1 && playlist.random) {
                        randomizeOrder(0, playlist.length - 1);
@@ -506,11 +501,7 @@ static void queueNextSongInPlaylist(void)
                      get_song_url(path_max_tmp,
                                   playlist.
                                   songs[playlist.order[playlist.queued]]));
-               if (queueSong(playlist.songs[playlist.order[playlist.queued]]) <
-                   0) {
-                       playlist.queued = -1;
-                       playlist_queueError = 1;
-               }
+               queueSong(playlist.songs[playlist.order[playlist.queued]]);
        }
 }
 
@@ -851,7 +842,6 @@ static void playPlaylistOrderNumber(int orderNum)
        playlist_state = PLAYLIST_STATE_PLAY;
        playlist_noGoToNext = 0;
        playlist.queued = -1;
-       playlist_queueError = 0;
 
        DEBUG("playlist: play %i:\"%s\"\n", orderNum,
              get_song_url(path_max_tmp,
@@ -953,7 +943,7 @@ void syncPlayerAndPlaylist(void)
        if (getPlayerState() == PLAYER_STATE_STOP)
                playPlaylistIfPlayerStopped();
        else
-               syncPlaylistWithQueue(!playlist_queueError);
+               syncPlaylistWithQueue(1);
 
        syncCurrentPlayerDecodeMetadata();
 }


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to