xbmc
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PERIPHERALS::CPeripheralJoystick Class Reference
Inheritance diagram for PERIPHERALS::CPeripheralJoystick:
Inheritance graph
[legend]
Collaboration diagram for PERIPHERALS::CPeripheralJoystick:
Collaboration graph
[legend]

Classes

struct  DriverHandler
 

Public Member Functions

 CPeripheralJoystick (CPeripherals &manager, const PeripheralScanResult &scanResult, CPeripheralBus *bus)
 
bool InitialiseFeature (const PeripheralFeature feature) override
 Initialise one of the features of this peripheral. More...
 
void OnUserNotification () override
 Briefly activate a feature to notify the user.
 
bool TestFeature (PeripheralFeature feature) override
 Briefly test one of the features of this peripheral. More...
 
void RegisterJoystickDriverHandler (KODI::JOYSTICK::IDriverHandler *handler, bool bPromiscuous) override
 
void UnregisterJoystickDriverHandler (KODI::JOYSTICK::IDriverHandler *handler) override
 
KODI::JOYSTICK::IDriverReceiverGetDriverReceiver () override
 
IKeymapGetKeymap (const std::string &controllerId) override
 
CDateTime LastActive () override
 Return the last time this peripheral was active. More...
 
KODI::GAME::ControllerPtr ControllerProfile () const override
 Get the controller profile that best represents this peripheral. More...
 
bool OnButtonMotion (unsigned int buttonIndex, bool bPressed)
 
bool OnHatMotion (unsigned int hatIndex, KODI::JOYSTICK::HAT_STATE state)
 
bool OnAxisMotion (unsigned int axisIndex, float position)
 
void OnInputFrame (void)
 
bool SetMotorState (unsigned int motorIndex, float magnitude) override
 Set the value of a rumble motor. More...
 
const std::string & Provider (void) const
 Get the name of the driver or API providing this joystick.
 
int RequestedPort (void) const
 Get the specific port number requested by this joystick. More...
 
unsigned int ButtonCount (void) const
 Get the number of elements reported by the driver.
 
unsigned int HatCount (void) const
 
unsigned int AxisCount (void) const
 
unsigned int MotorCount (void) const
 
bool SupportsPowerOff (void) const
 
void SetProvider (const std::string &provider)
 Set joystick properties.
 
void SetRequestedPort (int port)
 
void SetButtonCount (unsigned int buttonCount)
 
void SetHatCount (unsigned int hatCount)
 
void SetAxisCount (unsigned int axisCount)
 
void SetMotorCount (unsigned int motorCount)
 
void SetSupportsPowerOff (bool bSupportsPowerOff)
 
- Public Member Functions inherited from PERIPHERALS::CPeripheral
 CPeripheral (CPeripherals &manager, const PeripheralScanResult &scanResult, CPeripheralBus *bus)
 
bool operator== (const CPeripheral &right) const
 
bool operator!= (const CPeripheral &right) const
 
bool operator== (const PeripheralScanResult &right) const
 
bool operator!= (const PeripheralScanResult &right) const
 
const std::string & FileLocation (void) const
 
const std::string & Location (void) const
 
int VendorId (void) const
 
const char * VendorIdAsString (void) const
 
int ProductId (void) const
 
const char * ProductIdAsString (void) const
 
PeripheralType Type (void) const
 
PeripheralBusType GetBusType (void) const
 
const std::string & DeviceName (void) const
 
bool IsHidden (void) const
 
void SetHidden (bool bSetTo=true)
 
const std::string & GetVersionInfo (void) const
 
virtual std::string GetIcon () const
 Get an icon for this peripheral. More...
 
bool HasFeature (const PeripheralFeature feature) const
 Check whether this device has the given feature. More...
 
void GetFeatures (std::vector< PeripheralFeature > &features) const
 Get all features that are supported by this device. More...
 
bool Initialise (void)
 Initialises the peripheral. More...
 
virtual void OnSettingChanged (const std::string &strChangedSetting)
 Called when a setting changed. More...
 
virtual void OnDeviceRemoved (void)
 Called when this device is removed, before calling the destructor.
 
