taglib.cpp File Reference

Include dependency graph for taglib.cpp:


Defines

#define SET(keyName, metaName)
#define SET(tagName, metaName)
#define SET(keyName, metaName)
#define SET(tag, meta)
#define SETINT(tag, meta)
#define WRITE(metaName, keyName)
#define WRITE(metaName, tagName)
#define WRITE(metaName, keyName)
#define SET(a, b)

Functions

static int ReadMeta (vlc_object_t *p_this)
 Get the tags from the file using TagLib.
static int WriteMeta (vlc_object_t *p_this)
 Set the tags to the file using TagLib.
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static void ReadMetaFromAPE (APE::Tag *tag, demux_t *p_demux, demux_meta_t *p_demux_meta, vlc_meta_t *p_meta)
 Read meta informations from APE tags.
static void ReadMetaFromId3v2 (ID3v2::Tag *tag, demux_t *p_demux, demux_meta_t *p_demux_meta, vlc_meta_t *p_meta)
 Read meta information from id3v2 tags.
static void ReadMetaFromXiph (Ogg::XiphComment *tag, demux_t *p_demux, demux_meta_t *p_demux_meta, vlc_meta_t *p_meta)
 Read the meta informations from XiphComments.
static void WriteMetaToAPE (APE::Tag *tag, input_item_t *p_item)
 Write meta informations to APE tags.
static void WriteMetaToId3v2 (ID3v2::Tag *tag, input_item_t *p_item)
 Write meta information to id3v2 tags.
static void WriteMetaToXiph (Ogg::XiphComment *tag, input_item_t *p_item)
 Write the meta informations to XiphComments.

Define Documentation

#define SET ( a,
b   ) 

Value:

psz_meta = input_item_Get ## a( p_item );                   \
    if( psz_meta )                                              \
    {                                                           \
        String tmp( psz_meta, String::UTF8 );                   \
        p_tag->set##b( tmp );                                   \
    }                                                           \
    free( psz_meta );

#define SET ( tag,
meta   ) 

Value:

if( !p_tag->tag().isNull() && !p_tag->tag().isEmpty() )                    \
        vlc_meta_Set##meta( p_meta, p_tag->tag().toCString(true) )

#define SET ( keyName,
metaName   ) 

Value:

StringList list = tag->fieldListMap()[keyName];                            \
    if( !list.isEmpty() )                                                      \
        vlc_meta_Set##metaName( p_meta, (*list.begin()).toCString( true ) );

#define SET ( tagName,
metaName   ) 

Value:

list = tag->frameListMap()[tagName];                                       \
    if( !list.isEmpty() )                                                      \
        vlc_meta_Set##metaName( p_meta,                                        \
                                (*list.begin())->toString().toCString( true ) );

#define SET ( keyName,
metaName   ) 

Value:

item = tag->itemListMap()[keyName]; \
    vlc_meta_Set##metaName( p_meta, item.toString().toCString( true ) );\

#define SETINT ( tag,
meta   ) 

Value:

if( p_tag->tag() )                                                         \
    {                                                                          \
        char psz_tmp[10];                                                      \
        snprintf( psz_tmp, 10, "%d", p_tag->tag() );                           \
        vlc_meta_Set##meta( p_meta, psz_tmp );                                 \
    }

Referenced by ReadMeta().

#define WRITE ( metaName,
keyName   ) 

Value:

psz_meta = input_item_Get##metaName( p_item );      \
    if( psz_meta )                                      \
    {                                                   \
        String key( keyName, String::UTF8 );            \
        String value( psz_meta, String::UTF8 );         \
        tag->addField( key, value, true );              \
    }                                                   \
    free( psz_meta );

#define WRITE ( metaName,
tagName   ) 

Value:

psz_meta = input_item_Get##metaName( p_item );                            \
    if( psz_meta )                                                            \
    {                                                                         \
        ByteVector p_byte( tagName, 4 );                                      \
        tag->removeFrames( p_byte );                                         \
        ID3v2::TextIdentificationFrame* p_frame =                             \
            new ID3v2::TextIdentificationFrame( p_byte, String::UTF8 );       \
        p_frame->setText( psz_meta );                                         \
        tag->addFrame( p_frame );                                             \
    }                                                                         \
    free( psz_meta );

#define WRITE ( metaName,
keyName   ) 

Value:

