From 80e46ec589d14be2fa4b0704f613a04ecb1b64c4 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Fri, 14 Mar 2008 21:29:24 +0100 Subject: [PATCH] Add missing files for para_afh. It's too easy to miss with git.. --- afh.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ afh.ggo | 12 +++++++++ 2 files changed, 87 insertions(+) create mode 100644 afh.c create mode 100644 afh.ggo diff --git a/afh.c b/afh.c new file mode 100644 index 00000000..84a061b9 --- /dev/null +++ b/afh.c @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2008 Andre Noll + * + * Licensed under the GPL v2. For licencing details see COPYING. + */ + +/** \file afh.c Paraslash's standalone audio format handler tool. */ + +#include + +#include "para.h" +#include "string.h" +#include "afh.cmdline.h" +#include "fd.h" +#include "afh.h" +#include "error.h" + +static struct afh_args_info conf; +/** The list of all status items */ +const char *status_item_list[] = {STATUS_ITEM_ARRAY}; + +INIT_AFH_ERRLISTS; +INIT_STDERR_LOGGING(conf.loglevel_arg) + +int main(int argc, char **argv) +{ + int i, ret; + void *audio_file_data; + size_t audio_file_size; + struct afh_info afhi; + + afh_cmdline_parser(argc, argv, &conf); + HANDLE_VERSION_FLAG("afh", conf); + ret = -E_AFH_SYNTAX; + if (conf.inputs_num != 1) + goto out; + afh_init(); + ret = mmap_full_file(conf.inputs[0], O_RDONLY, &audio_file_data, + &audio_file_size, NULL); + if (ret < 0) + goto out; + ret = compute_afhi(conf.inputs[0], audio_file_data, audio_file_size, &afhi); + if (ret < 0) + goto out; + printf("%s: %dkbit/s\n" /* bitrate */ + "%s: %s\n" /* format */ + "%s: %dHz\n" /* frequency */ + "%s: %d\n" /* channels */ + "%s: %lu\n" /* seconds total */ + "%s" /* tag info */ + "%s: %lu: %lu\n" /* chunk time */ + "%s: %lu\n", /* num chunks */ + status_item_list[SI_BITRATE], afhi.bitrate, + status_item_list[SI_FORMAT], audio_format_name(ret), + status_item_list[SI_FREQUENCY], afhi.frequency, + status_item_list[SI_CHANNELS], afhi.channels, + status_item_list[SI_SECONDS_TOTAL], afhi.seconds_total, + afhi.info_string, + status_item_list[SI_CHUNK_TIME], (long unsigned)afhi.chunk_tv.tv_sec, + (long unsigned)afhi.chunk_tv.tv_usec, + status_item_list[SI_NUM_CHUNKS], afhi.chunks_total + ); + ret = 1; + if (!conf.chunk_table_given) + goto out; + printf("chunk_table: "); + for (i = 0; i <= afhi.chunks_total; i++) + printf("%u ", afhi.chunk_table[i]); + printf("\n"); + ret = 1; +out: + if (ret < 0) + PARA_ERROR_LOG("%s\n", para_strerror(-ret)); + return ret < 0? EXIT_FAILURE : EXIT_SUCCESS; +} diff --git a/afh.ggo b/afh.ggo new file mode 100644 index 00000000..e013cc36 --- /dev/null +++ b/afh.ggo @@ -0,0 +1,12 @@ +option "loglevel" l +#~~~~~~~~~~~~~~~~~~ +"set loglevel (0-6)" + + int typestr="level" + default="4" + optional + +option "chunk_table" c +"print also the chunk table" + + flag off -- 2.39.2