20 #ifndef DATVDVBS2CONSTELLATION_H 21 #define DATVDVBS2CONSTELLATION_H 30 static const int DEFAULT_GUI_DVBS2_DECIMATION = 64;
35 float gamma1 = 1, gamma2 = 1, gamma3 = 1;
63 fail(
"cstln_lut<256>::make_dvbs2_constellation: Code rate not supported with APSK16");
92 fail(
"cstln_lut<llr_ss, 256>::make_dvbs2_constellation: Code rate not supported with APSK32");
106 cstln_lut<llr_ss, 256> *newCstln =
new cstln_lut<llr_ss, 256>(c, 10, gamma1, gamma2, gamma3);
107 newCstln->m_rateCode = (int) r;
108 newCstln->m_typeCode = (int) c;
109 newCstln->m_setByModcod =
false;
130 const char *_name =
nullptr,
131 TVScreen *objDATVScreen =
nullptr) :
135 decimation(DEFAULT_GUI_DVBS2_DECIMATION),
136 pixels_per_frame(1024),
138 m_objDATVScreen(objDATVScreen),
157 for (; p < pend; ++p)
159 m_objDATVScreen->
selectRow(256 * (p->
re - xymin) / (xymax - xymin));
161 256 - 256 * ((p->
im - xymin) / (xymax - xymin)),
165 if (cstln && (*cstln))
168 std::vector<int>::const_iterator row_it = cstln_rows.begin();
169 std::vector<int>::const_iterator col_it = cstln_cols.begin();
171 for (;(row_it != cstln_rows.end()) && (col_it != cstln_cols.end()); ++row_it, ++col_it)
181 in.
read(pixels_per_frame);
183 if (++phase >= decimation) {
202 for (
int i = 0;
i < (*cstln)->nsymbols; ++
i)
205 int x = 256 * (p->
re -
xymin) / (xymax - xymin);
206 int y = 256 - 256 * (p->
im -
xymin) / (xymax - xymin);
208 for (
int d = -4; d <= 4; ++d)
210 cstln_rows.push_back(x + d);
211 cstln_cols.push_back(y);
212 cstln_rows.push_back(x);
213 cstln_cols.push_back(y + d);
221 #endif // DATVDVBS2CONSTELLATION_H bool setDataColor(int intCol, int intRed, int intGreen, int intBlue)
void renderImage(unsigned char *objData)
std::vector< int > cstln_cols
pipereader< complex< T > > in
datvdvbs2constellation(scheduler *sch, pipebuf< complex< T > > &_in, T _xymin, T _xymax, const char *_name=nullptr, TVScreen *objDATVScreen=nullptr)
void calculate_cstln_points()
std::vector< int > cstln_rows
TVScreen * m_objDATVScreen
bool selectRow(int intLine)
void read(unsigned long n)