playlist: Do not update score if no playlist is open.
[paraslash.git] / playlist.c
index 48ee4ca78d8174ed32da793749566214f5ecd721..6441aca7a8293066e70132f57231a4c9b8643bf7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2012 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -70,8 +70,8 @@ static int load_playlist(struct osl_row *row, void *data)
        if (ret < 0)
                goto err;
        playlist->length = 0;
-       ret = for_each_line_ro(playlist_def.data, playlist_def.size,
-               add_playlist_entry, playlist);
+       ret = for_each_line(FELF_READ_ONLY, playlist_def.data,
+               playlist_def.size, add_playlist_entry, playlist);
        osl_close_disk_object(&playlist_def);
        if (ret < 0)
                goto err;
@@ -114,8 +114,8 @@ static int check_playlist(struct osl_row *row, void *data)
                ret = para_printf(pb, "checking playlist %s...\n", playlist_name);
                if (ret < 0)
                        return ret;
-               ret = for_each_line_ro(playlist_def.data, playlist_def.size,
-                       check_playlist_path, pb);
+               ret = for_each_line(FELF_READ_ONLY, playlist_def.data,
+                       playlist_def.size, check_playlist_path, pb);
        }
        osl_close_disk_object(&playlist_def);
        return ret;
@@ -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)
@@ -219,8 +217,8 @@ static int handle_audio_file_event(enum afs_events event, void *data)
        ret = pl_get_def_by_name(current_playlist.name, &playlist_def);
        if (ret < 0)
                return ret;
-       ret = for_each_line_ro(playlist_def.data, playlist_def.size,
-               search_path, new_path);
+       ret = for_each_line(FELF_READ_ONLY, playlist_def.data,
+               playlist_def.size, search_path, new_path);
        osl_close_disk_object(&playlist_def);
        is_admissible = (ret < 0);
        if (was_admissible && is_admissible)
@@ -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: