20 #ifndef DATVCONSTELLATION_H 21 #define DATVCONSTELLATION_H 30 static const int DEFAULT_GUI_DECIMATION = 64;
35 float gamma1 = 1, gamma2 = 1, gamma3 = 1;
62 fail(
"cstln_lut<256>::make_dvbs_constellation: Code rate not supported with APSK16");
91 fail(
"cstln_lut<eucl_ss, 256>::make_dvbs_constellation: Code rate not supported with APSK32");
128 const char *_name =
nullptr,
129 TVScreen *objDATVScreen =
nullptr) :
133 decimation(DEFAULT_GUI_DECIMATION),
134 pixels_per_frame(1024),
136 m_objDATVScreen(objDATVScreen),
153 for (; p < pend; ++p)
155 m_objDATVScreen->
selectRow(256 * (p->
re - xymin) / (xymax - xymin));
157 256 - 256 * ((p->
im - xymin) / (xymax - xymin)),
161 if (cstln && (*cstln))
164 std::vector<int>::const_iterator row_it = cstln_rows.begin();
165 std::vector<int>::const_iterator col_it = cstln_cols.begin();
167 for (;(row_it != cstln_rows.end()) && (col_it != cstln_cols.end()); ++row_it, ++col_it)
177 in.
read(pixels_per_frame);
179 if (++phase >= decimation) {
198 for (
int i = 0;
i < (*cstln)->nsymbols; ++
i)
201 int x = 256 * (p->
re -
xymin) / (xymax - xymin);
202 int y = 256 - 256 * (p->
im -
xymin) / (xymax - xymin);
204 for (
int d = -4; d <= 4; ++d)
206 cstln_rows.push_back(x + d);
207 cstln_cols.push_back(y);
208 cstln_rows.push_back(x);
209 cstln_cols.push_back(y + d);
217 #endif // DATVCONSTELLATION_H
bool setDataColor(int intCol, int intRed, int intGreen, int intBlue)
cstln_lut< eucl_ss, 256 > ** cstln
std::vector< int > cstln_cols
pipereader< complex< T > > in
void renderImage(unsigned char *objData)
datvconstellation(scheduler *sch, pipebuf< complex< T > > &_in, T _xymin, T _xymax, const char *_name=nullptr, TVScreen *objDATVScreen=nullptr)
TVScreen * m_objDATVScreen
void calculate_cstln_points()
std::vector< int > cstln_rows
bool selectRow(int intLine)
void read(unsigned long n)