virtual void GetSubdevices (PeripheralVector &subDevices) const
 Get all subdevices if this device is multifunctional. More...
 
virtual bool IsMultiFunctional (void) const
 
virtual void AddSetting (const std::string &strKey, const std::shared_ptr< const CSetting > &setting, int order)
 Add a setting to this peripheral. This will overwrite a previous setting with the same key. More...
 
virtual bool HasSetting (const std::string &strKey) const
 Check whether a setting is known with the given key. More...
 
virtual bool HasSettings (void) const
 
virtual bool HasConfigurableSettings (void) const
 
virtual const std::string GetSettingString (const std::string &strKey) const
 Get the value of a setting. More...
 
virtual bool SetSetting (const std::string &strKey, const std::string &strValue)
 
virtual void SetSettingVisible (const std::string &strKey, bool bSetTo)
 
virtual bool IsSettingVisible (const std::string &strKey) const
 
virtual int GetSettingInt (const std::string &strKey) const
 
virtual bool SetSetting (const std::string &strKey, int iValue)
 
virtual bool GetSettingBool (const std::string &strKey) const
 
virtual bool SetSetting (const std::string &strKey, bool bValue)
 
virtual float GetSettingFloat (const std::string &strKey) const
 
virtual bool SetSetting (const std::string &strKey, float fValue)
 
virtual void PersistSettings (bool bExiting=false)
 
virtual void LoadPersistedSettings (void)
 
virtual void ResetDefaultSettings (void)
 
virtual std::vector< std::shared_ptr< CSetting > > GetSettings (void) const
 
virtual bool ErrorOccured (void) const
 
virtual void RegisterKeyboardDriverHandler (KODI::KEYBOARD::IKeyboardDriverHandler *handler, bool bPromiscuous)
 
virtual void UnregisterKeyboardDriverHandler (KODI::KEYBOARD::IKeyboardDriverHandler *handler)
 
virtual void RegisterMouseDriverHandler (KODI::MOUSE::IMouseDriverHandler *handler, bool bPromiscuous)
 
virtual void UnregisterMouseDriverHandler (KODI::MOUSE::IMouseDriverHandler *handler)
 
void RegisterInputHandler (KODI::JOYSTICK::IInputHandler *handler, bool bPromiscuous) override
 Register a handler for the provided input. More...
 
void UnregisterInputHandler (KODI::JOYSTICK::IInputHandler *handler) override
 Unregister a handler. More...
 
void RegisterKeyboardHandler (KODI::KEYBOARD::IKeyboardInputHandler *handler, bool bPromiscuous) override
 Registers a handler to be called on keyboard input. More...
 
void UnregisterKeyboardHandler (KODI::KEYBOARD::IKeyboardInputHandler *handler) override
 Unregisters handler from keyboard input. More...
 
void RegisterMouseHandler (KODI::MOUSE::IMouseInputHandler *handler, bool bPromiscuous) override
 Registers a handler to be called on mouse input. More...
 
void UnregisterMouseHandler (KODI::MOUSE::IMouseInputHandler *handler) override
 Unregisters handler from mouse input. More...
 
virtual void RegisterJoystickButtonMapper (KODI::JOYSTICK::IButtonMapper *mapper)
 
virtual void UnregisterJoystickButtonMapper (KODI::JOYSTICK::IButtonMapper *mapper)
 

Protected Member Functions

void InitializeDeadzoneFiltering ()
 
void PowerOff ()
 
- Protected Member Functions inherited from PERIPHERALS::CPeripheral
virtual void ClearSettings (void)
 

Protected Attributes

std::string m_strProvider
 
int m_requestedPort
 
unsigned int m_buttonCount
 
unsigned int m_hatCount
 
unsigned int m_axisCount
 
unsigned int m_motorCount
 
bool m_supportsPowerOff
 
CDateTime m_lastActive
 
std::unique_ptr< KODI::JOYSTICK::CKeymapHandlingm_appInput
 
std::unique_ptr< KODI::JOYSTICK::CRumbleGeneratorm_rumbleGenerator
 
