rtxBitDecode.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #ifndef _RTXBITDECODE_H_
00029 #define _RTXBITDECODE_H_
00030
00031 #include "rtxsrc/rtxContext.h"
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037 #define DEC_BIT(pctxt,pvalue) \
00038 (((pctxt)->buffer.byteIndex >= (pctxt)->buffer.size) ? \
00039 rtxDecBit (pctxt, pvalue) \
00040 : \
00041 (*(pvalue) = (pctxt)->buffer.data[(pctxt)->buffer.byteIndex], \
00042 --(pctxt)->buffer.bitOffset == 0 ? \
00043 ((pctxt)->buffer.bitOffset = 8, (pctxt)->buffer.byteIndex++) \
00044 : \
00045 (*(pvalue) >>= (pctxt)->buffer.bitOffset), \
00046 *(pvalue) &= 1, \
00047 0))
00048
00049 EXTERNRT int rtxMoveBitCursor (OSCTXT* pctxt, int bitOffset);
00050
00065 EXTERNRT int rtxDecBit (OSCTXT* pctxt, OSBOOL* pvalue);
00066
00079 EXTERNRT int rtxDecBits (OSCTXT* pctxt, OSUINT32* pvalue, OSUINT32 nbits);
00080
00094 EXTERNRT int rtxDecBitsToByteArray
00095 (OSCTXT* pctxt, OSOCTET* pbuffer, OSUINT32 bufsiz, OSUINT32 nbits);
00096
00097 #ifdef __cplusplus
00098 }
00099 #endif
00100
00101 #endif