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_EXPORT(vlc_meta_t *, vlc_meta_New, ( void ) LIBVLC_USED );
00067 VLC_EXPORT(void, vlc_meta_Delete, ( vlc_meta_t *m ));
00068 VLC_EXPORT(void, vlc_meta_Set, ( vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val ));
00069 VLC_EXPORT(const char *, vlc_meta_Get, ( const vlc_meta_t *p_meta, vlc_meta_type_t meta_type ));
00070
00071 VLC_EXPORT(void, vlc_meta_AddExtra, ( vlc_meta_t *m, const char *psz_name, const char *psz_value ));
00072 VLC_EXPORT(const char *, vlc_meta_GetExtra, ( const vlc_meta_t *m, const char *psz_name ));
00073 VLC_EXPORT(unsigned, vlc_meta_GetExtraCount, ( const vlc_meta_t *m ));
00074
00075
00076
00077
00078
00079 VLC_EXPORT(char **, vlc_meta_CopyExtraNames, ( const vlc_meta_t *m ) LIBVLC_USED );
00080
00081 VLC_EXPORT(void, vlc_meta_Merge, ( vlc_meta_t *dst, const vlc_meta_t *src ));
00082
00083 VLC_EXPORT(int, vlc_meta_GetStatus, ( vlc_meta_t *m ));
00084 VLC_EXPORT(void, vlc_meta_SetStatus, ( vlc_meta_t *m, int status ));
00085
00086
00087
00088
00089 VLC_EXPORT(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_EXPORT( 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