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) 102 bool provides_joystick_rumble;
103 bool provides_joystick_power_off;
201 typedef float JOYSTICK_STATE_AXIS;
207 typedef float JOYSTICK_STATE_MOTOR;
225 JOYSTICK_STATE_HAT driver_hat_state;
226 JOYSTICK_STATE_AXIS driver_axis_state;
227 JOYSTICK_STATE_MOTOR motor_state;
332 JOYSTICK_DRIVER_HAT_DIRECTION direction;
428 JOYSTICK_DRIVER_MOUSE_INDEX button;
462 JOYSTICK_DRIVER_RELPOINTER_DIRECTION direction;
470 JOYSTICK_DRIVER_PRIMITIVE_TYPE
type;
473 struct JOYSTICK_DRIVER_BUTTON button;
474 struct JOYSTICK_DRIVER_HAT hat;
475 struct JOYSTICK_DRIVER_SEMIAXIS semiaxis;
476 struct JOYSTICK_DRIVER_MOTOR motor;
477 struct JOYSTICK_DRIVER_KEY key;
478 struct JOYSTICK_DRIVER_MOUSE_BUTTON mouse;
479 struct JOYSTICK_DRIVER_RELPOINTER relpointer;
596 JOYSTICK_FEATURE_TYPE
type;
597 struct JOYSTICK_DRIVER_PRIMITIVE primitives[JOYSTICK_PRIMITIVE_MAX];
611 KODI_HANDLE kodiInstance;
612 void (*trigger_scan)(
void* kodiInstance);
613 void (*refresh_button_maps)(
void* kodiInstance,
614 const char* device_name,
615 const char* controller_id);
616 unsigned int (*feature_count)(
void* kodiInstance,
617 const char* controller_id,
618 JOYSTICK_FEATURE_TYPE
type);
620 (
void* kodiInstance,
const char* controller_id,
const char* feature_name);
627 KODI_HANDLE addonInstance;
630 struct PERIPHERAL_CAPABILITIES* capabilities);
633 unsigned int* peripheral_count,
634 struct PERIPHERAL_INFO** scan_results);
636 unsigned int peripheral_count,
637 struct PERIPHERAL_INFO* scan_results);
640 unsigned int* event_count,
641 struct PERIPHERAL_EVENT** events);
643 unsigned int event_count,
644 struct PERIPHERAL_EVENT* events);
646 const struct PERIPHERAL_EVENT* event);
653 struct JOYSTICK_INFO* info);
655 struct JOYSTICK_INFO* info);
658 const struct JOYSTICK_INFO* joystick,
659 const char* controller_id,
660 unsigned int* feature_count,
661 struct JOYSTICK_FEATURE** features);
663 unsigned int feature_count,
664 struct JOYSTICK_FEATURE* features);
667 const struct JOYSTICK_INFO* joystick,
668 const char* controller_id,
669 unsigned int feature_count,
670 const struct JOYSTICK_FEATURE* features);
673 const struct JOYSTICK_INFO* joystick,
674 unsigned int* feature_count,
675 struct JOYSTICK_DRIVER_PRIMITIVE** primitives);
678 struct JOYSTICK_DRIVER_PRIMITIVE* primitives);
681 const struct JOYSTICK_INFO* joystick,
682 unsigned int primitive_count,
683 const struct JOYSTICK_DRIVER_PRIMITIVE* primitives);
685 const struct JOYSTICK_INFO* joystick);
687 const struct JOYSTICK_INFO* joystick);
689 const struct JOYSTICK_INFO* joystick,
690 const char* controller_id);
698 struct AddonProps_Peripheral* props;
699 struct AddonToKodiFuncTable_Peripheral* toKodi;
Type accelerometer.
Definition: peripheral.h:505
Relative pointer direction right.
Definition: peripheral.h:580
right and up is pressed
Definition: peripheral.h:185
uint16_t vendor_id
Definition: peripheral.h:91
Relative pointer direction left.
Definition: peripheral.h:443
Driver input primitive type mouse button.
Definition: peripheral.h:284
Definition: peripheral.h:601
Maximum number of primitives.
Definition: peripheral.h:585
JOYSTICK_FEATURE_PRIMITIVE
Definition: peripheral.h:535
Driver input primitive type semiaxis.
Definition: peripheral.h:275
Information shared between peripherals.
Definition: peripheral.h:87
Relative pointer direction down.
Definition: peripheral.h:452
Relative pointer direction down.
Definition: peripheral.h:578
Wheel left.
Definition: peripheral.h:560
Semiaxis primitive.
Definition: peripheral.h:358
Mouse index unknown.
Definition: peripheral.h:391
bool provides_buttonmaps
Definition: peripheral.h:104
Peripheral add-on capabilities.
Definition: peripheral.h:99
char * provider
name of the driver or interface providing the joystick
Definition: peripheral.h:241
Mouse index wheel up.
Definition: peripheral.h:409
PERIPHERAL_TYPE
Definition: peripheral.h:70
PERIPHERAL_ERROR
Definition: peripheral.h:35
Type throttle.
Definition: peripheral.h:520
Driver hat up.
Definition: peripheral.h:318
Relative pointer direction unknown.
Definition: peripheral.h:440
Accelerometer Y.
Definition: peripheral.h:552
only up is pressed
Definition: peripheral.h:173
Motor.
Definition: peripheral.h:557
bool provides_joysticks
Definition: peripheral.h:101
Throttle down.
Definition: peripheral.h:567
Wheel right.
Definition: peripheral.h:562
Mouse index horizontal wheel left.
Definition: peripheral.h:415
Throttle up.
Definition: peripheral.h:565
Type analog stick.
Definition: peripheral.h:502
Type relative pointer.
Definition: peripheral.h:511
left and down is pressed
Definition: peripheral.h:182
Unknown type.
Definition: peripheral.h:496
Definition: peripheral.h:625
only left is pressed
Definition: peripheral.h:167
JOYSTICK_DRIVER_SEMIAXIS_DIRECTION
Definition: peripheral.h:341
JOYSTICK_DRIVER_MOUSE_INDEX
Definition: peripheral.h:388
Type declared as unknown.
Definition: peripheral.h:73
Analog stick up.
Definition: peripheral.h:541
Analog stick down.
Definition: peripheral.h:543
Analog stick right.
Definition: peripheral.h:545
PERIPHERAL_INFO peripheral
peripheral info for this joystick
Definition: peripheral.h:240
left and up is pressed
Definition: peripheral.h:179
Accelerometer Z.
Definition: peripheral.h:554
Event information.
Definition: peripheral.h:213
Driver hat right.
Definition: peripheral.h:315
JOYSTICK_FEATURE_TYPE
Definition: peripheral.h:493
Driver input primitive type button.
Definition: peripheral.h:269
Driver input primitive type motor.
Definition: peripheral.h:278
Relative pointer direction primitive.
Definition: peripheral.h:460
Mouse button.
Definition: peripheral.h:573
const char * addon_path
path to this add-on
Definition: peripheral.h:604
Mouse index button 5.
Definition: peripheral.h:406
uint16_t product_id
Definition: peripheral.h:92
Analog stick left.
Definition: peripheral.h:547
Type key.
Definition: peripheral.h:523
Mouse index button 4.
Definition: peripheral.h:403
state changed for joystick driver hat
Definition: peripheral.h:127
-3 : The parameters of the method are invalid for this operation
Definition: peripheral.h:47
negative half of the axis
Definition: peripheral.h:344
PERIPHERAL_EVENT_TYPE type
Type of the event used to determine which enum field to access below.
Definition: peripheral.h:219
JOYSTICK_DRIVER_RELPOINTER_DIRECTION
Definition: peripheral.h:437
JOYSTICK_STATE_HAT
Definition: peripheral.h:161
Driver hat down.
Definition: peripheral.h:321
int requested_port
requested port number (such as for 360 controllers), or NO_PORT_REQUESTED
Definition: peripheral.h:242
PERIPHERAL_TYPE type
Definition: peripheral.h:89
Type wheel.
Definition: peripheral.h:517
Driver input primitive type unknown.
Definition: peripheral.h:266
Key.
Definition: peripheral.h:570
JOYSTICK_DRIVER_HAT_DIRECTION
Definition: peripheral.h:306
-5 : No peripherals are connected
Definition: peripheral.h:53
Mouse index left.
Definition: peripheral.h:394
Driver input primitive type key.
Definition: peripheral.h:281
-6 : Peripherals are connected, but command was interrupted
Definition: peripheral.h:56
no directions are pressed
Definition: peripheral.h:164
unsigned int index
Definition: peripheral.h:93
unsigned int peripheral_index
Index of the peripheral handling/receiving the event.
Definition: peripheral.h:216
Mouse index horizontal wheel right.
Definition: peripheral.h:418
unsigned int hat_count
number of hats reported by the driver
Definition: peripheral.h:244
Driver primitive struct.
Definition: peripheral.h:468
Accelerometer X.
Definition: peripheral.h:550
Relative pointer direction right.
Definition: peripheral.h:446
PERIPHERAL_EVENT_TYPE
Definition: peripheral.h:118
Info specific to joystick peripherals.
Definition: peripheral.h:238
right and down is pressed
Definition: peripheral.h:188
Type declared as keyboard.
Definition: peripheral.h:79
positive half of the axis
Definition: peripheral.h:350
Scalar feature (a button, hat direction or semiaxis)
Definition: peripheral.h:538
Mouse index wheel down.
Definition: peripheral.h:412
Definition: peripheral.h:609
Type motor.
Definition: peripheral.h:508
state changed for joystick driver axis
Definition: peripheral.h:130
only down is pressed
Definition: peripheral.h:176
JOYSTICK_DRIVER_PRIMITIVE_TYPE
Definition: peripheral.h:263
set the state for joystick rumble motor
Definition: peripheral.h:133
-1 : An unknown error occurred
Definition: peripheral.h:41
Mapping between higher-level controller feature and its driver primitives.
Definition: peripheral.h:593
state changed for joystick driver button
Definition: peripheral.h:124
bool supports_poweroff
whether the joystick supports being powered off
Definition: peripheral.h:247
-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:243
Driver input primitive type hat direction.
Definition: peripheral.h:272
unknown event
Definition: peripheral.h:121
Relative pointer direction up.
Definition: peripheral.h:576
Driver input primitive type relative pointer direction.
Definition: peripheral.h:287
unsigned int motor_count
number of motors reported by the driver
Definition: peripheral.h:246
Mouse index right.
Definition: peripheral.h:397
only right is pressed
Definition: peripheral.h:170
Type scalar.
Definition: peripheral.h:499
Type absolute pointer.
Definition: peripheral.h:514
Driver hat left.
Definition: peripheral.h:312
Driver hat unknown.
Definition: peripheral.h:309
Keyboard key primitive.
Definition: peripheral.h:377
const char * user_path
path to the user profile
Definition: peripheral.h:603
unsigned int axis_count
number of axes reported by the driver
Definition: peripheral.h:245
Type declared as joystick.
Definition: peripheral.h:76
Motor primitive.
Definition: peripheral.h:369
Relative pointer direction left.
Definition: peripheral.h:582
-2 : The command failed
Definition: peripheral.h:44
Hat direction primitive.
Definition: peripheral.h:329
unknown direction
Definition: peripheral.h:347
Definition: peripheral.h:696
0 : No error occurred
Definition: peripheral.h:38
Mouse index middle.
Definition: peripheral.h:400
char * name
Definition: peripheral.h:90
unsigned int driver_index
The index of the event source.
Definition: peripheral.h:222
Relative pointer direction up.
Definition: peripheral.h:449