+ if( TagLib::ID3v2::Tag *p_id3tag =
+ dynamic_cast<TagLib::ID3v2::Tag *>(p_tag) )
+ {
+#define WRITE( foo, bar ) \
+ psz_meta = input_item_Get##foo( p_item ); \
+ if( psz_meta ) \
+ { \
+ TagLib::ByteVector p_byte( bar, 4 ); \
+ TagLib::ID3v2::TextIdentificationFrame p_frame( p_byte ); \
+ p_frame.setText( psz_meta ); \
+ p_id3tag->addFrame( &p_frame ); \
+ } \
+ else free( psz_meta );
+
+ WRITE( Publisher, "TPUB" );
+ WRITE( Copyright, "TCOP" );
+ WRITE( EncodedBy, "TENC" );
+ WRITE( Language, "TLAN" );
+
+#undef WRITE