• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <inttypes.h>
2 typedef uint32_t mpers_ptr_t;
3 typedef
4 struct {
5 uint16_t type;
6 int16_t id;
7 uint16_t direction;
8 struct {
9 uint16_t button;
10 uint16_t interval;
11 } ATTRIBUTE_PACKED trigger;
12 struct {
13 uint16_t length;
14 uint16_t delay;
15 } ATTRIBUTE_PACKED replay;
16 unsigned char mpers_filler_1[2];
17 union {
18 struct {
19 int16_t level;
20 struct {
21 uint16_t attack_length;
22 uint16_t attack_level;
23 uint16_t fade_length;
24 uint16_t fade_level;
25 } ATTRIBUTE_PACKED envelope;
26 } ATTRIBUTE_PACKED constant;
27 struct {
28 int16_t start_level;
29 int16_t end_level;
30 struct {
31 uint16_t attack_length;
32 uint16_t attack_level;
33 uint16_t fade_length;
34 uint16_t fade_level;
35 } ATTRIBUTE_PACKED envelope;
36 } ATTRIBUTE_PACKED ramp;
37 struct {
38 uint16_t waveform;
39 uint16_t period;
40 int16_t magnitude;
41 int16_t offset;
42 uint16_t phase;
43 struct {
44 uint16_t attack_length;
45 uint16_t attack_level;
46 uint16_t fade_length;
47 uint16_t fade_level;
48 } ATTRIBUTE_PACKED envelope;
49 unsigned char mpers_filler_2[2];
50 uint32_t custom_len;
51 mpers_ptr_t custom_data;
52 } ATTRIBUTE_PACKED periodic;
53 struct {
54 uint16_t right_saturation;
55 uint16_t left_saturation;
56 int16_t right_coeff;
57 int16_t left_coeff;
58 uint16_t deadband;
59 int16_t center;
60 } ATTRIBUTE_PACKED condition[2];
61 struct {
62 uint16_t strong_magnitude;
63 uint16_t weak_magnitude;
64 } ATTRIBUTE_PACKED rumble;
65 } u;
66 } ATTRIBUTE_PACKED m32_struct_ff_effect;
67 #define MPERS_m32_struct_ff_effect m32_struct_ff_effect
68