X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aft.c;h=e643e01a18b1121703ddac0445421cc6f910195b;hp=1a0fdc79d5f591172b9edadb759baba072563b3a;hb=a629e649da99e06460f0cb93af7359f45d9b059a;hpb=a044e78188411351d798842df1778316c881f5ed diff --git a/aft.c b/aft.c index 1a0fdc79..e643e01a 100644 --- a/aft.c +++ b/aft.c @@ -1,3 +1,11 @@ +/* + * Copyright (C) 2007 Andre Noll + * + * Licensed under the GPL v2. For licencing details see COPYING. + */ + +/** \file aft.c Audio file table functions. */ + #include "para.h" #include "error.h" #include @@ -12,6 +20,50 @@ 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;