Use read-only dict type in .NET API
This commit is contained in:
parent
47c5fcc39e
commit
fcd7a47435
|
@ -25,7 +25,7 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public string GetBoardType() => BoardInfo?.BoardName ?? "";
|
public string GetBoardType() => BoardInfo?.BoardName ?? "";
|
||||||
|
|
||||||
public Dictionary<string, string> GetOptions()
|
public IReadOnlyDictionary<string, string> GetOptions()
|
||||||
{
|
{
|
||||||
var options = new Dictionary<string, string>();
|
var options = new Dictionary<string, string>();
|
||||||
if (_game == null) return options;
|
if (_game == null) return options;
|
||||||
|
|
|
@ -20,17 +20,17 @@ namespace BizHawk.Client.Common
|
||||||
_movieSession = movieSession;
|
_movieSession = movieSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDictionary<string, object> Get(int? controller = null)
|
public IReadOnlyDictionary<string, object> Get(int? controller = null)
|
||||||
{
|
{
|
||||||
return _inputManager.AutofireStickyXorAdapter.ToDictionary(controller);
|
return _inputManager.AutofireStickyXorAdapter.ToDictionary(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDictionary<string, object> GetWithMovie(int? controller = null)
|
public IReadOnlyDictionary<string, object> GetWithMovie(int? controller = null)
|
||||||
{
|
{
|
||||||
return _inputManager.ControllerOutput.ToDictionary(controller);
|
return _inputManager.ControllerOutput.ToDictionary(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDictionary<string, object> GetImmediate(int? controller = null)
|
public IReadOnlyDictionary<string, object> GetImmediate(int? controller = null)
|
||||||
{
|
{
|
||||||
return _inputManager.ActiveController.ToDictionary(controller);
|
return _inputManager.ActiveController.ToDictionary(controller);
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ namespace BizHawk.Client.Common
|
||||||
foreach (var axis in controller.Definition.Axes.Keys) _inputManager.ButtonOverrideAdapter.SetAxis(axis, controller.AxisValue(axis));
|
foreach (var axis in controller.Definition.Axes.Keys) _inputManager.ButtonOverrideAdapter.SetAxis(axis, controller.AxisValue(axis));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set(IDictionary<string, bool> buttons, int? controller = null)
|
public void Set(IReadOnlyDictionary<string, bool> buttons, int? controller = null)
|
||||||
{
|
{
|
||||||
// If a controller is specified, we need to iterate over unique button names. If not, we iterate over
|
// If a controller is specified, we need to iterate over unique button names. If not, we iterate over
|
||||||
// ALL button names with P{controller} prefixes
|
// ALL button names with P{controller} prefixes
|
||||||
|
@ -88,7 +88,7 @@ namespace BizHawk.Client.Common
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetAnalog(IDictionary<string, int?> controls, object controller = null)
|
public void SetAnalog(IReadOnlyDictionary<string, int?> controls, object controller = null)
|
||||||
{
|
{
|
||||||
foreach (var kvp in controls) SetAnalog(kvp.Key, kvp.Value, controller);
|
foreach (var kvp in controls) SetAnalog(kvp.Key, kvp.Value, controller);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public bool StartsFromSaveram() => _movieSession.Movie.IsActive() && _movieSession.Movie.StartsFromSaveRam;
|
public bool StartsFromSaveram() => _movieSession.Movie.IsActive() && _movieSession.Movie.StartsFromSaveRam;
|
||||||
|
|
||||||
public IDictionary<string, object> GetInput(int frame, int? controller = null)
|
public IReadOnlyDictionary<string, object> GetInput(int frame, int? controller = null)
|
||||||
{
|
{
|
||||||
if (_movieSession.Movie.NotActive())
|
if (_movieSession.Movie.NotActive())
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,6 +10,6 @@ namespace BizHawk.Client.Common
|
||||||
string GetStatus();
|
string GetStatus();
|
||||||
bool IsStatusBad();
|
bool IsStatusBad();
|
||||||
string GetBoardType();
|
string GetBoardType();
|
||||||
Dictionary<string, string> GetOptions();
|
IReadOnlyDictionary<string, string> GetOptions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,13 +4,13 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
public interface IJoypadApi : IExternalApi
|
public interface IJoypadApi : IExternalApi
|
||||||
{
|
{
|
||||||
IDictionary<string, object> Get(int? controller = null);
|
IReadOnlyDictionary<string, object> Get(int? controller = null);
|
||||||
IDictionary<string, object> GetWithMovie(int? controller = null);
|
IReadOnlyDictionary<string, object> GetWithMovie(int? controller = null);
|
||||||
IDictionary<string, object> GetImmediate(int? controller = null);
|
IReadOnlyDictionary<string, object> GetImmediate(int? controller = null);
|
||||||
void SetFromMnemonicStr(string inputLogEntry);
|
void SetFromMnemonicStr(string inputLogEntry);
|
||||||
void Set(IDictionary<string, bool> buttons, int? controller = null);
|
void Set(IReadOnlyDictionary<string, bool> buttons, int? controller = null);
|
||||||
void Set(string button, bool? state = null, int? controller = null);
|
void Set(string button, bool? state = null, int? controller = null);
|
||||||
void SetAnalog(IDictionary<string, int?> controls, object controller = null);
|
void SetAnalog(IReadOnlyDictionary<string, int?> controls, object controller = null);
|
||||||
void SetAnalog(string control, int? value = null, object controller = null);
|
void SetAnalog(string control, int? value = null, object controller = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace BizHawk.Client.Common
|
||||||
bool StartsFromSavestate();
|
bool StartsFromSavestate();
|
||||||
bool StartsFromSaveram();
|
bool StartsFromSaveram();
|
||||||
string Filename();
|
string Filename();
|
||||||
IDictionary<string, object> GetInput(int frame, int? controller = null);
|
IReadOnlyDictionary<string, object> GetInput(int frame, int? controller = null);
|
||||||
string GetInputAsMnemonic(int frame);
|
string GetInputAsMnemonic(int frame);
|
||||||
bool GetReadOnly();
|
bool GetReadOnly();
|
||||||
ulong GetRerecordCount();
|
ulong GetRerecordCount();
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace BizHawk.Client.Common
|
||||||
public StickyXorAdapter StickyXorAdapter { get; } = new StickyXorAdapter();
|
public StickyXorAdapter StickyXorAdapter { get; } = new StickyXorAdapter();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used to AND to another controller, used for <see cref="IJoypadApi.Set(IDictionary{string, bool}, int?)">JoypadApi.Set</see>
|
/// Used to AND to another controller, used for <see cref="IJoypadApi.Set(IReadOnlyDictionary{string, bool}, int?)">JoypadApi.Set</see>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public OverrideAdapter ButtonOverrideAdapter { get; } = new OverrideAdapter();
|
public OverrideAdapter ButtonOverrideAdapter { get; } = new OverrideAdapter();
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public LuaTable CreateTable() => _lua.NewTable();
|
public LuaTable CreateTable() => _lua.NewTable();
|
||||||
|
|
||||||
public LuaTable DictToTable<T>(IDictionary<string, T> dictionary)
|
public LuaTable DictToTable<T>(IReadOnlyDictionary<string, T> dictionary)
|
||||||
{
|
{
|
||||||
var table = _lua.NewTable();
|
var table = _lua.NewTable();
|
||||||
|
|
||||||
|
|
|
@ -390,7 +390,7 @@ namespace BizHawk.Emulation.Common
|
||||||
return buttons;
|
return buttons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDictionary<string, object> ToDictionary(this IController controller, int? controllerNum = null)
|
public static IReadOnlyDictionary<string, object> ToDictionary(this IController controller, int? controllerNum = null)
|
||||||
{
|
{
|
||||||
var buttons = new Dictionary<string, object>();
|
var buttons = new Dictionary<string, object>();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue