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);