- /* we can write meta data only in a file */
- vlc_mutex_lock( &p_item->p_input->lock );
- int i_type = p_item->p_input->i_type;
- vlc_mutex_unlock( &p_item->p_input->lock );
- if( i_type == ITEM_TYPE_FILE )
- {
- char *psz_uri_orig = input_item_GetURI( p_item->p_input );
- char *psz_uri = psz_uri_orig;
- if( !strncmp( psz_uri, "file://", 7 ) )
- psz_uri += 7; /* strlen("file://") = 7 */
-
- p_export.psz_file = strndup( psz_uri, PATH_MAX );
- free( psz_uri_orig );
- }
- else
- goto end;
-
- #define utf8( o_blub ) \
- [[o_blub stringValue] UTF8String]
-
- input_item_SetName( p_item->p_input, utf8( o_title_txt ) );
- input_item_SetTitle( p_item->p_input, utf8( o_title_txt ) );
- input_item_SetArtist( p_item->p_input, utf8( o_author_txt ) );
- input_item_SetAlbum( p_item->p_input, utf8( o_collection_txt ) );
- input_item_SetGenre( p_item->p_input, utf8( o_genre_txt ) );
- input_item_SetTrackNum( p_item->p_input, utf8( o_seqNum_txt ) );
- input_item_SetDate( p_item->p_input, utf8( o_date_txt ) );
- input_item_SetCopyright( p_item->p_input, utf8( o_copyright_txt ) );
- input_item_SetPublisher( p_item->p_input, utf8( o_publisher_txt ) );
- input_item_SetDescription( p_item->p_input, utf8( o_description_txt ) );
- input_item_SetLanguage( p_item->p_input, utf8( o_language_txt ) );
-
- PL_LOCK;
- p_playlist->p_private = &p_export;
-
- module_t *p_mod = module_Need( p_playlist, "meta writer", NULL, 0 );
- if( p_mod )
- module_Unneed( p_playlist, p_mod );
- PL_UNLOCK;
-
- val.b_bool = true;
- var_Set( p_playlist, "intf-change", val );
- [self updatePanel];
- }