From: Andre Noll Date: Tue, 23 Oct 2007 17:56:44 +0000 (+0200) Subject: Get rid of mmd->afi. X-Git-Tag: v0.3.0~236 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=f4eecbd4e033250b96cf0136a238c28837ba0b36;hp=17d2533cafc67dd0509860fa2b59ec98b23d7be7 Get rid of mmd->afi. It was only a copy of mmd->afd.afhi, so make all users use the latter directly. --- 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++; }