playlist: Do not update score if no playlist is open.
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 21 Mar 2016 19:51:08 +0000 (19:51 +0000)
committerAndre Noll <maan@tuebingen.mpg.de>
Mon, 28 Mar 2016 17:16:16 +0000 (17:16 +0000)
This bug caused the score of the current audio file to be updated
twice in mood mode since both the mood event handler and playlist
event handler honor afs events and update the score.

We fix the bug by moving the check whether a playlist is open to the
top of the playlist event handler, similar to the check in the mood
event handler of mood.c. If no playlist is open, we now return early
from the playlist event handler, ignoring all afs events.

playlist.c

index c822e08..6441aca 100644 (file)
@@ -205,8 +205,6 @@ static int handle_audio_file_event(enum afs_events event, void *data)
        char *new_path;
        const struct osl_row *row = data;
 
-       if (!current_playlist.name)
-               return 1;
        if (event == AUDIO_FILE_RENAME) {
                ret = row_belongs_to_score_table(row, NULL);
                if (ret < 0)
@@ -251,7 +249,9 @@ int playlists_event_handler(enum afs_events event,
        int ret;
        struct afsi_change_event_data *aced = data;
 
-       switch(event) {
+       if (!current_playlist.name)
+               return 1;
+       switch (event) {
        case AFSI_CHANGE:
                return playlist_update_audio_file(aced->aft_row);
        case AUDIO_FILE_RENAME: