//========= Copyright Valve Corporation ============// #pragma once namespace vr { class IVRClientCore { public: /** Initializes the system */ virtual EVRInitError Init( vr::EVRApplicationType eApplicationType, const char *pStartupInfo ) = 0; /** cleans up everything in vrclient.dll and prepares the DLL to be unloaded */ virtual void Cleanup() = 0; /** checks to see if the specified interface/version is supported in this vrclient.dll */ virtual EVRInitError IsInterfaceVersionValid( const char *pchInterfaceVersion ) = 0; /** Retrieves any interface from vrclient.dll */ virtual void *GetGenericInterface( const char *pchNameAndVersion, EVRInitError *peError ) = 0; /** Returns true if any driver has an HMD attached. Can be called outside of Init/Cleanup */ virtual bool BIsHmdPresent() = 0; /** Returns an English error string from inside vrclient.dll which might be newer than the API DLL */ virtual const char *GetEnglishStringForHmdError( vr::EVRInitError eError ) = 0; /** Returns an error symbol from inside vrclient.dll which might be newer than the API DLL */ virtual const char *GetIDForVRInitError( vr::EVRInitError eError ) = 0; }; static const char * const IVRClientCore_Version = "IVRClientCore_003"; }