Main interface with the component.
Used to initialize and shut all of its sub parts. This system should be instanciated first before being able to use the component, either through an isolated instance, either through the singleton instance. Typical usage will be :
// One or another, depending on the need
nkInputs::System system ; // Or :
nkInputs::System* system = nkInputs::System::getInstance() ;
// Register the logger to ensure we know about any problem
system.getLogManager()->setReceiver(logger) ;
// The system first needs to be initialized
if (!system.
initialize()) {// Error during initialization, system not usable}
// Create the devices, either manually, either through the manager depending on lifetime management needs
std::unique_ptr<
nkInputs::MouseDevice> mouse = nkInputs::MouseDevice::create(&system) ;
nkInputs::KeyboardDevice* keyboard = system.getKeyboardDeviceManager()->createOrRetrieve("MyKeyboard") ;
// Update the devices to check their current status when needed, for instance before computing a frame's data
mouse->update() ;
keyboard->update() ;
// Do what is needed with their updated status, like updating a camera, some interface...
...