// file: process_0.C // #include "./process_data.h" //----------------------------------------------------------------------------- // function: process_file.C // // arguments: // char* output_file: (input) output file // char* input_file: (input) input file // float sample_frequency: (input) sample frequency of the signals // float frame_duration: (input) frame_duration of the signals // float window_duration: (input) window_duration of the signals // // returns: // L_TRUE if no error was encounterd //----------------------------------------------------------------------------- int process_file_C(char* output_file, char* input_file, float sample_frequency, float frame_duration, float window_duration) { // open the input file // FILE* fp_in = fopen(input_file, "r"); if (fp_in == NULL) {return L_FALSE;} // create the output file // FILE* fp_out = fopen(output_file, "w"); if (fp_out == NULL) {return L_FALSE;} // compute the size of the file (this make the code a little easier) // fseek(fp_in, 0, 2); int size_in_samples = ftell(fp_in) / sizeof(short int); rewind(fp_in); float num_frames = round_C((size_in_samples / sample_frequency) / frame_duration); // allocate buffers // int window_dur_samples = (int)round_C(window_duration * sample_frequency); int frame_dur_samples = (int)round_C(frame_duration * sample_frequency); float* buffer_in = (float*)malloc(window_dur_samples * sizeof(float)); float* buffer_out = (float*)malloc(frame_dur_samples * sizeof(float)); // loop over the entire file // for (int frame_number=0; frame_number