]> git.sesse.net Git - vlc/blobdiff - modules/access/bda/bda.c
Removes trailing spaces. Removes tabs.
[vlc] / modules / access / bda / bda.c
index c1e753e99cda478fd1213852aa23a5280667ba40..f3da942d3a0cbd215ac987b955284474b5078a08 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <vlc/vlc.h>
-#include <vlc_input.h>
-#include <vlc_access.h>
-
 #include "bda.h"
 
 /*****************************************************************************
@@ -57,10 +49,17 @@ static int Control( access_t *, int, va_list );
 #define DEVICE_LONGTEXT ""
 
 #define FREQ_TEXT N_("Transponder/multiplex frequency")
-#define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T")
+#if defined(WIN32) || defined(WINCE)
+#    define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T")
+#else
+#    define FREQ_LONGTEXT N_("In kHz for DVB-C/S/T")
+#endif
 
 #define INVERSION_TEXT N_("Inversion mode")
 #define INVERSION_LONGTEXT N_("Inversion mode [0=off, 1=on, 2=auto]")
+static const int i_inversion_list[] = { -1, 0, 1, 2 };
+static const char *ppsz_inversion_text[] = { N_("Undefined"), N_("Off"),
+    N_("On"), N_("Auto") };
 
 #define PROBE_TEXT N_("Probe DVB card for capabilities")
 #define PROBE_LONGTEXT N_("Some DVB cards do not like to be probed for their " \
@@ -72,8 +71,13 @@ static int Control( access_t *, int, va_list );
     "with a \"budget\" card.")
 
 /* Satellite */
-#define SATNO_TEXT N_("Satellite number in the Diseqc system")
-#define SATNO_LONGTEXT N_("[0=no diseqc, 1-4=satellite number].")
+#if defined(WIN32) || defined(WINCE)
+#    define NETID_TEXT N_("Network Identifier")
+#    define NETID_LONGTEXT ""
+#else
+#    define SATNO_TEXT N_("Satellite number in the Diseqc system")
+#    define SATNO_LONGTEXT N_("[0=no diseqc, 1-4=satellite number].")
+#endif
 
 #define VOLTAGE_TEXT N_("LNB voltage")
 #define VOLTAGE_LONGTEXT N_("In Volts [0, 13=vertical, 18=horizontal].")
@@ -92,13 +96,14 @@ static int Control( access_t *, int, va_list );
 #define SRATE_LONGTEXT ""
 
 #define LNB_LOF1_TEXT N_("Antenna lnb_lof1 (kHz)")
-#define LNB_LOF1_LONGTEXT ""
+#define LNB_LOF1_LONGTEXT N_("Low Band Local Osc Freq in kHz usually 9.75GHz")
 
 #define LNB_LOF2_TEXT N_("Antenna lnb_lof2 (kHz)")
-#define LNB_LOF2_LONGTEXT ""
+#define LNB_LOF2_LONGTEXT N_("High Band Local Osc Freq in kHz usually 10.6GHz")
 
 #define LNB_SLOF_TEXT N_("Antenna lnb_slof (kHz)")
-#define LNB_SLOF_LONGTEXT ""
+#define LNB_SLOF_LONGTEXT N_( \
+    "Low Noise Block switch freq in kHz usually 11.7GHz")
 
 /* Cable */
 #define MODULATION_TEXT N_("Modulation type")
@@ -110,25 +115,42 @@ static const char *ppsz_qam_text[] = { N_("Undefined"), N_("16"), N_("32"),
 
 /* Terrestrial */
 #define CODE_RATE_HP_TEXT N_("Terrestrial high priority stream code rate (FEC)")
-#define CODE_RATE_HP_LONGTEXT ""
+#define CODE_RATE_HP_LONGTEXT N_("High Priority FEC Rate " \
+    "[Undefined,1/2,2/3,3/4,5/6,7/8]")
+static const int i_hp_fec_list[] = { -1, 1, 2, 3, 4, 5 };
+static const char *ppsz_hp_fec_text[] = { N_("Undefined"), N_("1/2"), N_("2/3"),
+    N_("3/4"), N_("5/6"), N_("7/8") };
 
 #define CODE_RATE_LP_TEXT N_("Terrestrial low priority stream code rate (FEC)")
