From ba15707b292d827bdce732e7713b26fae3f75c74 Mon Sep 17 00:00:00 2001 From: Alex Bennee Date: Wed, 14 Jul 2010 15:57:06 +0100 Subject: EasyTag 2.1.1 --- src/libmpg123/getbits.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 src/libmpg123/getbits.h (limited to 'src/libmpg123/getbits.h') diff --git a/src/libmpg123/getbits.h b/src/libmpg123/getbits.h new file mode 100755 index 0000000..1e5cf65 --- /dev/null +++ b/src/libmpg123/getbits.h @@ -0,0 +1,46 @@ + +/* + * This does the same as getbits.c but with defines to + * force inlining + */ + +#define mpg123_backbits(nob) \ +do { \ + bsi.bitindex -= nob; \ + bsi.wordpointer += (bsi.bitindex >> 3); \ + bsi.bitindex &= 0x7; \ +} while (0) + +#define mpg123_getbitoffset() ((-bsi.bitindex) & 0x7) +#define mpg123_getbyte() (*bsi.wordpointer++) + +#define mpg123_getbits(nob) \ + (rval = bsi.wordpointer[0], \ + rval <<= 8, \ + rval |= bsi.wordpointer[1], \ + rval <<= 8, \ + rval |= bsi.wordpointer[2], \ + rval <<= bsi.bitindex, \ + rval &= 0xffffff, \ + bsi.bitindex += (nob), \ + rval >>= (24-(nob)), \ + bsi.wordpointer += (bsi.bitindex>>3), \ + bsi.bitindex &= 7, \ + rval) + +#define mpg123_getbits_fast(nob) \ + (rval = (unsigned char) (bsi.wordpointer[0] << bsi.bitindex), \ + rval |= ((unsigned long) bsi.wordpointer[1] << bsi.bitindex) >> 8, \ + rval <<= (nob), \ + rval >>= 8, \ + bsi.bitindex += (nob), \ + bsi.wordpointer += (bsi.bitindex >> 3), \ + bsi.bitindex &= 7, \ + rval) + +#define mpg123_get1bit() \ + (rval_uc = *bsi.wordpointer << bsi.bitindex, \ + bsi.bitindex++, \ + bsi.wordpointer += (bsi.bitindex>>3), \ + bsi.bitindex &= 7, \ + rval_uc >> 7) -- cgit v1.2.3