bool OptionHandler::convertWaveformData( const boost::filesystem::path& input_filename, const boost::filesystem::path& output_filename, const Options& options) { WaveformBuffer buffer; if (!buffer.load(input_filename.c_str())) { return false; } const int bits = options.hasBits() ? options.getBits() : buffer.getBits(); bool success = true; const boost::filesystem::path output_file_ext = output_filename.extension(); if (output_file_ext == ".json") { success = buffer.saveAsJson(output_filename.c_str(), bits); } else if (output_file_ext == ".txt") { success = buffer.saveAsText(output_filename.c_str(), bits); } return success; }
bool OptionHandler::generateWaveformData( const boost::filesystem::path& input_filename, const boost::filesystem::path& output_filename, const Options& options) { const std::unique_ptr<ScaleFactor> scale_factor = createScaleFactor(options); const boost::filesystem::path output_file_ext = output_filename.extension(); const std::unique_ptr<AudioFileReader> audio_file_reader = createAudioFileReader(input_filename); if (audio_file_reader == nullptr) { error_stream << "Unknown file type: " << input_filename << '\n'; return false; } if (!audio_file_reader->open(input_filename.c_str())) { return false; } WaveformBuffer buffer; WaveformGenerator processor(buffer, *scale_factor); if (!audio_file_reader->run(processor)) { return false; } assert(output_file_ext == ".dat" || output_file_ext == ".json"); const int bits = options.getBits(); if (output_file_ext == ".dat") { return buffer.save(output_filename.c_str(), bits); } else { return buffer.saveAsJson(output_filename.c_str(), bits); } }