using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
{
///
/// Represents a spectrum keyboard
///
public interface IKeyboard
{
///
/// The calling spectrumbase class
///
CPCBase _machine { get; }
///
/// The keyboard matrix for a particular CPC model
///
string[] KeyboardMatrix { get; set; }
///
/// Other keyboard keys that are not in the matrix
/// (usually keys derived from key combos)
///
string[] NonMatrixKeys { get; set; }
///
/// Represents the spectrum key state
///
bool[] KeyStatus { get; set; }
///
/// The currently selected line
///
int CurrentLine { get; set; }
///
/// Reads the current line status
///
byte ReadCurrentLine();
///
/// Sets the CPC key status
///
void SetKeyStatus(string key, bool isPressed);
///
/// Gets the status of a CPC key
///
bool GetKeyStatus(string key);
void SyncState(Serializer ser);
}
}