psz_meta = input_item_Get##metaName( p_item );      \
    if( psz_meta )                                      \
    {                                                   \
        String key( keyName, String::UTF8 );            \
        String value( psz_meta, String::UTF8 );         \
        tag->addValue( key, value, true );              \
    }                                                   \
    free( psz_meta );

Referenced by WriteMetaToAPE(), WriteMetaToId3v2(), and WriteMetaToXiph().


Function Documentation

static int ReadMeta ( vlc_object_t p_this  )  [static]

Get the tags from the file using TagLib.

Parameters:
p_this,: the demux object
Returns:
VLC_SUCCESS if the operation success

References decode_URI_duplicate(), LocaleFree(), MAX_PATH, demux_meta_t::p_demux, demux_meta_t::p_meta, demux_t::psz_access, demux_t::psz_path, ReadMetaFromAPE(), ReadMetaFromId3v2(), ReadMetaFromXiph(), SET, SETINT, ToLocale(), VLC_EGENERIC, VLC_ENOMEM, vlc_meta_New(), and VLC_SUCCESS.

static void ReadMetaFromAPE ( APE::Tag *  tag,
demux_t p_demux,
demux_meta_t p_demux_meta,
vlc_meta_t p_meta 
) [static]

Read meta informations from APE tags.

Parameters:
tag,: the APE tag
p_demux; the demux object
p_demux_meta,: the demuxer meta
p_meta,: the meta

References SET.

Referenced by ReadMeta().

static void ReadMetaFromId3v2 ( ID3v2::Tag *  tag,
demux_t p_demux,
demux_meta_t p_demux_meta,
vlc_meta_t p_meta 
) [static]

Read meta information from id3v2 tags.

Parameters:
tag,: the id3v2 tag
p_demux; the demux object
p_demux_meta,: the demuxer meta
p_meta,: the meta

References __MIN, asprintf(), demux_meta_t::attachments, demux_meta_t::i_attachments, list, msg_Dbg, msg_Warn, psz_mime, input_attachment_t::psz_name, psz_name, SET, strdup(), TAB_APPEND_CAST, TAB_INIT, vlc_input_attachment_New(), vlc_meta_AddExtra(), vlc_meta_SetArtURL, and vlc_meta_SetTrackID.

Referenced by ReadMeta().

static void ReadMetaFromXiph ( Ogg::XiphComment *  tag,
demux_t p_demux,
demux_meta_t p_demux_meta,
vlc_meta_t p_meta 
) [static]

Read the meta informations from XiphComments.

Parameters:
tag,: the Xiph Comment
p_demux; the demux object
p_demux_meta,: the demuxer meta
p_meta,: the meta

References demux_meta_t::attachments, demux_meta_t::i_attachments, msg_Dbg, msg_Warn, psz_mime, psz_name, SET, TAB_APPEND_CAST, TAB_INIT, vlc_b64_decode_binary(), vlc_input_attachment_New(), and vlc_meta_SetArtURL.

Referenced by ReadMeta().

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 

static int WriteMeta ( vlc_object_t p_this  )  [static]

Set the tags to the file using TagLib.

Parameters:
p_this,: the demux object
Returns:
VLC_SUCCESS if the operation success

References input_item_GetDate(), input_item_GetTrackNum, LocaleFree(), MAX_PATH, msg_Dbg, msg_Err, meta_export_t::p_item, p_item, meta_export_t::psz_file, SET, ToLocale(), VLC_EGENERIC, VLC_SUCCESS, WriteMetaToAPE(), WriteMetaToId3v2(), and WriteMetaToXiph().

static void WriteMetaToAPE ( APE::Tag *  tag,
input_item_t p_item 
) [static]

Write meta informations to APE tags.

Parameters:
tag,: the APE tag
p_item,: the input item

References WRITE.

Referenced by WriteMeta().

static void WriteMetaToId3v2 ( ID3v2::Tag *  tag,
input_item_t p_item 
) [static]

Write meta information to id3v2 tags.

Parameters:
tag,: the id3v2 tag
p_input,: the input item

References WRITE.

Referenced by WriteMeta().

static void WriteMetaToXiph ( Ogg::XiphComment *  tag,
input_item_t p_item 
) [static]

Write the meta informations to XiphComments.

Parameters:
tag,: the Xiph Comment
p_input,: the input item

References WRITE.

Referenced by WriteMeta().


Generated on Tue May 25 08:05:25 2010 for VLC by  doxygen 1.5.6