psl1ght
A free SDK for Sony's PS3 console
Loading...
Searching...
No Matches
move.h
Go to the documentation of this file.
1#ifndef __LV2_MOVE_H__
2#define __LV2_MOVE_H__
3
4#include <ppu-types.h>
5#include <vec_types.h>
6#include <spurs/types.h>
7
8#define MOVE_VERSION 2
9#define MAX_MOVES 4
10#define EXTERNAL_PORT_DATA_SIZE 32
11
12#define GEM_TRACKING_POSITION_TRACKED 1
13#define GEM_TRACKING_VISIBLE 2
14
15#define STATE_CURRENT_TIME 0
16#define STATE_LATEST_IMAGE_TIME 1
17#define STATE_SPECIFY_TIME 2
18
19#define GEM_AUTO_WHITE_BALANCE 1
20#define GEM_GAMMA_BOOST 2
21#define GEM_COMBINE_PREVIOUS_INPUT_FRAME 4
22#define GEM_FILTER_OUTLIER_PIXELS 8
23
24#define GEM_INERTIAL_LATEST 0
25#define GEM_INERTIAL_PREVIOUS 1
26#define GEM_INERTIAL_NEXT 2
27
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
45
46typedef struct _gem_ext_port_data
47{
49
50 unsigned int : 8; /* reserved */
51 /* Button information */
52 /* 0: UP, 1: DOWN */
53 unsigned int BTN_LEFT : 1;
54 unsigned int BTN_DOWN : 1;
55 unsigned int BTN_RIGHT : 1;
56 unsigned int BTN_UP : 1;
57 unsigned int BTN_START : 1;
58 unsigned int BTN_R3 : 1;
59 unsigned int BTN_L3 : 1;
60 unsigned int BTN_SELECT : 1;
61
62 unsigned int : 8; /* reserved */
63 unsigned int BTN_SQUARE : 1;
64 unsigned int BTN_CROSS : 1;
65 unsigned int BTN_CIRCLE : 1;
66 unsigned int BTN_TRIANGLE : 1;
67 unsigned int BTN_R1 : 1;
68 unsigned int BTN_L1 : 1;
69 unsigned int BTN_R2 : 1;
70 unsigned int BTN_L2 : 1;
71
72 /* Analog nub information */
73 /* 0x0000 - 0x00FF */
74 unsigned int ANA_R_H : 16;
75 unsigned int ANA_R_V : 16;
76 unsigned int ANA_L_H : 16;
77 unsigned int ANA_L_V : 16;
78
79 u8 data[5];
81
82typedef struct _gem_pad_data
83{
85 u16 ANA_T;
87
88typedef struct _gem_state
89{
90 vec_float4 pos;
91 vec_float4 vel;
92 vec_float4 accel;
93 vec_float4 quat;
94 vec_float4 angvel;
95 vec_float4 angaccel;
96 vec_float4 handle_pos;
97 vec_float4 handle_vel;
98 vec_float4 handle_accel;
101 system_time_t time;
106
107typedef struct _gem_attribute
108{
110 u32 max;
111 void * memory ATTRIBUTE_PRXPTR; //pointer to memory to use for gem lib, if you specify null it will automatically allocate for you
112 Spurs *spurs ATTRIBUTE_PRXPTR; //pointer to Spurs object
115
124
125typedef struct _gem_img_state {
126 system_time_t frame_time;
127 system_time_t time;
128 f32 u;
129 f32 v;
130 f32 r;
137
145
146
159
172
173s32 gemGetEnvironmentLightingColor(f32* r, f32* g, f32* b);
174s32 gemUpdateStart(const void* camera_frame, system_time_t timestamp);
175s32 gemInit(const gemAttribute* attr);
176s32 gemGetTrackerHue(u32 num, u32* hue);
178s32 gemEnableMagnetometer(u32 num, s32 enable);
179s32 gemGetRGB(u32 num, f32* r, f32* g, f32* b);
181
182//hues points to an array that can hold 360 boolean values, my assumption is 360 bytes or 360 chars.
184s32 gemGetMemorySize(s32 max);
187
188s32 gemGetRumble(u32 num, u8* intensity);
189s32 gemSetRumble(u32 num, u8 intensity);
190
191s32 gemGetState(u32 num, u32 timeflag, system_time_t time, gemState* state);
192
193s32 gemGetAccelerometerPositionInDevice(u32 num, vec_float4* pos);
194s32 gemConvertVideoStart(const void* frame);
195
196s32 gemFilterState(u32 num, u32 enable);
197s32 gemSetYaw(u32 num, vec_float4 zdir);
199
200s32 gemTrackHues(const u32* req_hues, u32* res_hues);
201
202s32 gemGetImageState(u32 num, gemImageState* state);
203
204s32 gemClearStatusFlags(u32 num, u64 mask);
205
207
208s32 gemPrepareCamera(s32 maxexposure, f32 quality);
209
210s32 gemCalibrate(u32 num);
211
212s32 gemGetHuePixels(const void* frame, u32 hue, u8* pixels);
214s32 gemHSVtoRGB(f32 h, f32 s, f32 v, f32* r, f32* g, f32* b);
215s32 gemForceRGB(u32 num, f32 r, f32 g, f32 b);
216s32 gemGetInertialState(u32 num, u32 flag, system_time_t time, gemInertialState* inertial);
217s32 gemReset(u32 num);
218s32 gemEnd();
220s32 gemIsTrackableHue(u32 hue);
221s32 gemGetStatusFlags(u32 num, u64* flags);
222
223
224#ifdef __cplusplus
225 }
226#endif
227
228#endif
s32 gemInit(const gemAttribute *attr)
s32 gemGetHuePixels(const void *frame, u32 hue, u8 *pixels)
s32 gemWriteExternalPort(u32 num, u8 data[32])
s32 gemGetTrackerHue(u32 num, u32 *hue)
s32 gemClearStatusFlags(u32 num, u64 mask)
#define EXTERNAL_PORT_DATA_SIZE
Definition move.h:10
s32 gemGetAllTrackableHues(u8 *hues)
s32 gemGetAccelerometerPositionInDevice(u32 num, vec_float4 *pos)
s32 gemPrepareCamera(s32 maxexposure, f32 quality)
s32 gemConvertVideoStart(const void *frame)
s32 gemGetState(u32 num, u32 timeflag, system_time_t time, gemState *state)
s32 gemInvalidateCalibration(u32 num)
s32 gemGetImageState(u32 num, gemImageState *state)
s32 gemTrackHues(const u32 *req_hues, u32 *res_hues)
s32 gemGetRumble(u32 num, u8 *intensity)
s32 gemHSVtoRGB(f32 h, f32 s, f32 v, f32 *r, f32 *g, f32 *b)
struct _gem_ext_port_data gemExtPortData
s32 gemForceRGB(u32 num, f32 r, f32 g, f32 b)
s32 gemCalibrate(u32 num)
s32 gemUpdateStart(const void *camera_frame, system_time_t timestamp)
s32 gemGetRGB(u32 num, f32 *r, f32 *g, f32 *b)
s32 gemGetInfo(gemInfo *info)
struct _gem_inertial_state gemInertialState
s32 gemConvertVideoFinish()
s32 gemGetStatusFlags(u32 num, u64 *flags)
s32 gemGetInertialState(u32 num, u32 flag, system_time_t time, gemInertialState *inertial)
s32 gemGetCameraState(gemCameraState *state)
s32 gemUpdateFinish()
gemVideoConvertFormatEnum
Definition move.h:34
@ GEM_YUV422_640x480
Definition move.h:38
@ GEM_BAYER_RESTORED_RGGB
Definition move.h:42
@ GEM_YUV_640x480
Definition move.h:37
@ GEM_BAYER_RESTORED
Definition move.h:41
@ GEM_RGBA_640x480
Definition move.h:36
@ GEM_RGBA_320x240
Definition move.h:40
@ GEM_YUV411_640x480
Definition move.h:39
@ GEM_BAYER_RESTORED_RASTERIZED
Definition move.h:43
@ GEM_NO_VIDEO_OUTPUT
Definition move.h:35
s32 gemSetYaw(u32 num, vec_float4 zdir)
s32 gemReset(u32 num)
struct _gem_info gemInfo
s32 gemFilterState(u32 num, u32 enable)
s32 gemEnd()
s32 gemPrepareVideoConvert(const gemVideoConvertAttribute *attr)
s32 gemEnableMagnetometer(u32 num, s32 enable)
struct _gem_state gemState
struct _gem_cam_state gemCameraState
s32 gemIsTrackableHue(u32 hue)
struct _gem_video_convert_attribute gemVideoConvertAttribute
struct _gem_attribute gemAttribute
struct _gem_pad_data gemPadData
s32 gemGetMemorySize(s32 max)
struct _gem_img_state gemImageState
s32 gemEnableCameraPitchAngleCorrection(s32 enable)
s32 gemGetEnvironmentLightingColor(f32 *r, f32 *g, f32 *b)
s32 gemSetRumble(u32 num, u8 intensity)
#define MAX_MOVES
Definition move.h:9
Spurs *spurs ATTRIBUTE_PRXPTR
Definition move.h:112
u32 version
Definition move.h:109
void *memory ATTRIBUTE_PRXPTR
Definition move.h:111
u8 spu_priorities[8]
Definition move.h:113
f32 exposure_time
Definition move.h:119
f32 pitch_angle
Definition move.h:121
f32 pitch_angle_estimate
Definition move.h:122
s32 exposure
Definition move.h:118
unsigned int ANA_L_V
Definition move.h:77
unsigned int BTN_CROSS
Definition move.h:64
unsigned int BTN_TRIANGLE
Definition move.h:66
unsigned int BTN_SELECT
Definition move.h:60
unsigned int BTN_R1
Definition move.h:67
unsigned int ANA_R_H
Definition move.h:74
unsigned int BTN_R3
Definition move.h:58
unsigned int BTN_CIRCLE
Definition move.h:65
unsigned int BTN_LEFT
Definition move.h:53
unsigned int
Definition move.h:50
unsigned int BTN_L3
Definition move.h:59
unsigned int BTN_UP
Definition move.h:56
unsigned int BTN_L2
Definition move.h:70
unsigned int BTN_L1
Definition move.h:68
unsigned int BTN_R2
Definition move.h:69
unsigned int BTN_RIGHT
Definition move.h:55
unsigned int BTN_SQUARE
Definition move.h:63
unsigned int BTN_DOWN
Definition move.h:54
unsigned int ANA_L_H
Definition move.h:76
unsigned int ANA_R_V
Definition move.h:75
unsigned int BTN_START
Definition move.h:57
f32 projectionx
Definition move.h:131
f32 projectiony
Definition move.h:132
system_time_t time
Definition move.h:127
f32 distance
Definition move.h:133
system_time_t frame_time
Definition move.h:126
gemPadData pad
Definition move.h:166
vec_float4 gyro_bias
Definition move.h:165
vec_float4 accelerometer
Definition move.h:162
vec_float4 accelerometer_bias
Definition move.h:164
gemExtPortData ext
Definition move.h:167
system_time_t time
Definition move.h:168
vec_float4 gyro
Definition move.h:163
u32 status[4]
Definition move.h:142
u32 connected
Definition move.h:141
u32 max
Definition move.h:140
u32 port[4]
Definition move.h:143
u16 buttons
Definition move.h:84
u16 ANA_T
Definition move.h:85
f32 camera_pitch_angle
Definition move.h:103
vec_float4 angaccel
Definition move.h:95
gemPadData paddata
Definition move.h:99
gemExtPortData extportdata
Definition move.h:100
vec_float4 pos
Definition move.h:90
system_time_t time
Definition move.h:101
vec_float4 angvel
Definition move.h:94
vec_float4 handle_vel
Definition move.h:97
vec_float4 handle_pos
Definition move.h:96
vec_float4 vel
Definition move.h:91
vec_float4 handle_accel
Definition move.h:98
vec_float4 quat
Definition move.h:93
f32 temperature
Definition move.h:102
u32 tracking
Definition move.h:104
vec_float4 accel
Definition move.h:92
void *buffer_memory ATTRIBUTE_PRXPTR
Definition move.h:155
void *video_data_out ATTRIBUTE_PRXPTR
Definition move.h:156
gemVideoConvertFormatEnum format
Definition move.h:149