/*************************************************************************** deinterleaver.cpp - description ------------------- begin : Sam Feb 1 2003 copyright : (C) 2003 by Volker Schroer email : dl1ksv@gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * The PSK part is based on WinPSK 1.0 by Moe Wheatly, AE4JY * ***************************************************************************/ #include "deinterleaver.h" Deinterleaver::Deinterleaver() { for (int i=0; i <4 ; i++) { pipe0[i]='0'; pipe1[i]='0'; pipe2[i]='0'; pipe3[i]='0'; } } Deinterleaver::~Deinterleaver() { } void Deinterleaver::deinterleave(unsigned char *p) { int n; for (n = 0; n < 3; n++) { pipe0[n] = pipe0[n + 1]; pipe1[n] = pipe1[n + 1]; pipe2[n] = pipe2[n + 1]; pipe3[n] = pipe3[n + 1]; } pipe0[3] = p[0]; pipe1[3] = p[1]; pipe2[3] = p[2]; pipe3[3] = p[3]; /** p[0] = pipe0[0]; p[1] = pipe1[1]; p[2] = pipe2[2]; p[3] = pipe3[3]; **/ p[0] = pipe0[3]; p[1] = pipe1[2]; p[2] = pipe2[1]; p[3] = pipe3[0]; }