00001 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 #ifndef BITS_H
00037 #define BITS_H
00038 
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047 
00049 typedef struct SpeexBits {
00050    char *chars;   
00051    int   nbBits;  
00052    int   charPtr; 
00053    int   bitPtr;  
00054    int   owner;   
00055    int   overflow;
00056    int   buf_size;
00057    int   reserved1; 
00058    void *reserved2; 
00059 } SpeexBits;
00060 
00062 void speex_bits_init(SpeexBits *bits);
00063 
00065 void speex_bits_init_buffer(SpeexBits *bits, void *buff, int buf_size);
00066 
00068 void speex_bits_set_bit_buffer(SpeexBits *bits, void *buff, int buf_size);
00069 
00071 void speex_bits_destroy(SpeexBits *bits);
00072 
00074 void speex_bits_reset(SpeexBits *bits);
00075 
00077 void speex_bits_rewind(SpeexBits *bits);
00078 
00080 void speex_bits_read_from(SpeexBits *bits, char *bytes, int len);
00081 
00088 void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len);
00089 
00097 int speex_bits_write(SpeexBits *bits, char *bytes, int max_len);
00098 
00100 int speex_bits_write_whole_bytes(SpeexBits *bits, char *bytes, int max_len);
00101 
00107 void speex_bits_pack(SpeexBits *bits, int data, int nbBits);
00108 
00115 int speex_bits_unpack_signed(SpeexBits *bits, int nbBits);
00116 
00123 unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits);
00124 
00130 int speex_bits_nbytes(SpeexBits *bits);
00131 
00138 unsigned int speex_bits_peek_unsigned(SpeexBits *bits, int nbBits);
00139 
00146 int speex_bits_peek(SpeexBits *bits);
00147 
00153 void speex_bits_advance(SpeexBits *bits, int n);
00154 
00160 int speex_bits_remaining(SpeexBits *bits);
00161 
00167 void speex_bits_insert_terminator(SpeexBits *bits);
00168 
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172 
00173 
00174 #endif