-#define CODE_RATE_LP_LONGTEXT ""
+#define CODE_RATE_LP_LONGTEXT N_("Low Priority FEC Rate " \
+    "[Undefined,1/2,2/3,3/4,5/6,7/8]")
+static const int i_lp_fec_list[] = { -1, 1, 2, 3, 4, 5 };
+static const char *ppsz_lp_fec_text[] = { N_("Undefined"), N_("1/2"), N_("2/3"),
+    N_("3/4"), N_("5/6"), N_("7/8") };
 
 #define BANDWIDTH_TEXT N_("Terrestrial bandwidth")
 #define BANDWIDTH_LONGTEXT N_("Terrestrial bandwidth [0=auto,6,7,8 in MHz]")
 static const int i_band_list[] = { -1, 6, 7, 8 };
-static const char *ppsz_band_text[] = { N_("Undefined"), N_("6"), N_("7"),
-    N_("8") };
+static const char *ppsz_band_text[] = { N_("Undefined"), N_("6 MHz"),
+    N_("7 MHz"), N_("8 MHz") };
 
 #define GUARD_TEXT N_("Terrestrial guard interval")
-#define GUARD_LONGTEXT ""
+#define GUARD_LONGTEXT N_("Guard interval [Undefined,1/4,1/8,1/16,1/32]")
+static const int i_guard_list[] = { -1, 4, 8, 16, 32 };
+static const char *ppsz_guard_text[] = { N_("Undefined"), N_("1/4"), N_("1/8"),
+    N_("1/16"), N_("1/32") };
 
 #define TRANSMISSION_TEXT N_("Terrestrial transmission mode")
-#define TRANSMISSION_LONGTEXT ""
+#define TRANSMISSION_LONGTEXT N_("Transmission mode [Undefined,2k,8k]")
+static const int i_transmission_list[] = { -1, 2, 8 };
+static const char *ppsz_transmission_text[] = { N_("Undefined"), N_("2k"),
+    N_("8k") };
 
 #define HIERARCHY_TEXT N_("Terrestrial hierarchy mode")
-#define HIERARCHY_LONGTEXT ""
+#define HIERARCHY_LONGTEXT N_("Hierarchy alpha value [Undefined,1,2,4]")
+static const int i_hierarchy_list[] = { -1, 1, 2, 4 };
+static const char *ppsz_hierarchy_text[] = { N_("Undefined"), N_("1"),
+    N_("2"), N_("4") };
 
 /* BDA module additional DVB-S Parameters */
 #define AZIMUTH_TEXT N_("Satellite Azimuth")
@@ -160,24 +182,27 @@ vlc_module_begin();
                      VLC_FALSE );
         add_integer( "dvb-device", 0, NULL, DEVICE_TEXT, DEVICE_LONGTEXT,
                      VLC_TRUE );
-        add_integer( "dvb-inversion", 2, NULL, INVERSION_TEXT,
-            INVERSION_LONGTEXT, VLC_TRUE );
         add_bool( "dvb-probe", 1, NULL, PROBE_TEXT, PROBE_LONGTEXT, VLC_TRUE );
         add_bool( "dvb-budget-mode", 0, NULL, BUDGET_TEXT, BUDGET_LONGTEXT,
                   VLC_TRUE );
 #   endif
 
     /* DVB-S (satellite) */
+    add_integer( "dvb-inversion", 2, NULL, INVERSION_TEXT,
+        INVERSION_LONGTEXT, VLC_TRUE );
+        change_integer_list( i_inversion_list, ppsz_inversion_text, 0 );
 #   if defined(WIN32) || defined(WINCE)
+        add_string( "dvb-polarisation", NULL, NULL, POLARISATION_TEXT,
+            POLARISATION_LONGTEXT, VLC_TRUE );
+            change_string_list( ppsz_polar_list, ppsz_polar_text, 0 );
+        add_integer( "dvb-network-id", 0, NULL, NETID_TEXT, NETID_LONGTEXT,
+            VLC_TRUE );
         add_integer( "dvb-azimuth", 0, NULL, AZIMUTH_TEXT, AZIMUTH_LONGTEXT,
-            VLC_FALSE );
+            VLC_TRUE );
         add_integer( "dvb-elevation", 0, NULL, ELEVATION_TEXT,
-            ELEVATION_LONGTEXT, VLC_FALSE );
+            ELEVATION_LONGTEXT, VLC_TRUE );
         add_integer( "dvb-longitude", 0, NULL, LONGITUDE_TEXT,
-            LONGITUDE_LONGTEXT, VLC_FALSE );
-        add_string( "dvb-polarisation", NULL, NULL, POLARISATION_TEXT,
-            POLARISATION_LONGTEXT, VLC_FALSE );
-            change_string_list( ppsz_polar_list, ppsz_polar_text, 0 );
+            LONGITUDE_LONGTEXT, VLC_TRUE );
             /* Note: Polaristion H = voltage 18; V = voltage 13; */
 #   else
         add_integer( "dvb-satno", 0, NULL, SATNO_TEXT, SATNO_LONGTEXT,
@@ -188,47 +213,58 @@ vlc_module_begin();
             HIGH_VOLTAGE_LONGTEXT, VLC_TRUE );
         add_integer( "dvb-tone", -1, NULL, TONE_TEXT, TONE_LONGTEXT,
             VLC_TRUE );
