#endif
#ifdef ENABLE_HTTPD
-# include "vlc_httpd.h"
+# include <vlc_httpd.h>
#endif
#include "dvb.h"
p_status->b_has_carrier = (p_frontend->i_last_status & FE_HAS_CARRIER) != 0;
p_status->b_has_lock = (p_frontend->i_last_status & FE_HAS_LOCK) != 0;
}
+static int ScanParametersDvbC( access_t *p_access, scan_parameter_t *p_scan )
+{
+ const frontend_t *p_frontend = p_access->p_sys->p_frontend;
+
+
+ memset( p_scan, 0, sizeof(*p_scan) );
+ p_scan->type = SCAN_DVB_C;
+ p_scan->b_exhaustive = false;
+
+ /* */
+ p_scan->frequency.i_min = p_frontend->info.frequency_min;
+ p_scan->frequency.i_max = p_frontend->info.frequency_max;
+ p_scan->frequency.i_step = p_frontend->info.frequency_stepsize
+ ? p_frontend->info.frequency_stepsize : 166667;
+ p_scan->frequency.i_count = (p_scan->frequency.i_max-p_scan->frequency.i_min)/p_scan->frequency.i_step;
+
+ /* */
+ p_scan->bandwidth.i_min = 6;
+ p_scan->bandwidth.i_max = 8;
+ p_scan->bandwidth.i_step = 1;
+ p_scan->bandwidth.i_count = 3;
+ return VLC_SUCCESS;
+}
static int ScanParametersDvbT( access_t *p_access, scan_parameter_t *p_scan )
{
const frontend_t *p_frontend = p_access->p_sys->p_frontend;
/* */
p_scan->frequency.i_min = p_frontend->info.frequency_min;
p_scan->frequency.i_max = p_frontend->info.frequency_max;
- p_scan->frequency.i_step = p_frontend->info.frequency_stepsize;
+ p_scan->frequency.i_step = p_frontend->info.frequency_stepsize
+ ? p_frontend->info.frequency_stepsize : 166667;
p_scan->frequency.i_count = (p_scan->frequency.i_max-p_scan->frequency.i_min)/p_scan->frequency.i_step;
/* */
if( p_frontend->info.type == FE_OFDM ) // DVB-T
return ScanParametersDvbT( p_access, p_scan );
+ else if( p_frontend->info.type == FE_QAM ) // DVB-C
+ return ScanParametersDvbC( p_access, p_scan );
msg_Err( p_access, "Frontend type not supported for scanning" );
return VLC_EGENERIC;
static int FrontendSetQAM( access_t *p_access )
{
access_sys_t *p_sys = p_access->p_sys;
+ frontend_t *p_frontend = p_sys->p_frontend;
struct dvb_frontend_parameters fep;
vlc_value_t val;
int i_ret;
fep.inversion = DecodeInversion( p_access );
+ /* Default symbol-rate is for dvb-s, and doesn't fit
+ * for dvb-c, so if it's over the limit of frontend, default to
+ * somewhat common value
+ */
var_Get( p_access, "dvb-srate", &val );
- fep.u.qam.symbol_rate = val.i_int;
+ if( val.i_int < p_frontend->info.symbol_rate_max &&
+ val.i_int > p_frontend->info.symbol_rate_min )
+ fep.u.qam.symbol_rate = val.i_int;
+ else
+ fep.u.qam.symbol_rate = 6875000;
var_Get( p_access, "dvb-fec", &val );
fep.u.qam.fec_inner = DecodeFEC( p_access, val.i_int );