comparison src/gpf2/ccd/bitfun.h @ 1:864b8cc0cf63

src/gpf2: preened GPF goo from TCS211
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Sep 2016 23:38:58 +0000
parents
children
comparison
equal deleted inserted replaced
0:945cf7f506b2 1:864b8cc0cf63
1 /*
2 +-----------------------------------------------------------------------------
3 | Project :
4 | Modul : bitfun.h
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : Condat Coder Decoder
18 | Prototypes of the elementary bit manipulation functions
19 +-----------------------------------------------------------------------------
20 */
21
22
23 #ifndef __BITFUN
24 #define __BITFUN
25
26
27 #ifndef __BITFUN_C__
28
29 EXTERN void bf_writePadBits (T_CCD_Globs *globs);
30 EXTERN void bf_writeVal (ULONG value, ULONG bSize, T_CCD_Globs *globs);
31 EXTERN ULONG bf_getBits (ULONG len, T_CCD_Globs *globs);
32 EXTERN void bf_writeBitStr_PER (USHORT len, T_CCD_Globs *globs);
33 EXTERN void bf_readBitStr_PER (USHORT len, T_CCD_Globs *globs);
34 EXTERN void bf_writeBits (ULONG len, T_CCD_Globs *globs);
35 EXTERN void bf_readBits (ULONG len, T_CCD_Globs *globs);
36 EXTERN void bf_writeBitChunk (ULONG len, T_CCD_Globs *globs);
37 EXTERN void bf_readBitChunk (ULONG len, T_CCD_Globs *globs);
38 EXTERN BOOL bf_readBit (T_CCD_Globs *globs);
39 EXTERN void bf_writeBit (BOOL Bit, T_CCD_Globs *globs);
40 EXTERN UBYTE bf_decodeByteNumber (const ULONG len, T_CCD_Globs *globs);
41 EXTERN ULONG bf_decodeShortNumber (const ULONG len, T_CCD_Globs *globs);
42 EXTERN ULONG bf_decodeLongNumber (UBYTE len, T_CCD_Globs *globs);
43 EXTERN void bf_codeShortNumber (UBYTE len, USHORT val, T_CCD_Globs *globs);
44 EXTERN void bf_codeByteNumber (UBYTE len, UBYTE val, T_CCD_Globs *globs);
45 EXTERN void bf_codeLongNumber (UBYTE len, ULONG val, T_CCD_Globs *globs);
46 EXTERN void bf_recodeShortNumber (USHORT pos, UBYTE len, USHORT val, T_CCD_Globs *globs);
47 EXTERN void bf_recodeByteNumber (USHORT pos, UBYTE len, UBYTE val, T_CCD_Globs *globs);
48 EXTERN void bf_recodeBit (USHORT pos, UBYTE Bit, T_CCD_Globs *globs);
49 EXTERN void bf_rShift8Bit (USHORT srcBitPos, USHORT bitLen, T_CCD_Globs *globs);
50
51 #endif /* __BITFUN_C__ */
52
53 /* a Macro for incrementing the position in the bitbuffer */
54 /* _bitpos, _bytepos and _byteoffs are recalculated */
55
56 #define bf_incBitpos(A, globs) globs->bitpos = (USHORT)(globs->bitpos+(A));\
57 globs->bytepos = (USHORT)(globs->bitpos >> 3);\
58 globs->byteoffs = (UBYTE)(globs->bitpos & 7)
59 #define bf_setBitpos(A, globs) globs->bitpos = (USHORT)(A);\
60 globs->bytepos = (USHORT)(globs->bitpos >> 3);\
61 globs->byteoffs = (UBYTE)(globs->bitpos & 7)
62
63 /*
64 * end of bitstream if we can not read almost 4 bits
65 */
66 #define bf_endOfBitstream(globs) (globs->bitpos >= globs->maxBitpos)
67
68 #endif