]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
afs: Move some ls-related stuff from afs.h to aft.c.
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 1a0fdc79d5f591172b9edadb759baba072563b3a..e643e01a18b1121703ddac0445421cc6f910195b 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (C) 2007 Andre Noll <maan@systemlinux.org>
+ *
+ * Licensed under the GPL v2. For licencing details see COPYING.
+ */
+
+/** \file aft.c Audio file table functions. */
+
 #include "para.h"
 #include "error.h"
 #include <sys/mman.h>
 
 static struct osl_table *audio_file_table;
 
+enum ls_listing_mode {
+       LS_MODE_SHORT,
+       LS_MODE_LONG,
+       LS_MODE_VERBOSE,
+       LS_MODE_MBOX
+};
+
+enum ls_flags {
+       LS_FLAG_FULL_PATH = 1,
+       LS_FLAG_ADMISSIBLE_ONLY = 2,
+       LS_FLAG_REVERSE = 4,
+};
+
+struct ls_widths {
+       unsigned short score_width;
+       unsigned short image_id_width;
+       unsigned short lyrics_id_width;
+       unsigned short bitrate_width;
+       unsigned short frequency_width;
+       unsigned short duration_width;
+       unsigned short num_played_width;
+};
+
+struct ls_data {
+       struct audio_format_info afhi;
+       struct afs_info afsi;
+       char *path;
+       long score;
+       HASH_TYPE *hash;
+};
+
+struct ls_options {
+       unsigned flags;
+       enum ls_sorting_method sorting;
+       enum ls_listing_mode mode;
+       char **patterns;
+       int num_patterns;
+       struct ls_widths widths;
+       uint32_t array_size;
+       uint32_t num_matching_paths;
+       struct ls_data *data;
+       struct ls_data **data_ptr;
+};
+
 /**
  * Describes the layout of the mmapped-afs info struct.
  *
@@ -1722,10 +1774,12 @@ static int check_audio_file(struct osl_row *row, void *data)
        }
        ret = lyr_get_name_by_id(afsi.lyrics_id, &blob_name);
        if (ret < 0)
-               para_printf(pb, "%s lyrics id: %s\n", path, PARA_STRERROR(-ret));
+               para_printf(pb, "%s lyrics id %u: %s\n", path, afsi.lyrics_id,
+                       PARA_STRERROR(-ret));
        ret = img_get_name_by_id(afsi.image_id, &blob_name);
        if (ret < 0)
-               para_printf(pb, "%s image id: %s\n", path, PARA_STRERROR(-ret));
+               para_printf(pb, "%s image id %u: %s\n", path, afsi.image_id,
+                       PARA_STRERROR(-ret));
        return 1;
 }
 
@@ -1733,9 +1787,8 @@ int aft_check_callback(__a_unused const struct osl_object *query, struct osl_obj
 {
        struct para_buffer pb = {.buf = NULL};
 
+       para_printf(&pb, "checking audio file table...\n");
        audio_file_loop(&pb, check_audio_file);
-       if (!pb.size)
-               return 0;
        result->data = pb.buf;
        result->size = pb.size;
        return 1;