X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aft.c;h=7af50f9de8dfe25ffe70356edd0d5ceaabd79bf4;hp=cc6026fa8518fe467b7c69bb898a020e25130467;hb=2bb9fcbfa99cf30a6f46ba33fd95c0a456a225cc;hpb=8355c4a3da89caf9b50b593aca55567a6b58a224 diff --git a/aft.c b/aft.c index cc6026fa..7af50f9d 100644 --- a/aft.c +++ b/aft.c @@ -622,6 +622,7 @@ int load_afd(int shmid, struct audio_file_data *afd) * Mmap the given audio file and update statistics. * * \param aft_row Determines the audio file to be opened and updated. + * \param score The score of the audio file. * \param afd Result pointer. * * On success, the numplayed field of the audio file selector info is increased @@ -630,8 +631,8 @@ int load_afd(int shmid, struct audio_file_data *afd) * * \return Positive shmid on success, negative on errors. */ -int open_and_update_audio_file(struct osl_row *aft_row, - struct audio_file_data *afd, long score) +int open_and_update_audio_file(struct osl_row *aft_row, long score, + struct audio_file_data *afd) { HASH_TYPE *aft_hash, file_hash[HASH_SIZE]; struct osl_object afsi_obj; @@ -785,16 +786,20 @@ static char *make_lyrics_lines(struct afs_info *afsi) char *lyrics_name; lyr_get_name_by_id(afsi->lyrics_id, &lyrics_name); - return make_message("lyrics_id: %u\nlyrics_name: %s\n", - afsi->lyrics_id, lyrics_name? lyrics_name : "(none)"); + return make_message("%s: %u\n%s: %s\n", + status_item_list[SI_LYRICS_ID], afsi->lyrics_id, + status_item_list[SI_LYRICS_NAME], lyrics_name? + lyrics_name : "(none)"); } static char *make_image_lines(struct afs_info *afsi) { char *image_name; img_get_name_by_id(afsi->image_id, &image_name); - return make_message("image_id: %u\nimage_name: %s\n", - afsi->image_id, image_name? image_name : "(none)"); + return make_message("%s: %u\n%s: %s\n", + status_item_list[SI_IMAGE_ID], afsi->image_id, + status_item_list[SI_IMAGE_NAME], image_name? + image_name : "(none)"); } static char *make_filename_lines(const char *path, unsigned flags) @@ -803,12 +808,14 @@ static char *make_filename_lines(const char *path, unsigned flags) char *ret; if (!(flags & LS_FLAG_FULL_PATH)) - return make_message("%s: %s\n%s:\n", "basename", path, - "dir"); + return make_message("%s: %s\n", + status_item_list[SI_BASENAME], path); basename = para_basename(path), dirname = para_dirname(path); - ret = make_message("%s: %s\n%s: %s\n%s: %s\n", "path", path, - "dir", dirname, "basename", basename); + ret = make_message("%s: %s\n%s: %s\n%s: %s\n", + status_item_list[SI_PATH], path, + status_item_list[SI_DIRECTORY], dirname, + status_item_list[SI_BASENAME], basename); free(basename); free(dirname); return ret; @@ -880,80 +887,56 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, lyrics_lines = make_lyrics_lines(afsi); image_lines = make_image_lines(afsi); filename_lines = make_filename_lines(d->path, opts->flags); - if (opts->mode == LS_MODE_VERBOSE) { - para_printf(b, - "%s" /* filename stuff */ - "%s%s%s" /* score */ - "%s\n" /* attributes */ - "hash: %s\n" - "%s" /* image id, image name */ - "%s" /* lyrics */ - "%s: %dkbit/s\n" /* bitrate */ - "format: %s\n" - "%s: %dHz\n" /* frequency */ - "channels: %d\n" - "duration: %s\n" - "seconds_total: %lu\n" - "num_played: %d\n" - "last_played: %s\n" - "%s\n", /* tag info */ - filename_lines, - have_score? "score: " : "", score_buf, - have_score? "\n" : "", - att_lines, - asc_hash, - image_lines, - lyrics_lines, - status_item_list[SI_BITRATE], afhi->bitrate, - audio_format_name(afsi->audio_format_id), - status_item_list[SI_FREQUENCY], afhi->frequency, - afhi->channels, - duration_buf, - afhi->seconds_total, - afsi->num_played, - last_played_time, - afhi->info_string - ); - } else { /* mbox mode */ - struct osl_object lyrics_def; - lyr_get_def_by_id(afsi->lyrics_id, &lyrics_def); + if (opts->mode == LS_MODE_MBOX) para_printf(b, "From foo@localhost %s\n" "Received: from\nTo: bar\nFrom: a\n" - "Subject: %s\n\n" /* path */ - "%s%s%s" /* score */ - "%s\n" /* attributes */ - "hash: %s\n" - "%s\n" /* image id, image name */ - "lyrics_id: %s\n" - "bitrate: %dkbit/s\n" - "format: %s\n" - "frequency: %dHz\n" - "channels: %d\n" - "duration: %s\n" - "num_played: %d\n" - "%s\n" /* tag info */ - "%s%s\n", + "Subject: %s\n\n", last_played_time, - d->path, - have_score? "score: " : "", score_buf, - have_score? "\n" : "", - att_lines, - asc_hash, - image_lines, - lyrics_lines, - afhi->bitrate, - audio_format_name(afsi->audio_format_id), - afhi->frequency, - afhi->channels, - duration_buf, - afsi->num_played, - afhi->info_string, - lyrics_def.data? "Lyrics:\n~~~~~~~\n" : "", - lyrics_def.data? (char *)lyrics_def.data : "" - ); - if (lyrics_def.data) - osl_close_disk_object(lyrics_def.data); + d->path); + para_printf(b, + "%s" /* filename stuff */ + "%s%s%s%s" /* score */ + "%s\n" /* attributes */ + "%s: %s\n" /* hash */ + "%s" /* image id, image name */ + "%s" /* lyrics */ + "%s: %dkbit/s\n" /* bitrate */ + "%s: %s\n" /* format */ + "%s: %dHz\n" /* frequency */ + "%s: %d\n" /* channels */ + "%s: %s\n" /* duration */ + "%s: %lu\n" /* seconds total */ + "%s: %s\n" /* last played time */ + "%s: %d\n" /* num_played */ + "%s\n", /* tag info */ + filename_lines, + have_score? status_item_list[SI_SCORE] : "", + have_score? ": " : "", + score_buf, + have_score? "\n" : "", + att_lines, + status_item_list[SI_HASH], asc_hash, + image_lines, + lyrics_lines, + status_item_list[SI_BITRATE], afhi->bitrate, + status_item_list[SI_FORMAT], audio_format_name(afsi->audio_format_id), + status_item_list[SI_FREQUENCY], afhi->frequency, + status_item_list[SI_CHANNELS], afhi->channels, + status_item_list[SI_DURATION], duration_buf, + status_item_list[SI_SECONDS_TOTAL], afhi->seconds_total, + status_item_list[SI_LAST_PLAYED], last_played_time, + status_item_list[SI_NUM_PLAYED], afsi->num_played, + afhi->info_string + ); + if (opts->mode == LS_MODE_MBOX) { + struct osl_object lyrics_def; + lyr_get_def_by_id(afsi->lyrics_id, &lyrics_def); + if (lyrics_def.data) { + para_printf(b, "Lyrics:\n~~~~~~~\n%s", + (char *)lyrics_def.data); + osl_close_disk_object(&lyrics_def); + } } free(att_lines); free(lyrics_lines); @@ -962,6 +945,51 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, return 1; } +void make_empty_status_items(char *buf) +{ + sprintf(buf, + "%s: \n" /* path */ + "%s: \n" /* dirname */ + "%s: \n" /* basename */ + "%s: \n" /* score */ + "%s: \n" /* attributes bitnmap */ + "%s: \n" /* attributes txt */ + "%s: \n" /* hash */ + "%s: \n" /* image id */ + "%s: \n" /* image name */ + "%s: \n" /* lyrics id */ + "%s: \n" /* lyrics name */ + "%s: \n" /* bitrate */ + "%s: \n" /* format */ + "%s: \n" /* frequency */ + "%s: \n" /* channels */ + "%s: \n" /* duration */ + "%s: \n" /* seconds total */ + "%s: \n" /* num played */ + "%s: \n" /* last played */ + , + status_item_list[SI_PATH], + status_item_list[SI_DIRECTORY], + status_item_list[SI_BASENAME], + status_item_list[SI_SCORE], + status_item_list[SI_ATTRIBUTES_BITMAP], + status_item_list[SI_ATTRIBUTES_TXT], + status_item_list[SI_HASH], + status_item_list[SI_IMAGE_ID], + status_item_list[SI_IMAGE_NAME], + status_item_list[SI_LYRICS_ID], + status_item_list[SI_LYRICS_NAME], + status_item_list[SI_BITRATE], + status_item_list[SI_FORMAT], + status_item_list[SI_FREQUENCY], + status_item_list[SI_CHANNELS], + status_item_list[SI_DURATION], + status_item_list[SI_SECONDS_TOTAL], + status_item_list[SI_NUM_PLAYED], + status_item_list[SI_LAST_PLAYED] + ); +} + int make_status_items(struct ls_data *d, struct para_buffer *pb) { struct ls_options opts = {