- if( !ret && ioctl(frontend_fd, FE_GET_FRONTEND, &frontend_param) ) {
- fprintf(stderr,
- "DeviceDVBInput::dvb_open FE_GET_FRONTEND: %s\n",
- strerror(errno));
- ret = 1;
+ if( !ret && wait_signal(333,3) ) {
+ fprintf(stderr,
+ "DeviceDVBInput::dvb_open: no signal, index=%d, channel %s, frequency=%d\n",
+ index, chanlists[table].list[index].name, frontend_param.frequency);
+ ret = 2;
+ }
+
+ if( !ret && ioctl(frontend_fd, FE_GET_FRONTEND, &frontend_param) ) {
+ fprintf(stderr,
+ "DeviceDVBInput::dvb_open FE_GET_FRONTEND: %s\n",
+ strerror(errno));
+ ret = 2;
+ }
+ if( !ret ) { // goofy quirks
+ if( !strcmp("Samsung S5H1409 QAM/8VSB Frontend", fe_info.name) ) {
+ switch(frontend_param.u.vsb.modulation) {
+ case QAM_64: snr_min = 200; snr_max = 300; break;
+ case QAM_256: snr_min = 260; snr_max = 400; break;
+ case VSB_8: snr_min = 111; snr_max = 300; break;
+ default: break;
+ }
+ pwr_min = snr_min; pwr_max = snr_max;
+ }
+ else if( !strcmp("Auvitek AU8522 QAM/8VSB Frontend", fe_info.name) ) {
+ switch(frontend_param.u.vsb.modulation) {
+ case QAM_64: snr_min = 190; snr_max = 290; break;
+ case QAM_256: snr_min = 280; snr_max = 400; break;
+ case VSB_8: snr_min = 115; snr_max = 270; break;
+ default: break;
+ }
+ pwr_min = snr_min; pwr_max = snr_max;