// nVLC
//
// Author: Roman Ginzburg
//
// nVLC is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// nVLC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// ========================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Declarations.Media
{
/// <summary>
/// Represents audio/visual media file.
/// </summary>
public interface IMediaFromFile : IMedia
{
/// <summary>
/// Gets meta data of the media.
/// </summary>
/// <param name="dataType"></param>
/// <returns></returns>
string GetMetaData(MetaDataType dataType);
/// <summary>
/// Sets meta data of the media.
/// </summary>
/// <param name="dataType">Meta data type</param>
/// <param name="argument">New meta data value</param>
void SetMetaData(MetaDataType dataType, string argument);
/// <summary>
/// Saves changes to media meta data.
/// </summary>
void SaveMetaData();
/// <summary>
/// Gets the duration of media in milliseconds.
/// </summary>
long Duration { get; }
/// <summary>
/// Gets information describing media elementary streams.
/// </summary>
/// <remarks>Returns array of media tracks info in case of success, or null in case of failure</remarks>
[Obsolete("Use TrackInfoEx")]
MediaTrackInfo[] TracksInfo { get; }
}
}