satdump/plugins/dvb_support/codings/dvb-s2/bch/bitman.cpp

37 lines
917 B
C++
Raw Permalink Normal View History

2022-07-31 01:58:28 +02:00
#include "bitman.hh"
namespace dvbs2
{
namespace CODE
{
void xor_be_bit(uint8_t *buf, int pos, bool val)
{
buf[pos / 8] ^= val << (7 - pos % 8);
}
void xor_le_bit(uint8_t *buf, int pos, bool val)
{
buf[pos / 8] ^= val << (pos % 8);
}
void set_be_bit(uint8_t *buf, int pos, bool val)
{
buf[pos / 8] = (~(1 << (7 - pos % 8)) & buf[pos / 8]) | (val << (7 - pos % 8));
}
void set_le_bit(uint8_t *buf, int pos, bool val)
{
buf[pos / 8] = (~(1 << (pos % 8)) & buf[pos / 8]) | (val << (pos % 8));
}
bool get_be_bit(uint8_t *buf, int pos)
{
return (buf[pos / 8] >> (7 - pos % 8)) & 1;
}
bool get_le_bit(uint8_t *buf, int pos)
{
return (buf[pos / 8] >> (pos % 8)) & 1;
}
} // namespace CODE
}