symphonia_metadata/
itunes.rs1use symphonia_core::meta::StandardTagKey;
11
12use std::collections::HashMap;
13
14use lazy_static::lazy_static;
15
16lazy_static! {
17 static ref ITUNES_TAG_MAP: HashMap<&'static str, StandardTagKey> = {
18 let mut m = HashMap::new();
19 m.insert("com.apple.iTunes:ARTISTS", StandardTagKey::Artist);
20 m.insert("com.apple.iTunes:ASIN", StandardTagKey::IdentAsin);
21 m.insert("com.apple.iTunes:BARCODE", StandardTagKey::IdentBarcode);
22 m.insert("com.apple.iTunes:CATALOGNUMBER", StandardTagKey::IdentCatalogNumber);
23 m.insert("com.apple.iTunes:CONDUCTOR", StandardTagKey::Conductor);
24 m.insert("com.apple.iTunes:DISCSUBTITLE", StandardTagKey::DiscSubtitle);
25 m.insert("com.apple.iTunes:DJMIXER", StandardTagKey::MixDj);
26 m.insert("com.apple.iTunes:ENGINEER", StandardTagKey::Engineer);
27 m.insert("com.apple.iTunes:ISRC", StandardTagKey::IdentIsrc);
28 m.insert("com.apple.iTunes:LABEL", StandardTagKey::Label);
29 m.insert("com.apple.iTunes:LANGUAGE", StandardTagKey::Language);
30 m.insert("com.apple.iTunes:LICENSE", StandardTagKey::License);
31 m.insert("com.apple.iTunes:LYRICIST", StandardTagKey::Lyricist);
32 m.insert("com.apple.iTunes:MEDIA", StandardTagKey::MediaFormat);
33 m.insert("com.apple.iTunes:MIXER", StandardTagKey::MixEngineer);
34 m.insert("com.apple.iTunes:MOOD", StandardTagKey::Mood);
35 m.insert(
36 "com.apple.iTunes:MusicBrainz Album Artist Id",
37 StandardTagKey::MusicBrainzAlbumArtistId,
38 );
39 m.insert("com.apple.iTunes:MusicBrainz Album Id", StandardTagKey::MusicBrainzAlbumId);
40 m.insert(
41 "com.apple.iTunes:MusicBrainz Album Release Country",
42 StandardTagKey::ReleaseCountry,
43 );
44 m.insert(
45 "com.apple.iTunes:MusicBrainz Album Status",
46 StandardTagKey::MusicBrainzReleaseStatus,
47 );
48 m.insert("com.apple.iTunes:MusicBrainz Album Type", StandardTagKey::MusicBrainzReleaseType);
49 m.insert("com.apple.iTunes:MusicBrainz Artist Id", StandardTagKey::MusicBrainzArtistId);
50 m.insert(
51 "com.apple.iTunes:MusicBrainz Release Group Id",
52 StandardTagKey::MusicBrainzReleaseGroupId,
53 );
54 m.insert(
55 "com.apple.iTunes:MusicBrainz Release Track Id",
56 StandardTagKey::MusicBrainzReleaseTrackId,
57 );
58 m.insert("com.apple.iTunes:MusicBrainz Track Id", StandardTagKey::MusicBrainzTrackId);
59 m.insert("com.apple.iTunes:MusicBrainz Work Id", StandardTagKey::MusicBrainzWorkId);
60 m.insert("com.apple.iTunes:originaldate", StandardTagKey::OriginalDate);
61 m.insert("com.apple.iTunes:PRODUCER", StandardTagKey::Producer);
62 m.insert("com.apple.iTunes:REMIXER", StandardTagKey::Remixer);
63 m.insert("com.apple.iTunes:SCRIPT", StandardTagKey::Script);
64 m.insert("com.apple.iTunes:SUBTITLE", StandardTagKey::TrackSubtitle);
65 m
66 };
67}
68
69pub fn std_key_from_tag(key: &str) -> Option<StandardTagKey> {
71 ITUNES_TAG_MAP.get(key).copied()
72}