int main(int argc, char* argv[]) { if (argc < 3) { printInfo(); return 0; } char* flag = argv[1]; if (strcmp(flag, "-c") == 0) { int fileSize; //get the buffer from the input file const char* inBuffer = getBufferFromFile(argv[2], fileSize); //make the compressor HuffmanCompressor compressor = HuffmanCompressor((char*)inBuffer, fileSize); long compSize; //compress the data unsigned char* compressedData = compressor.compress(compSize); std::string path = std::string(argv[2]) + ".bzip"; //write the compressed data to the disk writeBinary(compressedData, compSize, path); delete [] compressedData; delete [] inBuffer; return 0; } else if (strcmp(flag, "-d") == 0) { std::fstream in(argv[2], std::ios::in|std::ios::binary); HuffmanDecompressor dec = HuffmanDecompressor(in); BYTE* data = dec.decompress(); int dataSize = dec.getTotalChars(); writeBinary(data, dataSize, "out.txt"); delete [] data; return 0; } else { printInfo(); } return 0; }
int main(int argc, char *argv[]) { char *infile = argv[1]; char *outfolder = argv[2]; int rawdump = argv[3] ? 1 : 2; short *buffer; timeStruct time; int status = 1; sParameterStruct sSO2Parameters; sConfigStruct config; config.debug = 0; if (log_init(&config)) { printf("could not start log file, stop.\n"); } #ifdef BENCHMARK float startTime; #endif if (argc < 3 || argc > 4) { printf("Usage: %s in.raw outfolder [write_raw_dump]\n", argv[0]); printf("i.e. %s tests/fixtures/testing_2014_09_22-23_43_55_984_cam_top.raw ./ 1\n", argv[0]); return 1; } #ifdef BENCHMARK startTime = (float)clock() / CLOCKS_PER_SEC; #endif buffer = getBufferFromFile(infile, 64); if(!buffer) return 1; #ifdef BENCHMARK log_debug("reading file took %fms \n", ((float)clock() / CLOCKS_PER_SEC - startTime) * 1000); #endif parse_filename_to_timeStruct(infile, &time); sSO2Parameters.dTriggerPulseWidth = 15; sSO2Parameters.dExposureTime = 0; sSO2Parameters.dDarkCurrent = 0; sSO2Parameters.identifier = 'A'; sSO2Parameters.stBuffer = buffer; sSO2Parameters.timestampBefore = &time; sSO2Parameters.dark = 0; sSO2Parameters.dExposureTime = 0.000000; config.dImageCounter = 0; config.dBufferlength = 1376256; config.dHistMinInterval = 350; config.dHistPercentage = 5; config.dInterFrameDelay = 10; config.dFixTime = 0.000000; config.cFileNamePrefix = "image"; config.cConfigFileName = ""; config.cImagePath = outfolder; config.processing = rawdump; io_init(&config); status = io_write(&sSO2Parameters, &config); if (status == 0) { log_debug("Converted %s to %s", infile, outfolder); } else { log_error("Something wrong writing to File."); } io_uninit(&config); free(buffer); return 0; }