mirror of
https://github.com/mii443/rust-openvr.git
synced 2025-12-16 17:08:48 +00:00
added linux makefile
This commit is contained in:
144
modules/oculus_sdk_linux/LibOVR/Src/OVR_LatencyTestImpl.h
Normal file
144
modules/oculus_sdk_linux/LibOVR/Src/OVR_LatencyTestImpl.h
Normal file
@@ -0,0 +1,144 @@
|
||||
/************************************************************************************
|
||||
|
||||
Filename : OVR_LatencyTestImpl.h
|
||||
Content : Latency Tester specific implementation.
|
||||
Created : March 7, 2013
|
||||
Authors : Lee Cooper
|
||||
|
||||
Copyright : Copyright 2014 Oculus VR, Inc. All Rights reserved.
|
||||
|
||||
Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
|
||||
you may not use the Oculus VR Rift SDK except in compliance with the License,
|
||||
which is provided at the time of installation or download, or which
|
||||
otherwise accompanies this software in either electronic or hard copy form.
|
||||
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.oculusvr.com/licenses/LICENSE-3.1
|
||||
|
||||
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_LatencyTestImpl_h
|
||||
#define OVR_LatencyTestImpl_h
|
||||
|
||||
#include "OVR_HIDDeviceImpl.h"
|
||||
|
||||
namespace OVR {
|
||||
|
||||
struct LatencyTestSamplesMessage;
|
||||
struct LatencyTestButtonMessage;
|
||||
struct LatencyTestStartedMessage;
|
||||
struct LatencyTestColorDetectedMessage;
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// LatencyTestDeviceFactory enumerates Oculus Latency Tester devices.
|
||||
class LatencyTestDeviceFactory : public DeviceFactory
|
||||
{
|
||||
public:
|
||||
static LatencyTestDeviceFactory &GetInstance();
|
||||
|
||||
// Enumerates devices, creating and destroying relevant objects in manager.
|
||||
virtual void EnumerateDevices(EnumerateVisitor& visitor);
|
||||
|
||||
virtual bool MatchVendorProduct(UInt16 vendorId, UInt16 productId) const;
|
||||
virtual bool DetectHIDDevice(DeviceManager* pdevMgr, const HIDDeviceDesc& desc);
|
||||
|
||||
protected:
|
||||
DeviceManager* getManager() const { return (DeviceManager*) pManager; }
|
||||
};
|
||||
|
||||
|
||||
// Describes a single a Oculus Latency Tester device and supports creating its instance.
|
||||
class LatencyTestDeviceCreateDesc : public HIDDeviceCreateDesc
|
||||
{
|
||||
public:
|
||||
LatencyTestDeviceCreateDesc(DeviceFactory* factory, const HIDDeviceDesc& hidDesc)
|
||||
: HIDDeviceCreateDesc(factory, Device_LatencyTester, hidDesc) { }
|
||||
|
||||
virtual DeviceCreateDesc* Clone() const
|
||||
{
|
||||
return new LatencyTestDeviceCreateDesc(*this);
|
||||
}
|
||||
|
||||
virtual DeviceBase* NewDeviceInstance();
|
||||
|
||||
virtual MatchResult MatchDevice(const DeviceCreateDesc& other,
|
||||
DeviceCreateDesc**) const
|
||||
{
|
||||
if ((other.Type == Device_LatencyTester) && (pFactory == other.pFactory))
|
||||
{
|
||||
const LatencyTestDeviceCreateDesc& s2 = (const LatencyTestDeviceCreateDesc&) other;
|
||||
if (MatchHIDDevice(s2.HIDDesc))
|
||||
return Match_Found;
|
||||
}
|
||||
return Match_None;
|
||||
}
|
||||
|
||||
virtual bool MatchHIDDevice(const HIDDeviceDesc& hidDesc) const
|
||||
{
|
||||
// should paths comparison be case insensitive?
|
||||
return ((HIDDesc.Path.CompareNoCase(hidDesc.Path) == 0) &&
|
||||
(HIDDesc.SerialNumber == hidDesc.SerialNumber));
|
||||
}
|
||||
virtual bool GetDeviceInfo(DeviceInfo* info) const;
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
// ***** OVR::LatencyTestDeviceImpl
|
||||
|
||||
// Oculus Latency Tester interface.
|
||||
|
||||
class LatencyTestDeviceImpl : public HIDDeviceImpl<OVR::LatencyTestDevice>
|
||||
{
|
||||
public:
|
||||
LatencyTestDeviceImpl(LatencyTestDeviceCreateDesc* createDesc);
|
||||
~LatencyTestDeviceImpl();
|
||||
|
||||
// DeviceCommon interface.
|
||||
virtual bool Initialize(DeviceBase* parent);
|
||||
virtual void Shutdown();
|
||||
|
||||
// DeviceManagerThread::Notifier interface.
|
||||
virtual void OnInputReport(UByte* pData, UInt32 length);
|
||||
|
||||
// LatencyTesterDevice interface
|
||||
virtual bool SetConfiguration(const OVR::LatencyTestConfiguration& configuration, bool waitFlag = false);
|
||||
virtual bool GetConfiguration(OVR::LatencyTestConfiguration* configuration);
|
||||
|
||||
virtual bool SetCalibrate(const Color& calibrationColor, bool waitFlag = false);
|
||||
|
||||
virtual bool SetStartTest(const Color& targetColor, bool waitFlag = false);
|
||||
virtual bool SetDisplay(const LatencyTestDisplay& display, bool waitFlag = false);
|
||||
|
||||
protected:
|
||||
bool openDevice(const char** errorFormatString);
|
||||
void closeDevice();
|
||||
void closeDeviceOnIOError();
|
||||
|
||||
bool initializeRead();
|
||||
bool processReadResult();
|
||||
|
||||
bool setConfiguration(const OVR::LatencyTestConfiguration& configuration);
|
||||
bool getConfiguration(OVR::LatencyTestConfiguration* configuration);
|
||||
bool setCalibrate(const Color& calibrationColor);
|
||||
bool setStartTest(const Color& targetColor);
|
||||
bool setDisplay(const OVR::LatencyTestDisplay& display);
|
||||
|
||||
// Called for decoded messages
|
||||
void onLatencyTestSamplesMessage(LatencyTestSamplesMessage* message);
|
||||
void onLatencyTestButtonMessage(LatencyTestButtonMessage* message);
|
||||
void onLatencyTestStartedMessage(LatencyTestStartedMessage* message);
|
||||
void onLatencyTestColorDetectedMessage(LatencyTestColorDetectedMessage* message);
|
||||
|
||||
};
|
||||
|
||||
} // namespace OVR
|
||||
|
||||
#endif // OVR_LatencyTestImpl_h
|
||||
Reference in New Issue
Block a user