243 lines
12 KiB
C#
243 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace UniversalEditor.ObjectModels.Chunked
|
|
{
|
|
public class RIFFMetadataItem
|
|
{
|
|
public class RIFFMetadataItemCollection
|
|
: System.Collections.ObjectModel.Collection<RIFFMetadataItem>
|
|
{
|
|
public RIFFMetadataItem Add(CommonMetadataType Type, object Value)
|
|
{
|
|
RIFFMetadataItem item = new RIFFMetadataItem();
|
|
item.Type = Type;
|
|
item.Value = Value;
|
|
base.Items.Add(item);
|
|
return item;
|
|
}
|
|
public RIFFMetadataItem Add(string Name, object Value)
|
|
{
|
|
RIFFMetadataItem item = new RIFFMetadataItem();
|
|
item.Name = Name;
|
|
item.Value = Value;
|
|
base.Items.Add(item);
|
|
return item;
|
|
}
|
|
}
|
|
|
|
public CommonMetadataType Type
|
|
{
|
|
get
|
|
{
|
|
switch (mvarName)
|
|
{
|
|
case "AGES": return CommonMetadataType.RatingAGES;
|
|
case "CMNT": return CommonMetadataType.CommentCMNT;
|
|
case "CODE": return CommonMetadataType.EncodedByCODE;
|
|
case "COMM": return CommonMetadataType.Comments;
|
|
case "DIRC": return CommonMetadataType.Directory;
|
|
case "DISP": return CommonMetadataType.SoundSchemeTitle;
|
|
case "DTIM": return CommonMetadataType.DateTimeOriginal;
|
|
case "GENR": return CommonMetadataType.GenreGENR;
|
|
case "IARL": return CommonMetadataType.ArchivalLocation;
|
|
case "IART": return CommonMetadataType.Artist;
|
|
case "IAS1": return CommonMetadataType.FirstLanguage;
|
|
case "IAS2": return CommonMetadataType.SecondLanguage;
|
|
case "IAS3": return CommonMetadataType.ThirdLanguage;
|
|
case "IAS4": return CommonMetadataType.FourthLanguage;
|
|
case "IAS5": return CommonMetadataType.FifthLanguage;
|
|
case "IAS6": return CommonMetadataType.SixthLanguage;
|
|
case "IAS7": return CommonMetadataType.SeventhLanguage;
|
|
case "IAS8": return CommonMetadataType.EighthLanguage;
|
|
case "IAS9": return CommonMetadataType.NinthLanguage;
|
|
case "IBSU": return CommonMetadataType.BaseURL;
|
|
case "ICAS": return CommonMetadataType.DefaultAudioStream;
|
|
case "ICDS": return CommonMetadataType.CostumeDesigner;
|
|
case "ICMS": return CommonMetadataType.Commissioned;
|
|
case "ICMT": return CommonMetadataType.CommentICMT;
|
|
case "ICNM": return CommonMetadataType.Cinematographer;
|
|
case "ICNT": return CommonMetadataType.Country;
|
|
case "ICOP": return CommonMetadataType.Copyright;
|
|
case "ICRD": return CommonMetadataType.DateCreated;
|
|
case "ICRP": return CommonMetadataType.Cropped;
|
|
case "IDIM": return CommonMetadataType.Dimensions;
|
|
case "IDPI": return CommonMetadataType.DotsPerInch;
|
|
case "IDST": return CommonMetadataType.DistributedBy;
|
|
case "IEDT": return CommonMetadataType.EditedBy;
|
|
case "IENC": return CommonMetadataType.EncodedByIENC;
|
|
case "IENG": return CommonMetadataType.Engineer;
|
|
case "IGNR": return CommonMetadataType.GenreIGNR;
|
|
case "IKEY": return CommonMetadataType.Keywords;
|
|
case "ILGT": return CommonMetadataType.Lightness;
|
|
case "ILGU": return CommonMetadataType.LogoURL;
|
|
case "ILIU": return CommonMetadataType.LogoIconURL;
|
|
case "ILNG": return CommonMetadataType.LanguageILNG;
|
|
case "IMBI": return CommonMetadataType.MoreInfoBannerImage;
|
|
case "IMBU": return CommonMetadataType.MoreInfoBannerURL;
|
|
case "IMED": return CommonMetadataType.Medium;
|
|
case "IMIT": return CommonMetadataType.MoreInfoText;
|
|
case "IMIU": return CommonMetadataType.MoreInfoURL;
|
|
case "IMUS": return CommonMetadataType.MusicBy;
|
|
case "INAM": return CommonMetadataType.TitleINAM;
|
|
case "IPDS": return CommonMetadataType.ProductionDesigner;
|
|
case "IPLT": return CommonMetadataType.NumColors;
|
|
case "IPRD": return CommonMetadataType.Product;
|
|
case "IPRO": return CommonMetadataType.ProducedBy;
|
|
case "IRIP": return CommonMetadataType.RippedBy;
|
|
case "IRTD": return CommonMetadataType.RatingIRTD;
|
|
case "ISBJ": return CommonMetadataType.Subject;
|
|
case "ISFT": return CommonMetadataType.Software;
|
|
case "ISGN": return CommonMetadataType.SecondaryGenre;
|
|
case "ISHP": return CommonMetadataType.Sharpness;
|
|
case "ISRC": return CommonMetadataType.Source;
|
|
case "ISRF": return CommonMetadataType.SourceForm;
|
|
case "ISTD": return CommonMetadataType.ProductionStudio;
|
|
case "ISTR": return CommonMetadataType.StarringISTR;
|
|
case "ITCH": return CommonMetadataType.Technician;
|
|
case "IWMU": return CommonMetadataType.WatermarkURL;
|
|
case "IWRI": return CommonMetadataType.WrittenBy;
|
|
case "LANG": return CommonMetadataType.LanguageLANG;
|
|
case "LOCA": return CommonMetadataType.Location;
|
|
case "PRT1": return CommonMetadataType.Part;
|
|
case "PRT2": return CommonMetadataType.NumberOfParts;
|
|
case "RATE": return CommonMetadataType.Rate;
|
|
case "STAR": return CommonMetadataType.StarringSTAR;
|
|
case "STAT": return CommonMetadataType.Statistics;
|
|
case "TAPE": return CommonMetadataType.TapeName;
|
|
case "TCDO": return CommonMetadataType.EndTimecode;
|
|
case "TCOD": return CommonMetadataType.StartTimecode;
|
|
case "TITL": return CommonMetadataType.TitleTITL;
|
|
case "TLEN": return CommonMetadataType.Length;
|
|
case "TORG": return CommonMetadataType.Organization;
|
|
case "TRCK": return CommonMetadataType.TrackNumber;
|
|
case "TURL": return CommonMetadataType.URL;
|
|
case "TVER": return CommonMetadataType.Version;
|
|
case "VMAJ": return CommonMetadataType.VegasVersionMajor;
|
|
case "VMIN": return CommonMetadataType.VegasVersionMinor;
|
|
case "YEAR": return CommonMetadataType.Year;
|
|
#region Exif 2.3 specification
|
|
case "ecor": return CommonMetadataType.ExifMake;
|
|
case "emdl": return CommonMetadataType.ExifModel;
|
|
case "emnt": return CommonMetadataType.ExifMakerNotes;
|
|
case "erel": return CommonMetadataType.ExifRelatedImageFile;
|
|
case "etim": return CommonMetadataType.ExifTimeCreated;
|
|
case "eucm": return CommonMetadataType.ExifUserComment;
|
|
case "ever": return CommonMetadataType.ExifVersion;
|
|
#endregion
|
|
}
|
|
return CommonMetadataType.Unknown;
|
|
}
|
|
set
|
|
{
|
|
switch (value)
|
|
{
|
|
case CommonMetadataType.RatingAGES: mvarName = "AGES"; break;
|
|
case CommonMetadataType.CommentCMNT: mvarName = "CMNT"; break;
|
|
case CommonMetadataType.EncodedByCODE: mvarName = "CODE"; break;
|
|
case CommonMetadataType.Comments: mvarName = "COMM"; break;
|
|
case CommonMetadataType.Directory: mvarName = "DIRC"; break;
|
|
case CommonMetadataType.SoundSchemeTitle: mvarName = "DISP"; break;
|
|
case CommonMetadataType.DateTimeOriginal: mvarName = "DTIM"; break;
|
|
case CommonMetadataType.GenreGENR: mvarName = "GENR"; break;
|
|
case CommonMetadataType.ArchivalLocation: mvarName = "IARL"; break;
|
|
case CommonMetadataType.Artist: mvarName = "IART"; break;
|
|
case CommonMetadataType.FirstLanguage: mvarName = "IAS1"; break;
|
|
case CommonMetadataType.SecondLanguage: mvarName = "IAS2"; break;
|
|
case CommonMetadataType.ThirdLanguage: mvarName = "IAS3"; break;
|
|
case CommonMetadataType.FourthLanguage: mvarName = "IAS4"; break;
|
|
case CommonMetadataType.FifthLanguage: mvarName = "IAS5"; break;
|
|
case CommonMetadataType.SixthLanguage: mvarName = "IAS6"; break;
|
|
case CommonMetadataType.SeventhLanguage: mvarName = "IAS7"; break;
|
|
case CommonMetadataType.EighthLanguage: mvarName = "IAS8"; break;
|
|
case CommonMetadataType.NinthLanguage: mvarName = "IAS9"; break;
|
|
case CommonMetadataType.BaseURL: mvarName = "IBSU"; break;
|
|
case CommonMetadataType.DefaultAudioStream: mvarName = "ICAS"; break;
|
|
case CommonMetadataType.CostumeDesigner: mvarName = "ICDS"; break;
|
|
case CommonMetadataType.Commissioned: mvarName = "ICMS"; break;
|
|
case CommonMetadataType.CommentICMT: mvarName = "ICMT"; break;
|
|
case CommonMetadataType.Cinematographer: mvarName = "ICNM"; break;
|
|
case CommonMetadataType.Country: mvarName = "ICNT"; break;
|
|
case CommonMetadataType.Copyright: mvarName = "ICOP"; break;
|
|
case CommonMetadataType.DateCreated: mvarName = "ICRD"; break;
|
|
case CommonMetadataType.Cropped: mvarName = "ICRP"; break;
|
|
case CommonMetadataType.Dimensions: mvarName = "IDIM"; break;
|
|
case CommonMetadataType.DotsPerInch: mvarName = "IDPI"; break;
|
|
case CommonMetadataType.DistributedBy: mvarName = "IDST"; break;
|
|
case CommonMetadataType.EditedBy: mvarName = "IEDT"; break;
|
|
case CommonMetadataType.EncodedByIENC: mvarName = "IENC"; break;
|
|
case CommonMetadataType.Engineer: mvarName = "IENG"; break;
|
|
case CommonMetadataType.GenreIGNR: mvarName = "IGNR"; break;
|
|
case CommonMetadataType.Keywords: mvarName = "IKEY"; break;
|
|
case CommonMetadataType.Lightness: mvarName = "ILGT"; break;
|
|
case CommonMetadataType.LogoURL: mvarName = "ILGU"; break;
|
|
case CommonMetadataType.LogoIconURL: mvarName = "ILIU"; break;
|
|
case CommonMetadataType.LanguageILNG: mvarName = "ILNG"; break;
|
|
case CommonMetadataType.MoreInfoBannerImage: mvarName = "IMBI"; break;
|
|
case CommonMetadataType.MoreInfoBannerURL: mvarName = "IMBU"; break;
|
|
case CommonMetadataType.Medium: mvarName = "IMED"; break;
|
|
case CommonMetadataType.MoreInfoText: mvarName = "IMIT"; break;
|
|
case CommonMetadataType.MoreInfoURL: mvarName = "IMIU"; break;
|
|
case CommonMetadataType.MusicBy: mvarName = "IMUS"; break;
|
|
case CommonMetadataType.TitleINAM: mvarName = "INAM"; break;
|
|
case CommonMetadataType.ProductionDesigner: mvarName = "IPDS"; break;
|
|
case CommonMetadataType.NumColors: mvarName = "IPLT"; break;
|
|
case CommonMetadataType.Product: mvarName = "IPRD"; break;
|
|
case CommonMetadataType.ProducedBy: mvarName = "IPRO"; break;
|
|
case CommonMetadataType.RippedBy: mvarName = "IRIP"; break;
|
|
case CommonMetadataType.RatingIRTD: mvarName = "IRTD"; break;
|
|
case CommonMetadataType.Subject: mvarName = "ISBJ"; break;
|
|
case CommonMetadataType.Software: mvarName = "ISFT"; break;
|
|
case CommonMetadataType.SecondaryGenre: mvarName = "ISGN"; break;
|
|
case CommonMetadataType.Sharpness: mvarName = "ISHP"; break;
|
|
case CommonMetadataType.Source: mvarName = "ISRC"; break;
|
|
case CommonMetadataType.SourceForm: mvarName = "ISRF"; break;
|
|
case CommonMetadataType.ProductionStudio: mvarName = "ISTD"; break;
|
|
case CommonMetadataType.StarringISTR: mvarName = "ISTR"; break;
|
|
case CommonMetadataType.Technician: mvarName = "ITCH"; break;
|
|
case CommonMetadataType.WatermarkURL: mvarName = "IWMU"; break;
|
|
case CommonMetadataType.WrittenBy: mvarName = "IWRI"; break;
|
|
case CommonMetadataType.LanguageLANG: mvarName = "LANG"; break;
|
|
case CommonMetadataType.Location: mvarName = "LOCA"; break;
|
|
case CommonMetadataType.Part: mvarName = "PRT1"; break;
|
|
case CommonMetadataType.NumberOfParts: mvarName = "PRT2"; break;
|
|
case CommonMetadataType.Rate: mvarName = "RATE"; break;
|
|
case CommonMetadataType.StarringSTAR: mvarName = "STAR"; break;
|
|
case CommonMetadataType.Statistics: mvarName = "STAT"; break;
|
|
case CommonMetadataType.TapeName: mvarName = "TAPE"; break;
|
|
case CommonMetadataType.EndTimecode: mvarName = "TCDO"; break;
|
|
case CommonMetadataType.StartTimecode: mvarName = "TCOD"; break;
|
|
case CommonMetadataType.TitleTITL: mvarName = "TITL"; break;
|
|
case CommonMetadataType.Length: mvarName = "TLEN"; break;
|
|
case CommonMetadataType.Organization: mvarName = "TORG"; break;
|
|
case CommonMetadataType.TrackNumber: mvarName = "TRCK"; break;
|
|
case CommonMetadataType.URL: mvarName = "TURL"; break;
|
|
case CommonMetadataType.Version: mvarName = "TVER"; break;
|
|
case CommonMetadataType.VegasVersionMajor: mvarName = "VMAJ"; break;
|
|
case CommonMetadataType.VegasVersionMinor: mvarName = "VMIN"; break;
|
|
case CommonMetadataType.Year: mvarName = "YEAR"; break;
|
|
#region Exif 2.3 specification
|
|
case CommonMetadataType.ExifMake: mvarName = "ecor"; break;
|
|
case CommonMetadataType.ExifModel: mvarName = "emdl"; break;
|
|
case CommonMetadataType.ExifMakerNotes: mvarName = "emnt"; break;
|
|
case CommonMetadataType.ExifRelatedImageFile: mvarName = "erel"; break;
|
|
case CommonMetadataType.ExifTimeCreated: mvarName = "etim"; break;
|
|
case CommonMetadataType.ExifUserComment: mvarName = "eucm"; break;
|
|
case CommonMetadataType.ExifVersion: mvarName = "ever"; break;
|
|
#endregion
|
|
default: throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
|
|
private string mvarName = String.Empty;
|
|
public string Name { get { return mvarName; } set { mvarName = value; } }
|
|
|
|
private object mvarValue = null;
|
|
public object Value { get { return mvarValue; } set { mvarValue = value; } }
|
|
|
|
}
|
|
}
|