From 51cab2aba416fc1d57336f4e72da6b76ec60174c Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Thu, 1 Nov 2007 20:45:34 +0100 Subject: [PATCH 1/1] Get rid of afd->path. All that info is contained in afd->afs_status_info. --- afs.h | 1 - aft.c | 32 ++++++++++++++++++++++++-------- command.c | 26 ++++++++++++-------------- server.c | 1 - vss.c | 3 --- 5 files changed, 36 insertions(+), 27 deletions(-) diff --git a/afs.h b/afs.h index f9a44893..212ddfec 100644 --- a/afs.h +++ b/afs.h @@ -113,7 +113,6 @@ int make_status_items(struct ls_data *d, struct para_buffer *pb); struct audio_file_data { enum play_mode current_play_mode; - char path[_POSIX_PATH_MAX]; char afs_status_info[AFS_STATUS_INFO_SIZE]; int fd; long score; diff --git a/aft.c b/aft.c index 483ab252..e41073ac 100644 --- a/aft.c +++ b/aft.c @@ -680,8 +680,6 @@ int open_and_update_audio_file(struct osl_row *aft_row, struct audio_file_data * ret = get_audio_file_path_of_row(aft_row, &path); if (ret < 0) return ret; - strncpy(afd->path, path, sizeof(afd->path) - 1); - afd->path[sizeof(afd->path) - 1] = '\0'; ret = get_afsi_object_of_row(aft_row, &afsi_obj); if (ret < 0) return ret; @@ -811,7 +809,7 @@ static char *make_attribute_lines(const char *att_bitmap, struct afs_info *afsi) get_attribute_text(&afsi->attributes, " ", &att_text); if (!att_text) return para_strdup(att_bitmap); - att_lines = make_message("%s\nattributes_txt: %s", + att_lines = make_message("attributes: %s\nattributes_txt: %s", att_bitmap, att_text); free(att_text); return att_lines; @@ -834,6 +832,23 @@ static char *make_image_lines(struct afs_info *afsi) afsi->image_id, image_name? image_name : "(none)"); } +static char *make_filename_lines(const char *path, unsigned flags) +{ + char *basename, *dirname; + char *ret; + + if (!(flags & LS_FLAG_FULL_PATH)) + return make_message("%s: %s\n%s:\n", "basename", path, + "dir"); + 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); + free(basename); + free(dirname); + return ret; +} + static int print_list_item(struct ls_data *d, struct ls_options *opts, struct para_buffer *b, time_t current_time) { @@ -847,7 +862,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_lines, *image_lines; + char *att_lines, *lyrics_lines, *image_lines, *filename_lines; if (opts->mode == LS_MODE_SHORT) { para_printf(b, "%s\n", d->path); @@ -899,11 +914,12 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, att_lines = make_attribute_lines(att_buf, afsi); 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: %s\n" /* path */ + "%s" /* filename stuff */ "%s%s%s" /* score */ - "attributes: %s\n" + "%s\n" /* attributes */ "hash: %s\n" "%s" /* image id, image name */ "%s" /* lyrics */ @@ -916,8 +932,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, "num_played: %d\n" "last_played: %s\n" "tag info: %s\n", - (opts->flags & LS_FLAG_FULL_PATH)? - "path" : "file", d->path, + filename_lines, have_score? "score: " : "", score_buf, have_score? "\n" : "", att_lines, @@ -978,6 +993,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, free(att_lines); free(lyrics_lines); free(image_lines); + free(filename_lines); return 1; } diff --git a/command.c b/command.c index 7302d3e4..6e2cf563 100644 --- a/command.c +++ b/command.c @@ -97,7 +97,7 @@ static char *vss_get_status_flags(unsigned int flags) static char *get_status(struct misc_meta_data *nmmd) { - char *basename, *dirname, *ret, mtime[30] = ""; + char *ret, mtime[30] = ""; char *status, *flags; /* vss status info */ char *ut = uptime_str(); long offset = (nmmd->offset + 500) / 1000; @@ -107,23 +107,24 @@ static char *get_status(struct misc_meta_data *nmmd) /* report real status */ status = vss_status_tohuman(nmmd->vss_status_flags); flags = vss_get_status_flags(nmmd->vss_status_flags); - basename = para_basename(nmmd->afd.path); - dirname = para_dirname(nmmd->afd.path); - if (basename) { + if (nmmd->size) { /* parent currently has an audio file open */ localtime_r(&nmmd->mtime, &mtime_tm); strftime(mtime, 29, "%a %b %d %Y", &mtime_tm); } gettimeofday(&now, NULL); ret = make_message( - "%s:%zu\n" "%s:%s\n" - "%s:%s\n" "%s:%s\n" "%s:%s\n" - "%s:%li\n" "%s:%s\n" - "%s:%s\n" "%s:%lu.%lu\n" "%s:%lu.%lu\n" - "%s:%s\n" "%s\n", + "%s:%zu\n" /* file size */ + "%s:%s\n" /* mtime */ + "%s:%s\n" /* status */ + "%s:%s\n" /* status flags */ + "%s:%li\n" /* offset */ + "%s:%s\n" /* afs mode */ + "%s:%s\n" /* server uptime */ + "%s:%lu.%lu\n" /* stream start */ + "%s:%lu.%lu\n" /* current server time */ + "%s\n", /* afs status info */ status_item_list[SI_FILE_SIZE], nmmd->size / 1024, status_item_list[SI_MTIME], mtime, - - status_item_list[SI_BASENAME], basename ? basename : "(none)", status_item_list[SI_STATUS], status, status_item_list[SI_STATUS_FLAGS], flags, @@ -138,12 +139,9 @@ static char *get_status(struct misc_meta_data *nmmd) (long unsigned)now.tv_sec, (long unsigned)now.tv_usec, - status_item_list[SI_DIRECTORY], dirname? dirname : "(none)", nmmd->afd.afs_status_info ); - free(basename); - free(dirname); free(flags); free(status); free(ut); diff --git a/server.c b/server.c index febfe2ad..479b6b2d 100644 --- a/server.c +++ b/server.c @@ -199,7 +199,6 @@ static void shm_init(void) mmd->events = 0; mmd->num_connects = 0; mmd->active_connections = 0; - strcpy(mmd->afd.path, "(none)"); mmd->vss_status_flags = VSS_NEXT; mmd->new_vss_status_flags = VSS_NEXT; mmd->sender_cmd_data.cmd_num = -1; diff --git a/vss.c b/vss.c index 1ec0b5db..cb99366b 100644 --- a/vss.c +++ b/vss.c @@ -201,7 +201,6 @@ static void vss_eof(void) strncpy(mmd->afd.afhi.info_string, tmp, sizeof(mmd->afd.afhi.info_string)); mmd->afd.afhi.info_string[sizeof(mmd->afd.afhi.info_string) - 1] = '\0'; free(tmp); - mmd->afd.path[0] = '\0'; mmd->afd.afsi.lyrics_id = 0; mmd->afd.afsi.image_id = 0; mmd->mtime = 0; @@ -384,8 +383,6 @@ static void recv_afs_result(void) if (ret < 0) goto err; shm_destroy(shmid); - PARA_NOTICE_LOG("next audio file: %s (%lu chunks)\n", mmd->afd.path, - mmd->afd.afhi.chunks_total); ret = fstat(passed_fd, &statbuf); if (ret < 0) { PARA_ERROR_LOG("fstat error:\n"); -- 2.39.2