mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 12:42:32 +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
|
#ifndef __QF_in_event_h
|
||||||
#define __QF_in_event_h
|
#define __QF_in_event_h
|
||||||
|
|
||||||
|
#ifndef __QFCC__ // FIXME make more compatible with Ruamoko
|
||||||
#include "QF/qtypes.h"
|
#include "QF/qtypes.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/** \defgroup input_events Input Events
|
/** \defgroup input_events Input Events
|
||||||
\ingroup input
|
\ingroup input
|
||||||
|
@ -74,14 +76,22 @@ typedef struct {
|
||||||
} IE_key_event_t;
|
} IE_key_event_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
#ifdef __QFCC__
|
||||||
|
long data;
|
||||||
|
#else
|
||||||
void *data;
|
void *data;
|
||||||
|
#endif
|
||||||
int devid;
|
int devid;
|
||||||
int axis;
|
int axis;
|
||||||
int value;
|
int value;
|
||||||
} IE_axis_event_t;
|
} IE_axis_event_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
#ifdef __QFCC__
|
||||||
|
long data;
|
||||||
|
#else
|
||||||
void *data;
|
void *data;
|
||||||
|
#endif
|
||||||
int devid;
|
int devid;
|
||||||
int button;
|
int button;
|
||||||
int state;
|
int state;
|
||||||
|
@ -97,7 +107,11 @@ typedef enum {
|
||||||
ie_event_count
|
ie_event_count
|
||||||
} IE_event_type;
|
} IE_event_type;
|
||||||
|
|
||||||
|
#ifdef __QFCC__
|
||||||
|
extern string ie_event_names[];
|
||||||
|
#else
|
||||||
extern const char *ie_event_names[];
|
extern const char *ie_event_names[];
|
||||||
|
#endif
|
||||||
|
|
||||||
#define IE_broadcast_events (0 \
|
#define IE_broadcast_events (0 \
|
||||||
| (1 << ie_add_device) \
|
| (1 << ie_add_device) \
|
||||||
|
@ -109,7 +123,11 @@ extern const char *ie_event_names[];
|
||||||
|
|
||||||
typedef struct IE_event_s {
|
typedef struct IE_event_s {
|
||||||
IE_event_type type;
|
IE_event_type type;
|
||||||
|
#ifdef __QFCC__//FIXME proper stdint for Ruamoko
|
||||||
|
unsigned long when;
|
||||||
|
#else
|
||||||
uint64_t when;
|
uint64_t when;
|
||||||
|
#endif
|
||||||
union {
|
union {
|
||||||
IE_app_window_event_t app_window;
|
IE_app_window_event_t app_window;
|
||||||
IE_mouse_event_t mouse;
|
IE_mouse_event_t mouse;
|
||||||
|
@ -119,7 +137,7 @@ typedef struct IE_event_s {
|
||||||
IE_device_event_t device;
|
IE_device_event_t device;
|
||||||
};
|
};
|
||||||
} IE_event_t;
|
} IE_event_t;
|
||||||
|
#ifndef __QFCC__
|
||||||
typedef int ie_handler_t (const IE_event_t *, void *data);
|
typedef int ie_handler_t (const IE_event_t *, void *data);
|
||||||
|
|
||||||
void IN_Event_Init (void);
|
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_Remove_Handler (int handle);
|
||||||
void IE_Set_Focus (int handle);
|
void IE_Set_Focus (int handle);
|
||||||
int IE_Get_Focus (void) __attribute__ ((pure));
|
int IE_Get_Focus (void) __attribute__ ((pure));
|
||||||
|
#endif
|
||||||
///@}
|
///@}
|
||||||
|
|
||||||
#endif//__QF_in_event_h
|
#endif//__QF_in_event_h
|
||||||
|
|
|
@ -62,6 +62,12 @@ typedef struct input_resources_s {
|
||||||
ptrset_t axes;
|
ptrset_t axes;
|
||||||
} input_resources_t;
|
} input_resources_t;
|
||||||
|
|
||||||
|
static void
|
||||||
|
bi_IN_SendConnectedDevices (progs_t *pr, void *_res)
|
||||||
|
{
|
||||||
|
IN_SendConnectedDevices ();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bi_IN_FindDeviceId (progs_t *pr, void *_res)
|
bi_IN_FindDeviceId (progs_t *pr, void *_res)
|
||||||
{
|
{
|
||||||
|
@ -511,6 +517,7 @@ static builtin_t insecure_builtins[] = {
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
static builtin_t builtins[] = {
|
static builtin_t builtins[] = {
|
||||||
|
bi(IN_SendConnectedDevices, 0),
|
||||||
bi(IN_FindDeviceId, 1, p(string)),
|
bi(IN_FindDeviceId, 1, p(string)),
|
||||||
bi(IN_GetDeviceName, 1, p(int)),
|
bi(IN_GetDeviceName, 1, p(int)),
|
||||||
bi(IN_GetDeviceId, 1, p(int)),
|
bi(IN_GetDeviceId, 1, p(int)),
|
||||||
|
|
|
@ -2,11 +2,13 @@
|
||||||
#define __ruamoko_input_h
|
#define __ruamoko_input_h
|
||||||
|
|
||||||
#include <QF/input.h>
|
#include <QF/input.h>
|
||||||
|
#include <QF/input/event.h>
|
||||||
|
|
||||||
struct plitem_s;
|
struct plitem_s;
|
||||||
void IN_LoadConfig (struct plitem_s *config);
|
void IN_LoadConfig (struct plitem_s *config);
|
||||||
in_button_t *IN_CreateButton (string name, string description);
|
in_button_t *IN_CreateButton (string name, string description);
|
||||||
in_axis_t *IN_CreateAxis (string name, string description);
|
in_axis_t *IN_CreateAxis (string name, string description);
|
||||||
|
void IN_SendConnectedDevices (void);
|
||||||
int IN_FindDeviceId (string _id);
|
int IN_FindDeviceId (string _id);
|
||||||
string IN_GetDeviceName (int devid);
|
string IN_GetDeviceName (int devid);
|
||||||
string IN_GetDeviceId (int devid);
|
string IN_GetDeviceId (int devid);
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
void IN_LoadConfig (struct plitem_s *config) = #0;
|
void IN_LoadConfig (struct plitem_s *config) = #0;
|
||||||
in_button_t *IN_CreateButton (string name, string description) = #0;
|
in_button_t *IN_CreateButton (string name, string description) = #0;
|
||||||
in_axis_t *IN_CreateAxis (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;
|
int IN_FindDeviceId (string _id) = #0;
|
||||||
string IN_GetDeviceName (int devid) = #0;
|
string IN_GetDeviceName (int devid) = #0;
|
||||||
string IN_GetDeviceId (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_CreateContext (string name) = #0;
|
||||||
int IMT_GetContext (void) = #0;
|
int IMT_GetContext (void) = #0;
|
||||||
void IMT_SetContext (int ctx) = #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