std::unique_ptr< KODI::JOYSTICK::IInputHandlerm_joystickMonitor
 
std::unique_ptr< KODI::JOYSTICK::IButtonMapm_buttonMap
 
std::unique_ptr< KODI::JOYSTICK::CDeadzoneFilterm_deadzoneFilter
 
std::vector< DriverHandlerm_driverHandlers
 
CCriticalSection m_handlerMutex
 
- Protected Attributes inherited from PERIPHERALS::CPeripheral
CPeripheralsm_manager
 
PeripheralType m_type
 
PeripheralBusType m_busType
 
PeripheralBusType m_mappedBusType
 
std::string m_strLocation
 
std::string m_strDeviceName
 
std::string m_strSettingsFile
 
std::string m_strFileLocation
 
int m_iVendorId
 
std::string m_strVendorId
 
int m_iProductId
 
std::string m_strProductId
 
std::string m_strVersionInfo
 
bool m_bInitialised
 
bool m_bHidden
 
bool m_bError
 
std::vector< PeripheralFeature > m_features
 
PeripheralVector m_subDevices
 
std::map< std::string, PeripheralDeviceSettingm_settings
 
std::set< std::string > m_changedSettings
 
CPeripheralBusm_bus
 
std::map< KODI::JOYSTICK::IInputHandler *, std::unique_ptr< KODI::JOYSTICK::IDriverHandler > > m_inputHandlers
 
std::map< KODI::KEYBOARD::IKeyboardInputHandler *, std::unique_ptr< KODI::KEYBOARD::IKeyboardDriverHandler > > m_keyboardHandlers
 
std::map< KODI::MOUSE::IMouseInputHandler *, std::unique_ptr< KODI::MOUSE::IMouseDriverHandler > > m_mouseHandlers
 
std::map< KODI::JOYSTICK::IButtonMapper *, std::unique_ptr< CAddonButtonMapping > > m_buttonMappers
 

Member Function Documentation

◆ ControllerProfile()

GAME::ControllerPtr CPeripheralJoystick::ControllerProfile ( ) const
overridevirtual

Get the controller profile that best represents this peripheral.

Returns
The controller profile, or empty if unknown
Todo:
Allow the user to change which controller profile represents their

Reimplemented from PERIPHERALS::CPeripheral.

◆ InitialiseFeature()

bool CPeripheralJoystick::InitialiseFeature ( const PeripheralFeature  feature)
overridevirtual

Initialise one of the features of this peripheral.

Parameters
featureThe feature to initialise.
Returns
True when the feature has been initialised successfully, false otherwise.

Reimplemented from PERIPHERALS::CPeripheral.

◆ LastActive()

CDateTime PERIPHERALS::CPeripheralJoystick::LastActive ( )
inlineoverridevirtual

Return the last time this peripheral was active.

Returns
The time of last activation, or invalid if unknown/never active

Reimplemented from PERIPHERALS::CPeripheral.

◆ RequestedPort()

int PERIPHERALS::CPeripheralJoystick::RequestedPort ( void  ) const
inline

Get the specific port number requested by this joystick.

This could indicate that the joystick is connected to a hardware port with a number label; some controllers, such as the Xbox 360 controller, also have LEDs that indicate the controller is on a specific port.

Returns
The 0-indexed port number, or JOYSTICK_PORT_UNKNOWN if no port is requested

◆ SetMotorState()

bool CPeripheralJoystick::SetMotorState ( unsigned int  motorIndex,
float  magnitude 
)
overridevirtual

Set the value of a rumble motor.

Parameters
motorIndexThe driver index of the motor to rumble
magnitudeThe motor's new magnitude of vibration in the closed interval [0, 1]
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IDriverReceiver.

◆ TestFeature()

bool CPeripheralJoystick::TestFeature ( PeripheralFeature  feature)
overridevirtual

Briefly test one of the features of this peripheral.

Parameters
featureThe feature to test.
Returns
True if the test succeeded, false otherwise.

Reimplemented from PERIPHERALS::CPeripheral.


The documentation for this class was generated from the following files: