9 #ifndef C_API_ADDONINSTANCE_PERIPHERAL_H 10 #define C_API_ADDONINSTANCE_PERIPHERAL_H 12 #include "../addon_base.h" 15 #define NO_PORT_REQUESTED (-1) 18 #define DRIVER_INDEX_UNKNOWN (-1) 105 bool provides_joystick_rumble;
106 bool provides_joystick_power_off;
204 typedef float JOYSTICK_STATE_AXIS;
210 typedef float JOYSTICK_STATE_MOTOR;
228 JOYSTICK_STATE_HAT driver_hat_state;
229 JOYSTICK_STATE_AXIS driver_axis_state;
230 JOYSTICK_STATE_MOTOR motor_state;
335 JOYSTICK_DRIVER_HAT_DIRECTION direction;
431 JOYSTICK_DRIVER_MOUSE_INDEX button;
465 JOYSTICK_DRIVER_RELPOINTER_DIRECTION direction;
473 JOYSTICK_DRIVER_PRIMITIVE_TYPE
type;
476 struct JOYSTICK_DRIVER_BUTTON button;
477 struct JOYSTICK_DRIVER_HAT hat;
478 struct JOYSTICK_DRIVER_SEMIAXIS semiaxis;
479 struct JOYSTICK_DRIVER_MOTOR motor;
480 struct JOYSTICK_DRIVER_KEY key;
481 struct JOYSTICK_DRIVER_MOUSE_BUTTON mouse;
482 struct JOYSTICK_DRIVER_RELPOINTER relpointer;
599 JOYSTICK_FEATURE_TYPE
type;
600 struct JOYSTICK_DRIVER_PRIMITIVE primitives[JOYSTICK_PRIMITIVE_MAX];
614 KODI_HANDLE kodiInstance;
616 void (*trigger_scan)(
void* kodiInstance);
618 void (*refresh_button_maps)(
void* kodiInstance,
619 const char* device_name,
620 const char* controller_id);
622 unsigned int (*feature_count)(
void* kodiInstance,
623 const char* controller_id,
624 JOYSTICK_FEATURE_TYPE
type);
627 (
void* kodiInstance,
const char* controller_id,
const char* feature_name);
634 KODI_HANDLE addonInstance;
637 struct PERIPHERAL_CAPABILITIES* capabilities);
641 unsigned int* peripheral_count,
642 struct PERIPHERAL_INFO** scan_results);
645 unsigned int peripheral_count,
646 struct PERIPHERAL_INFO* scan_results);
650 unsigned int* event_count,
651 struct PERIPHERAL_EVENT** events);
654 unsigned int event_count,
655 struct PERIPHERAL_EVENT* events);
658 const struct PERIPHERAL_EVENT* event);
665 struct JOYSTICK_INFO* info);
668 struct JOYSTICK_INFO* info);
672 const struct JOYSTICK_INFO* joystick,
674 unsigned int bufferSize);
678 const struct JOYSTICK_INFO* joystick,
679 const char* controller_id);
683 const struct JOYSTICK_INFO* joystick,
684 const char* controller_id,
685 unsigned int* feature_count,
686 struct JOYSTICK_FEATURE** features);
689 unsigned int feature_count,
690 struct JOYSTICK_FEATURE* features);
694 const struct JOYSTICK_INFO* joystick,
695 const char* controller_id,
696 unsigned int feature_count,
697 const struct JOYSTICK_FEATURE* features);
701 const struct JOYSTICK_INFO* joystick,
702 unsigned int* feature_count,
703 struct JOYSTICK_DRIVER_PRIMITIVE** primitives);
707 struct JOYSTICK_DRIVER_PRIMITIVE* primitives);
711 const struct JOYSTICK_INFO* joystick,
712 unsigned int primitive_count,
713 const struct JOYSTICK_DRIVER_PRIMITIVE* primitives);
716 const struct JOYSTICK_INFO* joystick);
719 const struct JOYSTICK_INFO* joystick);
722 const struct JOYSTICK_INFO* joystick,
723 const char* controller_id);
732 struct AddonProps_Peripheral* props;
733 struct AddonToKodiFuncTable_Peripheral* toKodi;
Type accelerometer.
Definition: peripheral.h:508
Relative pointer direction right.
Definition: peripheral.h:583
right and up is pressed
Definition: peripheral.h:188
uint16_t vendor_id
Definition: peripheral.h:94
Relative pointer direction left.
Definition: peripheral.h:446
Driver input primitive type mouse button.
Definition: peripheral.h:287
Definition: peripheral.h:604
Maximum number of primitives.
Definition: peripheral.h:588
JOYSTICK_FEATURE_PRIMITIVE
Definition: peripheral.h:538
Driver input primitive type semiaxis.
Definition: peripheral.h:278
Information shared between peripherals.
Definition: peripheral.h:90
Relative pointer direction down.
Definition: peripheral.h:455
Relative pointer direction down.
Definition: peripheral.h:581
Wheel left.
Definition: peripheral.h:563
Semiaxis primitive.
Definition: peripheral.h:361
Mouse index unknown.
Definition: peripheral.h:394
bool provides_buttonmaps
Definition: peripheral.h:107
Peripheral add-on capabilities.
Definition: peripheral.h:102
char * provider
name of the driver or interface providing the joystick
Definition: peripheral.h:244
Mouse index wheel up.
Definition: peripheral.h:412
PERIPHERAL_TYPE
Definition: peripheral.h:70
PERIPHERAL_ERROR
Definition: peripheral.h:35
Type throttle.
Definition: peripheral.h:523
Driver hat up.
Definition: peripheral.h:321
Relative pointer direction unknown.
Definition: peripheral.h:443
Accelerometer Y.
Definition: peripheral.h:555
only up is pressed
Definition: peripheral.h:176
Motor.
Definition: peripheral.h:560
bool provides_joysticks
Definition: peripheral.h:104
Throttle down.
Definition: peripheral.h:570
Wheel right.
Definition: peripheral.h:565
Mouse index horizontal wheel left.
Definition: peripheral.h:418
Throttle up.
Definition: peripheral.h:568
Type analog stick.
Definition: peripheral.h:505
Type relative pointer.
Definition: peripheral.h:514
left and down is pressed
Definition: peripheral.h:185
Unknown type.
Definition: peripheral.h:499
Definition: peripheral.h:632
only left is pressed
Definition: peripheral.h:170
JOYSTICK_DRIVER_SEMIAXIS_DIRECTION
Definition: peripheral.h:344
JOYSTICK_DRIVER_MOUSE_INDEX
Definition: peripheral.h:391
Type declared as unknown.
Definition: peripheral.h:73
Analog stick up.
Definition: peripheral.h:544
Analog stick down.
Definition: peripheral.h:546
Analog stick right.
Definition: peripheral.h:548
PERIPHERAL_INFO peripheral
peripheral info for this joystick
Definition: peripheral.h:243
left and up is pressed
Definition: peripheral.h:182
Accelerometer Z.
Definition: peripheral.h:557
Event information.
Definition: peripheral.h:216
Driver hat right.
Definition: peripheral.h:318
JOYSTICK_FEATURE_TYPE
Definition: peripheral.h:496
Driver input primitive type button.
Definition: peripheral.h:272
Driver input primitive type motor.
Definition: peripheral.h:281
Relative pointer direction primitive.
Definition: peripheral.h:463
Mouse button.
Definition: peripheral.h:576
const char * addon_path
path to this add-on
Definition: peripheral.h:607
Mouse index button 5.
Definition: peripheral.h:409
uint16_t product_id
Definition: peripheral.h:95
Analog stick left.
Definition: peripheral.h:550
Type key.
Definition: peripheral.h:526
Mouse index button 4.
Definition: peripheral.h:406
state changed for joystick driver hat
Definition: peripheral.h:130
-3 : The parameters of the method are invalid for this operation
Definition: peripheral.h:47
negative half of the axis
Definition: peripheral.h:347
PERIPHERAL_EVENT_TYPE type
Type of the event used to determine which enum field to access below.
Definition: peripheral.h:222
JOYSTICK_DRIVER_RELPOINTER_DIRECTION
Definition: peripheral.h:440
JOYSTICK_STATE_HAT
Definition: peripheral.h:164
Driver hat down.
Definition: peripheral.h:324
int requested_port
requested port number (such as for 360 controllers), or NO_PORT_REQUESTED
Definition: peripheral.h:245
PERIPHERAL_TYPE type
Definition: peripheral.h:92
Type wheel.
Definition: peripheral.h:520
Driver input primitive type unknown.
Definition: peripheral.h:269
Key.
Definition: peripheral.h:573
JOYSTICK_DRIVER_HAT_DIRECTION
Definition: peripheral.h:309
-5 : No peripherals are connected
Definition: peripheral.h:53
Mouse index left.
Definition: peripheral.h:397
Driver input primitive type key.
Definition: peripheral.h:284
-6 : Peripherals are connected, but command was interrupted
Definition: peripheral.h:56
no directions are pressed
Definition: peripheral.h:167
unsigned int index
Definition: peripheral.h:96
unsigned int peripheral_index
Index of the peripheral handling/receiving the event.
Definition: peripheral.h:219
Mouse index horizontal wheel right.
Definition: peripheral.h:421
unsigned int hat_count
number of hats reported by the driver
Definition: peripheral.h:247
Driver primitive struct.
Definition: peripheral.h:471
Accelerometer X.
Definition: peripheral.h:553
Relative pointer direction right.
Definition: peripheral.h:449
PERIPHERAL_EVENT_TYPE
Definition: peripheral.h:121
Info specific to joystick peripherals.
Definition: peripheral.h:241
right and down is pressed
Definition: peripheral.h:191
Type declared as keyboard.
Definition: peripheral.h:79
positive half of the axis
Definition: peripheral.h:353
Scalar feature (a button, hat direction or semiaxis)
Definition: peripheral.h:541
Mouse index wheel down.
Definition: peripheral.h:415
Definition: peripheral.h:612
Type motor.
Definition: peripheral.h:511
state changed for joystick driver axis
Definition: peripheral.h:133
only down is pressed
Definition: peripheral.h:179
JOYSTICK_DRIVER_PRIMITIVE_TYPE
Definition: peripheral.h:266
set the state for joystick rumble motor
Definition: peripheral.h:136
-1 : An unknown error occurred
Definition: peripheral.h:41
Mapping between higher-level controller feature and its driver primitives.
Definition: peripheral.h:596
state changed for joystick driver button
Definition: peripheral.h:127
bool supports_poweroff
whether the joystick supports being powered off
Definition: peripheral.h:250
-4 : The method that the frontend called is not implemented
Definition: peripheral.h:50
unsigned int button_count
number of buttons reported by the driver
Definition: peripheral.h:246
Driver input primitive type hat direction.
Definition: peripheral.h:275
unknown event
Definition: peripheral.h:124
Relative pointer direction up.
Definition: peripheral.h:579
Driver input primitive type relative pointer direction.
Definition: peripheral.h:290
unsigned int motor_count
number of motors reported by the driver
Definition: peripheral.h:249
Mouse index right.
Definition: peripheral.h:400
only right is pressed
Definition: peripheral.h:173
Type scalar.
Definition: peripheral.h:502
Type absolute pointer.
Definition: peripheral.h:517
Driver hat left.
Definition: peripheral.h:315
Driver hat unknown.
Definition: peripheral.h:312
Keyboard key primitive.
Definition: peripheral.h:380
const char * user_path
path to the user profile
Definition: peripheral.h:606
unsigned int axis_count
number of axes reported by the driver
Definition: peripheral.h:248
Type declared as joystick.
Definition: peripheral.h:76
Motor primitive.
Definition: peripheral.h:372
Relative pointer direction left.
Definition: peripheral.h:585
Type declared as mouse.
Definition: peripheral.h:82
-2 : The command failed
Definition: peripheral.h:44
Hat direction primitive.
Definition: peripheral.h:332
unknown direction
Definition: peripheral.h:350
Definition: peripheral.h:730
0 : No error occurred
Definition: peripheral.h:38
Mouse index middle.
Definition: peripheral.h:403
char * name
Definition: peripheral.h:93
unsigned int driver_index
The index of the event source.
Definition: peripheral.h:225
Relative pointer direction up.
Definition: peripheral.h:452