Files
padkey_linux/multibutton.h
2013-04-03 00:35:44 +09:00

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