mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 04:31:35 +00:00
[ruamoko] Add wrapper for IN_SendConnectedDevices
And wrap input/event.h event.h is a bit messy because of the data pointer in events, but it works for now.
This commit is contained in:
parent
0af727341f
commit
2e19e2d913
4 changed files with 35 additions and 2 deletions
|
@ -31,7 +31,9 @@
|
|||
#ifndef __QF_in_event_h
|
||||
#define __QF_in_event_h
|
||||
|
||||
#ifndef __QFCC__ // FIXME make more compatible with Ruamoko
|
||||
#include "QF/qtypes.h"
|
||||
#endif
|
||||
|
||||
/** \defgroup input_events Input Events
|
||||
\ingroup input
|
||||
|
@ -74,14 +76,22 @@ typedef struct {
|
|||
} IE_key_event_t;
|
||||
|
||||
typedef struct {
|
||||
#ifdef __QFCC__
|
||||
long data;
|
||||
#else
|
||||
void *data;
|
||||
#endif
|
||||
int devid;
|
||||
int axis;
|
||||
int value;
|
||||
} IE_axis_event_t;
|
||||
|
||||
typedef struct {
|
||||
#ifdef __QFCC__
|
||||
long data;
|
||||
#else
|
||||
void *data;
|
||||
#endif
|
||||
int devid;
|
||||
int button;
|
||||
int state;
|
||||
|
@ -97,7 +107,11 @@ typedef enum {
|
|||
ie_event_count
|
||||
} IE_event_type;
|
||||
|
||||
#ifdef __QFCC__
|
||||
extern string ie_event_names[];
|
||||
#else
|
||||
extern const char *ie_event_names[];
|
||||
#endif
|
||||
|
||||
#define IE_broadcast_events (0 \
|
||||
| (1 << ie_add_device) \
|
||||
|
@ -109,7 +123,11 @@ extern const char *ie_event_names[];
|
|||
|
||||
typedef struct IE_event_s {
|
||||
IE_event_type type;
|
||||
#ifdef __QFCC__//FIXME proper stdint for Ruamoko
|
||||
unsigned long when;
|
||||
#else
|
||||
uint64_t when;
|
||||
#endif
|
||||
union {
|
||||
IE_app_window_event_t app_window;
|
||||
IE_mouse_event_t mouse;
|
||||
|
@ -119,7 +137,7 @@ typedef struct IE_event_s {
|
|||
IE_device_event_t device;
|
||||
};
|
||||
} IE_event_t;
|
||||
|
||||
#ifndef __QFCC__
|
||||
typedef int ie_handler_t (const IE_event_t *, void *data);
|
||||
|
||||
void IN_Event_Init (void);
|
||||
|
@ -128,7 +146,7 @@ int IE_Add_Handler (ie_handler_t *event_handler, void *data);
|
|||
void IE_Remove_Handler (int handle);
|
||||
void IE_Set_Focus (int handle);
|
||||
int IE_Get_Focus (void) __attribute__ ((pure));
|
||||
|
||||
#endif
|
||||
///@}
|
||||
|
||||
#endif//__QF_in_event_h
|
||||
|
|
|
@ -62,6 +62,12 @@ typedef struct input_resources_s {
|
|||
ptrset_t axes;
|
||||
} input_resources_t;
|
||||
|
||||
static void
|
||||
bi_IN_SendConnectedDevices (progs_t *pr, void *_res)
|
||||
{
|
||||
IN_SendConnectedDevices ();
|
||||
}
|
||||
|
||||
static void
|
||||
bi_IN_FindDeviceId (progs_t *pr, void *_res)
|
||||
{
|
||||
|
@ -511,6 +517,7 @@ static builtin_t insecure_builtins[] = {
|
|||
{0}
|
||||
};
|
||||
static builtin_t builtins[] = {
|
||||
bi(IN_SendConnectedDevices, 0),
|
||||
bi(IN_FindDeviceId, 1, p(string)),
|
||||
bi(IN_GetDeviceName, 1, p(int)),
|
||||
bi(IN_GetDeviceId, 1, p(int)),
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
#define __ruamoko_input_h
|
||||
|
||||
#include <QF/input.h>
|
||||
#include <QF/input/event.h>
|
||||
|
||||
struct plitem_s;
|
||||
void IN_LoadConfig (struct plitem_s *config);
|
||||
in_button_t *IN_CreateButton (string name, string description);
|
||||
in_axis_t *IN_CreateAxis (string name, string description);
|
||||
void IN_SendConnectedDevices (void);
|
||||
int IN_FindDeviceId (string _id);
|
||||
string IN_GetDeviceName (int devid);
|
||||
string IN_GetDeviceId (int devid);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
void IN_LoadConfig (struct plitem_s *config) = #0;
|
||||
in_button_t *IN_CreateButton (string name, string description) = #0;
|
||||
in_axis_t *IN_CreateAxis (string name, string description) = #0;
|
||||
void IN_SendConnectedDevices (void) = #0;
|
||||
int IN_FindDeviceId (string _id) = #0;
|
||||
string IN_GetDeviceName (int devid) = #0;
|
||||
string IN_GetDeviceId (int devid) = #0;
|
||||
|
@ -40,3 +41,8 @@ void IN_AxisRemoveListener (in_axis_t *axis, IMP listener, id obj) = #0;
|
|||
int IMT_CreateContext (string name) = #0;
|
||||
int IMT_GetContext (void) = #0;
|
||||
void IMT_SetContext (int ctx) = #0;
|
||||
|
||||
#define IE_EVENT(event) #event,
|
||||
string ie_event_names[] = {
|
||||
#include "QF/input/event_names.h"
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue