From f4eecbd4e033250b96cf0136a238c28837ba0b36 Mon Sep 17 00:00:00 2001
From: Andre Noll <maan@systemlinux.org>
Date: Tue, 23 Oct 2007 19:56:44 +0200
Subject: [PATCH] Get rid of mmd->afi.

It was only a copy of mmd->afd.afhi, so make all users use the
latter directly.
---
 command.c | 18 +++++++++---------
 server.h  |  5 ++---
 vss.c     | 35 +++++++++++++++++------------------
 3 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/command.c b/command.c
index 92fe18f0..22e3aa94 100644
--- a/command.c
+++ b/command.c
@@ -120,7 +120,7 @@ static char *get_status(struct misc_meta_data *nmmd)
 		"%s:%s\n"	"%s:%lu.%lu\n"	"%s:%lu.%lu\n",
 		status_item_list[SI_FILE_SIZE], nmmd->size / 1024,
 		status_item_list[SI_MTIME], mtime,
-		status_item_list[SI_LENGTH], nmmd->afi.seconds_total,
+		status_item_list[SI_LENGTH], nmmd->afd.afhi.seconds_total,
 		status_item_list[SI_NUM_PLAYED], nmmd->num_played,
 
 		status_item_list[SI_STATUS_BAR], bar ? bar : "(none)",
@@ -131,7 +131,7 @@ static char *get_status(struct misc_meta_data *nmmd)
 		status_item_list[SI_OFFSET], offset,
 		status_item_list[SI_FORMAT], audio_format_name(nmmd->audio_format),
 		status_item_list[SI_AFS_MODE], mmd->afs_mode_string,
-		nmmd->afi.info_string,
+		nmmd->afd.afhi.info_string,
 
 		status_item_list[SI_UPTIME], ut,
 		status_item_list[SI_STREAM_START],
@@ -512,20 +512,20 @@ int com_ff(__a_unused int fd, int argc, char * const * argv)
 		backwards = 1; /* jmp backwards */
 	mmd_lock();
 	ret = -E_NO_AUDIO_FILE;
-	if (!mmd->afi.chunks_total || !mmd->afi.seconds_total)
+	if (!mmd->afd.afhi.chunks_total || !mmd->afd.afhi.seconds_total)
 		goto out;
-	promille = (1000 * mmd->current_chunk) / mmd->afi.chunks_total;
+	promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total;
 	if (backwards)
-		promille -= 1000 * i / mmd->afi.seconds_total;
+		promille -= 1000 * i / mmd->afd.afhi.seconds_total;
 	else
-		promille += 1000 * i / mmd->afi.seconds_total;
+		promille += 1000 * i / mmd->afd.afhi.seconds_total;
 	if (promille < 0)
 		promille = 0;
 	if (promille >  1000) {
 		mmd->new_vss_status_flags |= VSS_NEXT;
 		goto out;
 	}
-	mmd->repos_request = (mmd->afi.chunks_total * promille) / 1000;
+	mmd->repos_request = (mmd->afd.afhi.chunks_total * promille) / 1000;
 	mmd->new_vss_status_flags |= VSS_REPOS;
 	mmd->new_vss_status_flags &= ~VSS_NEXT;
 	mmd->events++;
@@ -547,12 +547,12 @@ int com_jmp(__a_unused int fd, int argc, char * const * argv)
 		return -E_COMMAND_SYNTAX;
 	mmd_lock();
 	ret = -E_NO_AUDIO_FILE;
-	if (!mmd->afi.chunks_total)
+	if (!mmd->afd.afhi.chunks_total)
 		goto out;
 	if (i > 100)
 		i = 100;
 	PARA_INFO_LOG("jumping to %lu%%\n", i);
-	mmd->repos_request = (mmd->afi.chunks_total * i + 50)/ 100;
+	mmd->repos_request = (mmd->afd.afhi.chunks_total * i + 50)/ 100;
 	PARA_INFO_LOG("sent: %lu,  offset before jmp: %lu\n",
 		mmd->chunks_sent, mmd->offset);
 	mmd->new_vss_status_flags |= VSS_REPOS;
diff --git a/server.h b/server.h
index cb7a716a..7b2f3590 100644
--- a/server.h
+++ b/server.h
@@ -43,7 +43,7 @@ struct sender_command_data{
 };
 
 /**
- * used for parent-child communication
+ * Used for parent-child communication.
  *
  * There's only one struct of this type which lives in shared memory
  * for communication between the server instances. Access to this
@@ -59,8 +59,6 @@ struct sender_command_data{
  *	date.
  */
 struct misc_meta_data {
-	/** information on the current audio file  */
-	struct audio_format_info afi;
 	/** the size of the current audio file in bytes */
 	size_t size;
 	/** the full path of the current audio file */
@@ -106,6 +104,7 @@ struct misc_meta_data {
 	int selector_change;
 	/** used by the sender command */
 	struct sender_command_data sender_cmd_data;
+	/** Describes the current audio file. */
 	struct audio_file_data afd;
 };
 
diff --git a/vss.c b/vss.c
index 93ee76d7..e456f67a 100644
--- a/vss.c
+++ b/vss.c
@@ -136,7 +136,7 @@ static void vss_next_chunk_time(struct timeval *due)
 {
 	struct timeval tmp;
 
-	tv_scale(mmd->chunks_sent, &mmd->afi.chunk_tv, &tmp);
+	tv_scale(mmd->chunks_sent, &mmd->afd.afhi.chunk_tv, &tmp);
 	tv_add(&tmp, &mmd->stream_start, due);
 }
 
@@ -189,18 +189,18 @@ static void vss_eof(void)
 		return;
 	}
 	gettimeofday(&now, NULL);
