X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_input.h;h=060effc410a4ed1ac551e9fff8b938ed33c1d0f7;hb=1359fbd1013bb48528d54f8674d3feb2acfbdd45;hp=6f15034a605954414ad8aa12e13e1bc11be5e95f;hpb=35c9bc4a42dda7b43c632365bc2f8589af9cebcb;p=vlc diff --git a/include/vlc_input.h b/include/vlc_input.h index 6f15034a60..060effc410 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -89,16 +89,15 @@ struct input_item_t }; #define ITEM_TYPE_UNKNOWN 0 -#define ITEM_TYPE_AFILE 1 -#define ITEM_TYPE_VFILE 2 -#define ITEM_TYPE_DIRECTORY 3 -#define ITEM_TYPE_DISC 4 -#define ITEM_TYPE_CDDA 5 -#define ITEM_TYPE_CARD 6 -#define ITEM_TYPE_NET 7 -#define ITEM_TYPE_PLAYLIST 8 -#define ITEM_TYPE_NODE 9 -#define ITEM_TYPE_NUMBER 10 +#define ITEM_TYPE_FILE 1 +#define ITEM_TYPE_DIRECTORY 2 +#define ITEM_TYPE_DISC 3 +#define ITEM_TYPE_CDDA 4 +#define ITEM_TYPE_CARD 5 +#define ITEM_TYPE_NET 6 +#define ITEM_TYPE_PLAYLIST 7 +#define ITEM_TYPE_NODE 8 +#define ITEM_TYPE_NUMBER 9 static inline void input_ItemInit( vlc_object_t *p_o, input_item_t *p_i ) { @@ -138,7 +137,7 @@ static inline void input_ItemCopyOptions( input_item_t *p_parent, } } -static inline void input_ItemSetName( input_item_t *p_item, const char *psz_name ) +static inline void input_item_SetName( input_item_t *p_item, const char *psz_name ) { if( p_item->psz_name ) free( p_item->psz_name ); p_item->psz_name = strdup( psz_name ); @@ -228,7 +227,7 @@ static inline void input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_t if( !p_i->p_meta ) p_i->p_meta = vlc_meta_New(); vlc_meta_Set( p_i->p_meta, meta_type, psz_val ); - vlc_mutex_unlock( &p_i->lock ); + vlc_mutex_unlock( &p_i->lock ); /* Notify interested third parties */ event.type = vlc_InputItemMetaChanged; @@ -239,6 +238,11 @@ static inline void input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_t static inline vlc_bool_t input_item_MetaMatch( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz ) { vlc_mutex_lock( &p_i->lock ); + if( !p_i->p_meta ) + { + vlc_mutex_unlock( &p_i->lock ); + return VLC_FALSE; + } const char * meta = vlc_meta_Get( p_i->p_meta, meta_type ); vlc_bool_t ret = meta && strcasestr( meta, psz ); vlc_mutex_unlock( &p_i->lock ); @@ -272,6 +276,38 @@ static inline char * input_item_GetName( input_item_t * p_i ) return psz_s; } +static inline char * input_item_GetURI( input_item_t * p_i ) +{ + vlc_mutex_lock( &p_i->lock ); + char *psz_s = p_i->psz_uri ? strdup( p_i->psz_uri ) : NULL; + vlc_mutex_unlock( &p_i->lock ); + return psz_s; +} + +static inline void input_item_SetURI( input_item_t * p_i, char * psz_uri ) +{ + vlc_mutex_lock( &p_i->lock ); + if( p_i->psz_uri ) free( p_i->psz_uri ); + p_i->psz_uri = strdup( psz_uri ); + vlc_mutex_unlock( &p_i->lock ); +} + +static inline mtime_t input_item_GetDuration( input_item_t * p_i ) +{ + vlc_mutex_lock( &p_i->lock ); + mtime_t i_duration = p_i->i_duration; + vlc_mutex_unlock( &p_i->lock ); + return i_duration; +} + +static inline void input_item_SetDuration( input_item_t * p_i, mtime_t i_duration ) +{ + vlc_mutex_lock( &p_i->lock ); + p_i->i_duration = i_duration; + vlc_mutex_unlock( &p_i->lock ); + return; +} + static inline void input_item_SetPreparsed( input_item_t *p_i, vlc_bool_t preparsed ) { if( !p_i->p_meta ) @@ -386,7 +422,7 @@ static inline void input_item_MetaMerge( input_item_t *p_i, const vlc_meta_t * p #define input_item_GetSetting( item ) input_item_GetMeta( item, vlc_meta_Setting ) VLC_EXPORT( char *, input_ItemGetInfo, ( input_item_t *p_i, const char *psz_cat,const char *psz_name ) ); -VLC_EXPORT(int, input_ItemAddInfo, ( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ) ); +VLC_EXPORT(int, input_ItemAddInfo, ( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ) ATTRIBUTE_FORMAT( 4, 5 ) ); #define input_ItemNew( a,b,c ) input_ItemNewExt( a, b, c, 0, NULL, -1 ) #define input_ItemNewExt(a,b,c,d,e,f) __input_ItemNewExt( VLC_OBJECT(a),b,c,d,e,f) @@ -705,6 +741,7 @@ enum input_query_e /* Input properties */ INPUT_GET_BYTE_POSITION, /* arg1= int64_t * res= */ INPUT_SET_BYTE_SIZE, /* arg1= int64_t * res= */ + INPUT_GET_VIDEO_FPS, /* arg1= double * res=can fail */ /* bookmarks */ INPUT_GET_BOOKMARKS, /* arg1= seekpoint_t *** arg2= int * res=can fail */