using System;
using System.IO;
using BSE.Platten.BO;
using System.Globalization;
using BSE.Platten.Audio.Properties;
namespace BSE.Platten.Audio
{
/// <summary>
/// Zusammenfassung f�r CMediaMetaData.
/// </summary>
public class CWMFMediaData : AudioData
{
#region FieldsPrivate
#endregion
#region MethodsPublic
public CWMFMediaData()
{
//
// TODO: F�gen Sie hier die Konstruktorlogik hinzu
//
}
public override AudioMetaData GetMediaMetaData(string fileInfoFullName)
{
FileInfo fileInfo = new FileInfo(fileInfoFullName);
AudioMetaData audioMetaData = null;
if (fileInfo.Exists == true)
{
if ((string.Compare(fileInfo.Extension.ToLower(),AudioformatExtensions.Mp3) == 0) ||
(string.Compare(fileInfo.Extension.ToLower(),AudioformatExtensions.Wma) == 0))
{
using (WMFSDK.CMetaDataEditor metaDataEditor = new WMFSDK.CMetaDataEditor())
{
audioMetaData = metaDataEditor.GetMediaMetaData(fileInfo.FullName);
}
}
}
return audioMetaData;
}
public override void SetAttributeAuthor(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMAuthor,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttributeAlbumTitle(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMAlbumTitle,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttributeGenre(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMGenre,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttributeYear(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMYear,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttributeTrackNumber(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMTrackNumber,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttributeTitle(string fileInfoFullName,string pwszAttribValue)
{
SetAttribute(fileInfoFullName,WMFSDK.WM.g_wszWMTitle,(ushort)WMFSDK.WMT_ATTR_DATATYPE.WMT_TYPE_STRING,pwszAttribValue);
}
public override void SetAttribute(string fileInfoFullName, string pwszAttribName,
ushort wAttribType, string pwszAttribValue)
{
FileInfo fileInfo = new FileInfo(fileInfoFullName);
if (fileInfo.Exists == true)
{
if ((string.Compare(fileInfo.Extension.ToLower(),AudioformatExtensions.Mp3) == 0) ||
(string.Compare(fileInfo.Extension.ToLower(),AudioformatExtensions.Wma) == 0))
{
using (WMFSDK.CMetaDataEditor metaDataEditor = new BSE.Platten.Audio.WMFSDK.CMetaDataEditor())
{
metaDataEditor.SetAttribute(fileInfoFullName,pwszAttribName,wAttribType,pwszAttribValue);
}
}
}
else
{
string strFileNotFoundException = String.Format(
CultureInfo.CurrentUICulture,
Resources.IDS_FileNotFoundException,fileInfoFullName);
throw new FileNotFoundException(strFileNotFoundException);
}
}
#endregion
}
}