PageRenderTime 333ms CodeModel.GetById 151ms app.highlight 3ms RepoModel.GetById 109ms app.codeStats 0ms

/thirdparty/libportfwd/third-party/miniupnpc-1.6/codelength.h

http://github.com/tomahawk-player/tomahawk
C Header | 24 lines | 11 code | 4 blank | 9 comment | 4 complexity | 532ff43c2fe938193915048b605c4746 MD5 | raw file
 1/* $Id: codelength.h,v 1.1 2008/10/06 22:04:06 nanard Exp $ */
 2/* Project : miniupnp
 3 * Author : Thomas BERNARD
 4 * copyright (c) 2005-2008 Thomas Bernard
 5 * This software is subjet to the conditions detailed in the
 6 * provided LICENCE file. */
 7#ifndef __CODELENGTH_H__
 8#define __CODELENGTH_H__
 9
10/* Encode length by using 7bit per Byte :
11 * Most significant bit of each byte specifies that the
12 * following byte is part of the code */
13#define DECODELENGTH(n, p) n = 0; \
14                           do { n = (n << 7) | (*p & 0x7f); } \
15                           while(*(p++)&0x80);
16
17#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \
18                         if(n>=2097152) *(p++) = (n >> 21) | 0x80; \
19                         if(n>=16384) *(p++) = (n >> 14) | 0x80; \
20                         if(n>=128) *(p++) = (n >> 7) | 0x80; \
21                         *(p++) = n & 0x7f;
22
23#endif
24