77 #include "jasper/jas_types.h" 
   78 #include "jasper/jas_stream.h" 
   80 #include "jpc_mqcod.h" 
   90 #define JPC_MQENC_DEFTERM       0        
   91 #define JPC_MQENC_PTERM         1        
  114         jpc_mqstate_t **ctxs;
 
  117         jpc_mqstate_t **curctx;
 
  126         int_fast16_t lastbyte;
 
  156 jpc_mqenc_t *jpc_mqenc_create(
int maxctxs, jas_stream_t *out);
 
  159 void jpc_mqenc_destroy(jpc_mqenc_t *enc);
 
  166 void jpc_mqenc_init(jpc_mqenc_t *enc);
 
  173 #define jpc_mqenc_setcurctx(enc, ctxno) \ 
  174         ((enc)->curctx = &(enc)->ctxs[ctxno]); 
  177 void jpc_mqenc_setctx(jpc_mqenc_t *enc, 
int ctxno, jpc_mqctx_t *ctx);
 
  180 void jpc_mqenc_setctxs(jpc_mqenc_t *enc, 
int numctxs, jpc_mqctx_t *ctxs);
 
  187 #define jpc_mqenc_error(enc) \ 
  191 void jpc_mqenc_getstate(jpc_mqenc_t *enc, jpc_mqencstate_t *state);
 
  194 int jpc_mqenc_flush(jpc_mqenc_t *enc, 
int termmode);
 
  202 #define jpc_mqenc_putbit(enc, bit)      jpc_mqenc_putbit_macro(enc, bit) 
  204 #define jpc_mqenc_putbit(enc, bit)      jpc_mqenc_putbit_func(enc, bit) 
  211 int jpc_mqenc_dump(jpc_mqenc_t *mqenc, FILE *out);
 
  219 #define jpc_mqenc_putbit_macro(enc, bit) \ 
  220         (((*((enc)->curctx))->mps == (bit)) ? \ 
  221           (((enc)->areg -= (*(enc)->curctx)->qeval), \ 
  222           ((!((enc)->areg & 0x8000)) ? (jpc_mqenc_codemps2(enc)) : \ 
  223           ((enc)->creg += (*(enc)->curctx)->qeval))) : \ 
  224           jpc_mqenc_codelps(enc)) 
  229 int jpc_mqenc_codemps2(jpc_mqenc_t *enc);
 
  230 int jpc_mqenc_codelps(jpc_mqenc_t *enc);
 
  234 int jpc_mqenc_putbit_func(jpc_mqenc_t *enc, 
int bit);