9#ifndef MAX_OS_DRIVERS_DRIVER_H
10#define MAX_OS_DRIVERS_DRIVER_H
20namespace MaxOS::drivers {
36 virtual uint32_t
reset();
Stores the left, top, width and height of a rectangle.
Manages the drivers, handles the adding and removing of drivers.
DriverManager()
Constructs the Driver Manager, adding any default driver selectors.
void add_driver(Driver *)
Adds a driver to the manager.
void activate_drivers()
Activate the drivers.
void on_driver_selected(Driver *) final
When a driver is selected add it to the manager.
uint32_t reset_devices()
Reset all the devices.
void remove_driver_selector(DriverSelector *)
Remove a driver selector from the manager.
void add_driver_selector(DriverSelector *)
Add a driver selector to the manager.
void deactivate_drivers()
Deactivate the drivers.
void initialise_drivers()
Initialise the drivers.
void find_drivers()
Find the drivers.
~DriverManager()
Destructor for the Driver Manager, removes all drivers and driver selectors.
void remove_driver(Driver *)
Removes a driver from the driver vector.
Event handler for the DriverSelector class, handles the event when a driver is selected.
virtual void on_driver_selected(Driver *)
This function is called when a driver is selected.
Selects the drivers to be used.
virtual void select_drivers(DriverSelectorEventHandler *handler)
Select the drivers available on the system.
base class for all drivers, handles the activation, deactivation, initialisation and reset of the dri...
virtual string vendor_name()
Get who created the device.
virtual uint32_t reset()
Reset the driver.
virtual string device_name()
Get the device name of the driver.
virtual void initialise()
Initialise the driver.
virtual void activate()
Activate the driver.
virtual void deactivate()
Deactivate the driver.
Defines classes for handling events and event managers.
Defines a Logger class for logging messages with different severity levels to multiple output streams...
Defines a MemoryManager class for handling memory allocation and deallocation.
Defines OutputStream and GenericOutputStream classes for writing data to streams.
Defines a String class for dynamically sized strings with various operations.