moved AudioClip::readTag from TagConversionTable to MetadataTypeContainer
This commit is contained in:
parent
3125a6af5c
commit
4716b9c968
21 changed files with 580 additions and 412 deletions
|
@ -753,7 +753,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Title</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TIT2, Title</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Title</TD>
|
<TD ALIGN=LEFT>Title</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:title</B></TD>
|
<TD ALIGN=LEFT><B>dc:title</B></TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -762,7 +762,7 @@
|
||||||
<TD ALIGN=LEFT>see main</TD>
|
<TD ALIGN=LEFT>see main</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Artist</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TPE1, Artist</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Creator</TD>
|
<TD ALIGN=LEFT>Creator</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:creator</B></TD>
|
<TD ALIGN=LEFT><B>dc:creator</B></TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -771,7 +771,7 @@
|
||||||
<TD ALIGN=LEFT>see main</TD>
|
<TD ALIGN=LEFT>see main</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Album</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TALB, Album</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Album</TD>
|
<TD ALIGN=LEFT>Album</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:source</B></TD>
|
<TD ALIGN=LEFT><B>dc:source</B></TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -780,7 +780,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Year</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TYER, Year</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Year</TD>
|
<TD ALIGN=LEFT>Year</TD>
|
||||||
<TD ALIGN=LEFT><B>ls:year</B> (by TH instead of dcterms:coverage:temporal:year)</TD>
|
<TD ALIGN=LEFT><B>ls:year</B> (by TH instead of dcterms:coverage:temporal:year)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -789,7 +789,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Genre</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TCON, Genre</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Genre</TD>
|
<TD ALIGN=LEFT>Genre</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:type</B></TD>
|
<TD ALIGN=LEFT><B>dc:type</B></TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -798,7 +798,7 @@
|
||||||
<TD ALIGN=LEFT>see main</TD>
|
<TD ALIGN=LEFT>see main</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Comment</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>COMM, Comment</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Description</TD>
|
<TD ALIGN=LEFT>Description</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:description</B></TD>
|
<TD ALIGN=LEFT><B>dc:description</B></TD>
|
||||||
<TD ALIGN=LEFT>Longtext</TD>
|
<TD ALIGN=LEFT>Longtext</TD>
|
||||||
|
@ -816,7 +816,7 @@
|
||||||
<TD ALIGN=LEFT>see main</TD>
|
<TD ALIGN=LEFT>see main</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>BPM</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TBPM</FONT></TD>
|
||||||
<TD ALIGN=LEFT>BPM</TD>
|
<TD ALIGN=LEFT>BPM</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:bpm</FONT></B></TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:bpm</FONT></B></TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -825,7 +825,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Rating</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>POPM, Rating</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Rating</TD>
|
<TD ALIGN=LEFT>Rating</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:rating</FONT></B></TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:rating</FONT></B></TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -834,7 +834,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Duration</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Duration</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Length</TD>
|
<TD ALIGN=LEFT>Length</TD>
|
||||||
<TD ALIGN=LEFT><B>dcterms:extent</B> (by TH instead of dcterms:format:extent)</TD>
|
<TD ALIGN=LEFT><B>dcterms:extent</B> (by TH instead of dcterms:format:extent)</TD>
|
||||||
<TD ALIGN=LEFT>Time</TD>
|
<TD ALIGN=LEFT>Time</TD>
|
||||||
|
@ -861,7 +861,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Encoded by</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TENC, Encoded by</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Encoded by</TD>
|
<TD ALIGN=LEFT>Encoded by</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:encoded_by</FONT></B> (by TH instead of Creator.Role.Encoder)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:encoded_by</FONT></B> (by TH instead of Creator.Role.Encoder)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -870,7 +870,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Track #</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TRCK, Track #</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Track number</TD>
|
<TD ALIGN=LEFT>Track number</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:track_num</FONT></B> (by TH instead of Source.Album.TrackNumber)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:track_num</FONT></B> (by TH instead of Source.Album.TrackNumber)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -879,7 +879,7 @@
|
||||||
<TD ALIGN=LEFT>count as source.album</TD>
|
<TD ALIGN=LEFT>count as source.album</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Disc #</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TPOS, Disc #</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Disc number</TD>
|
<TD ALIGN=LEFT>Disc number</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:disc_num</FONT></B> (by TH instead of Source.Album.DiscNumber)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:disc_num</FONT></B> (by TH instead of Source.Album.DiscNumber)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -888,7 +888,7 @@
|
||||||
<TD ALIGN=LEFT>count as source.album</TD>
|
<TD ALIGN=LEFT>count as source.album</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Mood</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TMOO, Mood</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Mood</TD>
|
<TD ALIGN=LEFT>Mood</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:mood</FONT></B> (by TH instead of Description.Mood)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:mood</FONT></B> (by TH instead of Description.Mood)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -897,7 +897,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Label</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TPUB, Label</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Label</TD>
|
<TD ALIGN=LEFT>Label</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:publisher</B></TD>
|
<TD ALIGN=LEFT><B>dc:publisher</B></TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -906,7 +906,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Composer</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TCOM, Composer</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Composer</TD>
|
<TD ALIGN=LEFT>Composer</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:composer</FONT></B> (by TH instead of Creator.Role.Composer)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:composer</FONT></B> (by TH instead of Creator.Role.Composer)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -915,7 +915,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Bitrate</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Bitrate</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Bitrate</TD>
|
<TD ALIGN=LEFT>Bitrate</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:bitrate</FONT></B> (by TH instead of Format.Medium.Bitrate)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:bitrate</FONT></B> (by TH instead of Format.Medium.Bitrate)</TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -924,7 +924,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Channels</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Channels</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Channels</TD>
|
<TD ALIGN=LEFT>Channels</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:channels</FONT></B> (by TH instead of Format.Medium.Channels)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:channels</FONT></B> (by TH instead of Format.Medium.Channels)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -933,7 +933,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Samplerate</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Samplerate</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Sample rate</TD>
|
<TD ALIGN=LEFT>Sample rate</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:samplerate</FONT></B> (by TH instead of Format.Medium.Samplerate)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:samplerate</FONT></B> (by TH instead of Format.Medium.Samplerate)</TD>
|
||||||
<TD ALIGN=LEFT>Menu</TD>
|
<TD ALIGN=LEFT>Menu</TD>
|
||||||
|
@ -942,7 +942,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Encoder</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TSSE, Encoder</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Encoder software used</TD>
|
<TD ALIGN=LEFT>Encoder software used</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:encoder</FONT></B> (by TH instead of Format.Medium.Encoder)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:encoder</FONT></B> (by TH instead of Format.Medium.Encoder)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -951,7 +951,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>CRC</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, CRC</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Checksum</TD>
|
<TD ALIGN=LEFT>Checksum</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:crc</FONT></B> (by TH instead of Format.CRC)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:crc</FONT></B> (by TH instead of Format.CRC)</TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -960,7 +960,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Lyrics</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Lyrics</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Lyrics</TD>
|
<TD ALIGN=LEFT>Lyrics</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:lyrics</FONT></B> (by TH instead of Description.Lyrics)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:lyrics</FONT></B> (by TH instead of Description.Lyrics)</TD>
|
||||||
<TD ALIGN=LEFT>Longtext</TD>
|
<TD ALIGN=LEFT>Longtext</TD>
|
||||||
|
@ -969,7 +969,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Orchestra or band</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TPE2, Orchestra or band</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Orchestra or band</TD>
|
<TD ALIGN=LEFT>Orchestra or band</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:orchestra</FONT></B> (by TH instead of Creator.Role.Orchestra)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:orchestra</FONT></B> (by TH instead of Creator.Role.Orchestra)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -978,7 +978,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Conductor</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TPE3, Conductor</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Conductor</TD>
|
<TD ALIGN=LEFT>Conductor</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:conductor</FONT></B> (by TH instead of Creator.Role.Conductor)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:conductor</FONT></B> (by TH instead of Creator.Role.Conductor)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -987,7 +987,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Lyricist</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TEXT, Lyricist</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Lyricist</TD>
|
<TD ALIGN=LEFT>Lyricist</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:lyricist</FONT></B> (by TH instead of Creator.Role.Lyricist)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:lyricist</FONT></B> (by TH instead of Creator.Role.Lyricist)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -996,7 +996,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Original lyricist</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TOLY, Original lyricist</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Original lyricist</TD>
|
<TD ALIGN=LEFT>Original lyricist</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:originallyricist</FONT></B> (by TH instead of Creator.Role.OriginalLyricist)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:originallyricist</FONT></B> (by TH instead of Creator.Role.OriginalLyricist)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -1005,7 +1005,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Radio station name</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TRSN, Radio station name</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Radio station name</TD>
|
<TD ALIGN=LEFT>Radio station name</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:radiostationname</FONT></B> (by TH instead of Creator.Role.RadioStationName)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:radiostationname</FONT></B> (by TH instead of Creator.Role.RadioStationName)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -1014,7 +1014,7 @@
|
||||||
<TD ALIGN=LEFT>count as creator</TD>
|
<TD ALIGN=LEFT>count as creator</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Audio file information webpage</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>WOAF, Audio file information webpage</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Audio file information web page</TD>
|
<TD ALIGN=LEFT>Audio file information web page</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:audiofileinfourl</FONT></B> (by TH instead of Description.AudioFileInfoURL)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:audiofileinfourl</FONT></B> (by TH instead of Description.AudioFileInfoURL)</TD>
|
||||||
<TD ALIGN=LEFT>URL</TD>
|
<TD ALIGN=LEFT>URL</TD>
|
||||||
|
@ -1023,7 +1023,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Artist webpage</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>WOAR, Artist webpage</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Artist web page</TD>
|
<TD ALIGN=LEFT>Artist web page</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:artisturl</FONT></B> (by TH instead of Description.ArtistURL)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:artisturl</FONT></B> (by TH instead of Description.ArtistURL)</TD>
|
||||||
<TD ALIGN=LEFT>URL</TD>
|
<TD ALIGN=LEFT>URL</TD>
|
||||||
|
@ -1032,7 +1032,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Audio source webpage</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>WOAS, Audio source webpage</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Audio source web page</TD>
|
<TD ALIGN=LEFT>Audio source web page</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:audiosourceurl</FONT></B> (by TH instead of Description.AudioSourceURL)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:audiosourceurl</FONT></B> (by TH instead of Description.AudioSourceURL)</TD>
|
||||||
<TD ALIGN=LEFT>URL</TD>
|
<TD ALIGN=LEFT>URL</TD>
|
||||||
|
@ -1041,7 +1041,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Radio station webpage</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>WORS, Radio station webpage</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Radio station web page</TD>
|
<TD ALIGN=LEFT>Radio station web page</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:radiostationurl</FONT></B> (by TH instead of Description.RadioStationURL)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:radiostationurl</FONT></B> (by TH instead of Description.RadioStationURL)</TD>
|
||||||
<TD ALIGN=LEFT>URL</TD>
|
<TD ALIGN=LEFT>URL</TD>
|
||||||
|
@ -1050,7 +1050,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Buy CD webpage</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>WPAY, Buy CD webpage</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Buy CD web page</TD>
|
<TD ALIGN=LEFT>Buy CD web page</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:buycdurl</FONT></B> (by TH instead of Description.BuyCDURL)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:buycdurl</FONT></B> (by TH instead of Description.BuyCDURL)</TD>
|
||||||
<TD ALIGN=LEFT>URL</TD>
|
<TD ALIGN=LEFT>URL</TD>
|
||||||
|
@ -1059,7 +1059,7 @@
|
||||||
<TD ALIGN=LEFT>count as description</TD>
|
<TD ALIGN=LEFT>count as description</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>ISRC #</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TSRC, ISRC #</FONT></TD>
|
||||||
<TD ALIGN=LEFT>ISRC number</TD>
|
<TD ALIGN=LEFT>ISRC number</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:isrcnumber</FONT></B> (by TH instead of Identifier.ISRCNumber)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:isrcnumber</FONT></B> (by TH instead of Identifier.ISRCNumber)</TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -1068,7 +1068,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Catalog #</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>????, Catalog #</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Catalog number</TD>
|
<TD ALIGN=LEFT>Catalog number</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:catalognumber</FONT></B> (by TH instead of Identifier.CatalogNumber)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:catalognumber</FONT></B> (by TH instead of Identifier.CatalogNumber)</TD>
|
||||||
<TD ALIGN=LEFT>Number</TD>
|
<TD ALIGN=LEFT>Number</TD>
|
||||||
|
@ -1077,7 +1077,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Original Artist</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TOPE, Original Artist</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Original artist</TD>
|
<TD ALIGN=LEFT>Original artist</TD>
|
||||||
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:originalartist</FONT></B> (by TH instead of Creator.Role.OriginalArtist)</TD>
|
<TD ALIGN=LEFT><B><FONT COLOR="#FF0000">ls:originalartist</FONT></B> (by TH instead of Creator.Role.OriginalArtist)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
@ -1086,7 +1086,7 @@
|
||||||
<TD ALIGN=LEFT><BR></TD>
|
<TD ALIGN=LEFT><BR></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>Copyright</FONT></TD>
|
<TD HEIGHT=17 ALIGN=LEFT><FONT SIZE=1>TCOP, Copyright</FONT></TD>
|
||||||
<TD ALIGN=LEFT>Copyright</TD>
|
<TD ALIGN=LEFT>Copyright</TD>
|
||||||
<TD ALIGN=LEFT><B>dc:rights or ls:license ?</B> (by TH instead of dc:rights:license)</TD>
|
<TD ALIGN=LEFT><B>dc:rights or ls:license ?</B> (by TH instead of dc:rights:license)</TD>
|
||||||
<TD ALIGN=LEFT>Text</TD>
|
<TD ALIGN=LEFT>Text</TD>
|
||||||
|
|
|
@ -20,6 +20,6 @@
|
||||||
<dcterms:extent >00:18:30.000000</dcterms:extent>
|
<dcterms:extent >00:18:30.000000</dcterms:extent>
|
||||||
<dcterms:medium >online</dcterms:medium>
|
<dcterms:medium >online</dcterms:medium>
|
||||||
<dcterms:spatial >Spatial Coverage</dcterms:spatial>
|
<dcterms:spatial >Spatial Coverage</dcterms:spatial>
|
||||||
<dcterms:temporal >Temporal Covarage</dcterms:temporal>
|
<dcterms:temporal >Temporal Coverage</dcterms:temporal>
|
||||||
</metadata>
|
</metadata>
|
||||||
</audioClip>
|
</audioClip>
|
||||||
|
|
|
@ -10,6 +10,6 @@
|
||||||
|
|
||||||
<metadataType dcName = "dc:creator"
|
<metadataType dcName = "dc:creator"
|
||||||
id3Tag = "TPE2"
|
id3Tag = "TPE2"
|
||||||
localizationKey = "dc_creator"
|
localizationKey = "creator"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
@ -3,17 +3,149 @@
|
||||||
|
|
||||||
<!ELEMENT metadataType EMPTY >
|
<!ELEMENT metadataType EMPTY >
|
||||||
<!ATTLIST metadataType dcName NMTOKEN #REQUIRED >
|
<!ATTLIST metadataType dcName NMTOKEN #REQUIRED >
|
||||||
<!ATTLIST metadataType id3Tag NMTOKEN #IMPLIED >
|
<!ATTLIST metadataType id3Tag CDATA #IMPLIED >
|
||||||
<!ATTLIST metadataType localizationKey NMTOKEN #REQUIRED >
|
<!ATTLIST metadataType localizationKey CDATA #REQUIRED >
|
||||||
|
|
||||||
<!ELEMENT metadataTypeContainer (metadataType+) >
|
<!ELEMENT metadataTypeContainer (metadataType+) >
|
||||||
|
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<metadataTypeContainer>
|
<metadataTypeContainer>
|
||||||
|
<metadataType dcName = "dc:title"
|
||||||
|
id3Tag = "TIT2"
|
||||||
|
localizationKey = "title"
|
||||||
|
/>
|
||||||
<metadataType dcName = "dc:creator"
|
<metadataType dcName = "dc:creator"
|
||||||
|
id3Tag = "TPE1"
|
||||||
|
localizationKey = "creator"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:source"
|
||||||
|
id3Tag = "TALB"
|
||||||
|
localizationKey = "album"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:year"
|
||||||
|
id3Tag = "TYER"
|
||||||
|
localizationKey = "year"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:type"
|
||||||
|
id3Tag = "TCON"
|
||||||
|
localizationKey = "genre"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:description"
|
||||||
|
id3Tag = "COMM"
|
||||||
|
localizationKey = "description"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:format"
|
||||||
|
localizationKey = "format"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:bpm"
|
||||||
|
id3Tag = "TBPM"
|
||||||
|
localizationKey = "bpm"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:rating"
|
||||||
|
id3Tag = "POPM"
|
||||||
|
localizationKey = "rating"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dcterms:extent"
|
||||||
|
localizationKey = "length"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:encoded_by"
|
||||||
|
id3Tag = "TENC"
|
||||||
|
localizationKey = "encoded_by"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:track_num"
|
||||||
|
id3Tag = "TRCK"
|
||||||
|
localizationKey = "track_number"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:disc_num"
|
||||||
|
id3Tag = "TPOS"
|
||||||
|
localizationKey = "disc_number"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:mood"
|
||||||
|
id3Tag = "TMOO"
|
||||||
|
localizationKey = "mood"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:publisher"
|
||||||
|
id3Tag = "TPUB"
|
||||||
|
localizationKey = "publishing_label"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:composer"
|
||||||
|
id3Tag = "TCOM"
|
||||||
|
localizationKey = "composer"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:bitrate"
|
||||||
|
localizationKey = "bitrate"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:channels"
|
||||||
|
localizationKey = "channels"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:samplerate"
|
||||||
|
localizationKey = "sample_rate"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:encoder"
|
||||||
|
id3Tag = "TSSE"
|
||||||
|
localizationKey = "encoding_software"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:crc"
|
||||||
|
localizationKey = "checksum"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:lyrics"
|
||||||
|
localizationKey = "lyrics"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:orchestra"
|
||||||
id3Tag = "TPE2"
|
id3Tag = "TPE2"
|
||||||
localizationKey = "dc_creator"
|
localizationKey = "orchestra_or_band"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:conductor"
|
||||||
|
id3Tag = "TPE3"
|
||||||
|
localizationKey = "conductor"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:lyricist"
|
||||||
|
id3Tag = "TEXT"
|
||||||
|
localizationKey = "lyricist"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:originallyricist"
|
||||||
|
id3Tag = "TOLY"
|
||||||
|
localizationKey = "original_lyricist"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:radiostationname"
|
||||||
|
id3Tag = "TRSN"
|
||||||
|
localizationKey = "radio_station_name"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:audiofileinfourl"
|
||||||
|
id3Tag = "WOAF"
|
||||||
|
localizationKey = "audio_file_info_url"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:artisturl"
|
||||||
|
id3Tag = "WOAR"
|
||||||
|
localizationKey = "artist_url"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:audiosourceurl"
|
||||||
|
id3Tag = "WOAS"
|
||||||
|
localizationKey = "audio_source_url"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:radiostationurl"
|
||||||
|
id3Tag = "WORS"
|
||||||
|
localizationKey = "radio_station_url"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:buycdurl"
|
||||||
|
id3Tag = "WPAY"
|
||||||
|
localizationKey = "buy_cd_url"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:isrcnumber"
|
||||||
|
id3Tag = "TSRC"
|
||||||
|
localizationKey = "isrc_number"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:catalognumber"
|
||||||
|
localizationKey = "catalog_number"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:originalartist"
|
||||||
|
id3Tag = "TOPE"
|
||||||
|
localizationKey = "original_artist"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "dc:rights"
|
||||||
|
id3Tag = "TCOP"
|
||||||
|
localizationKey = "copyright"
|
||||||
/>
|
/>
|
||||||
</metadataTypeContainer>
|
</metadataTypeContainer>
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.25 $
|
Version : $Revision: 1.26 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/AudioClip.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -50,6 +50,7 @@
|
||||||
#include "LiveSupport/Core/UniqueId.h"
|
#include "LiveSupport/Core/UniqueId.h"
|
||||||
#include "LiveSupport/Core/Configurable.h"
|
#include "LiveSupport/Core/Configurable.h"
|
||||||
#include "LiveSupport/Core/Playable.h"
|
#include "LiveSupport/Core/Playable.h"
|
||||||
|
#include "LiveSupport/Core/MetadataTypeContainer.h"
|
||||||
|
|
||||||
|
|
||||||
namespace LiveSupport {
|
namespace LiveSupport {
|
||||||
|
@ -130,7 +131,7 @@ using namespace boost::posix_time;
|
||||||
* </code></pre>
|
* </code></pre>
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.25 $
|
* @version $Revision: 1.26 $
|
||||||
*/
|
*/
|
||||||
class AudioClip : public Configurable,
|
class AudioClip : public Configurable,
|
||||||
public Playable
|
public Playable
|
||||||
|
@ -562,27 +563,22 @@ class AudioClip : public Configurable,
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read the metadata contained in the id3v2 tag of the mp3 sound
|
* Read the metadata contained in the id3v2 tags of the mp3 sound
|
||||||
* file. The id3v1 tag is also read; if a field is present in both,
|
* file. If no id3v2 tags are found, the file is searched for other
|
||||||
* the id3v2 tag is used.
|
* (id3v1, APE, XiphComment) tags.
|
||||||
*
|
|
||||||
* Ogg Vorbis sound files are not supported yet. If the
|
|
||||||
* sound file is not in mp3 format, the method returns normally
|
|
||||||
* and does not do anything; however, some junk is printed on
|
|
||||||
* the standard error.
|
|
||||||
*
|
*
|
||||||
* The tags are processed and translated into Dublin Core
|
* The tags are processed and translated into Dublin Core
|
||||||
* metadata fields using the TagConversion class. Only those fields
|
* metadata fields using the MetadataTypeContainer object.
|
||||||
* are processed which have a Dublin Core equivalent listed in the
|
|
||||||
* xml element used for configuring TagConversion.
|
|
||||||
*
|
*
|
||||||
* @exception std::invalid_argument if TagConversion has not been
|
* @param metadataTypes contains a list of all supported
|
||||||
* configured yet, or if the AudioClip instance does not
|
* metadata types.
|
||||||
|
* @exception std::invalid_argument if the AudioClip instance does not
|
||||||
* have a uri field, or the file name contained in the uri
|
* have a uri field, or the file name contained in the uri
|
||||||
* field is invalid
|
* field is invalid.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
readTag() throw (std::invalid_argument);
|
readTag(Ptr<MetadataTypeContainer>::Ref metadataTypes)
|
||||||
|
throw (std::invalid_argument);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.25 $
|
Version : $Revision: 1.26 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClip.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClip.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -604,12 +604,9 @@ AudioClip :: getXmlDocumentString() const throw ()
|
||||||
* Read the metadata contained in the id3v2 tag of the binary sound file.
|
* Read the metadata contained in the id3v2 tag of the binary sound file.
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
AudioClip :: readTag() throw (std::invalid_argument)
|
AudioClip :: readTag(Ptr<MetadataTypeContainer>::Ref metadataTypes)
|
||||||
|
throw (std::invalid_argument)
|
||||||
{
|
{
|
||||||
if (!TagConversion::isConfigured()) {
|
|
||||||
throw std::invalid_argument("tag conversion table not loaded");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!getUri()) {
|
if (!getUri()) {
|
||||||
throw std::invalid_argument("audio clip has no uri field");
|
throw std::invalid_argument("audio clip has no uri field");
|
||||||
}
|
}
|
||||||
|
@ -618,72 +615,85 @@ AudioClip :: readTag() throw (std::invalid_argument)
|
||||||
throw std::invalid_argument("binary sound file not found");
|
throw std::invalid_argument("binary sound file not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
TagLib::FileRef genericFileRef(getUri()->c_str());
|
|
||||||
TagLib::Tag* tag = genericFileRef.tag();
|
|
||||||
if (!tag) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ptr<const Glib::ustring>::Ref value; // true = unicode
|
|
||||||
if (TagConversion::existsId3Tag("Artist")) {
|
|
||||||
value.reset(new const Glib::ustring(tag->artist().to8Bit(true)));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Artist"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Title")) {
|
|
||||||
value.reset(new const Glib::ustring(tag->title().to8Bit(true)));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Title"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Album")) {
|
|
||||||
value.reset(new const Glib::ustring(tag->album().to8Bit(true)));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Album"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Comment")) {
|
|
||||||
value.reset(new const Glib::ustring(tag->comment().to8Bit(true)));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Comment"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Genre")) {
|
|
||||||
value.reset(new const Glib::ustring(tag->genre().to8Bit(true)));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Genre"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Year")) {
|
|
||||||
std::stringstream yearString;
|
|
||||||
yearString << tag->year();
|
|
||||||
value.reset(new const Glib::ustring(yearString.str()));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Year"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TagConversion::existsId3Tag("Track")) {
|
|
||||||
std::stringstream trackString;
|
|
||||||
trackString << tag->track();
|
|
||||||
value.reset(new const Glib::ustring(trackString.str()));
|
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore("Track"));
|
|
||||||
}
|
|
||||||
|
|
||||||
TagLib::MPEG::File mpegFile(getUri()->c_str());
|
TagLib::MPEG::File mpegFile(getUri()->c_str());
|
||||||
TagLib::ID3v2::Tag* id3v2Tag = mpegFile.ID3v2Tag();
|
TagLib::ID3v2::Tag* id3v2Tag = mpegFile.ID3v2Tag();
|
||||||
if (!id3v2Tag) {
|
if (id3v2Tag) {
|
||||||
return;
|
Ptr<const MetadataType>::Ref metadata;
|
||||||
}
|
Ptr<const Glib::ustring>::Ref value;
|
||||||
|
|
||||||
TagLib::ID3v2::FrameListMap frameListMap = id3v2Tag->frameListMap();
|
TagLib::ID3v2::FrameListMap frameListMap = id3v2Tag->frameListMap();
|
||||||
TagLib::ID3v2::FrameListMap::ConstIterator it = frameListMap.begin();
|
TagLib::ID3v2::FrameListMap::ConstIterator it;
|
||||||
while (it != frameListMap.end()) {
|
|
||||||
const char* keyBuffer = it->first.data();
|
for (it = frameListMap.begin(); it != frameListMap.end(); ++it) {
|
||||||
std::string keyString(keyBuffer, 4);
|
std::string keyString(it->first.data(), 4);
|
||||||
if (TagConversion::existsId3Tag(keyString)) {
|
try {
|
||||||
TagLib::ID3v2::FrameList frameList = it->second;
|
metadata = metadataTypes->getById3Tag(keyString);
|
||||||
if (!frameList.isEmpty()) {
|
TagLib::ID3v2::FrameList frameList = it->second;
|
||||||
value.reset(new const Glib::ustring(frameList.front()
|
if (!frameList.isEmpty()) {
|
||||||
->toString().to8Bit(true)));
|
value.reset(new const Glib::ustring(
|
||||||
setMetadata(value, TagConversion::id3ToDublinCore(keyString));
|
frameList.front()->toString().to8Bit(true)));
|
||||||
|
setMetadata(value, *metadata->getDcName());
|
||||||
|
}
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
// id3v2 tag name not found in MetadataTypeContainer
|
||||||
|
// TODO: print warning?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++it;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
TagLib::FileRef genericFileRef(getUri()->c_str());
|
||||||
|
TagLib::Tag* tag = genericFileRef.tag();
|
||||||
|
if (tag) {
|
||||||
|
TagLib::String stringValue;
|
||||||
|
TagLib::uint intValue;
|
||||||
|
Ptr<const Glib::ustring>::Ref value;
|
||||||
|
|
||||||
|
stringValue = tag->artist();
|
||||||
|
if (!stringValue.isNull()) {
|
||||||
|
value.reset(new const Glib::ustring(stringValue.to8Bit(true)));
|
||||||
|
setMetadata(value, "dc:creator");
|
||||||
|
}
|
||||||
|
|
||||||
|
stringValue = tag->title();
|
||||||
|
if (!stringValue.isNull()) {
|
||||||
|
value.reset(new const Glib::ustring(stringValue.to8Bit(true)));
|
||||||
|
setMetadata(value, "dc:title");
|
||||||
|
}
|
||||||
|
|
||||||
|
stringValue = tag->album();
|
||||||
|
if (!stringValue.isNull()) {
|
||||||
|
value.reset(new const Glib::ustring(stringValue.to8Bit(true)));
|
||||||
|
setMetadata(value, "dc:source");
|
||||||
|
}
|
||||||
|
|
||||||
|
stringValue = tag->comment();
|
||||||
|
if (!stringValue.isNull()) {
|
||||||
|
value.reset(new const Glib::ustring(stringValue.to8Bit(true)));
|
||||||
|
setMetadata(value, "dc:description");
|
||||||
|
}
|
||||||
|
|
||||||
|
stringValue = tag->genre();
|
||||||
|
if (!stringValue.isNull()) {
|
||||||
|
value.reset(new const Glib::ustring(stringValue.to8Bit(true)));
|
||||||
|
setMetadata(value, "dc:type");
|
||||||
|
}
|
||||||
|
|
||||||
|
intValue = tag->year();
|
||||||
|
if (intValue != 0) {
|
||||||
|
std::stringstream yearString;
|
||||||
|
yearString << intValue;
|
||||||
|
value.reset(new const Glib::ustring(yearString.str()));
|
||||||
|
setMetadata(value, "ls:year");
|
||||||
|
}
|
||||||
|
|
||||||
|
intValue = tag->track();
|
||||||
|
if (intValue != 0) {
|
||||||
|
std::stringstream trackString;
|
||||||
|
trackString << intValue;
|
||||||
|
value.reset(new const Glib::ustring(trackString.str()));
|
||||||
|
setMetadata(value, "ls:track_num");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.12 $
|
Version : $Revision: 1.13 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClipTest.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClipTest.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -65,9 +65,15 @@ CPPUNIT_TEST_SUITE_REGISTRATION(AudioClipTest);
|
||||||
static const std::string configFileName = "etc/audioClip.xml";
|
static const std::string configFileName = "etc/audioClip.xml";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name of the configuration file for the tag conversion table.
|
* The name of the configuration file for the resource bundle.
|
||||||
*/
|
*/
|
||||||
static const std::string tagConversionConfig = "etc/tagConversionTable.xml";
|
static const std::string bundleConfigFileName = "etc/resourceBundle.xml";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the configuration file for the metadata type container.
|
||||||
|
*/
|
||||||
|
static const std::string metadataConfigFileName
|
||||||
|
= "etc/metadataTypeContainer.xml";
|
||||||
|
|
||||||
|
|
||||||
/* =============================================== local function prototypes */
|
/* =============================================== local function prototypes */
|
||||||
|
@ -81,6 +87,57 @@ static const std::string tagConversionConfig = "etc/tagConversionTable.xml";
|
||||||
void
|
void
|
||||||
AudioClipTest :: setUp(void) throw ()
|
AudioClipTest :: setUp(void) throw ()
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
|
new xmlpp::DomParser(configFileName, false));
|
||||||
|
const xmlpp::Document * document = parser->get_document();
|
||||||
|
const xmlpp::Element * root = document->get_root_node();
|
||||||
|
|
||||||
|
audioClip.reset(new AudioClip());
|
||||||
|
audioClip->configure(*root);
|
||||||
|
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
CPPUNIT_FAIL("semantic error in audio clip configuration file");
|
||||||
|
} catch (xmlpp::exception &e) {
|
||||||
|
std::string eMsg = "error parsing audio clip configuration file\n";
|
||||||
|
eMsg += e.what();
|
||||||
|
CPPUNIT_FAIL(eMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
Ptr<ResourceBundle>::Ref bundle;
|
||||||
|
try {
|
||||||
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
|
new xmlpp::DomParser(bundleConfigFileName, false));
|
||||||
|
const xmlpp::Document * document = parser->get_document();
|
||||||
|
const xmlpp::Element * root = document->get_root_node();
|
||||||
|
|
||||||
|
bundle = LocalizedObject::getBundle(*root);
|
||||||
|
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
CPPUNIT_FAIL("semantic error in configuration file");
|
||||||
|
} catch (std::exception &e) {
|
||||||
|
std::string eMsg = "error parsing audio clip configuration file\n";
|
||||||
|
eMsg += e.what();
|
||||||
|
CPPUNIT_FAIL(eMsg);
|
||||||
|
}
|
||||||
|
CPPUNIT_ASSERT(bundle);
|
||||||
|
|
||||||
|
try {
|
||||||
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
|
new xmlpp::DomParser(metadataConfigFileName, false));
|
||||||
|
const xmlpp::Document * document = parser->get_document();
|
||||||
|
const xmlpp::Element * root = document->get_root_node();
|
||||||
|
|
||||||
|
metadataTypes.reset(new MetadataTypeContainer(bundle));
|
||||||
|
metadataTypes->configure(*root);
|
||||||
|
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
CPPUNIT_FAIL("semantic error in metadata configuration file");
|
||||||
|
} catch (xmlpp::exception &e) {
|
||||||
|
std::string eMsg = "error parsing metadata configuration file\n";
|
||||||
|
eMsg += e.what();
|
||||||
|
CPPUNIT_FAIL(eMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,49 +157,32 @@ void
|
||||||
AudioClipTest :: firstTest(void)
|
AudioClipTest :: firstTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
try {
|
CPPUNIT_ASSERT(audioClip->getId()->getId() == 0x1);
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
Ptr<const boost::posix_time::time_duration>::Ref duration
|
||||||
new xmlpp::DomParser(configFileName, false));
|
= audioClip->getPlaylength();
|
||||||
const xmlpp::Document * document = parser->get_document();
|
CPPUNIT_ASSERT(duration->hours() == 0);
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
CPPUNIT_ASSERT(duration->minutes() == 18);
|
||||||
Ptr<AudioClip>::Ref audioClip(new AudioClip());
|
CPPUNIT_ASSERT(duration->seconds() == 30);
|
||||||
|
|
||||||
audioClip->configure(*root);
|
Ptr<const Glib::ustring>::Ref title = audioClip->getTitle();
|
||||||
|
CPPUNIT_ASSERT(title);
|
||||||
|
CPPUNIT_ASSERT(*title == "File Title txt");
|
||||||
|
|
||||||
CPPUNIT_ASSERT(audioClip->getId()->getId() == 0x1);
|
Ptr<const Glib::ustring>::Ref subject = audioClip
|
||||||
Ptr<const boost::posix_time::time_duration>::Ref duration
|
->getMetadata("dc:subject");
|
||||||
= audioClip->getPlaylength();
|
CPPUNIT_ASSERT(subject);
|
||||||
CPPUNIT_ASSERT(duration->hours() == 0);
|
CPPUNIT_ASSERT(*subject == "Keywords: qwe, asd, zcx");
|
||||||
CPPUNIT_ASSERT(duration->minutes() == 18);
|
|
||||||
CPPUNIT_ASSERT(duration->seconds() == 30);
|
|
||||||
|
|
||||||
Ptr<const Glib::ustring>::Ref title = audioClip->getTitle();
|
Ptr<const Glib::ustring>::Ref alternativeTitle = audioClip
|
||||||
CPPUNIT_ASSERT(title);
|
->getMetadata("dcterms:alternative");
|
||||||
CPPUNIT_ASSERT(*title == "File Title txt");
|
CPPUNIT_ASSERT(alternativeTitle);
|
||||||
|
CPPUNIT_ASSERT(*alternativeTitle ==
|
||||||
|
"Alternative File Title ín sőmé %$#@* LÁNGŰAGÉ");
|
||||||
|
|
||||||
Ptr<const Glib::ustring>::Ref subject = audioClip
|
CPPUNIT_ASSERT(*audioClip->getXmlElementString() ==
|
||||||
->getMetadata("dc:subject");
|
"<audioClip id=\"0000000000000001\" "
|
||||||
CPPUNIT_ASSERT(subject);
|
"playlength=\"00:18:30.000000\" "
|
||||||
CPPUNIT_ASSERT(*subject == "Keywords: qwe, asd, zcx");
|
"title=\"File Title txt\"/>");
|
||||||
|
|
||||||
Ptr<const Glib::ustring>::Ref alternativeTitle = audioClip
|
|
||||||
->getMetadata("dcterms:alternative");
|
|
||||||
CPPUNIT_ASSERT(alternativeTitle);
|
|
||||||
CPPUNIT_ASSERT(*alternativeTitle ==
|
|
||||||
"Alternative File Title ín sőmé %$#@* LÁNGŰAGÉ");
|
|
||||||
|
|
||||||
CPPUNIT_ASSERT(*audioClip->getXmlElementString() ==
|
|
||||||
"<audioClip id=\"0000000000000001\" "
|
|
||||||
"playlength=\"00:18:30.000000\" "
|
|
||||||
"title=\"File Title txt\"/>");
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL("semantic error in configuration file");
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
std::string eMsg = "error parsing configuration file\n";
|
|
||||||
eMsg += e.what();
|
|
||||||
CPPUNIT_FAIL(eMsg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -153,23 +193,6 @@ void
|
||||||
AudioClipTest :: conversionTest(void)
|
AudioClipTest :: conversionTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<AudioClip>::Ref audioClip(new AudioClip());
|
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(configFileName, false));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
|
|
||||||
audioClip->configure(*root);
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL("semantic error in configuration file");
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
std::string eMsg = "error parsing configuration file\n";
|
|
||||||
eMsg += e.what();
|
|
||||||
CPPUNIT_FAIL(eMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ptr<Playable>::Ref playable = audioClip;
|
Ptr<Playable>::Ref playable = audioClip;
|
||||||
CPPUNIT_ASSERT(playable->getType() == Playable::AudioClipType);
|
CPPUNIT_ASSERT(playable->getType() == Playable::AudioClipType);
|
||||||
|
|
||||||
|
@ -188,24 +211,10 @@ void
|
||||||
AudioClipTest :: tagTest(void)
|
AudioClipTest :: tagTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(tagConversionConfig, false));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
TagConversion::configure(*root);
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL(e.what());
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
CPPUNIT_FAIL(e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ptr<AudioClip>::Ref audioClip(new AudioClip());
|
|
||||||
|
|
||||||
Ptr<std::string>::Ref uri(new std::string("var/test10001.mp3"));
|
Ptr<std::string>::Ref uri(new std::string("var/test10001.mp3"));
|
||||||
audioClip->setUri(uri);
|
audioClip->setUri(uri);
|
||||||
try {
|
try {
|
||||||
audioClip->readTag();
|
audioClip->readTag(metadataTypes);
|
||||||
} catch (std::invalid_argument &e) {
|
} catch (std::invalid_argument &e) {
|
||||||
CPPUNIT_FAIL(e.what());
|
CPPUNIT_FAIL(e.what());
|
||||||
}
|
}
|
||||||
|
@ -227,21 +236,6 @@ void
|
||||||
AudioClipTest :: marshallingTest(void)
|
AudioClipTest :: marshallingTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<AudioClip>::Ref audioClip(new AudioClip());
|
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(configFileName, false));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
|
|
||||||
audioClip->configure(*root);
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL(e.what());
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
CPPUNIT_FAIL(e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
XmlRpc::XmlRpcValue xmlRpcValue = *audioClip;
|
XmlRpc::XmlRpcValue xmlRpcValue = *audioClip;
|
||||||
CPPUNIT_ASSERT(xmlRpcValue.hasMember("audioClip"));
|
CPPUNIT_ASSERT(xmlRpcValue.hasMember("audioClip"));
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.4 $
|
Version : $Revision: 1.5 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClipTest.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/AudioClipTest.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -41,6 +41,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <cppunit/extensions/HelperMacros.h>
|
#include <cppunit/extensions/HelperMacros.h>
|
||||||
|
#include "LiveSupport/Core/AudioClip.h"
|
||||||
|
|
||||||
|
|
||||||
namespace LiveSupport {
|
namespace LiveSupport {
|
||||||
|
@ -58,7 +59,7 @@ namespace Core {
|
||||||
* Unit test for the AudioClip class.
|
* Unit test for the AudioClip class.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.4 $
|
* @version $Revision: 1.5 $
|
||||||
* @see AudioClip
|
* @see AudioClip
|
||||||
*/
|
*/
|
||||||
class AudioClipTest : public CPPUNIT_NS::TestFixture
|
class AudioClipTest : public CPPUNIT_NS::TestFixture
|
||||||
|
@ -70,6 +71,17 @@ class AudioClipTest : public CPPUNIT_NS::TestFixture
|
||||||
CPPUNIT_TEST(marshallingTest);
|
CPPUNIT_TEST(marshallingTest);
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
* The audio clip to test.
|
||||||
|
*/
|
||||||
|
Ptr<AudioClip>::Ref audioClip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The list of supported metadata types.
|
||||||
|
*/
|
||||||
|
Ptr<MetadataTypeContainer>::Ref metadataTypes;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: maroy $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.2 $
|
Version : $Revision: 1.3 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/MetadataTypeContainerTest.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/MetadataTypeContainerTest.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -83,19 +83,47 @@ static const std::string configFileName = "etc/metadataTypeContainer.xml";
|
||||||
void
|
void
|
||||||
MetadataTypeContainerTest :: setUp(void) throw ()
|
MetadataTypeContainerTest :: setUp(void) throw ()
|
||||||
{
|
{
|
||||||
|
Ptr<ResourceBundle>::Ref rootBundle;
|
||||||
try {
|
try {
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
new xmlpp::DomParser(bundleConfigFileName, true));
|
new xmlpp::DomParser(bundleConfigFileName, true));
|
||||||
const xmlpp::Document * document = parser->get_document();
|
const xmlpp::Document * document = parser->get_document();
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
const xmlpp::Element * root = document->get_root_node();
|
||||||
|
|
||||||
bundle = LocalizedObject::getBundle(*root);
|
rootBundle = LocalizedObject::getBundle(*root);
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
} catch (std::invalid_argument &e) {
|
||||||
CPPUNIT_FAIL("semantic error in configuration file");
|
CPPUNIT_FAIL("semantic error in bundle configuration file");
|
||||||
} catch (std::exception &e) {
|
} catch (std::exception &e) {
|
||||||
CPPUNIT_FAIL(e.what());
|
CPPUNIT_FAIL(std::string("XML error in bundle configuration file:\n")
|
||||||
|
+ e.what());
|
||||||
}
|
}
|
||||||
CPPUNIT_ASSERT(bundle.get());
|
CPPUNIT_ASSERT(rootBundle);
|
||||||
|
|
||||||
|
UErrorCode icuError = U_ZERO_ERROR;
|
||||||
|
bundle.reset(new ResourceBundle(rootBundle->get("metadata", icuError)));
|
||||||
|
CPPUNIT_ASSERT(U_SUCCESS(icuError));
|
||||||
|
CPPUNIT_ASSERT(bundle);
|
||||||
|
|
||||||
|
try {
|
||||||
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
|
new xmlpp::DomParser(configFileName, true));
|
||||||
|
const xmlpp::Document * document = parser->get_document();
|
||||||
|
const xmlpp::Element * root = document->get_root_node();
|
||||||
|
|
||||||
|
container.reset(new MetadataTypeContainer(bundle));
|
||||||
|
container->configure(*root);
|
||||||
|
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
CPPUNIT_FAIL(std::string("semantic error in metadata container"
|
||||||
|
" configuration file:\n")
|
||||||
|
+ e.what());
|
||||||
|
} catch (xmlpp::exception &e) {
|
||||||
|
CPPUNIT_FAIL(std::string("XML error in metadata container"
|
||||||
|
" configuration file:\n")
|
||||||
|
+ e.what());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,7 +133,6 @@ MetadataTypeContainerTest :: setUp(void) throw ()
|
||||||
void
|
void
|
||||||
MetadataTypeContainerTest :: tearDown(void) throw ()
|
MetadataTypeContainerTest :: tearDown(void) throw ()
|
||||||
{
|
{
|
||||||
bundle.reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,27 +144,8 @@ MetadataTypeContainerTest :: firstTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<const MetadataType>::Ref metadataType;
|
Ptr<const MetadataType>::Ref metadataType;
|
||||||
Ptr<MetadataTypeContainer>::Ref container;
|
|
||||||
bool gotException;
|
bool gotException;
|
||||||
|
|
||||||
// test configuration from a configuration file
|
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(configFileName, true));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
|
|
||||||
container.reset(new MetadataTypeContainer(bundle));
|
|
||||||
container->configure(*root);
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("semantic error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("XML error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
// test double-configuration
|
// test double-configuration
|
||||||
try {
|
try {
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
Ptr<xmlpp::DomParser>::Ref parser(
|
||||||
|
@ -163,8 +171,8 @@ MetadataTypeContainerTest :: firstTest(void)
|
||||||
metadataType = container->getByDcName("dc:creator");
|
metadataType = container->getByDcName("dc:creator");
|
||||||
|
|
||||||
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
||||||
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE2");
|
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE1");
|
||||||
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "dc_creator");
|
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "creator");
|
||||||
|
|
||||||
// a negative check on the DC name
|
// a negative check on the DC name
|
||||||
CPPUNIT_ASSERT(!container->existsByDcName("dc:nonExistent"));
|
CPPUNIT_ASSERT(!container->existsByDcName("dc:nonExistent"));
|
||||||
|
@ -178,19 +186,19 @@ MetadataTypeContainerTest :: firstTest(void)
|
||||||
CPPUNIT_ASSERT(gotException);
|
CPPUNIT_ASSERT(gotException);
|
||||||
|
|
||||||
// a simple positive check on the ID3v2 tag
|
// a simple positive check on the ID3v2 tag
|
||||||
CPPUNIT_ASSERT(container->existsById3Tag("TPE2"));
|
CPPUNIT_ASSERT(container->existsById3Tag("TPE1"));
|
||||||
metadataType = container->getById3Tag("TPE2");
|
metadataType = container->getById3Tag("TPE1");
|
||||||
|
|
||||||
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
||||||
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE2");
|
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE1");
|
||||||
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "dc_creator");
|
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "creator");
|
||||||
|
|
||||||
// a negative check on the DC name
|
// a negative check on the ID3v2 tag
|
||||||
CPPUNIT_ASSERT(!container->existsByDcName("NonExistentTag"));
|
CPPUNIT_ASSERT(!container->existsById3Tag("NonExistentTag"));
|
||||||
|
|
||||||
gotException = false;
|
gotException = false;
|
||||||
try {
|
try {
|
||||||
container->getByDcName("NonExistentTag");
|
container->getById3Tag("NonExistentTag");
|
||||||
} catch (std::invalid_argument &e) {
|
} catch (std::invalid_argument &e) {
|
||||||
gotException = true;
|
gotException = true;
|
||||||
}
|
}
|
||||||
|
@ -206,46 +214,31 @@ MetadataTypeContainerTest :: iteratorTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<const MetadataType>::Ref metadataType;
|
Ptr<const MetadataType>::Ref metadataType;
|
||||||
Ptr<MetadataTypeContainer>::Ref container;
|
|
||||||
MetadataTypeContainer::Vector::const_iterator it;
|
MetadataTypeContainer::Vector::const_iterator it;
|
||||||
MetadataTypeContainer::Vector::const_iterator end;
|
MetadataTypeContainer::Vector::const_iterator end;
|
||||||
|
|
||||||
|
// check the first two elements in the container
|
||||||
|
it = container->begin();
|
||||||
|
end = container->end();
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT(it != end);
|
||||||
|
metadataType = (Ptr<const MetadataType>::Ref) *it;
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:title");
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TIT2");
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "title");
|
||||||
|
|
||||||
|
++it;
|
||||||
|
CPPUNIT_ASSERT(it != end);
|
||||||
|
metadataType = (Ptr<const MetadataType>::Ref) *it;
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE1");
|
||||||
|
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "creator");
|
||||||
|
|
||||||
// test on an empty container
|
// test on an empty container
|
||||||
container.reset(new MetadataTypeContainer(bundle));
|
container.reset(new MetadataTypeContainer(bundle));
|
||||||
it = container->begin();
|
it = container->begin();
|
||||||
end = container->end();
|
end = container->end();
|
||||||
CPPUNIT_ASSERT(it == end);
|
CPPUNIT_ASSERT(it == end);
|
||||||
container.reset();
|
|
||||||
|
|
||||||
// test configuration from a configuration file
|
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(configFileName, true));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
|
|
||||||
container.reset(new MetadataTypeContainer(bundle));
|
|
||||||
container->configure(*root);
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("semantic error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("XML error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
// cycle through the iterator, should be one element
|
|
||||||
it = container->begin();
|
|
||||||
end = container->end();
|
|
||||||
while (it != end) {
|
|
||||||
metadataType = (Ptr<const MetadataType>::Ref) *it;
|
|
||||||
CPPUNIT_ASSERT(*metadataType->getDcName() == "dc:creator");
|
|
||||||
CPPUNIT_ASSERT(*metadataType->getId3Tag() == "TPE2");
|
|
||||||
CPPUNIT_ASSERT(*metadataType->getLocalizationKey() == "dc_creator");
|
|
||||||
|
|
||||||
++it;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,25 +250,6 @@ MetadataTypeContainerTest :: localizedTest(void)
|
||||||
throw (CPPUNIT_NS::Exception)
|
throw (CPPUNIT_NS::Exception)
|
||||||
{
|
{
|
||||||
Ptr<const MetadataType>::Ref metadataType;
|
Ptr<const MetadataType>::Ref metadataType;
|
||||||
Ptr<MetadataTypeContainer>::Ref container;
|
|
||||||
|
|
||||||
// test configuration from a configuration file
|
|
||||||
try {
|
|
||||||
Ptr<xmlpp::DomParser>::Ref parser(
|
|
||||||
new xmlpp::DomParser(configFileName, true));
|
|
||||||
const xmlpp::Document * document = parser->get_document();
|
|
||||||
const xmlpp::Element * root = document->get_root_node();
|
|
||||||
|
|
||||||
container.reset(new MetadataTypeContainer(bundle));
|
|
||||||
container->configure(*root);
|
|
||||||
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("semantic error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
} catch (xmlpp::exception &e) {
|
|
||||||
CPPUNIT_FAIL(std::string("XML error in configuration file:\n")
|
|
||||||
+ e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
CPPUNIT_ASSERT(container->existsByDcName("dc:creator"));
|
CPPUNIT_ASSERT(container->existsByDcName("dc:creator"));
|
||||||
metadataType = container->getByDcName("dc:creator");
|
metadataType = container->getByDcName("dc:creator");
|
||||||
|
@ -283,36 +257,41 @@ MetadataTypeContainerTest :: localizedTest(void)
|
||||||
CPPUNIT_ASSERT(*metadataType->getLocalizedName() == "Creator");
|
CPPUNIT_ASSERT(*metadataType->getLocalizedName() == "Creator");
|
||||||
|
|
||||||
UErrorCode status = U_ZERO_ERROR;
|
UErrorCode status = U_ZERO_ERROR;
|
||||||
|
Ptr<ResourceBundle>::Ref rootBundle;
|
||||||
Ptr<ResourceBundle>::Ref huBundle;
|
Ptr<ResourceBundle>::Ref huBundle;
|
||||||
Ptr<ResourceBundle>::Ref jpBundle;
|
Ptr<ResourceBundle>::Ref jpBundle;
|
||||||
Ptr<const Glib::ustring>::Ref ustr;
|
Ptr<const Glib::ustring>::Ref ustr;
|
||||||
|
|
||||||
// test with hungarian
|
// test with hungarian
|
||||||
huBundle.reset(new ResourceBundle("./tmp/" PACKAGE_NAME, "hu", status));
|
rootBundle.reset(new ResourceBundle("./tmp/" PACKAGE_NAME, "hu", status));
|
||||||
|
CPPUNIT_ASSERT(U_SUCCESS(status));
|
||||||
|
huBundle.reset(new ResourceBundle(rootBundle->get("metadata", status)));
|
||||||
CPPUNIT_ASSERT(U_SUCCESS(status));
|
CPPUNIT_ASSERT(U_SUCCESS(status));
|
||||||
container->setBundle(huBundle);
|
container->setBundle(huBundle);
|
||||||
|
|
||||||
ustr = metadataType->getLocalizedName();
|
ustr = metadataType->getLocalizedName();
|
||||||
CPPUNIT_ASSERT((*ustr)[0] == 0x004c); // 'L'
|
CPPUNIT_ASSERT(ustr->length() == 6);
|
||||||
CPPUNIT_ASSERT((*ustr)[1] == 0x00e9); // 'e' with acute
|
CPPUNIT_ASSERT((*ustr)[0] == 0x0045); // 'E'
|
||||||
CPPUNIT_ASSERT((*ustr)[2] == 0x0074); // 't'
|
CPPUNIT_ASSERT((*ustr)[1] == 0x006C); // 'l'
|
||||||
CPPUNIT_ASSERT((*ustr)[3] == 0x0072); // 'r'
|
CPPUNIT_ASSERT((*ustr)[2] == 0x0151); // 'o' with double acute
|
||||||
CPPUNIT_ASSERT((*ustr)[4] == 0x0065); // 'e'
|
CPPUNIT_ASSERT((*ustr)[3] == 0x0061); // 'a'
|
||||||
CPPUNIT_ASSERT((*ustr)[5] == 0x0068); // 'h'
|
CPPUNIT_ASSERT((*ustr)[4] == 0x0064); // 'd'
|
||||||
CPPUNIT_ASSERT((*ustr)[6] == 0x006f); // 'o'
|
CPPUNIT_ASSERT((*ustr)[5] == 0x00F3); // 'o' with acute
|
||||||
CPPUNIT_ASSERT((*ustr)[7] == 0x007a); // 'z'
|
|
||||||
CPPUNIT_ASSERT((*ustr)[8] == 0x00f3); // 'o' with acute
|
|
||||||
|
|
||||||
// test with japanese
|
// test with japanese
|
||||||
jpBundle.reset(new ResourceBundle("./tmp/" PACKAGE_NAME, "jp", status));
|
rootBundle.reset(new ResourceBundle("./tmp/" PACKAGE_NAME, "jp", status));
|
||||||
|
CPPUNIT_ASSERT(U_SUCCESS(status));
|
||||||
|
jpBundle.reset(new ResourceBundle(rootBundle->get("metadata", status)));
|
||||||
CPPUNIT_ASSERT(U_SUCCESS(status));
|
CPPUNIT_ASSERT(U_SUCCESS(status));
|
||||||
container->setBundle(jpBundle);
|
container->setBundle(jpBundle);
|
||||||
|
|
||||||
ustr = metadataType->getLocalizedName();
|
ustr = metadataType->getLocalizedName();
|
||||||
|
CPPUNIT_ASSERT(ustr->length() == 6);
|
||||||
CPPUNIT_ASSERT((*ustr)[0] == 0x30af); // katakana ku
|
CPPUNIT_ASSERT((*ustr)[0] == 0x30af); // katakana ku
|
||||||
CPPUNIT_ASSERT((*ustr)[1] == 0x30ea); // katakana ri
|
CPPUNIT_ASSERT((*ustr)[1] == 0x30ea); // katakana ri
|
||||||
CPPUNIT_ASSERT((*ustr)[2] == 0x30a8); // katakana e
|
CPPUNIT_ASSERT((*ustr)[2] == 0x30a8); // katakana e
|
||||||
CPPUNIT_ASSERT((*ustr)[3] == 0x30fc); // katakana '-'
|
CPPUNIT_ASSERT((*ustr)[3] == 0x30fc); // katakana '-'
|
||||||
CPPUNIT_ASSERT((*ustr)[4] == 0x30bf); // katakana ta
|
CPPUNIT_ASSERT((*ustr)[4] == 0x30bf); // katakana ta
|
||||||
|
CPPUNIT_ASSERT((*ustr)[5] == 0x30fc); // katakana '-'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: maroy $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.2 $
|
Version : $Revision: 1.3 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/MetadataTypeContainerTest.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/MetadataTypeContainerTest.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -57,8 +57,8 @@ namespace Core {
|
||||||
/**
|
/**
|
||||||
* Unit test for the MetadataTypeContainer class.
|
* Unit test for the MetadataTypeContainer class.
|
||||||
*
|
*
|
||||||
* @author $Author: maroy $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.2 $
|
* @version $Revision: 1.3 $
|
||||||
* @see MetadataTypeContainer
|
* @see MetadataTypeContainer
|
||||||
*/
|
*/
|
||||||
class MetadataTypeContainerTest : public CPPUNIT_NS::TestFixture
|
class MetadataTypeContainerTest : public CPPUNIT_NS::TestFixture
|
||||||
|
@ -74,7 +74,12 @@ class MetadataTypeContainerTest : public CPPUNIT_NS::TestFixture
|
||||||
/**
|
/**
|
||||||
* The resource bundle used by the container.
|
* The resource bundle used by the container.
|
||||||
*/
|
*/
|
||||||
Ptr<ResourceBundle>::Ref bundle;
|
Ptr<ResourceBundle>::Ref bundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The metadata container used in the tests.
|
||||||
|
*/
|
||||||
|
Ptr<MetadataTypeContainer>::Ref container;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple test.
|
* A simple test.
|
||||||
|
|
|
@ -6,6 +6,9 @@ hu:table
|
||||||
bar:string { "bár" }
|
bar:string { "bár" }
|
||||||
}
|
}
|
||||||
|
|
||||||
dc_creator:string { "Létrehozó" }
|
metadata:table
|
||||||
|
{
|
||||||
|
creator:string { "Előadó" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ jp:table
|
||||||
bar:string { "ばる" }
|
bar:string { "ばる" }
|
||||||
}
|
}
|
||||||
|
|
||||||
dc_creator:string { "クリエーター" }
|
metadata:table
|
||||||
|
{
|
||||||
|
creator:string { "クリエーター" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,44 @@ root:table
|
||||||
aMessage3Args:string { "p0: {0}, p2: {2}, p1: {1}" }
|
aMessage3Args:string { "p0: {0}, p2: {2}, p1: {1}" }
|
||||||
}
|
}
|
||||||
|
|
||||||
dc_creator:string { "Creator" }
|
metadata:table
|
||||||
|
{
|
||||||
|
title:string { "Title" }
|
||||||
|
creator:string { "Creator" }
|
||||||
|
album:string { "Album" }
|
||||||
|
year:string { "Year" }
|
||||||
|
genre:string { "Genre" }
|
||||||
|
description:string { "Description" }
|
||||||
|
format:string { "Format" }
|
||||||
|
length:string { "Length" }
|
||||||
|
bpm:string { "BPM" }
|
||||||
|
rating:string { "Rating" }
|
||||||
|
encoded_by:string { "Encoded by" }
|
||||||
|
track_number:string { "Track number" }
|
||||||
|
disc_number:string { "Disc number" }
|
||||||
|
mood:string { "Mood" }
|
||||||
|
publishing_label:string { "Publishing label" }
|
||||||
|
composer:string { "Composer" }
|
||||||
|
bitrate:string { "Bitrate" }
|
||||||
|
channels:string { "Channels" }
|
||||||
|
sample_rate:string { "Sample rate" }
|
||||||
|
encoding_software:string { "Encoding software" }
|
||||||
|
checksum:string { "Checksum" }
|
||||||
|
lyrics:string { "Lyrics" }
|
||||||
|
orchestra_or_band:string { "Orchestra or band" }
|
||||||
|
conductor:string { "Conductor" }
|
||||||
|
lyricist:string { "Lyricist" }
|
||||||
|
original_lyricist:string { "Original lyricist" }
|
||||||
|
radio_station_name:string { "Radio station name" }
|
||||||
|
audio_file_info_url:string { "File info web page" }
|
||||||
|
artist_url:string { "Artist web page" }
|
||||||
|
audio_source_url:string { "Source web page" }
|
||||||
|
radio_station_url:string { "Radio station web page" }
|
||||||
|
buy_cd_url:string { "Buy CD web page" }
|
||||||
|
isrc_number:string { "ISRC number" }
|
||||||
|
catalog_number:string { "Catalog number" }
|
||||||
|
original_artist:string { "Original artist" }
|
||||||
|
copyright:string { "Copyright" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,144 +147,141 @@
|
||||||
|
|
||||||
<metadataTypeContainer>
|
<metadataTypeContainer>
|
||||||
<metadataType dcName = "dc:title"
|
<metadataType dcName = "dc:title"
|
||||||
id3Tag = "Title"
|
id3Tag = "TIT2"
|
||||||
localizationKey = "title"
|
localizationKey = "title"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:creator"
|
<metadataType dcName = "dc:creator"
|
||||||
id3Tag = "Artist"
|
id3Tag = "TPE1"
|
||||||
localizationKey = "creator"
|
localizationKey = "creator"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:source"
|
<metadataType dcName = "dc:source"
|
||||||
id3Tag = "Album"
|
id3Tag = "TALB"
|
||||||
localizationKey = "album"
|
localizationKey = "album"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:year"
|
<metadataType dcName = "ls:year"
|
||||||
id3Tag = "Year"
|
id3Tag = "TYER"
|
||||||
localizationKey = "year"
|
localizationKey = "year"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:type"
|
<metadataType dcName = "dc:type"
|
||||||
id3Tag = "Genre"
|
id3Tag = "TCON"
|
||||||
localizationKey = "genre"
|
localizationKey = "genre"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:description"
|
<metadataType dcName = "dc:description"
|
||||||
id3Tag = "Comment"
|
id3Tag = "COMM"
|
||||||
localizationKey = "description"
|
localizationKey = "description"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:format"
|
<metadataType dcName = "dc:format"
|
||||||
localizationKey = "format"
|
localizationKey = "format"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:bpm"
|
<metadataType dcName = "ls:bpm"
|
||||||
id3Tag = "BPM"
|
id3Tag = "TBPM"
|
||||||
localizationKey = "bpm"
|
localizationKey = "bpm"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:rating"
|
<metadataType dcName = "ls:rating"
|
||||||
id3Tag = "Rating"
|
id3Tag = "POPM"
|
||||||
localizationKey = "rating"
|
localizationKey = "rating"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dcterms:extent"
|
<metadataType dcName = "dcterms:extent"
|
||||||
localizationKey = "length"
|
localizationKey = "length"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:encoded_by"
|
<metadataType dcName = "ls:encoded_by"
|
||||||
id3Tag = "Encoded by"
|
id3Tag = "TENC"
|
||||||
localizationKey = "encoded_by"
|
localizationKey = "encoded_by"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:track_num"
|
<metadataType dcName = "ls:track_num"
|
||||||
id3Tag = "Track"
|
id3Tag = "TRCK"
|
||||||
localizationKey = "track_number"
|
localizationKey = "track_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:disc_num"
|
<metadataType dcName = "ls:disc_num"
|
||||||
id3Tag = "Disk"
|
id3Tag = "TPOS"
|
||||||
localizationKey = "disc_number"
|
localizationKey = "disc_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:mood"
|
<metadataType dcName = "ls:mood"
|
||||||
id3Tag = "Mood"
|
id3Tag = "TMOO"
|
||||||
localizationKey = "mood"
|
localizationKey = "mood"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:publisher"
|
<metadataType dcName = "dc:publisher"
|
||||||
id3Tag = "Label"
|
id3Tag = "TPUB"
|
||||||
localizationKey = "publishing_label"
|
localizationKey = "publishing_label"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:composer"
|
<metadataType dcName = "ls:composer"
|
||||||
id3Tag = "Composer"
|
id3Tag = "TCOM"
|
||||||
localizationKey = "composer"
|
localizationKey = "composer"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:bitrate"
|
<metadataType dcName = "ls:bitrate"
|
||||||
id3Tag = "Bitrate"
|
|
||||||
localizationKey = "bitrate"
|
localizationKey = "bitrate"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:channels"
|
<metadataType dcName = "ls:channels"
|
||||||
id3Tag = "Channels"
|
|
||||||
localizationKey = "channels"
|
localizationKey = "channels"
|
||||||
/> <!-- one of "", "Mono", "Stereo" or "5.1" -->
|
/>
|
||||||
<metadataType dcName = "ls:samplerate"
|
<metadataType dcName = "ls:samplerate"
|
||||||
id3Tag = "Samplerate"
|
|
||||||
localizationKey = "sample_rate"
|
localizationKey = "sample_rate"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:encoder"
|
<metadataType dcName = "ls:encoder"
|
||||||
id3Tag = "Encoder"
|
id3Tag = "TSSE"
|
||||||
localizationKey = "encoding_software"
|
localizationKey = "encoding_software"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:crc"
|
<metadataType dcName = "ls:crc"
|
||||||
id3Tag = "CRC"
|
|
||||||
localizationKey = "checksum"
|
localizationKey = "checksum"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:lyrics"
|
<metadataType dcName = "ls:lyrics"
|
||||||
id3Tag = "Lyrics"
|
|
||||||
localizationKey = "lyrics"
|
localizationKey = "lyrics"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:orchestra"
|
<metadataType dcName = "ls:orchestra"
|
||||||
id3Tag = "Orchestra or band"
|
id3Tag = "TPE2"
|
||||||
localizationKey = "orchestra_or_band"
|
localizationKey = "orchestra_or_band"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:conductor"
|
<metadataType dcName = "ls:conductor"
|
||||||
id3Tag = "Conductor"
|
id3Tag = "TPE3"
|
||||||
localizationKey = "conductor"
|
localizationKey = "conductor"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:lyricist"
|
<metadataType dcName = "ls:lyricist"
|
||||||
id3Tag = "Lyricist"
|
id3Tag = "TEXT"
|
||||||
localizationKey = "lyricist"
|
localizationKey = "lyricist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:originallyricist"
|
<metadataType dcName = "ls:originallyricist"
|
||||||
id3Tag = "Original lyricist"
|
id3Tag = "TOLY"
|
||||||
localizationKey = "original_lyricist"
|
localizationKey = "original_lyricist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:radiostationname"
|
<metadataType dcName = "ls:radiostationname"
|
||||||
id3Tag = "Radio station name"
|
id3Tag = "TRSN"
|
||||||
localizationKey = "radio_station_name"
|
localizationKey = "radio_station_name"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:audiofileinfourl"
|
<metadataType dcName = "ls:audiofileinfourl"
|
||||||
id3Tag = "Audio file information web page"
|
id3Tag = "WOAF"
|
||||||
localizationKey = "audio_file_info_url"
|
localizationKey = "audio_file_info_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:artisturl"
|
<metadataType dcName = "ls:artisturl"
|
||||||
id3Tag = "Artist web page"
|
id3Tag = "WOAR"
|
||||||
localizationKey = "artist_url"
|
localizationKey = "artist_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:audiosourceurl"
|
<metadataType dcName = "ls:audiosourceurl"
|
||||||
id3Tag = "Audio source web page"
|
id3Tag = "WOAS"
|
||||||
localizationKey = "audio_source_url"
|
localizationKey = "audio_source_url"
|
||||||
/>
|
/>
|
||||||
|
<metadataType dcName = "ls:radiostationurl"
|
||||||
|
id3Tag = "WORS"
|
||||||
|
localizationKey = "radio_station_url"
|
||||||
|
/>
|
||||||
<metadataType dcName = "ls:buycdurl"
|
<metadataType dcName = "ls:buycdurl"
|
||||||
id3Tag = "Buy CD web page"
|
id3Tag = "WPAY"
|
||||||
localizationKey = "buy_cd_url"
|
localizationKey = "buy_cd_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:isrcnumber"
|
<metadataType dcName = "ls:isrcnumber"
|
||||||
id3Tag = "ISRC number"
|
id3Tag = "TSRC"
|
||||||
localizationKey = "isrc_number"
|
localizationKey = "isrc_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:catalognumber"
|
<metadataType dcName = "ls:catalognumber"
|
||||||
id3Tag = "Catalog"
|
|
||||||
localizationKey = "catalog_number"
|
localizationKey = "catalog_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:originalartist"
|
<metadataType dcName = "ls:originalartist"
|
||||||
id3Tag = "Original Artist"
|
id3Tag = "TOPE"
|
||||||
localizationKey = "original_artist"
|
localizationKey = "original_artist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:rights"
|
<metadataType dcName = "dc:rights"
|
||||||
id3Tag = "Copyright"
|
id3Tag = "TCOP"
|
||||||
localizationKey = "copyright"
|
localizationKey = "copyright"
|
||||||
/>
|
/>
|
||||||
<!-- TODO: finish; the above are only the Main and Music tabs -->
|
|
||||||
</metadataTypeContainer>
|
</metadataTypeContainer>
|
||||||
</gLiveSupport>
|
</gLiveSupport>
|
||||||
|
|
||||||
|
|
|
@ -147,140 +147,141 @@
|
||||||
|
|
||||||
<metadataTypeContainer>
|
<metadataTypeContainer>
|
||||||
<metadataType dcName = "dc:title"
|
<metadataType dcName = "dc:title"
|
||||||
id3Tag = "Title"
|
id3Tag = "TIT2"
|
||||||
localizationKey = "title"
|
localizationKey = "title"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:creator"
|
<metadataType dcName = "dc:creator"
|
||||||
id3Tag = "Artist"
|
id3Tag = "TPE1"
|
||||||
localizationKey = "creator"
|
localizationKey = "creator"
|
||||||
/>
|
/>
|
||||||
|
<metadataType dcName = "dc:source"
|
||||||
|
id3Tag = "TALB"
|
||||||
|
localizationKey = "album"
|
||||||
|
/>
|
||||||
|
<metadataType dcName = "ls:year"
|
||||||
|
id3Tag = "TYER"
|
||||||
|
localizationKey = "year"
|
||||||
|
/>
|
||||||
<metadataType dcName = "dc:type"
|
<metadataType dcName = "dc:type"
|
||||||
id3Tag = "Genre"
|
id3Tag = "TCON"
|
||||||
localizationKey = "genre"
|
localizationKey = "genre"
|
||||||
/>
|
/>
|
||||||
|
<metadataType dcName = "dc:description"
|
||||||
|
id3Tag = "COMM"
|
||||||
|
localizationKey = "description"
|
||||||
|
/>
|
||||||
<metadataType dcName = "dc:format"
|
<metadataType dcName = "dc:format"
|
||||||
localizationKey = "format"
|
localizationKey = "format"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dcterms:extent"
|
|
||||||
localizationKey = "length"
|
|
||||||
/>
|
|
||||||
<metadataType dcName = "dc:source"
|
|
||||||
id3Tag = "Album"
|
|
||||||
localizationKey = "album"
|
|
||||||
/>
|
|
||||||
<metadataType dcName = "ls:year"
|
|
||||||
id3Tag = "Year"
|
|
||||||
localizationKey = "year"
|
|
||||||
/>
|
|
||||||
<metadataType dcName = "ls:bpm"
|
<metadataType dcName = "ls:bpm"
|
||||||
id3Tag = "BPM"
|
id3Tag = "TBPM"
|
||||||
localizationKey = "bpm"
|
localizationKey = "bpm"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:rating"
|
<metadataType dcName = "ls:rating"
|
||||||
id3Tag = "Rating"
|
id3Tag = "POPM"
|
||||||
localizationKey = "rating"
|
localizationKey = "rating"
|
||||||
/>
|
/>
|
||||||
|
<metadataType dcName = "dcterms:extent"
|
||||||
|
localizationKey = "length"
|
||||||
|
/>
|
||||||
<metadataType dcName = "ls:encoded_by"
|
<metadataType dcName = "ls:encoded_by"
|
||||||
id3Tag = "Encoded by"
|
id3Tag = "TENC"
|
||||||
localizationKey = "encoded_by"
|
localizationKey = "encoded_by"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:track_num"
|
<metadataType dcName = "ls:track_num"
|
||||||
id3Tag = "Track"
|
id3Tag = "TRCK"
|
||||||
localizationKey = "track_number"
|
localizationKey = "track_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:disc_num"
|
<metadataType dcName = "ls:disc_num"
|
||||||
id3Tag = "Disk"
|
id3Tag = "TPOS"
|
||||||
localizationKey = "disc_number"
|
localizationKey = "disc_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:mood"
|
<metadataType dcName = "ls:mood"
|
||||||
id3Tag = "Mood"
|
id3Tag = "TMOO"
|
||||||
localizationKey = "mood"
|
localizationKey = "mood"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:publisher"
|
<metadataType dcName = "dc:publisher"
|
||||||
id3Tag = "Label"
|
id3Tag = "TPUB"
|
||||||
localizationKey = "publishing_label"
|
localizationKey = "publishing_label"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:composer"
|
<metadataType dcName = "ls:composer"
|
||||||
id3Tag = "Composer"
|
id3Tag = "TCOM"
|
||||||
localizationKey = "composer"
|
localizationKey = "composer"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:bitrate"
|
<metadataType dcName = "ls:bitrate"
|
||||||
id3Tag = "Bitrate"
|
|
||||||
localizationKey = "bitrate"
|
localizationKey = "bitrate"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:channels"
|
<metadataType dcName = "ls:channels"
|
||||||
id3Tag = "Channels"
|
|
||||||
localizationKey = "channels"
|
localizationKey = "channels"
|
||||||
/> <!-- one of "", "Mono", "Stereo" or "5.1" -->
|
/>
|
||||||
<metadataType dcName = "ls:samplerate"
|
<metadataType dcName = "ls:samplerate"
|
||||||
id3Tag = "Samplerate"
|
|
||||||
localizationKey = "sample_rate"
|
localizationKey = "sample_rate"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:encoder"
|
<metadataType dcName = "ls:encoder"
|
||||||
id3Tag = "Encoder"
|
id3Tag = "TSSE"
|
||||||
localizationKey = "encoding_software"
|
localizationKey = "encoding_software"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:crc"
|
<metadataType dcName = "ls:crc"
|
||||||
id3Tag = "CRC"
|
|
||||||
localizationKey = "checksum"
|
localizationKey = "checksum"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:lyrics"
|
<metadataType dcName = "ls:lyrics"
|
||||||
id3Tag = "Lyrics"
|
|
||||||
localizationKey = "lyrics"
|
localizationKey = "lyrics"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:orchestra"
|
<metadataType dcName = "ls:orchestra"
|
||||||
id3Tag = "Orchestra or band"
|
id3Tag = "TPE2"
|
||||||
localizationKey = "orchestra_or_band"
|
localizationKey = "orchestra_or_band"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:conductor"
|
<metadataType dcName = "ls:conductor"
|
||||||
id3Tag = "Conductor"
|
id3Tag = "TPE3"
|
||||||
localizationKey = "conductor"
|
localizationKey = "conductor"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:lyricist"
|
<metadataType dcName = "ls:lyricist"
|
||||||
id3Tag = "Lyricist"
|
id3Tag = "TEXT"
|
||||||
localizationKey = "lyricist"
|
localizationKey = "lyricist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:originallyricist"
|
<metadataType dcName = "ls:originallyricist"
|
||||||
id3Tag = "Original lyricist"
|
id3Tag = "TOLY"
|
||||||
localizationKey = "original_lyricist"
|
localizationKey = "original_lyricist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:radiostationname"
|
<metadataType dcName = "ls:radiostationname"
|
||||||
id3Tag = "Radio station name"
|
id3Tag = "TRSN"
|
||||||
localizationKey = "radio_station_name"
|
localizationKey = "radio_station_name"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:audiofileinfourl"
|
<metadataType dcName = "ls:audiofileinfourl"
|
||||||
id3Tag = "Audio file information web page"
|
id3Tag = "WOAF"
|
||||||
localizationKey = "audio_file_info_url"
|
localizationKey = "audio_file_info_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:artisturl"
|
<metadataType dcName = "ls:artisturl"
|
||||||
id3Tag = "Artist web page"
|
id3Tag = "WOAR"
|
||||||
localizationKey = "artist_url"
|
localizationKey = "artist_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:audiosourceurl"
|
<metadataType dcName = "ls:audiosourceurl"
|
||||||
id3Tag = "Audio source web page"
|
id3Tag = "WOAS"
|
||||||
localizationKey = "audio_source_url"
|
localizationKey = "audio_source_url"
|
||||||
/>
|
/>
|
||||||
|
<metadataType dcName = "ls:radiostationurl"
|
||||||
|
id3Tag = "WORS"
|
||||||
|
localizationKey = "radio_station_url"
|
||||||
|
/>
|
||||||
<metadataType dcName = "ls:buycdurl"
|
<metadataType dcName = "ls:buycdurl"
|
||||||
id3Tag = "Buy CD web page"
|
id3Tag = "WPAY"
|
||||||
localizationKey = "buy_cd_url"
|
localizationKey = "buy_cd_url"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:isrcnumber"
|
<metadataType dcName = "ls:isrcnumber"
|
||||||
id3Tag = "ISRC number"
|
id3Tag = "TSRC"
|
||||||
localizationKey = "isrc_number"
|
localizationKey = "isrc_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:catalognumber"
|
<metadataType dcName = "ls:catalognumber"
|
||||||
id3Tag = "Catalog"
|
|
||||||
localizationKey = "catalog_number"
|
localizationKey = "catalog_number"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "ls:originalartist"
|
<metadataType dcName = "ls:originalartist"
|
||||||
id3Tag = "Original Artist"
|
id3Tag = "TOPE"
|
||||||
localizationKey = "original_artist"
|
localizationKey = "original_artist"
|
||||||
/>
|
/>
|
||||||
<metadataType dcName = "dc:rights"
|
<metadataType dcName = "dc:rights"
|
||||||
id3Tag = "Copyright"
|
id3Tag = "TCOP"
|
||||||
localizationKey = "copyright"
|
localizationKey = "copyright"
|
||||||
/>
|
/>
|
||||||
<!-- TODO: finish; the above are only the Main and Music tabs -->
|
|
||||||
</metadataTypeContainer>
|
</metadataTypeContainer>
|
||||||
</gLiveSupport>
|
</gLiveSupport>
|
||||||
|
|
||||||
|
|
|
@ -213,6 +213,7 @@ es:table
|
||||||
audio_file_info_url:string { "Sitio web con información del archivo" }
|
audio_file_info_url:string { "Sitio web con información del archivo" }
|
||||||
artist_url:string { "Sitio web del artista" }
|
artist_url:string { "Sitio web del artista" }
|
||||||
audio_source_url:string { "Sitio web de la fuente" }
|
audio_source_url:string { "Sitio web de la fuente" }
|
||||||
|
radio_station_url:string { "Sitio web de la estación de radio" }
|
||||||
buy_cd_url:string { "Sitio web para comprar CD" }
|
buy_cd_url:string { "Sitio web para comprar CD" }
|
||||||
isrc_number:string { "número ISRC" }
|
isrc_number:string { "número ISRC" }
|
||||||
catalog_number:string { "número de catálogo" }
|
catalog_number:string { "número de catálogo" }
|
||||||
|
|
|
@ -149,17 +149,6 @@ hu:table
|
||||||
creatorColumnLabel:string { "Előadó" }
|
creatorColumnLabel:string { "Előadó" }
|
||||||
lengthColumnLabel:string { "Hossz" }
|
lengthColumnLabel:string { "Hossz" }
|
||||||
|
|
||||||
genreMetadataDisplay:string { "Műfaj" }
|
|
||||||
genreMetadataSearchKey:string { "dc:type" }
|
|
||||||
creatorMetadataDisplay:string { "Előadó" }
|
|
||||||
creatorMetadataSearchKey:string { "dc:creator" }
|
|
||||||
albumMetadataDisplay:string { "Lemez" }
|
|
||||||
albumMetadataSearchKey:string { "dc:source" }
|
|
||||||
titleMetadataDisplay:string { "Cím" }
|
|
||||||
titleMetadataSearchKey:string { "dc:title" }
|
|
||||||
lengthMetadataDisplay:string { "Hossz" }
|
|
||||||
lengthMetadataSearchKey:string { "dcterms:extent" }
|
|
||||||
|
|
||||||
partialOperatorDisplay:string { "része" }
|
partialOperatorDisplay:string { "része" }
|
||||||
partialOperatorSearchKey:string { "partial" }
|
partialOperatorSearchKey:string { "partial" }
|
||||||
prefixOperatorDisplay:string { "kezdete" }
|
prefixOperatorDisplay:string { "kezdete" }
|
||||||
|
@ -222,6 +211,7 @@ hu:table
|
||||||
audio_file_info_url:string { "Zeneszám honlapja" }
|
audio_file_info_url:string { "Zeneszám honlapja" }
|
||||||
artist_url:string { "Előadó honlapja" }
|
artist_url:string { "Előadó honlapja" }
|
||||||
audio_source_url:string { "Forrás honlapja" }
|
audio_source_url:string { "Forrás honlapja" }
|
||||||
|
radio_station_url:string { "Rádióadó honlapja" }
|
||||||
buy_cd_url:string { "CD-bolt honlapja" }
|
buy_cd_url:string { "CD-bolt honlapja" }
|
||||||
isrc_number:string { "ISRC-szám" }
|
isrc_number:string { "ISRC-szám" }
|
||||||
catalog_number:string { "Katalógusszám" }
|
catalog_number:string { "Katalógusszám" }
|
||||||
|
|
|
@ -213,6 +213,7 @@ root:table
|
||||||
audio_file_info_url:string { "File info web page" }
|
audio_file_info_url:string { "File info web page" }
|
||||||
artist_url:string { "Artist web page" }
|
artist_url:string { "Artist web page" }
|
||||||
audio_source_url:string { "Source web page" }
|
audio_source_url:string { "Source web page" }
|
||||||
|
radio_station_url:string { "Radio station web page" }
|
||||||
buy_cd_url:string { "Buy CD web page" }
|
buy_cd_url:string { "Buy CD web page" }
|
||||||
isrc_number:string { "ISRC number" }
|
isrc_number:string { "ISRC number" }
|
||||||
catalog_number:string { "Catalog number" }
|
catalog_number:string { "Catalog number" }
|
||||||
|
|
|
@ -213,6 +213,7 @@ sr_CS:table
|
||||||
audio_file_info_url:string { "Web strana sa informacijama o fajlu" }
|
audio_file_info_url:string { "Web strana sa informacijama o fajlu" }
|
||||||
artist_url:string { "Web strana izvođača" }
|
artist_url:string { "Web strana izvođača" }
|
||||||
audio_source_url:string { "Web strana izvora" }
|
audio_source_url:string { "Web strana izvora" }
|
||||||
|
radio_station_url:string { "Web strana radio stanice" }
|
||||||
buy_cd_url:string { "Kupi CD preko web strane" }
|
buy_cd_url:string { "Kupi CD preko web strane" }
|
||||||
isrc_number:string { "ISRC broj" }
|
isrc_number:string { "ISRC broj" }
|
||||||
catalog_number:string { "Kataloški broj" }
|
catalog_number:string { "Kataloški broj" }
|
||||||
|
|
|
@ -212,6 +212,7 @@ sr_CS_CYRILLIC:table
|
||||||
audio_file_info_url:string { "Веб страна са информацијама о фајлу" }
|
audio_file_info_url:string { "Веб страна са информацијама о фајлу" }
|
||||||
artist_url:string { "Веб страна извођача" }
|
artist_url:string { "Веб страна извођача" }
|
||||||
audio_source_url:string { "Веб страна извора" }
|
audio_source_url:string { "Веб страна извора" }
|
||||||
|
radio_station_url:string { "Веб страна радио станице" }
|
||||||
buy_cd_url:string { "Купи ЦД преко веб стране" }
|
buy_cd_url:string { "Купи ЦД преко веб стране" }
|
||||||
isrc_number:string { "ISRC број" }
|
isrc_number:string { "ISRC број" }
|
||||||
catalog_number:string { "Каталошки број" }
|
catalog_number:string { "Каталошки број" }
|
||||||
|
|
|
@ -20,8 +20,8 @@
|
||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Author : $Author: maroy $
|
# Author : $Author: fgerlits $
|
||||||
# Version : $Revision: 1.57 $
|
# Version : $Revision: 1.58 $
|
||||||
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $
|
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $
|
||||||
#
|
#
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
@ -73,6 +73,9 @@ LIBODBCXX_LIBS=@LIBODBCXX_LIBS@
|
||||||
|
|
||||||
CURL_LIBS=`${USR_DIR}/bin/curl-config --libs`
|
CURL_LIBS=`${USR_DIR}/bin/curl-config --libs`
|
||||||
|
|
||||||
|
# TODO: move ICU flag determination to configure script
|
||||||
|
ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio`
|
||||||
|
|
||||||
TAGLIB_CFLAGS =`${USR_DIR}/bin/taglib-config --cflags`
|
TAGLIB_CFLAGS =`${USR_DIR}/bin/taglib-config --cflags`
|
||||||
TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs`
|
TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs`
|
||||||
|
|
||||||
|
@ -156,6 +159,7 @@ LDFLAGS = @LDFLAGS@ -pthread \
|
||||||
${LIBODBCXX_LIBS} \
|
${LIBODBCXX_LIBS} \
|
||||||
${GSTREAMER_LIBS} \
|
${GSTREAMER_LIBS} \
|
||||||
${CURL_LIBS} \
|
${CURL_LIBS} \
|
||||||
|
${ICU_LIBS} \
|
||||||
${TAGLIB_LIBS} \
|
${TAGLIB_LIBS} \
|
||||||
-L${USR_LIB_DIR} \
|
-L${USR_LIB_DIR} \
|
||||||
-L${HELIX_LIB_DIR} \
|
-L${HELIX_LIB_DIR} \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue