X-Git-Url: https://git.llucax.com/z.facultad/75.06/jacu.git/blobdiff_plain/4ca9e227315aa797216a3eb0ea7d72e9db203143..9bd8101460fbc92595e43bb90a72f5a25594556a:/src/statichuff/main.c diff --git a/src/statichuff/main.c b/src/statichuff/main.c index d7200bb..ebb7115 100644 --- a/src/statichuff/main.c +++ b/src/statichuff/main.c @@ -7,11 +7,14 @@ int main(int argc, char* argv[]) int cflag = 0; int dflag = 0; int tflag = 0; + int mflag = 0; + int sflag = 0; long int volumesize = 0; int ch; HUFF_STATE *shuff; + char *staticmodel = NULL; - while ((ch = getopt(argc, argv, "cdt:")) != -1) { + while ((ch = getopt(argc, argv, "scdm:t:")) != -1) { switch (ch) { case 'c': cflag = 1; @@ -24,13 +27,20 @@ int main(int argc, char* argv[]) volumesize = atoi(optarg); break; - default: fprintf(stderr, "Usage: %s [-cdt] sourcefile targetfile\n", argv[0]); + case 'm': mflag = 1; + staticmodel = optarg; + break; + + case 's': sflag = 1; + break; + + default: fprintf(stderr, "Usage: %s [-cds] [-t volsizekb] sourcefile targetfile [-m modeldumpfile]\n", argv[0]); return(2); } } if ( (argc == 1) || (cflag & dflag) || !(cflag | dflag) || ((argc - optind) < 2) ) { - fprintf(stderr, "Usage: %s [-cdt] sourcefile targetfile\n", argv[0]); + fprintf(stderr, "Usage: %s [-cds] [-t volsizekb] sourcefile targetfile [-m modeldumpfile]\n", argv[0]); if ((tflag == 1) && (volumesize < 0)) fprintf(stderr,"Error: The volume size must be a non-zero value\n"); return (2); } @@ -38,7 +48,9 @@ int main(int argc, char* argv[]) if (cflag == 1) { /* Comprimo */ shuff = shuff_init_encoder_byfile(argv[optind],argv[optind+1],volumesize*1024); + if (mflag == 1) shuff_loadmodel(shuff,staticmodel); shuff_encode_file(shuff); + if (sflag == 1) shuff_savemodel(shuff); shuff_deinit_encoder(shuff); free(shuff); }