.
This commit is contained in:
46
lib/ext/polycom/vbyte_poly.h
Normal file
46
lib/ext/polycom/vbyte_poly.h
Normal file
@ -0,0 +1,46 @@
|
||||
//
|
||||
#define VBYTE_ENC(_v, _n) \
|
||||
{\
|
||||
unsigned _num; \
|
||||
unsigned char _barray[5]; \
|
||||
unsigned _i, _started = 0; \
|
||||
_num = _n; \
|
||||
for (_i = 0; _i < 5; _i++) \
|
||||
{ \
|
||||
_barray[_i] = ((_num%128)<<1); \
|
||||
_num = _num/128; \
|
||||
} \
|
||||
for (_i = 4; _i > 0; _i--) \
|
||||
{ \
|
||||
if ((_barray[_i] != 0) || (_started == 1)) \
|
||||
{ \
|
||||
_started = 1; \
|
||||
*_v = _barray[_i]|0x1; \
|
||||
_v++; \
|
||||
} \
|
||||
} \
|
||||
*_v = _barray[0]|0x0; \
|
||||
_v++; \
|
||||
}
|
||||
|
||||
#define VBYTE_DEC(_v, _n) \
|
||||
{\
|
||||
_n = ((*_v>>1)); \
|
||||
if ((*_v&0x1) != 0) \
|
||||
{ \
|
||||
_v++; \
|
||||
_n = (_n<<7) + ((*_v>>1)); \
|
||||
if ((*_v&0x1)!= 0) \
|
||||
{ \
|
||||
_v++; \
|
||||
_n = (_n<<7) + ((*_v>>1)); \
|
||||
if ((*_v&0x1) != 0) \
|
||||
{ \
|
||||
_v++; \
|
||||
_n = (_n<<7) + ((*_v>>1)); \
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
_v++; \
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user