SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
Public Member Functions | Private Attributes | List of all members
leansdr::deinterleaver< Tbyte > Struct Template Reference

#include <dvb.h>

+ Inheritance diagram for leansdr::deinterleaver< Tbyte >:
+ Collaboration diagram for leansdr::deinterleaver< Tbyte >:

Public Member Functions

 deinterleaver (scheduler *sch, pipebuf< Tbyte > &_in, pipebuf< rspacket< Tbyte >> &_out)
 
void run ()
 
- Public Member Functions inherited from leansdr::runnable
 runnable (scheduler *_sch, const char *name)
 
- Public Member Functions inherited from leansdr::runnable_common
 runnable_common (const char *_name)
 
virtual ~runnable_common ()
 
virtual void shutdown ()
 

Private Attributes

pipereader< Tbyte > in
 
pipewriter< rspacket< Tbyte > > out
 

Additional Inherited Members

- Public Attributes inherited from leansdr::runnable_common
const char * name
 
- Protected Attributes inherited from leansdr::runnable
schedulersch
 

Detailed Description

template<typename Tbyte>
struct leansdr::deinterleaver< Tbyte >

Definition at line 1137 of file dvb.h.

Constructor & Destructor Documentation

◆ deinterleaver()

template<typename Tbyte>
leansdr::deinterleaver< Tbyte >::deinterleaver ( scheduler sch,
pipebuf< Tbyte > &  _in,
pipebuf< rspacket< Tbyte >> &  _out 
)
inline

Definition at line 1139 of file dvb.h.

1141  : runnable(sch, "deinterleaver"),
1142  in(_in),
1143  out(_out)
1144  {
1145  }
pipereader< Tbyte > in
Definition: dvb.h:1165
runnable(scheduler *_sch, const char *name)
Definition: framework.h:193
pipewriter< rspacket< Tbyte > > out
Definition: dvb.h:1166
scheduler * sch
Definition: framework.h:199

Member Function Documentation

◆ run()

template<typename Tbyte>
void leansdr::deinterleaver< Tbyte >::run ( )
inlinevirtual

Reimplemented from leansdr::runnable_common.

Definition at line 1147 of file dvb.h.

1148  {
1149  while (in.readable() >= 17 * 11 * 12 + SIZE_RSPACKET && out.writable() >= 1)
1150  {
1151  Tbyte *pin = in.rd() + 17 * 11 * 12, *pend = pin + SIZE_RSPACKET;
1152  Tbyte *pout = out.wr()->data;
1153 
1154  for (int delay = 17 * 11; pin < pend; ++pin, ++pout, delay = (delay - 17 + 17 * 12) % (17 * 12))
1155  {
1156  *pout = pin[-delay * 12];
1157  }
1158 
1159  in.read(SIZE_RSPACKET);
1160  out.written(1);
1161  }
1162  }
pipereader< Tbyte > in
Definition: dvb.h:1165
pipewriter< rspacket< Tbyte > > out
Definition: dvb.h:1166
void read(unsigned long n)
Definition: framework.h:367

Member Data Documentation

◆ in

template<typename Tbyte>
pipereader<Tbyte> leansdr::deinterleaver< Tbyte >::in
private

Definition at line 1165 of file dvb.h.

◆ out

template<typename Tbyte>
pipewriter<rspacket<Tbyte> > leansdr::deinterleaver< Tbyte >::out
private

Definition at line 1166 of file dvb.h.


The documentation for this struct was generated from the following file: