rtxBitDecode.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2010-2010 Objective Systems, Inc.
00003  *
00004  * This software is furnished under a license and may be used and copied
00005  * only in accordance with the terms of such license and with the
00006  * inclusion of the above copyright notice. This software or any other
00007  * copies thereof may not be provided or otherwise made available to any
00008  * other person. No title to and ownership of the software is hereby
00009  * transferred.
00010  *
00011  * The information in this software is subject to change without notice
00012  * and should not be construed as a commitment by Objective Systems, Inc.
00013  *
00014  * PROPRIETARY NOTICE
00015  *
00016  * This software is an unpublished work subject to a confidentiality agreement
00017  * and is protected by copyright and trade secret law.  Unauthorized copying,
00018  * redistribution or other use of this work is prohibited.
00019  *
00020  * The above notice of copyright on this source code product does not indicate
00021  * any actual or intended publication of such source code.
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