00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef VLC_META_H
00025 #define VLC_META_H 1
00026
00027
00028
00029
00030
00031
00032
00033 typedef enum vlc_meta_type_t
00034 {
00035 vlc_meta_Title,
00036 vlc_meta_Artist,
00037 vlc_meta_Genre,
00038 vlc_meta_Copyright,
00039 vlc_meta_Album,
00040 vlc_meta_TrackNumber,
00041 vlc_meta_Description,
00042 vlc_meta_Rating,
00043 vlc_meta_Date,
00044 vlc_meta_Setting,
00045 vlc_meta_URL,
00046 vlc_meta_Language,
00047 vlc_meta_NowPlaying,
00048 vlc_meta_Publisher,
00049 vlc_meta_EncodedBy,
00050 vlc_meta_ArtworkURL,
00051 vlc_meta_TrackID
00052 } vlc_meta_type_t;
00053
00054 #define VLC_META_TYPE_COUNT 17
00055
00056 #define ITEM_PREPARSED 1
00057 #define ITEM_ARTURL_FETCHED 2
00058 #define ITEM_ART_FETCHED 4
00059 #define ITEM_ART_NOTFOUND 8
00060
00061
00062
00063
00064 struct vlc_meta_t;
00065
00066 VLC_API vlc_meta_t * vlc_meta_New( void ) VLC_USED;
00067 VLC_API void vlc_meta_Delete( vlc_meta_t *m );
00068 VLC_API void vlc_meta_Set( vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val );
00069 VLC_API const char * vlc_meta_Get( const vlc_meta_t *p_meta, vlc_meta_type_t meta_type );
00070
00071 VLC_API void vlc_meta_AddExtra( vlc_meta_t *m, const char *psz_name, const char *psz_value );
00072 VLC_API const char * vlc_meta_GetExtra( const vlc_meta_t *m, const char *psz_name );
00073 VLC_API unsigned vlc_meta_GetExtraCount( const vlc_meta_t *m );
00074
00075
00076
00077
00078
00079 VLC_API char ** vlc_meta_CopyExtraNames( const vlc_meta_t *m ) VLC_USED;
00080
00081 VLC_API void vlc_meta_Merge( vlc_meta_t *dst, const vlc_meta_t *src );
00082
00083 VLC_API int vlc_meta_GetStatus( vlc_meta_t *m );
00084 VLC_API void vlc_meta_SetStatus( vlc_meta_t *m, int status );
00085
00086
00087
00088
00089 VLC_API const char * vlc_meta_TypeToLocalizedString( vlc_meta_type_t meta_type );
00090
00091 enum {
00092 ALBUM_ART_WHEN_ASKED,
00093 ALBUM_ART_WHEN_PLAYED,
00094 ALBUM_ART_ALL
00095 };
00096
00097
00098 typedef struct meta_export_t
00099 {
00100 VLC_COMMON_MEMBERS
00101 input_item_t *p_item;
00102 const char *psz_file;
00103 } meta_export_t;
00104
00105 VLC_API int input_item_WriteMeta(vlc_object_t *, input_item_t *);
00106
00107
00108
00109
00110 #define vlc_meta_SetTitle( meta, b ) vlc_meta_Set( meta, vlc_meta_Title, b )
00111 #define vlc_meta_SetArtist( meta, b ) vlc_meta_Set( meta, vlc_meta_Artist, b )
00112 #define vlc_meta_SetGenre( meta, b ) vlc_meta_Set( meta, vlc_meta_Genre, b )
00113 #define vlc_meta_SetCopyright( meta, b ) vlc_meta_Set( meta, vlc_meta_Copyright, b )
00114 #define vlc_meta_SetAlbum( meta, b ) vlc_meta_Set( meta, vlc_meta_Album, b )
00115 #define vlc_meta_SetTrackNum( meta, b ) vlc_meta_Set( meta, vlc_meta_TrackNumber, b )
00116 #define vlc_meta_SetDescription( meta, b ) vlc_meta_Set( meta, vlc_meta_Description, b )
00117 #define vlc_meta_SetRating( meta, b ) vlc_meta_Set( meta, vlc_meta_Rating, b )
00118 #define vlc_meta_SetDate( meta, b ) vlc_meta_Set( meta, vlc_meta_Date, b )
00119 #define vlc_meta_SetSetting( meta, b ) vlc_meta_Set( meta, vlc_meta_Setting, b )
00120 #define vlc_meta_SetURL( meta, b ) vlc_meta_Set( meta, vlc_meta_URL, b )
00121 #define vlc_meta_SetLanguage( meta, b ) vlc_meta_Set( meta, vlc_meta_Language, b )
00122 #define vlc_meta_SetNowPlaying( meta, b ) vlc_meta_Set( meta, vlc_meta_NowPlaying, b )
00123 #define vlc_meta_SetPublisher( meta, b ) vlc_meta_Set( meta, vlc_meta_Publisher, b )
00124 #define vlc_meta_SetEncodedBy( meta, b ) vlc_meta_Set( meta, vlc_meta_EncodedBy, b )
00125 #define vlc_meta_SetArtURL( meta, b ) vlc_meta_Set( meta, vlc_meta_ArtworkURL, b )
00126 #define vlc_meta_SetTrackID( meta, b ) vlc_meta_Set( meta, vlc_meta_TrackID, b )
00127
00128 #define VLC_META_TITLE vlc_meta_TypeToLocalizedString( vlc_meta_Title )
00129 #define VLC_META_ARTIST vlc_meta_TypeToLocalizedString( vlc_meta_Artist )
00130 #define VLC_META_GENRE vlc_meta_TypeToLocalizedString( vlc_meta_Genre )
00131 #define VLC_META_COPYRIGHT vlc_meta_TypeToLocalizedString( vlc_meta_Copyright )
00132 #define VLC_META_ALBUM vlc_meta_TypeToLocalizedString( vlc_meta_Album )
00133 #define VLC_META_TRACK_NUMBER vlc_meta_TypeToLocalizedString( vlc_meta_TrackNumber )
00134 #define VLC_META_DESCRIPTION vlc_meta_TypeToLocalizedString( vlc_meta_Description )
00135 #define VLC_META_RATING vlc_meta_TypeToLocalizedString( vlc_meta_Rating )
00136 #define VLC_META_DATE vlc_meta_TypeToLocalizedString( vlc_meta_Date )
00137 #define VLC_META_SETTING vlc_meta_TypeToLocalizedString( vlc_meta_Setting )
00138 #define VLC_META_URL vlc_meta_TypeToLocalizedString( vlc_meta_URL )
00139 #define VLC_META_LANGUAGE vlc_meta_TypeToLocalizedString( vlc_meta_Language )
00140 #define VLC_META_NOW_PLAYING vlc_meta_TypeToLocalizedString( vlc_meta_NowPlaying )
00141 #define VLC_META_PUBLISHER vlc_meta_TypeToLocalizedString( vlc_meta_Publisher )
00142 #define VLC_META_ENCODED_BY vlc_meta_TypeToLocalizedString( vlc_meta_EncodedBy )
00143 #define VLC_META_ART_URL vlc_meta_TypeToLocalizedString( vlc_meta_ArtworkURL )
00144 #define VLC_META_TRACKID vlc_meta_TypeToLocalizedString( vlc_meta_TrackID )
00145
00146
00147 #endif