]> git.sesse.net Git - vlc/commitdiff
Added signal-quality/strength input variables for access signal report.
authorLaurent Aimar <fenrir@videolan.org>
Tue, 23 Sep 2008 20:11:01 +0000 (22:11 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 28 Sep 2008 01:08:36 +0000 (03:08 +0200)
They are set to -1 if not specified.

include/vlc_access.h
include/vlc_input.h
src/input/input.c
src/input/var.c

index 9ddc64a3168aa0d380e6bba2b18dfb8b705fdfe0..acfc87f8cf6133d04f9138371bfc5a56d725bba4 100644 (file)
@@ -48,12 +48,18 @@ enum access_query_e
     ACCESS_GET_MTU,         /* arg1= int*           cannot fail(0 if no sense)*/
     ACCESS_GET_PTS_DELAY,   /* arg1= int64_t*       cannot fail */
     /* */
-    ACCESS_GET_TITLE_INFO,  /* arg1=input_title_t*** arg2=int* can fail */
+    ACCESS_GET_TITLE_INFO,  /* arg1=input_title_t*** arg2=int*      res=can fail */
     /* Meta data */
-    ACCESS_GET_META,        /* arg1= vlc_meta_t **  res=can fail    */
+    ACCESS_GET_META,        /* arg1= vlc_meta_t **                  res=can fail */
 
     /* */
-    ACCESS_SET_PAUSE_STATE, /* arg1= bool     can fail */
+    ACCESS_GET_CONTENT_TYPE,/* arg1=char **ppsz_content_type                       res=can fail */
+
+    /* */
+    ACCESS_GET_SIGNAL,      /* arg1=double *pf_quality, arg2=double *pf_strength   res=can fail */
+
+    /* */
+    ACCESS_SET_PAUSE_STATE, /* arg1= bool           can fail */
 
     /* */
     ACCESS_SET_TITLE,       /* arg1= int            can fail */
@@ -61,11 +67,9 @@ enum access_query_e
 
     /* Special mode for access/demux communication
      * XXX: avoid to use it unless you can't */
-    ACCESS_SET_PRIVATE_ID_STATE,    /* arg1= int i_private_data, bool b_selected can fail */
+    ACCESS_SET_PRIVATE_ID_STATE, /* arg1= int i_private_data, bool b_selected    res=can fail */
     ACCESS_SET_PRIVATE_ID_CA,    /* arg1= int i_program_number, uint16_t i_vpid, uint16_t i_apid1, uint16_t i_apid2, uint16_t i_apid3, uint8_t i_length, uint8_t *p_data */
-    ACCESS_GET_PRIVATE_ID_STATE,    /* arg1=int i_private_data arg2=bool *  res=can fail */
-
-    ACCESS_GET_CONTENT_TYPE, /* arg1=char **ppsz_content_type */
+    ACCESS_GET_PRIVATE_ID_STATE, /* arg1=int i_private_data arg2=bool *          res=can fail */
 };
 
 struct access_t
@@ -135,14 +139,6 @@ static inline int access_Control( access_t *p_access, int i_query, ... )
     return i_result;
 }
 
-static inline char *access_GetContentType( access_t *p_access )
-{
-    char *res;
-    if( access_Control( p_access, ACCESS_GET_CONTENT_TYPE, &res ) )
-        return NULL;
-    return res;
-}
-
 static inline void access_InitFields( access_t *p_a )
 {
     p_a->info.i_update = 0;
index b4010d35194b63f13f019738af386f207816b42b..cf8b4b90f0e4d7d999052e5e4f6c6c4faee3928c 100644 (file)
@@ -418,6 +418,7 @@ typedef enum input_state_e
 #define INPUT_UPDATE_TITLE      0x0010
 #define INPUT_UPDATE_SEEKPOINT  0x0020
 #define INPUT_UPDATE_META       0x0040
+#define INPUT_UPDATE_SIGNAL     0x0080
 
 /* Input control XXX: internal */
 #define INPUT_CONTROL_FIFO_SIZE    100
index 9083d0fb38153c0417c96915ee2333aaa3884da4..ff9770a4fcf4163f1655a254848968af98bff48c 100644 (file)
@@ -2090,6 +2090,19 @@ static int UpdateFromAccess( input_thread_t *p_input )
         InputUpdateMeta( p_input, p_meta );
         p_access->info.i_update &= ~INPUT_UPDATE_META;
     }
+    if( p_access->info.i_update & INPUT_UPDATE_SIGNAL )
+    {
+        double f_quality;
+        double f_strength;
+
+        if( access_Control( p_access, ACCESS_GET_SIGNAL, &f_quality, &f_strength ) )
+            f_quality = f_strength = -1;
+
+        var_SetFloat( p_input, "signal-quality", f_quality );
+        var_SetFloat( p_input, "signal-strength", f_strength );
+
+        p_access->info.i_update &= ~INPUT_UPDATE_SIGNAL;
+    }
 
     p_access->info.i_update &= ~INPUT_UPDATE_SIZE;
 
index e2092fcf1c390b42ae8d098699cc59e3fed17e9c..22ad2ad5c39cc25775f6ace28c7f01f6af383930 100644 (file)
@@ -482,6 +482,12 @@ void input_ConfigVarInit ( input_thread_t *p_input )
     var_Create( p_input, "teletext-es", VLC_VAR_INTEGER );
     var_SetInteger( p_input, "teletext-es", -1 );
 
+    var_Create( p_input, "signal-quality", VLC_VAR_FLOAT );
+    var_SetFloat( p_input, "signal-quality", -1 );
+
+    var_Create( p_input, "signal-strength", VLC_VAR_FLOAT );
+    var_SetFloat( p_input, "signal-strength", -1 );
+
     /* */
     var_Create( p_input, "access-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
     var_Create( p_input, "access", VLC_VAR_STRING | VLC_VAR_DOINHERIT );