// file: clpc_gp_0.cc // // this is the function that parses the command line arguments // // system include file // #include #include // local include file // #include "global_constants.h" #include "calculate_lpc_constants.h" #include "calculate_lpc.h" // function: get_parameters_cc // // arguments: // char*& datafile_a: (output) file that contains the signal // float& frame_size_a: (output) duration of frame // float& win_size_a: (output) duration of window // float& win_center_time_a: (output) center time of window // float& sample_freq_a: (output) sample frequency // int& num_chans_a: (output) number of channels // float& preemp_val_a: (output) preemphasis value // int& win_type_a: (output) type of window // int& lp_order_a: (output) order of linear prediction // int& dft_order_a: (output) order of fft // int& debug_mode_a: (output) debug mode // char** argv_a: (input) list of command line arguments // int argc_a: (input) number of command line arguments // // return: an int to indicate status // // this function parses the command line arguments // // int get_parameters_cc (char*& datafile_a, float& frame_size_a, float& win_size_a, float& win_center_time_a, float& sample_freq_a, int& num_chans_a, float& preemp_val_a, int& win_type_a, int& lp_order_a, int& dft_order_a, int& debug_mode_a, char** argv_a, int argc_a) { // if no arguments are given then print out a help message // if (argc_a == 1) { char tmp_string [MAX_STRING_LENGTH]; sprintf((char*)tmp_string, (char*)HELP_FORMAT, (char*)CLPC_HELP_FILE); system((char*)tmp_string); // exit gracefully // exit (NO_ERROR); } for (int arg = 1; arg < argc_a; arg++) { if (strcmp(CLPC_HELP_OPT, argv_a[arg]) == 0) { char tmp_string[MAX_STRING_LENGTH]; sprintf((char*)tmp_string, (char*)HELP_FORMAT, (char*)CLPC_HELP_FILE); system((char*)tmp_string); // exit gracefully // exit (NO_ERROR); } else if (strcmp(CLPC_INPUTFILE_OPT, argv_a[arg]) == 0) { if (datafile_a == (char*)NULL) { datafile_a = new char[strlen(argv_a[arg+1]) + 1]; strcpy(datafile_a, argv_a[++arg]); } else { fprintf(stdout, "datafile_a already has memory allocated elsewhere\n"); return FALSE; } } else if (strcmp(CLPC_FRAME_SIZE_OPT, argv_a[arg]) == 0) { frame_size_a = atof(argv_a[++arg]); } else if (strcmp(CLPC_WIN_SIZE_OPT, argv_a[arg]) == 0) { win_size_a = atof(argv_a[++arg]); } else if (strcmp(CLPC_WIN_CENTER_OPT, argv_a[arg]) == 0) { win_center_time_a = atof(argv_a[++arg]); } else if (strcmp(CLPC_SAMPLE_FREQ_OPT, argv_a[arg]) == 0) { sample_freq_a = atof(argv_a[++arg]); } else if (strcmp(CLPC_NUM_CHANS_OPT, argv_a[arg]) == 0) { num_chans_a = atoi(argv_a[++arg]); } else if (strcmp(CLPC_PREEMP_VAL_OPT, argv_a[arg]) == 0) { preemp_val_a = atof(argv_a[++arg]); } else if (strcmp(CLPC_WIN_TYPE_OPT, argv_a[arg]) == 0) { win_type_a = atoi(argv_a[++arg]); } else if (strcmp(CLPC_LP_ORDER_OPT, argv_a[arg]) == 0) { lp_order_a = atoi(argv_a[++arg]); } else if (strcmp(CLPC_DFT_ORDER_OPT, argv_a[arg]) == 0) { dft_order_a = atoi(argv_a[++arg]); } else if (strcmp(CLPC_DEBUG_MODE_OPT, argv_a[arg]) == 0) { debug_mode_a = atoi(argv_a[++arg]); } else { fprintf(stdout, "No such parameter\n"); // exit ungracefully // return FALSE; } } // exit gracefully // return TRUE; }