This series of PRs aims to refactor parts of the code base with the primary goal of making them easier to understand. Here are the most notable changes in part 1 of refactoring Mosa.DeviceSystem (and parts of Mosa.DeviceDriver):
Throughout all refactored files, pointless XML comments have been removed, and per-class comments have been added, giving more useful insight into what the class is, and does. This allow for better general understanding of the code.
Added useful properties in the EditorConfig file, and removed unused ones
The StandardKeyboard driver (and the IKeyboardDevice interface) are now able to be requested scan codes via blocking and non-blocking ways. (Previously, it was only non-blocking, which could cause some issues in e.g. console environments)
The _lock field in BaseDeviceDriver has been renamed to DriverLock
GraphicalTextDevice's (and thus, ITextDevice's) ClearScreen() method was renamed to Clear()
The following, unused classes and interfaces have been removed (NOTE: Many files appear as deleted in Git, when in fact they were simply moved. Please refer to this list which is exhaustive.):
IAudioDevice (unused, we have no audio subsystem yet)
IDMAChannel (unused + uninherited)
IDateTime (unused + uninherited)
IMultibootSpecification (unused + uninherited)
INetworkDevice (unused, we have no network subsystem yet)
IOPortResources (unused)
IPixelPaletteGraphicsDevice (unused)
ISerialDevice (unused + uninherited)
ITextScreen (it was only inherited by TextScreen, and there was no need for it even then)
ITimer (unused + uninherited)
MACAddress (same as INetworkDevice)
MemoryResources (unused)
IPCIDevice (it was only inherited by PCIDevice)
IPCIDeviceResource (same as IPCIDevice + it provided properties and methods that IPCIDevice already had)
SpinLock (unused)
Mosa.DeviceSystem has been partly restructured (not finished yet, which is mostly the sole reason why this PR has been split into multiple parts). They contain the following classes and interfaces thus far:
Graphics
FrameBuffer32
IGraphicsDevice
Keyboard
IKeyboard
Key
KeyEvent
KeyType
Keyboard
IKeyboardDevice
IScanCodeMap
TextDevice
GraphicalTextDevicec
ITextDevice
TextScreen
PCI
IPCIController
IPCIControllerLegacy
VirtIO (nothing has changed there)
Fonts
ASC16Font
ISimpleFont
SimpleBitFont
Services (nothing has changed there either, apart from the name which previously was Service)
This series of PRs aims to refactor parts of the code base with the primary goal of making them easier to understand. Here are the most notable changes in part 1 of refactoring Mosa.DeviceSystem (and parts of Mosa.DeviceDriver):
_lock
field in BaseDeviceDriver has been renamed toDriverLock