satdump/plugins/dvb_support/codings/dvb-s2/bch/bitman.cpp
2023-02-12 23:29:51 +01:00

37 lines
No EOL
917 B
C++

#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
}