- vlc_meta_t *dst = vlc_meta_New();
- int i;
- for( i = 0; i < src->i_meta; i++ )
- {
- vlc_meta_Add( dst, src->name[i], src->value[i] );
- }
- for( i = 0; i < src->i_track; i++ )
- {
- vlc_meta_t *tk = vlc_meta_Duplicate( src->track[i] );
-
- dst->track = (vlc_meta_t**)realloc( dst->track, sizeof( vlc_meta_t* ) * (dst->i_track+1) );
- dst->track[dst->i_track++] = tk;
- }
- return dst;
-}
-
-static inline void vlc_meta_Merge( vlc_meta_t *dst, vlc_meta_t *src )
-{
- int i, j;
- for( i = 0; i < src->i_meta; i++ )
- {
- /* Check if dst contains the entry */
- for( j = 0; j < dst->i_meta; j++ )
- {
- if( !strcmp( src->name[i], dst->name[j] ) ) break;
- }
- if( j < dst->i_meta )
- {
- if( dst->value[j] ) free( dst->value[j] );
- dst->value[j] = strdup( src->value[i] );
- }
- else vlc_meta_Add( dst, src->name[i], src->value[i] );
- }
-}
-
-static inline char *vlc_meta_GetValue( vlc_meta_t *m, char *name )
-{
- int i;
-
- for( i = 0; i < m->i_meta; i++ )
- {
- if( !strcmp( m->name[i], name ) )
- {
- char *value = NULL;
- if( m->value[i] ) value = strdup( m->value[i] );
- return value;
- }
- }
- return NULL;
-}
+ VLC_COMMON_MEMBERS
+ input_item_t *p_item;
+ const char *psz_file;
+} meta_export_t;
+
+VLC_EXPORT( int, input_item_WriteMeta, (vlc_object_t *, input_item_t *) );
+
+/* Setters for meta.
+ * Warning: Make sure to use the input_item meta setters (defined in vlc_input.h)
+ * instead of those one. */
+#define vlc_meta_SetTitle( meta, b ) vlc_meta_Set( meta, vlc_meta_Title, b )
+#define vlc_meta_SetArtist( meta, b ) vlc_meta_Set( meta, vlc_meta_Artist, b )
+#define vlc_meta_SetGenre( meta, b ) vlc_meta_Set( meta, vlc_meta_Genre, b )
+#define vlc_meta_SetCopyright( meta, b ) vlc_meta_Set( meta, vlc_meta_Copyright, b )
+#define vlc_meta_SetAlbum( meta, b ) vlc_meta_Set( meta, vlc_meta_Album, b )
+#define vlc_meta_SetTrackNum( meta, b ) vlc_meta_Set( meta, vlc_meta_TrackNumber, b )
+#define vlc_meta_SetDescription( meta, b ) vlc_meta_Set( meta, vlc_meta_Description, b )
+#define vlc_meta_SetRating( meta, b ) vlc_meta_Set( meta, vlc_meta_Rating, b )
+#define vlc_meta_SetDate( meta, b ) vlc_meta_Set( meta, vlc_meta_Date, b )
+#define vlc_meta_SetSetting( meta, b ) vlc_meta_Set( meta, vlc_meta_Setting, b )
+#define vlc_meta_SetURL( meta, b ) vlc_meta_Set( meta, vlc_meta_URL, b )
+#define vlc_meta_SetLanguage( meta, b ) vlc_meta_Set( meta, vlc_meta_Language, b )
+#define vlc_meta_SetNowPlaying( meta, b ) vlc_meta_Set( meta, vlc_meta_NowPlaying, b )
+#define vlc_meta_SetPublisher( meta, b ) vlc_meta_Set( meta, vlc_meta_Publisher, b )
+#define vlc_meta_SetEncodedBy( meta, b ) vlc_meta_Set( meta, vlc_meta_EncodedBy, b )
+#define vlc_meta_SetArtURL( meta, b ) vlc_meta_Set( meta, vlc_meta_ArtworkURL, b )
+#define vlc_meta_SetTrackID( meta, b ) vlc_meta_Set( meta, vlc_meta_TrackID, b )
+
+#define VLC_META_TITLE vlc_meta_TypeToLocalizedString( vlc_meta_Title )
+#define VLC_META_ARTIST vlc_meta_TypeToLocalizedString( vlc_meta_Artist )
+#define VLC_META_GENRE vlc_meta_TypeToLocalizedString( vlc_meta_Genre )
+#define VLC_META_COPYRIGHT vlc_meta_TypeToLocalizedString( vlc_meta_Copyright )
+#define VLC_META_ALBUM vlc_meta_TypeToLocalizedString( vlc_meta_Album )
+#define VLC_META_TRACK_NUMBER vlc_meta_TypeToLocalizedString( vlc_meta_TrackNumber )
+#define VLC_META_DESCRIPTION vlc_meta_TypeToLocalizedString( vlc_meta_Description )
+#define VLC_META_RATING vlc_meta_TypeToLocalizedString( vlc_meta_Rating )
+#define VLC_META_DATE vlc_meta_TypeToLocalizedString( vlc_meta_Date )
+#define VLC_META_SETTING vlc_meta_TypeToLocalizedString( vlc_meta_Setting )
+#define VLC_META_URL vlc_meta_TypeToLocalizedString( vlc_meta_URL )
+#define VLC_META_LANGUAGE vlc_meta_TypeToLocalizedString( vlc_meta_Language )
+#define VLC_META_NOW_PLAYING vlc_meta_TypeToLocalizedString( vlc_meta_NowPlaying )
+#define VLC_META_PUBLISHER vlc_meta_TypeToLocalizedString( vlc_meta_Publisher )
+#define VLC_META_ENCODED_BY vlc_meta_TypeToLocalizedString( vlc_meta_EncodedBy )
+#define VLC_META_ART_URL vlc_meta_TypeToLocalizedString( vlc_meta_ArtworkURL )
+#define VLC_META_TRACKID vlc_meta_TypeToLocalizedString( vlc_meta_TrackID )
+