Export Content-Type out of HTTP access using Control.
authorRémi Denis-Courmont <rem@videolan.org>
Tue, 2 Oct 2007 15:54:16 +0000 (15:54 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Tue, 2 Oct 2007 15:54:16 +0000 (15:54 +0000)
19 files changed:
include/vlc_access.h
modules/access/bda/bda.c
modules/access/cdda.c
modules/access/directory.c
modules/access/dv.c
modules/access/dvb/access.c
modules/access/eyetv.c
modules/access/file.c
modules/access/ftp.c
modules/access/gnomevfs.c
modules/access/http.c
modules/access/mms/mmsh.c
modules/access/mms/mmstu.c
modules/access/pvr.c
modules/access/rtsp/access.c
modules/access/smb.c
modules/access/tcp.c
modules/access/udp.c
modules/access/vcd/vcd.c

index 380bdbc..0b74977 100644 (file)
@@ -62,7 +62,9 @@ enum access_query_e
      * XXX: avoid to use it unless you can't */
     ACCESS_SET_PRIVATE_ID_STATE,    /* arg1= int i_private_data, vlc_bool_t b_selected 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=vlc_bool_t *  res=can fail */
+    ACCESS_GET_PRIVATE_ID_STATE,    /* arg1=int i_private_data arg2=vlc_bool_t *  res=can fail */
+
+    ACCESS_GET_CONTENT_TYPE, /* arg1=char **ppsz_content_type */
 };
 
 struct access_t
@@ -132,6 +134,14 @@ static inline int access2_Control( access_t *p_access, int i_query, ... )
     return i_result;
 }
 
+static inline char *access_GetContentType( access_t *p_access )
+{
+    char *res;
+    if( access2_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 f3da942..2d280b1 100644 (file)
@@ -519,6 +519,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
     case ACCESS_SET_PAUSE_STATE:    /* 8 */
     case ACCESS_SET_TITLE:          /* 9 */
     case ACCESS_SET_SEEKPOINT:      /* 10 */
+    case ACCESS_GET_CONTENT_TYPE:
         return VLC_EGENERIC;
 
     case ACCESS_SET_PRIVATE_ID_STATE: /* 11 */
index b246ad6..6c13a23 100644 (file)
@@ -380,6 +380,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_GET_META:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 65c83cc..3947bd9 100644 (file)
@@ -301,6 +301,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 92bdc25..5fc7354 100644 (file)
@@ -319,6 +319,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 47fa4ba..47ced7b 100644 (file)
@@ -542,6 +542,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_GET_TITLE_INFO:
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         case ACCESS_SET_PRIVATE_ID_STATE:
index 2f04b50..96fdeb7 100644 (file)
@@ -305,6 +305,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
  
         default:
index 2ac89bd..5245691 100644 (file)
@@ -382,6 +382,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
         case ACCESS_GET_META:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 070cf40..b443684 100644 (file)
@@ -557,6 +557,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index aec3975..f329421 100644 (file)
@@ -412,6 +412,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
         case ACCESS_GET_META:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index a1d1d4a..32defac 100644 (file)
@@ -746,6 +746,11 @@ static int Control( access_t *p_access, int i_query, va_list args )
                 vlc_meta_Set( p_meta, vlc_meta_NowPlaying, p_sys->psz_icy_title );
             break;
 
+        case ACCESS_GET_CONTENT_TYPE:
+            *va_arg( args, char ** ) =
+                p_sys->psz_mime ? strdup( p_sys->psz_mime ) : NULL;
+            break;
+
         case ACCESS_GET_TITLE_INFO:
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
index 965c727..65ec8fe 100644 (file)
@@ -283,6 +283,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 71c2560..af227e2 100644 (file)
@@ -268,6 +268,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
 
index 52c197c..36cee60 100644 (file)
@@ -1149,6 +1149,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index af182cc..9a46ab2 100644 (file)
@@ -350,6 +350,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
         case ACCESS_GET_META:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index c192f2a..a86cb3c 100644 (file)
@@ -418,6 +418,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
     case ACCESS_SET_TITLE:
     case ACCESS_SET_SEEKPOINT:
     case ACCESS_SET_PRIVATE_ID_STATE:
+    case ACCESS_GET_CONTENT_TYPE:
         return VLC_EGENERIC;
 
     default:
index fcb623d..c455d4f 100644 (file)
@@ -196,6 +196,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 17e6a67..9ca4ac6 100644 (file)
@@ -308,6 +308,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         case ACCESS_SET_TITLE:
         case ACCESS_SET_SEEKPOINT:
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default:
index 32aea5e..943272f 100644 (file)
@@ -314,6 +314,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
         }
 
         case ACCESS_SET_PRIVATE_ID_STATE:
+        case ACCESS_GET_CONTENT_TYPE:
             return VLC_EGENERIC;
 
         default: