62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
/*
|
|
* Released into the public domain
|
|
* by Aki Goto <tyatsumi@gmail.com>
|
|
*/
|
|
|
|
#ifndef MULTIBUTTON_H
|
|
#define MULTIBUTTON_H
|
|
|
|
#include "gamepad.h"
|
|
|
|
enum {
|
|
Modifier_NONE,
|
|
Modifier_SHIFT,
|
|
Modifier_CONTROL,
|
|
Modifier_ALT,
|
|
};
|
|
|
|
struct Code {
|
|
int modifier;
|
|
int first;
|
|
int second;
|
|
};
|
|
|
|
struct MultiButton {
|
|
struct Button *buttons[8];
|
|
int size;
|
|
struct Button *list[8];
|
|
int available;
|
|
int sequenceSize;
|
|
struct Button *sequence[8];
|
|
int modifier;
|
|
struct Code code;
|
|
};
|
|
|
|
extern void MultiButton_initialize(struct MultiButton *this, struct Gamepad *gamepad);
|
|
extern void MultiButton_reset(struct MultiButton *this);
|
|
extern void MultiButton_update(struct MultiButton *this, struct js_event *event);
|
|
extern void MultiButton_generate(struct MultiButton *this);
|
|
|
|
enum {
|
|
Special_NONE,
|
|
Special_CANCEL,
|
|
Special_MODE,
|
|
Special_RESERVED1,
|
|
Special_RESERVED2,
|
|
};
|
|
|
|
struct MultiSpecial {
|
|
struct Button *buttons[2];
|
|
int size;
|
|
struct Button *list[8];
|
|
int available;
|
|
int code;
|
|
};
|
|
|
|
extern void MultiSpecial_initialize(struct MultiSpecial *this, struct Gamepad *gamepad);
|
|
extern void MultiSpecial_reset(struct MultiSpecial *this);
|
|
extern void MultiSpecial_update(struct MultiSpecial *this, struct js_event *event);
|
|
extern void MultiSpecial_generate(struct MultiSpecial *this);
|
|
|
|
#endif
|