]> git.llucax.com Git - z.facultad/75.06/jacu.git/blob - src/statichuff/statichuff.h
cosas y mas cosas de prueba
[z.facultad/75.06/jacu.git] / src / statichuff / statichuff.h
1
2 #ifndef _STATICHUFF_H_
3 #define _STATICHUFF_H_
4
5 #include <stdio.h>
6 #include <unistd.h>
7
8 typedef unsigned long int t_freq;
9
10 typedef struct t_freqnode {
11         unsigned short int symbol;
12         t_freq freq;
13         struct t_freqnode *lchild;
14         struct t_freqnode *rchild;
15 } SHUFFNODE;
16
17 typedef struct t_code {
18         unsigned long int code;
19         unsigned char codelength;
20 } SHUFFCODE;
21
22 typedef struct t_huff {
23         FILE *tmpfp; /* filepointer al temporal para un shuff_bychunk */
24         char *sourcefile; /* Nombre del archivo a comprimir */
25         char *targetfile; /* Nombre del archivo comprimido */
26         t_freq *freqtable; /* Tabla de frecuencias */
27         t_freq sumfreq; /* Frecuencia total acumulada */
28         long volsize; /* Tamanio de volumen para multivol */
29         char preloadfreq; /* 1 freqtable preloaded (bychunk|canonico) - 0 byfile */
30         
31 } HUFF_STATE;
32
33 HUFF_STATE *shuff_init_static_byfile(char *inputfile, char *outputfile, long volsize);
34 HUFF_STATE *shuff_init_static_bychunk(char *outputfile, long volsize);
35 void shuff_deinit_static_byfile(HUFF_STATE *fshuff);
36 void shuff_deinit_static_bychunk(HUFF_STATE *cshuff);
37 int shuff_decode_file(HUFF_STATE *shuff);
38 int shuff_encode_file(HUFF_STATE *shuff);
39
40 #endif /* _STATICHUFF_H_ */