mirror of https://github.com/bjornbytes/lovr.git
Use enum for lovrHeadsetGetType;
This commit is contained in:
parent
b843fc3dbe
commit
5bf174b37d
|
@ -5,6 +5,7 @@ map_int_t ControllerAxes;
|
|||
map_int_t ControllerButtons;
|
||||
map_int_t HeadsetEyes;
|
||||
map_int_t HeadsetOrigins;
|
||||
map_int_t HeadsetTypes;
|
||||
|
||||
typedef struct {
|
||||
lua_State* L;
|
||||
|
@ -46,6 +47,11 @@ int l_lovrHeadsetInit(lua_State* L) {
|
|||
map_set(&HeadsetOrigins, "head", ORIGIN_HEAD);
|
||||
map_set(&HeadsetOrigins, "floor", ORIGIN_FLOOR);
|
||||
|
||||
map_init(&HeadsetTypes);
|
||||
map_set(&HeadsetTypes, "unknown", HEADSET_UNKNOWN);
|
||||
map_set(&HeadsetTypes, "vive", HEADSET_VIVE);
|
||||
map_set(&HeadsetTypes, "rift", HEADSET_RIFT);
|
||||
|
||||
lovrHeadsetInit();
|
||||
|
||||
headsetRenderData.ref = LUA_NOREF;
|
||||
|
@ -59,7 +65,7 @@ int l_lovrHeadsetIsPresent(lua_State* L) {
|
|||
}
|
||||
|
||||
int l_lovrHeadsetGetType(lua_State* L) {
|
||||
lua_pushstring(L, lovrHeadsetGetType());
|
||||
luax_pushenum(L, &HeadsetTypes, lovrHeadsetGetType());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,12 @@ typedef enum {
|
|||
ORIGIN_FLOOR
|
||||
} HeadsetOrigin;
|
||||
|
||||
typedef enum {
|
||||
HEADSET_UNKNOWN,
|
||||
HEADSET_VIVE,
|
||||
HEADSET_RIFT
|
||||
} HeadsetType;
|
||||
|
||||
typedef enum {
|
||||
CONTROLLER_AXIS_TRIGGER,
|
||||
CONTROLLER_AXIS_TOUCHPAD_X,
|
||||
|
@ -41,7 +47,7 @@ void lovrHeadsetInit();
|
|||
void lovrHeadsetDestroy();
|
||||
void lovrHeadsetPoll();
|
||||
int lovrHeadsetIsPresent();
|
||||
const char* lovrHeadsetGetType();
|
||||
HeadsetType lovrHeadsetGetType();
|
||||
HeadsetOrigin lovrHeadsetGetOriginType();
|
||||
int lovrHeadsetIsMirrored();
|
||||
void lovrHeadsetSetMirrored(int mirror);
|
||||
|
|
|
@ -58,31 +58,31 @@ void lovrHeadsetInit() {
|
|||
return;
|
||||
}
|
||||
|
||||
char fnTable[128];
|
||||
char buffer[128];
|
||||
|
||||
sprintf(fnTable, "FnTable:%s", IVRSystem_Version);
|
||||
state.system = (struct VR_IVRSystem_FnTable*) VR_GetGenericInterface(fnTable, &vrError);
|
||||
sprintf(buffer, "FnTable:%s", IVRSystem_Version);
|
||||
state.system = (struct VR_IVRSystem_FnTable*) VR_GetGenericInterface(buffer, &vrError);
|
||||
if (vrError != EVRInitError_VRInitError_None || !state.system) {
|
||||
lovrHeadsetDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf(fnTable, "FnTable:%s", IVRCompositor_Version);
|
||||
state.compositor = (struct VR_IVRCompositor_FnTable*) VR_GetGenericInterface(fnTable, &vrError);
|
||||
sprintf(buffer, "FnTable:%s", IVRCompositor_Version);
|
||||
state.compositor = (struct VR_IVRCompositor_FnTable*) VR_GetGenericInterface(buffer, &vrError);
|
||||
if (vrError != EVRInitError_VRInitError_None || !state.compositor) {
|
||||
lovrHeadsetDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf(fnTable, "FnTable:%s", IVRChaperone_Version);
|
||||
state.chaperone = (struct VR_IVRChaperone_FnTable*) VR_GetGenericInterface(fnTable, &vrError);
|
||||
sprintf(buffer, "FnTable:%s", IVRChaperone_Version);
|
||||
state.chaperone = (struct VR_IVRChaperone_FnTable*) VR_GetGenericInterface(buffer, &vrError);
|
||||
if (vrError != EVRInitError_VRInitError_None || !state.chaperone) {
|
||||
lovrHeadsetDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf(fnTable, "FnTable:%s", IVRRenderModels_Version);
|
||||
state.renderModels = (struct VR_IVRRenderModels_FnTable*) VR_GetGenericInterface(fnTable, &vrError);
|
||||
sprintf(buffer, "FnTable:%s", IVRRenderModels_Version);
|
||||
state.renderModels = (struct VR_IVRRenderModels_FnTable*) VR_GetGenericInterface(buffer, &vrError);
|
||||
if (vrError != EVRInitError_VRInitError_None || !state.renderModels) {
|
||||
lovrHeadsetDestroy();
|
||||
return;
|
||||
|
@ -90,7 +90,16 @@ void lovrHeadsetInit() {
|
|||
|
||||
state.isInitialized = 1;
|
||||
state.headsetIndex = k_unTrackedDeviceIndex_Hmd;
|
||||
state.system->GetStringTrackedDeviceProperty(state.headsetIndex, ETrackedDeviceProperty_Prop_ModelNumber_String, state.type, 128, NULL);
|
||||
|
||||
state.system->GetStringTrackedDeviceProperty(state.headsetIndex, ETrackedDeviceProperty_Prop_ManufacturerName_String, buffer, 128, NULL);
|
||||
if (strncmp(buffer, "HTC", 128)) {
|
||||
state.type = HEADSET_VIVE;
|
||||
} else if (strncmp(buffer, "Oculus", 128)) {
|
||||
state.type = HEADSET_RIFT;
|
||||
} else {
|
||||
state.type = HEADSET_UNKNOWN;
|
||||
}
|
||||
|
||||
state.clipNear = 0.1f;
|
||||
state.clipFar = 30.f;
|
||||
lovrHeadsetRefreshControllers();
|
||||
|
@ -169,7 +178,7 @@ int lovrHeadsetIsPresent() {
|
|||
return state.isInitialized && state.system->IsTrackedDeviceConnected(state.headsetIndex);
|
||||
}
|
||||
|
||||
const char* lovrHeadsetGetType() {
|
||||
HeadsetType lovrHeadsetGetType() {
|
||||
return state.type;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ typedef struct {
|
|||
struct VR_IVRRenderModels_FnTable* renderModels;
|
||||
|
||||
unsigned int headsetIndex;
|
||||
char type[128];
|
||||
HeadsetType type;
|
||||
|
||||
TrackedDevicePose_t renderPoses[16];
|
||||
RenderModel_t* deviceModels[16];
|
||||
|
|
|
@ -72,8 +72,8 @@ int lovrHeadsetIsPresent() {
|
|||
return emscripten_vr_is_present();
|
||||
}
|
||||
|
||||
const char* lovrHeadsetGetType() {
|
||||
return emscripten_vr_get_display_name();
|
||||
HeadsetType lovrHeadsetGetType() {
|
||||
return HEADSET_UNKNOWN;
|
||||
}
|
||||
|
||||
HeadsetOrigin lovrHeadsetGetOriginType() {
|
||||
|
|
Loading…
Reference in New Issue