- var_Create( p_input, "dvb-caching", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Get( p_input, "dvb-caching", &val );
- p_input->i_pts_delay = val.i_int * 1000;
-
- var_Create( p_input, "dvb-adapter", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-device", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-frequency", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-inversion", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-probe", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-lnb-lof1", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-lnb-lof2", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-lnb-slof", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-
- var_Create( p_input, "dvb-budget-mode", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-satno", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-voltage", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-tone", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-fec", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-srate", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-
- var_Create( p_input, "dvb-modulation", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-
- var_Create( p_input, "dvb-code-rate-hp", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-code-rate-lp", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-bandwidth", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-transmission", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-guard", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_input, "dvb-hierarchy", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-
- i_test = strtol( psz_parser, &psz_next, 10 );
- if ( psz_next == psz_parser )
- {
- for ( ; ; )
- {
- GET_OPTION_INT("adapter")
- else GET_OPTION_INT("device")
- else GET_OPTION_INT("frequency")
- else GET_OPTION_INT("inversion")
- else GET_OPTION_BOOL("probe")
- else GET_OPTION_INT("lnb-lof1")
- else GET_OPTION_INT("lnb-lof2")
- else GET_OPTION_INT("lnb-slof")
-
- else GET_OPTION_BOOL("budget-mode")
- else GET_OPTION_INT("voltage")
- else GET_OPTION_INT("tone")
- else GET_OPTION_INT("fec")
- else GET_OPTION_INT("srate")
-
- else GET_OPTION_INT("modulation")
-
- else GET_OPTION_INT("code-rate-hp")
- else GET_OPTION_INT("code-rate-lp")
- else GET_OPTION_INT("bandwidth")
- else GET_OPTION_INT("transmission")
- else GET_OPTION_INT("guard")
- else GET_OPTION_INT("hierarchy")
-
- else if( !strncmp( psz_parser, "satno=",
- strlen( "satno=" ) ) )
- {
- psz_parser += strlen( "satno=" );
- if ( *psz_parser == 'A' || *psz_parser == 'a' )
- val.i_int = -1;
- else if ( *psz_parser == 'B' || *psz_parser == 'b' )
- val.i_int = -2;
- else
- val.i_int = strtol( psz_parser, &psz_parser, 0 );
- var_Set( p_input, "dvb-satno", val );
- }
- /* Redundant with voltage but much easier to use */
- else if( !strncmp( psz_parser, "polarization=",
- strlen( "polarization=" ) ) )
- {
- psz_parser += strlen( "polarization=" );
- if ( *psz_parser == 'V' || *psz_parser == 'v' )
- val.i_int = 13;
- else if ( *psz_parser == 'H' || *psz_parser == 'h' )
- val.i_int = 18;
- else
- {
- msg_Err( p_input, "illegal polarization %c", *psz_parser );
- free( p_dvb );
- return -1;
- }
- var_Set( p_input, "dvb-voltage", val );
- }
- if ( *psz_parser )
- psz_parser++;
- else
- break;
- }
- }
- else
+/*****************************************************************************
+ * Open: open the frontend device
+ *****************************************************************************/
+static int Open( vlc_object_t *p_this )
+{
+ access_t *p_access = (access_t*)p_this;
+ access_sys_t *p_sys;
+
+ /* Only if selected */
+ if( *p_access->psz_access == '\0' )
+ return VLC_EGENERIC;
+
+ /* Set up access */
+ p_access->pf_read = NULL;
+ p_access->pf_block = Block;
+ p_access->pf_control = Control;
+ p_access->pf_seek = NULL;
+ p_access->info.i_update = 0;
+ p_access->info.i_size = 0;
+ p_access->info.i_pos = 0;
+ p_access->info.b_eof = false;
+ p_access->info.i_title = 0;
+ p_access->info.i_seekpoint = 0;
+
+ p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
+ if( !p_sys )
+ return VLC_ENOMEM;
+
+ memset( p_sys, 0, sizeof( access_sys_t ) );
+
+ /* Create all variables */
+ VarInit( p_access );
+
+ /* Parse the command line */
+ if( ParseMRL( p_access ) )