-	tv_add(&mmd->afi.eof_tv, &now, &eof_barrier);
+	tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
 	munmap(map, mmd->size);
 	map = NULL;
 	mmd->audio_format = -1;
 	mmd->chunks_sent = 0;
 	mmd->offset = 0;
-	mmd->afi.seconds_total = 0;
-	free(mmd->afi.chunk_table);
-	mmd->afi.chunk_table = NULL;
+	mmd->afd.afhi.seconds_total = 0;
+	free(mmd->afd.afhi.chunk_table);
+	mmd->afd.afhi.chunk_table = NULL;
 	tmp  = make_message("%s:\n%s:\n%s:\n", status_item_list[SI_AUDIO_INFO1],
 		status_item_list[SI_AUDIO_INFO2], status_item_list[SI_AUDIO_INFO3]);
-	strcpy(mmd->afi.info_string, tmp);
+	strcpy(mmd->afd.afhi.info_string, tmp);
 	free(tmp);
 	mmd->filename[0] = '\0';
 	mmd->size = 0;
@@ -219,10 +219,10 @@ static void vss_eof(void)
  */
 char *vss_get_header(size_t *header_len)
 {
-	if (mmd->audio_format < 0 || !map || !mmd->afi.header_len)
+	if (mmd->audio_format < 0 || !map || !mmd->afd.afhi.header_len)
 		return NULL;
-	*header_len = mmd->afi.header_len;
-	return map + mmd->afi.header_offset;
+	*header_len = mmd->afd.afhi.header_len;
+	return map + mmd->afd.afhi.header_offset;
 }
 
 /**
@@ -247,7 +247,7 @@ struct timeval *vss_chunk_time(void)
 {
 	if (mmd->audio_format < 0)
 		return NULL;
-	return &mmd->afi.chunk_tv;
+	return &mmd->afd.afhi.chunk_tv;
 }
 
 enum afs_socket_status {
@@ -297,7 +297,7 @@ struct timeval *vss_preselect(fd_set *rfds, fd_set *wfds, int *max_fileno)
 			struct timeval now;
 			gettimeofday(&now, NULL);
 			if (!vss_paused() || mmd->chunks_sent)
-				tv_add(&mmd->afi.eof_tv, &now, &eof_barrier);
+				tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
 			if (vss_repos())
 				tv_add(&now, &announce_tv, &data_send_barrier);
 			if (mmd->new_vss_status_flags & VSS_NOMORE)
@@ -393,14 +393,13 @@ static void recv_afs_result(void)
 		passed_fd, 0);
 	close(passed_fd);
 	strcpy(mmd->filename, mmd->afd.path); /* FIXME: check length */
-	mmd->afi.header_len = 0; /* default: no header */
+	mmd->afd.afhi.header_len = 0; /* default: no header */
 	mmd->audio_format = mmd->afd.afsi.audio_format_id;
 	mmd->chunks_sent = 0;
 	mmd->current_chunk = 0;
 	mmd->offset = 0;
 	mmd->events++;
 	mmd->num_played++;
-	mmd->afi = mmd->afd.afhi;
 	mmd->new_vss_status_flags &= (~VSS_NEXT);
 	gettimeofday(&now, NULL);
 	tv_add(&now, &announce_tv, &data_send_barrier);
@@ -426,9 +425,9 @@ void vss_post_select(fd_set *rfds, fd_set *wfds)
 
 static void get_chunk(long unsigned chunk_num, char **buf, size_t *len)
 {
-	size_t pos = mmd->afi.chunk_table[chunk_num];
+	size_t pos = mmd->afd.afhi.chunk_table[chunk_num];
 	*buf = map + pos;
-	*len = mmd->afi.chunk_table[chunk_num + 1] - pos;
+	*len = mmd->afd.afhi.chunk_table[chunk_num + 1] - pos;
 
 	if (chunk_num + 5 > mmd->afd.afhi.chunks_total)
 		PARA_NOTICE_LOG("chunk %lu/%lu\n, len: %zu\n", chunk_num,
@@ -448,7 +447,7 @@ int vss_get_chunk(long unsigned chunk_num, char **buf, size_t *len)
 {
 	if (mmd->audio_format < 0 || !map || !vss_playing())
 		return -E_CHUNK;
-	if (chunk_num >= mmd->afi.chunks_total)
+	if (chunk_num >= mmd->afd.afhi.chunks_total)
 		return -E_CHUNK;
 	get_chunk(chunk_num, buf, len);
 	return 1;
@@ -482,7 +481,7 @@ void vss_send_chunk(void)
 			&due, 1) < 0)
 		return;
 	mmd->new_vss_status_flags &= ~VSS_REPOS;
-	if (mmd->current_chunk >= mmd->afi.chunks_total) { /* eof */
+	if (mmd->current_chunk >= mmd->afd.afhi.chunks_total) { /* eof */
 		mmd->new_vss_status_flags |= VSS_NEXT;
 		return vss_eof();
 	}
@@ -493,7 +492,7 @@ void vss_send_chunk(void)
 	if (!mmd->chunks_sent) {
 		struct timeval tmp;
 		gettimeofday(&mmd->stream_start, NULL);
-		tv_scale(mmd->current_chunk, &mmd->afi.chunk_tv, &tmp);
+		tv_scale(mmd->current_chunk, &mmd->afd.afhi.chunk_tv, &tmp);
 		mmd->offset = tv2ms(&tmp);
 		mmd->events++;
 	}
-- 
2.39.5