]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - src/statichuff/main.c
Test de Calgary sobre JACU vs GZIP vs BZIP2 done, me falta el pic en mi maquina que...
[z.facultad/75.06/jacu.git] / src / statichuff / main.c
index 65a1c3ded4c2963a9b59e68217087f11ee0bdbf6..ebb711588504e5ce89ad8347f7ef7183be557552 100644 (file)
@@ -7,11 +7,14 @@ int main(int argc, char* argv[])
        int cflag = 0;
        int dflag = 0;
        int tflag = 0;
        int cflag = 0;
        int dflag = 0;
        int tflag = 0;
+       int mflag = 0;
+       int sflag = 0;
        long int volumesize = 0;
        int ch;
        HUFF_STATE *shuff;
        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; 
                 
                switch (ch) { 
                        case 'c': cflag = 1; 
@@ -24,30 +27,39 @@ int main(int argc, char* argv[])
                                          volumesize = atoi(optarg);                                      
                                          break; 
                        
                                          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) ) {
                                         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);             
        }
                
        if (cflag == 1) {
                /* Comprimo */
                if ((tflag == 1) && (volumesize < 0)) fprintf(stderr,"Error: The volume size must be a non-zero value\n");
                return (2);             
        }
                
        if (cflag == 1) {
                /* Comprimo */
-               shuff = shuff_init_static_byfile(argv[optind],argv[optind+1],volumesize*1024);
+               shuff = shuff_init_encoder_byfile(argv[optind],argv[optind+1],volumesize*1024);
+               if (mflag == 1) shuff_loadmodel(shuff,staticmodel);
            shuff_encode_file(shuff);
            shuff_encode_file(shuff);
-               shuff_deinit_static_byfile(shuff);
+               if (sflag == 1) shuff_savemodel(shuff);
+               shuff_deinit_encoder(shuff);
                free(shuff);
        }
        
        if (dflag == 1) { 
                /* Descomprimo */
                free(shuff);
        }
        
        if (dflag == 1) { 
                /* Descomprimo */
-               shuff = shuff_init_static_byfile(argv[optind],argv[optind+1],0);
+               shuff = shuff_init_decoder(argv[optind],argv[optind+1]);
                shuff_decode_file(shuff);
                shuff_decode_file(shuff);
-               shuff_deinit_static_byfile(shuff);
+               shuff_deinit_decoder(shuff);
                free(shuff);
        }
                
                free(shuff);
        }