]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - src/statichuff/statichuff.h
Huffman con capacidad de comprimir chunks y presentando nueva API. El descompresor...
[z.facultad/75.06/jacu.git] / src / statichuff / statichuff.h
index 8c3502de0c6a5e4815e482d43d4695c0fd158c67..08da37ed8566381655f4170208b5878b0752b437 100644 (file)
@@ -19,7 +19,22 @@ typedef struct t_code {
        unsigned char codelength;
 } SHUFFCODE;
 
        unsigned char codelength;
 } SHUFFCODE;
 
-int shuff_decode_file(char *inputfile, char *outputfile);
-int shuff_encode_file(char *inputfile, char *outputfile);
+typedef struct t_huff {
+       FILE *tmpfp; /* filepointer al temporal para un shuff_bychunk */
+       char *sourcefile; /* Nombre del archivo a comprimir */
+       char *targetfile; /* Nombre del archivo comprimido */
+       t_freq *freqtable; /* Tabla de frecuencias */
+       t_freq sumfreq; /* Frecuencia total acumulada */
+       long volsize; /* Tamanio de volumen para multivol */
+       char preloadfreq; /* 1 freqtable preloaded (bychunk|canonico) - 0 byfile */
+       
+} HUFF_STATE;
+
+HUFF_STATE *shuff_init_static_byfile(char *inputfile, char *outputfile, long volsize);
+HUFF_STATE *shuff_init_static_bychunk(char *outputfile, long volsize);
+void shuff_deinit_static_byfile(HUFF_STATE *fshuff);
+void shuff_deinit_static_bychunk(HUFF_STATE *cshuff);
+int shuff_decode_file(HUFF_STATE *shuff);
+int shuff_encode_file(HUFF_STATE *shuff);
 
 #endif /* _STATICHUFF_H_ */
 
 #endif /* _STATICHUFF_H_ */