precomp-cpp/precomp_dll.h
2019-11-08 10:49:41 +01:00

94 lines
3 KiB
C++

// Switches class
class Switches {
public:
Switches();
int compression_method; //compression method to use (default: none)
unsigned int compression_otf_max_memory; // max. memory for LZMA compression method (default: 2 GiB)
unsigned int compression_otf_thread_count; // max. thread count for LZMA compression method (default: auto-detect)
//byte positions to ignore (default: none)
long long* ignore_list;
int ignore_list_len;
bool intense_mode; //intense mode (default: off)
bool fast_mode; //fast mode (default: off)
bool brute_mode; //brute mode (default: off)
bool pdf_bmp_mode; //wrap BMP header around PDF images
// (default: off)
bool prog_only; //recompress progressive JPGs only
// (default: off)
bool use_mjpeg; //insert huffman table for MJPEG recompression
// (default: on)
bool use_brunsli; //use brunsli for JPG compression
// (default: on)
bool use_brotli; //use brotli for JPG metadata when brunsli is used
// (default: off)
bool use_packjpg_fallback; //use packJPG for JPG compression (fallback when brunsli fails)
// (default: on)
bool debug_mode; //debug mode (default: off)
unsigned int min_ident_size; //minimal identical bytes (default: 4)
//(p)recompression types to use (default: all)
bool use_pdf;
bool use_zip;
bool use_gzip;
bool use_png;
bool use_gif;
bool use_jpg;
bool use_mp3;
bool use_swf;
bool use_base64;
bool use_bzip2;
bool level_switch; //level switch used? (default: no)
bool use_zlib_level[81]; //compression levels to use (default: all)
};
//Switches constructor
Switches::Switches() {
compression_method = 2;
compression_otf_max_memory = 2048;
compression_otf_thread_count = std::thread::hardware_concurrency();
if (compression_otf_thread_count == 0) {
compression_otf_thread_count = 2;
}
ignore_list = NULL;
ignore_list_len = 0;
intense_mode = false;
fast_mode = false;
brute_mode = false;
pdf_bmp_mode = false;
prog_only = false;
use_mjpeg = true;
use_brunsli = true;
use_brotli = false;
use_packjpg_fallback = true;
debug_mode = false;
min_ident_size = 4;
use_pdf = true;
use_zip = true;
use_gzip = true;
use_png = true;
use_gif = true;
use_jpg = true;
use_mp3 = true;
use_swf = true;
use_base64 = true;
use_bzip2 = true;
level_switch = false;
for (int i = 0; i < 81; i++) {
use_zlib_level[i] = true;
}
}
#ifndef DLL
#define DLL __declspec(dllexport)
#endif
DLL void get_copyright_msg(char* msg);
DLL bool precompress_file(char* in_file, char* out_file, char* msg, Switches switches);
DLL bool recompress_file(char* in_file, char* out_file, char* msg, Switches switches);