From e648fe8700dbc1afe97e7724ec892c2947ca0b41 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Tue, 15 Mar 2016 11:56:13 +1300 Subject: Segment the argument logic into own function --- cue-bin-split.c | 69 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/cue-bin-split.c b/cue-bin-split.c index 9959d82..3df2966 100644 --- a/cue-bin-split.c +++ b/cue-bin-split.c @@ -28,6 +28,42 @@ #include "cue-bin-split.h" #include "misc.h" +void args_collect(int *argc, char ***argv, int *rate, int *channels, int *sample_size, char **in_fname, char **format) +{ + char opt = '\0'; + while ( ( opt = getopt(*argc, *argv, "r:c:i:s:f:") ) != -1 ) + { + switch (opt) + { + case 'r': *rate = atoi(optarg); break; + case 'c': *channels = atoi(optarg); break; + case 's': *sample_size = atoi(optarg); break; + case 'i': *in_fname = optarg; break; + case 'f': *format = optarg; break; + + case '?': + default: + die_help(); + break; + } + } + + if (*channels <= 0 || + *rate <= 0 || + *sample_size <= 0) + { + fprintf(stderr, "ERROR: Channel count, bitrate and sample size must all be present and positive\n"); + die_help(); + } + + if (*in_fname == NULL || + *format == NULL) + { + fprintf(stderr, "ERROR: Input filename and output name format must be present\n"); + die_help(); + } +} + int main(int argc, char **argv) { /* File handles */ @@ -42,7 +78,6 @@ int main(int argc, char **argv) int sample_size = 0; /* Misc */ - char opt = 0; char out_fname[1024]; /* That should do it. Note: overflow IS caught */ int track = 0; int items = 0; @@ -55,37 +90,7 @@ int main(int argc, char **argv) unsigned long start_sample = 0; unsigned long finish_sample = 0; - while ( ( opt = getopt(argc, argv, "r:c:i:s:f:") ) != -1 ) - { - switch (opt) - { - case 'r': rate = atoi(optarg); break; - case 'c': channels = atoi(optarg); break; - case 's': sample_size = atoi(optarg); break; - case 'i': in_fname = optarg; break; - case 'f': format = optarg; break; - - case '?': - default: - die_help(); - break; - } - } - - if (channels <= 0 || - rate <= 0 || - sample_size <= 0) - { - fprintf(stderr, "ERROR: Channel count, bitrate and sample size must all be present and positive\n"); - die_help(); - } - - if (in_fname == NULL || - format == NULL) - { - fprintf(stderr, "ERROR: Input filename and output name format must be present\n"); - die_help(); - } + args_collect(&argc, &argv, &rate, &channels, &sample_size, &in_fname, &format); /* Open it up */ if ((fin = fopen(in_fname, "r")) == NULL) -- cgit v1.1 From 1e161f2c7ae3602d2cf70e693ef3cee67ae786e9 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Tue, 15 Mar 2016 12:06:58 +1300 Subject: Header guards are evil --- cue-bin-split.c | 5 +++++ cue-bin-split.h | 9 --------- misc.c | 3 +++ misc.h | 9 --------- 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/cue-bin-split.c b/cue-bin-split.c index 3df2966..8616aef 100644 --- a/cue-bin-split.c +++ b/cue-bin-split.c @@ -25,6 +25,11 @@ * SUCH DAMAGE. */ +#include +#include +#include +#include + #include "cue-bin-split.h" #include "misc.h" diff --git a/cue-bin-split.h b/cue-bin-split.h index 604bea5..e689bbf 100644 --- a/cue-bin-split.h +++ b/cue-bin-split.h @@ -25,14 +25,5 @@ * SUCH DAMAGE. */ -#ifndef CUE_BIN_SPLIT_H -#define CUE_BIN_SPLIT_H - -#include -#include -#include - #define FRAMES_PER_SEC 75 #define BUFFER_SIZE 1024*1024 /* Meh, good enough */ - -#endif diff --git a/misc.c b/misc.c index 76ddaaf..7ee275a 100644 --- a/misc.c +++ b/misc.c @@ -25,6 +25,9 @@ * SUCH DAMAGE. */ +#include +#include + #include "misc.h" /* Grabs a 'mm:ss:ff' stamp from stdin */ diff --git a/misc.h b/misc.h index ceb00fd..fb4a093 100644 --- a/misc.h +++ b/misc.h @@ -25,12 +25,6 @@ * SUCH DAMAGE. */ -#ifndef MISC_H -#define MISC_H - -#include -#include - #include "cue-bin-split.h" /* MIN is surely defined in a standard header */ @@ -40,6 +34,3 @@ double get_sec(); int construct_out_name(char *buffer, size_t buffer_size, char* format, unsigned int track); void die_help(); - - -#endif -- cgit v1.1