From d8fc0a94ed76c7f4d9e441b28010d997ab9890eb Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Tue, 2 Oct 2007 15:54:16 +0000 Subject: [PATCH] Export Content-Type out of HTTP access using Control. --- include/vlc_access.h | 12 +++++++++++- modules/access/bda/bda.c | 1 + modules/access/cdda.c | 1 + modules/access/directory.c | 1 + modules/access/dv.c | 1 + modules/access/dvb/access.c | 1 + modules/access/eyetv.c | 1 + modules/access/file.c | 1 + modules/access/ftp.c | 1 + modules/access/gnomevfs.c | 1 + modules/access/http.c | 5 +++++ modules/access/mms/mmsh.c | 1 + modules/access/mms/mmstu.c | 1 + modules/access/pvr.c | 1 + modules/access/rtsp/access.c | 1 + modules/access/smb.c | 1 + modules/access/tcp.c | 1 + modules/access/udp.c | 1 + modules/access/vcd/vcd.c | 1 + 19 files changed, 33 insertions(+), 1 deletion(-) diff --git a/include/vlc_access.h b/include/vlc_access.h index 380bdbc350..0b74977a0a 100644 --- a/include/vlc_access.h +++ b/include/vlc_access.h @@ -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; diff --git a/modules/access/bda/bda.c b/modules/access/bda/bda.c index f3da942d3a..2d280b1cfa 100644 --- a/modules/access/bda/bda.c +++ b/modules/access/bda/bda.c @@ -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 */ diff --git a/modules/access/cdda.c b/modules/access/cdda.c index b246ad67c7..6c13a23f5b 100644 --- a/modules/access/cdda.c +++ b/modules/access/cdda.c @@ -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: diff --git a/modules/access/directory.c b/modules/access/directory.c index 65c83cca0d..3947bd9580 100644 --- a/modules/access/directory.c +++ b/modules/access/directory.c @@ -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: diff --git a/modules/access/dv.c b/modules/access/dv.c index 92bdc251f9..5fc7354204 100644 --- a/modules/access/dv.c +++ b/modules/access/dv.c @@ -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: diff --git a/modules/access/dvb/access.c b/modules/access/dvb/access.c index 47fa4ba42d..47ced7b7d7 100644 --- a/modules/access/dvb/access.c +++ b/modules/access/dvb/access.c @@ -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: diff --git a/modules/access/eyetv.c b/modules/access/eyetv.c index 2f04b509d4..96fdeb73de 100644 --- a/modules/access/eyetv.c +++ b/modules/access/eyetv.c @@ -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: diff --git a/modules/access/file.c b/modules/access/file.c index 2ac89bd831..52456915fd 100644 --- a/modules/access/file.c +++ b/modules/access/file.c @@ -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: diff --git a/modules/access/ftp.c b/modules/access/ftp.c index 070cf4099e..b44368435b 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -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: diff --git a/modules/access/gnomevfs.c b/modules/access/gnomevfs.c index aec397569e..f329421119 100644 --- a/modules/access/gnomevfs.c +++ b/modules/access/gnomevfs.c @@ -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: diff --git a/modules/access/http.c b/modules/access/http.c index a1d1d4a8a4..32defac17d 100644 --- a/modules/access/http.c +++ b/modules/access/http.c @@ -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: diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c index 965c727397..65ec8fe300 100644 --- a/modules/access/mms/mmsh.c +++ b/modules/access/mms/mmsh.c @@ -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: diff --git a/modules/access/mms/mmstu.c b/modules/access/mms/mmstu.c index 71c256047c..af227e22a7 100644 --- a/modules/access/mms/mmstu.c +++ b/modules/access/mms/mmstu.c @@ -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; diff --git a/modules/access/pvr.c b/modules/access/pvr.c index 52c197ce6e..36cee60f57 100644 --- a/modules/access/pvr.c +++ b/modules/access/pvr.c @@ -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: diff --git a/modules/access/rtsp/access.c b/modules/access/rtsp/access.c index af182cccc4..9a46ab2fc2 100644 --- a/modules/access/rtsp/access.c +++ b/modules/access/rtsp/access.c @@ -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: diff --git a/modules/access/smb.c b/modules/access/smb.c index c192f2a9fe..a86cb3cb9a 100644 --- a/modules/access/smb.c +++ b/modules/access/smb.c @@ -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: diff --git a/modules/access/tcp.c b/modules/access/tcp.c index fcb623db08..c455d4f801 100644 --- a/modules/access/tcp.c +++ b/modules/access/tcp.c @@ -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: diff --git a/modules/access/udp.c b/modules/access/udp.c index 17e6a67348..9ca4ac688c 100644 --- a/modules/access/udp.c +++ b/modules/access/udp.c @@ -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: diff --git a/modules/access/vcd/vcd.c b/modules/access/vcd/vcd.c index 32aea5ede1..943272f4e7 100644 --- a/modules/access/vcd/vcd.c +++ b/modules/access/vcd/vcd.c @@ -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: -- 2.39.2