#include <stdio.h>
#include <unistd.h>
+#include "../vfile/vfile.h"
typedef unsigned long int t_freq;
} SHUFFCODE;
typedef struct t_huff {
- FILE *tmpfp; /* filepointer al temporal para un shuff_bychunk */
+ FILE *coderfp; /* filepointer usado en el coder de bychunk */
+ VFILE *decoderfp; /* filepointer usado en ambos decoders */
char *sourcefile; /* Nombre del archivo a comprimir */
char *targetfile; /* Nombre del archivo comprimido */
+ long volsize; /* Tamanio de volumen para multivol */
+ char preloadfreq; /* 1 Freqtable preloaded (bychunk | canonico) - 0 byfile */
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 */
-
+ SHUFFNODE *codetree; /* Puntero al arbol de codigos prefijos */
+ unsigned long int bytesleft; /* cuanto falta descomprimir en un bychunk */
} 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);
+HUFF_STATE *shuff_init_encoder_byfile(char *inputfile, char *outputfile, long volsize);
+HUFF_STATE *shuff_init_encoder_bychunk(char *outputfile, long volsize);
+HUFF_STATE *shuff_init_decoder(char *inputfile, char *outputfile);
+void shuff_deinit_encoder(HUFF_STATE *shuff);
int shuff_decode_file(HUFF_STATE *shuff);
-int shuff_encode_file(HUFF_STATE *shuff);
#endif /* _STATICHUFF_H_ */