X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=aft.c;h=8ac8538f7f74c37cdff2b42a827e52af28aa651e;hb=05382250dd4d68b4fa32c229104f613c455f5ea6;hp=df8774aae277bc3c2ead443432da69ace94d6d14;hpb=d0f8004acf8e8f78323d672813b4ead62d0c92ff;p=paraslash.git diff --git a/aft.c b/aft.c index df8774aa..8ac8538f 100644 --- a/aft.c +++ b/aft.c @@ -787,15 +787,21 @@ static short unsigned get_duration_width(int seconds) return width + 6; } -static void get_duration_buf(int seconds, char *buf, short unsigned max_width) +static void get_duration_buf(int seconds, char *buf, struct ls_options *opts) { unsigned hours = seconds / 3600, mins = (seconds % 3600) / 60; + short unsigned max_width; - if (!hours) /* m:ss or mm:ss */ + if (!hours) { /* m:ss or mm:ss */ + max_width = opts->mode == LS_MODE_LONG? + opts->widths.duration_width : 4; sprintf(buf, "%*u:%02u", max_width - 3, mins, seconds % 60); - else /* more than one hour => h:mm:ss, hh:mm:ss, hhh:mm:ss, ... */ + } else { /* more than one hour => h:mm:ss, hh:mm:ss, hhh:mm:ss, ... */ + max_width = opts->mode == LS_MODE_LONG? + opts->widths.duration_width : 7; sprintf(buf, "%*u:%02u:%02u", max_width - 6, hours, mins, seconds % 60); + } } static char *make_attribute_lines(const char *att_bitmap, struct afs_info *afsi) @@ -811,23 +817,21 @@ static char *make_attribute_lines(const char *att_bitmap, struct afs_info *afsi) return att_lines; } -static char *make_lyrics_line(struct afs_info *afsi) +static char *make_lyrics_lines(struct afs_info *afsi) { char *lyrics_name; lyr_get_name_by_id(afsi->lyrics_id, &lyrics_name); - if (!lyrics_name) - return make_message("%u", afsi->lyrics_id); - return make_message("%u (%s)", afsi->lyrics_id, lyrics_name); + return make_message("lyrics_id: %u\nlyrics_name: %s\n", + afsi->lyrics_id, lyrics_name? lyrics_name : "(none)"); } -static char *make_image_line(struct afs_info *afsi) +static char *make_image_lines(struct afs_info *afsi) { char *image_name; img_get_name_by_id(afsi->image_id, &image_name); - if (!image_name) - return make_message("%u", afsi->image_id); - return make_message("%u (%s)", afsi->image_id, image_name); + return make_message("image_id: %u\nimage_name: %s\n", + afsi->image_id, image_name? image_name : "(none)"); } static int print_list_item(struct ls_data *d, struct ls_options *opts, @@ -843,7 +847,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, struct ls_widths *w = &opts->widths; int have_score = opts->flags & LS_FLAG_ADMISSIBLE_ONLY; char asc_hash[2 * HASH_SIZE + 1]; - char *att_lines, *lyrics_line, *image_line; + char *att_lines, *lyrics_lines, *image_lines; if (opts->mode == LS_MODE_SHORT) { para_printf(b, "%s\n", d->path); @@ -854,7 +858,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, sizeof(last_played_time), current_time, opts->mode); if (ret < 0) return ret; - get_duration_buf(afhi->seconds_total, duration_buf, w->duration_width); + get_duration_buf(afhi->seconds_total, duration_buf, opts); if (have_score) { if (opts->mode == LS_MODE_LONG) sprintf(score_buf, "%*li ", w->score_width, d->score); @@ -893,16 +897,16 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, } hash_to_asc(d->hash, asc_hash); att_lines = make_attribute_lines(att_buf, afsi); - lyrics_line = make_lyrics_line(afsi); - image_line = make_image_line(afsi); + lyrics_lines = make_lyrics_lines(afsi); + image_lines = make_image_lines(afsi); if (opts->mode == LS_MODE_VERBOSE) { para_printf(b, "%s: %s\n" /* path */ "%s%s%s" /* score */ "attributes: %s\n" "hash: %s\n" - "image_id: %s\n" - "lyrics_id: %s\n" + "%s" /* image id, image name */ + "%s" /* lyrics */ "bitrate: %dkbit/s\n" "format: %s\n" "frequency: %dHz\n" @@ -917,8 +921,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, have_score? "\n" : "", att_lines, asc_hash, - image_line, - lyrics_line, + image_lines, + lyrics_lines, afhi->bitrate, audio_format_name(afsi->audio_format_id), afhi->frequency, @@ -938,7 +942,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, "%s%s%s" /* score */ "%s\n" /* attributes */ "hash: %s\n" - "image_id: %s\n" + "%s\n" /* image id, image name */ "lyrics_id: %s\n" "bitrate: %dkbit/s\n" "format: %s\n" @@ -954,8 +958,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, have_score? "\n" : "", att_lines, asc_hash, - image_line, - lyrics_line, + image_lines, + lyrics_lines, afhi->bitrate, audio_format_name(afsi->audio_format_id), afhi->frequency, @@ -970,8 +974,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, osl_close_disk_object(lyrics_def.data); } free(att_lines); - free(lyrics_line); - free(image_line); + free(lyrics_lines); + free(image_lines); return 1; }