-        add_integer( "dvb-lnb-lof1", 0, NULL, LNB_LOF1_TEXT,
-            LNB_LOF1_LONGTEXT, VLC_TRUE );
-        add_integer( "dvb-lnb-lof2", 0, NULL, LNB_LOF2_TEXT,
-            LNB_LOF2_LONGTEXT, VLC_TRUE );
-        add_integer( "dvb-lnb-slof", 0, NULL, LNB_SLOF_TEXT,
-            LNB_SLOF_LONGTEXT, VLC_TRUE );
 #   endif
+    add_integer( "dvb-lnb-lof1", 0, NULL, LNB_LOF1_TEXT,
+        LNB_LOF1_LONGTEXT, VLC_TRUE );
+    add_integer( "dvb-lnb-lof2", 0, NULL, LNB_LOF2_TEXT,
+        LNB_LOF2_LONGTEXT, VLC_TRUE );
+    add_integer( "dvb-lnb-slof", 0, NULL, LNB_SLOF_TEXT,
+        LNB_SLOF_LONGTEXT, VLC_TRUE );
+
     add_integer( "dvb-fec", 9, NULL, FEC_TEXT, FEC_LONGTEXT, VLC_TRUE );
     add_integer( "dvb-srate", 27500000, NULL, SRATE_TEXT, SRATE_LONGTEXT,
         VLC_FALSE );
 
     /* DVB-C (cable) */
