satdump/src-core/libs/sathelper/packetfixer.cpp
2021-10-09 14:57:07 +02:00

36 lines
No EOL
828 B
C++

/*
* packetfixer.cpp
*
* Created on: 05/11/2016
* Author: Lucas Teske
*/
#include "packetfixer.h"
namespace sathelper
{
void PacketFixer::fixPacket(uint8_t *data, uint32_t length, PhaseShift phaseShift, bool iqInversion)
{
if (iqInversion || phaseShift != PhaseShift::DEG_0)
{
for (uint32_t i = 0; i < length; i += 2)
{
if (iqInversion)
{
uint8_t x = data[i + 1];
data[i + 1] = data[i];
data[i] = x;
}
if (phaseShift == PhaseShift::DEG_90 || phaseShift == PhaseShift::DEG_270)
{
Rotate(&data[i]);
}
if (phaseShift == PhaseShift::DEG_180 || phaseShift == PhaseShift::DEG_270)
{
data[i] ^= 0xFF;
data[i + 1] ^= 0xFF;
}
}
}
}
} // namespace sathelper