#include <sys/types.h>
#include <sys/audioio.h>
static inline void change_sign8(u_char *, int);
static inline void change_sign16_le(u_char *, int);
static inline void change_sign16_be(u_char *, int);
static inline void change_sign32_le(u_char *, int);
static inline void change_sign32_be(u_char *, int);
static inline void swap_bytes(u_char *, int);
static inline void swap_bytes32(u_char *, int);
static inline void swap_bytes_change_sign16_le(u_char *, int);
static inline void swap_bytes_change_sign16_be(u_char *, int);
static inline void change_sign16_swap_bytes_le(u_char *, int);
static inline void change_sign16_swap_bytes_be(u_char *, int);
static inline void swap_bytes_change_sign32_le(u_char *, int);
static inline void swap_bytes_change_sign32_be(u_char *, int);
static inline void change_sign32_swap_bytes_le(u_char *, int);
static inline void change_sign32_swap_bytes_be(u_char *, int);
static inline void
change_sign8(u_char *p, int cc)
{
while (--cc >= 0) {
*p ^= 0x80;
++p;
}
}
static inline void
change_sign16_le(u_char *p, int cc)
{
while ((cc -= 2) >= 0) {
p[1] ^= 0x80;
p += 2;
}
}
static inline void
change_sign16_be(u_char *p, int cc)
{
while ((cc -= 2) >= 0) {
p[0] ^= 0x80;
p += 2;
}
}
static inline void
change_sign24_le(u_char *p, int cc)
{
while ((cc -= 3) >= 0) {
p[2] ^= 0x80;
p += 3;
}
}
static inline void
change_sign24_be(u_char *p, int cc)
{
while ((cc -= 3) >= 0) {
p[0] ^= 0x80;
p += 3;
}
}
static inline void
change_sign32_le(u_char *p, int cc)
{
while ((cc -= 4) >= 0) {
p[3] ^= 0x80;
p += 4;
}
}
static inline void
change_sign32_be(u_char *p, int cc)
{
while ((cc -= 4) >= 0) {
p[0] ^= 0x80;
p += 4;
}
}
static inline void
swap_bytes(u_char *p, int cc)
{
u_char t;
while ((cc -= 2) >= 0) {
t = p[0];
p[0] = p[1];
p[1] = t;
p += 2;
}
}
static inline void
swap_bytes32(u_char *p, int cc)
{
u_char t;
while ((cc -= 4) >= 0) {
t = p[0];
p[0] = p[3];
p[3] = t;
t = p[1];
p[1] = p[2];
p[2] = t;
p += 4;
}
}
static inline void
swap_bytes_change_sign16_le(u_char *p, int cc)
{
u_char t;
while ((cc -= 2) >= 0) {
t = p[1];
p[1] = p[0] ^ 0x80;
p[0] = t;
p += 2;
}
}
static inline void
swap_bytes_change_sign16_be(u_char *p, int cc)
{
u_char t;
while ((cc -= 2) >= 0) {
t = p[0];
p[0] = p[1] ^ 0x80;
p[1] = t;
p += 2;
}
}
static inline void
change_sign16_swap_bytes_le(u_char *p, int cc)
{
swap_bytes_change_sign16_be(p, cc);
}
static inline void
change_sign16_swap_bytes_be(u_char *p, int cc)
{
swap_bytes_change_sign16_le(p, cc);
}
static inline void
swap_bytes_change_sign24_le(u_char *p, int cc)
{
u_char t;
while ((cc -= 3) >= 0) {
t = p[2];
p[2] = p[0] ^ 0x80;
p[0] = t;
p += 3;
}
}
static inline void
swap_bytes_change_sign24_be(u_char *p, int cc)
{
u_char t;
while ((cc -= 3) >= 0) {
t = p[0];
p[0] = p[2] ^ 0x80;
p[2] = t;
p += 3;
}
}
static inline void
change_sign24_swap_bytes_le(u_char *p, int cc)
{
swap_bytes_change_sign24_be(p, cc);
}
static inline void
change_sign24_swap_bytes_be(u_char *p, int cc)
{
swap_bytes_change_sign24_le(p, cc);
}
static inline void
swap_bytes_change_sign32_le(u_char *p, int cc)
{
u_char t;
while ((cc -= 4) >= 0) {
t = p[3];
p[3] = p[0] ^ 0x80;
p[0] = t;
t = p[1];
p[1] = p[2];
p[2] = t;
p += 4;
}
}
static inline void
swap_bytes_change_sign32_be(u_char *p, int cc)
{
u_char t;
while ((cc -= 4) >= 0) {
t = p[0];
p[0] = p[3] ^ 0x80;
p[3] = t;
t = p[1];
p[1] = p[2];
p[2] = t;
p += 4;
}
}
static inline void
change_sign32_swap_bytes_le(u_char *p, int cc)
{
swap_bytes_change_sign32_be(p, cc);
}
static inline void
change_sign32_swap_bytes_be(u_char *p, int cc)
{
swap_bytes_change_sign32_le(p, cc);
}