using System.IO;
namespace BizHawk.Emulation.Common
{
public interface ICoreFileProvider
{
///
/// Opens a firmware according to the specified firmware ID key
///
Stream OpenFirmware(string sysId, string key);
///
/// Returns the path to a firmware according to the specified firmware ID key. Use OpenFirmware instead
///
string PathFirmware(string sysId, string key);
///
/// Produces a path to the requested file, expected to be parallel to the running rom. for example: cue+bin files or sfc+pcm (MSU-1 games)
///
string PathSubfile(string fname);
///
/// produces a path that contains emulation related dll and exe files
///
///
string DllPath();
#region EmuLoadHelper api
///
/// get path to a firmware
///
///
///
/// if true, result is guaranteed to be valid; else null is possible if not foun
/// message to show if fail to get
///
string GetFirmwarePath(string sysID, string firmwareID, bool required, string msg = null);
///
/// get a firmware as a byte array
///
///
///
/// if true, result is guaranteed to be valid; else null is possible if not found
/// message to show if fail to get
///
byte[] GetFirmware(string sysID, string firmwareID, bool required, string msg = null);
byte[] GetFirmwareWithGameInfo(string sysID, string firmwareID, bool required, out GameInfo gi, string msg = null);
#endregion
}
}