-    add_integer( "dvb-modulation", 0, NULL, MODULATION_TEXT,
+    add_integer( "dvb-modulation", -1, NULL, MODULATION_TEXT,
         MODULATION_LONGTEXT, VLC_TRUE );
         change_integer_list( i_qam_list, ppsz_qam_text, 0 );
 
     /* DVB-T (terrestrial) */
-    add_integer( "dvb-code-rate-hp", 9, NULL, CODE_RATE_HP_TEXT,
+    add_integer( "dvb-code-rate-hp", -1, NULL, CODE_RATE_HP_TEXT,
         CODE_RATE_HP_LONGTEXT, VLC_TRUE );
-    add_integer( "dvb-code-rate-lp", 9, NULL, CODE_RATE_LP_TEXT,
+        change_integer_list( i_hp_fec_list, ppsz_hp_fec_text, 0 );
+    add_integer( "dvb-code-rate-lp", -1, NULL, CODE_RATE_LP_TEXT,
         CODE_RATE_LP_LONGTEXT, VLC_TRUE );
+        change_integer_list( i_lp_fec_list, ppsz_lp_fec_text, 0 );
     add_integer( "dvb-bandwidth", 0, NULL, BANDWIDTH_TEXT, BANDWIDTH_LONGTEXT,
         VLC_TRUE );
         change_integer_list( i_band_list, ppsz_band_text, 0 );
-    add_integer( "dvb-guard", 0, NULL, GUARD_TEXT, GUARD_LONGTEXT, VLC_TRUE );
-    add_integer( "dvb-transmission", 0, NULL, TRANSMISSION_TEXT,
+    add_integer( "dvb-guard", -1, NULL, GUARD_TEXT, GUARD_LONGTEXT, VLC_TRUE );
+        change_integer_list( i_guard_list, ppsz_guard_text, 0 );
+    add_integer( "dvb-transmission", -1, NULL, TRANSMISSION_TEXT,
         TRANSMISSION_LONGTEXT, VLC_TRUE );
-    add_integer( "dvb-hierarchy", 0, NULL, HIERARCHY_TEXT, HIERARCHY_LONGTEXT,
+        change_integer_list( i_transmission_list, ppsz_transmission_text, 0 );
+    add_integer( "dvb-hierarchy", -1, NULL, HIERARCHY_TEXT, HIERARCHY_LONGTEXT,
         VLC_TRUE );
+        change_integer_list( i_hierarchy_list, ppsz_hierarchy_text, 0 );
 
     set_capability( "access2", 0 );
     add_shortcut( "dvb" );      /* Generic name */
 
     add_shortcut( "dvb-s" );    /* Satellite */
+    add_shortcut( "dvbs" );
     add_shortcut( "qpsk" );
     add_shortcut( "satellite" );
 
     add_shortcut( "dvb-c" );    /* Cable */
+    add_shortcut( "dvbc" );
+    add_shortcut( "qam" );
     add_shortcut( "cable" );
 
-    add_shortcut( "dvb-t" );    /* Terrestrial */
+    add_shortcut( "dvbt" );    /* Terrestrial */
+    add_shortcut( "dvb-t" );
+    add_shortcut( "ofdm" );
     add_shortcut( "terrestrial" );
 
     add_shortcut( "atsc" );     /* Atsc */
@@ -246,14 +282,19 @@ static int Open( vlc_object_t *p_this )
     access_t     *p_access = (access_t*)p_this;
     access_sys_t *p_sys;
     const char* psz_module  = "dvb";
-    const int   i_param_count = 8;
+    const int   i_param_count = 19;
     const char* psz_param[] = { "frequency", "bandwidth",
         "srate", "azimuth", "elevation", "longitude", "polarisation",
-        "modulation" };
+        "modulation", "caching", "lnb-lof1", "lnb-lof2", "lnb-slof",
+        "inversion", "network-id", "code-rate-hp", "code-rate-lp",
+        "guard", "transmission", "hierarchy" };
 
     const int   i_type[] = { VLC_VAR_INTEGER, VLC_VAR_INTEGER,
         VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER,
-        VLC_VAR_STRING, VLC_VAR_INTEGER };
+        VLC_VAR_STRING, VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER,
+        VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER,
+        VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER, VLC_VAR_INTEGER,
+        VLC_VAR_INTEGER };
 
     char  psz_full_name[128];
     int i_ret;
@@ -300,17 +341,22 @@ static int Open( vlc_object_t *p_this )
 
     if( strncmp( p_access->psz_access, "qpsk", 4 ) == 0 ||
         strncmp( p_access->psz_access, "dvb-s", 5 ) == 0 ||
+        strncmp( p_access->psz_access, "dvbs", 4 ) == 0 ||
         strncmp( p_access->psz_access, "satellite", 9 ) == 0 )
     {
         i_ret = dvb_SubmitDVBSTuneRequest( p_access );
     }
     if( strncmp( p_access->psz_access, "cable", 5 ) == 0 ||
-        strncmp( p_access->psz_access, "dvb-c", 5 ) == 0 )
+        strncmp( p_access->psz_access, "dvb-c", 5 ) == 0  ||
+        strncmp( p_access->psz_access, "dvbc", 4 ) == 0  ||
+        strncmp( p_access->psz_access, "qam", 3 ) == 0 )
     {
         i_ret = dvb_SubmitDVBCTuneRequest( p_access );
     }
     if( strncmp( p_access->psz_access, "terrestrial", 11 ) == 0 ||
-        strncmp( p_access->psz_access, "dvb-t", 5 ) == 0 )
+        strncmp( p_access->psz_access, "dvb-t", 5 ) == 0 ||
+        strncmp( p_access->psz_access, "ofdm", 4 ) == 0 ||
+        strncmp( p_access->psz_access, "dvbt", 4 ) == 0 )
     {
         i_ret = dvb_SubmitDVBTTuneRequest( p_access );
     }
@@ -400,7 +446,7 @@ static int ParsePath( access_t *p_access, const char* psz_module,
         }
         b_used[i_this_param] = TRUE;
 
-        /* if "=" was found in token then value starts at 
+        /* if "=" was found in token then value starts at
          * psz_token + i_paramlen + 1
          * else there is no value specified so we use an empty string */
         psz_value = psz_token + i_param_len + 1;
@@ -503,12 +549,17 @@ static block_t *Block( access_t *p_access )
 
     l_buffer_len = dvb_GetBufferSize( p_access );
     if( l_buffer_len < 0 )
+    {
+        p_access->info.b_eof = VLC_TRUE;
         return NULL;
+    }
 
     p_block = block_New( p_access, l_buffer_len );
-    if( dvb_ReadBuffer( p_access, &l_buffer_len, p_block->p_buffer )
-        < 0 )
+    if( dvb_ReadBuffer( p_access, &l_buffer_len, p_block->p_buffer ) < 0 )
+    {
+        p_access->info.b_eof = VLC_TRUE;
         return NULL;
+    }
 
     return p_block;
 }