File ManusSDKExtended.h
File List > api > cppSDK > SDKBase > ManusSDKExtended.h
Go to the documentation of this file
#ifndef __MANUS_SDK_EXTENDED_H__
#define __MANUS_SDK_EXTENDED_H__
#ifdef __cplusplus
extern "C"
{
#endif
#include "ManusSDKTypes.h"
#include "ManusSDKExtendedTypes.h"
#include <stdint.h>
#ifdef MANUS_SDK_STATIC
#define CORESDK_API
#else
#ifdef _WIN32
// MANUS_SDK_EXPORTS defines if the functions are exported to or
// imported from a DLL.
#ifdef MANUS_SDK_EXPORTS
#define CORESDK_API __declspec(dllexport)
#else
#define CORESDK_API __declspec(dllimport)
#endif
#elif defined(__linux__)
#define CORESDK_API __attribute__((visibility("default")))
#else
#error Unrecognized platform.
#endif
#endif
CORESDK_API SDKReturnCode CoreSdk_UpdateCore(bool p_CheckOnly, UpdateCoreResponse* p_UpdateResponse);
//Extended Gloves/Dongles
CORESDK_API SDKReturnCode CoreSdk_SetDonglePolygon(DonglePolygonArgs p_Args, SetPolygonDongleResponse* p_SetPolygonDongleResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationSetMin(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationSetMax(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationStore(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationBegin(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationEnd(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationDataGet(CalibrationArgs p_Args, CalibrationData* p_CalibrationDataResponse);
CORESDK_API SDKReturnCode CoreSdk_CalibrationDataSet(CalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_UpdateDongleFirmware(DongleUpdateArgs p_Args, DongleUpdateResponse* p_DongleUpdateResponse);
CORESDK_API SDKReturnCode CoreSdk_StartQuantumCalibration(StartQuantumCalibrationArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_StartQuantumCalibrationStep(StartQuantumCalibrationStepArgs p_Args, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_StopQuantumCalibration(uint32_t p_GloveID, bool* p_CommandResponse);
//Tracking
CORESDK_API SDKReturnCode CoreSdk_IsUserUsingHMD(bool* p_IsUsingHMD, uint32_t p_UserId);
CORESDK_API SDKReturnCode CoreSdk_RefreshTrackingSystems();
CORESDK_API SDKReturnCode CoreSdk_AutoGroupTrackers();
CORESDK_API SDKReturnCode CoreSdk_AutoAssignTrackers(uint32_t p_UserId);
CORESDK_API SDKReturnCode CoreSdk_ResetTrackerAssignment(uint32_t p_UserId);
CORESDK_API SDKReturnCode CoreSdk_AssignTrackerToUser(TrackerId p_TrackerId, uint32_t p_UserId);
CORESDK_API SDKReturnCode CoreSdk_AssignRoleToTracker(TrackerId p_TrackerId, TrackerType p_TrackerType);
CORESDK_API SDKReturnCode CoreSdk_ChangeUserForRole(TrackerType p_Role, uint32_t p_CurrentUser, uint32_t p_TargetUser);
CORESDK_API SDKReturnCode CoreSdk_GetTrackingSystems(TrackingSystemInfo* p_Current, TrackingSystemInfo* p_Systems);
CORESDK_API SDKReturnCode CoreSdk_KeepLastPosition(bool p_UseLastPosition);
CORESDK_API SDKReturnCode CoreSdk_UseTimeout(bool p_UseTimeOut);
CORESDK_API SDKReturnCode CoreSdk_SetTimeout(float p_TimeOut);
CORESDK_API SDKReturnCode CoreSdk_GetTrackerServiceSettings(bool* p_UseTimeout, float* p_Timeout, bool* p_KeepLastPosition);
CORESDK_API SDKReturnCode CoreSdk_GetTrackerSystemsSettings(TrackerSystem* p_TrackerSystems, uint32_t* p_TrackerSystemCount);
CORESDK_API SDKReturnCode CoreSdk_SetTrackerSystemsSettings(TrackerSystem* p_TrackerSystems);
/* // todo , we don't need the following 2 ?
//rpc UpdateTrackers( TrackerData ) returns ( Void ) {}
//rpc GetConnectedTrackerList( google.protobuf.Int32Value ) returns ( TrackerList ) {}
*/
CORESDK_API SDKReturnCode CoreSdk_CalibrateHapticsModule(uint32_t p_DongleId, Side p_HandType);
/* p2 haptics only.
CORESDK_API SDKReturnCode CoreSdk_SetHapticsSequence();
CORESDK_API SDKReturnCode CoreSdk_PlayHapticsSequence();
CORESDK_API SDKReturnCode CoreSdk_DeleteHapticsSequence();
*/
//Mesh
CORESDK_API SDKReturnCode CoreSdk_GetMeshSetupInfo(uint32_t p_SkeletonSetupIndex, uint32_t p_MeshSetupIndex, MeshSetupInfo* p_MeshSetupInfo);
CORESDK_API SDKReturnCode CoreSdk_GetVertexData(uint32_t p_SkeletonSetupIndex, uint32_t p_MeshSetupIndex, uint32_t p_VertexIndex, Vertex* p_Vertex);
CORESDK_API SDKReturnCode CoreSdk_GetTriangleData(uint32_t p_SkeletonSetupIndex, uint32_t p_MeshSetupIndex, uint32_t p_TriangleIndex, Triangle* p_Triangle);
//Polygon Calibration
CORESDK_API SDKReturnCode CoreSdk_StartSequence(StartSequenceArg p_Args, SequenceData* p_SequenceData);
CORESDK_API SDKReturnCode CoreSdk_StopSequence(uint32_t p_Id, CompleteType* p_Message);
CORESDK_API SDKReturnCode CoreSdk_StartNextStep(uint32_t p_Id, CompleteType* p_Message);
CORESDK_API SDKReturnCode CoreSdk_UndoStep(uint32_t p_Id, CompleteType* p_Message);
CORESDK_API SDKReturnCode CoreSdk_GetSequenceState(uint32_t p_Id, SequenceStateValue* p_SequenceStateValue);
CORESDK_API SDKReturnCode CoreSdk_GetStepData(uint32_t p_Id, StepData* p_StepData);
CORESDK_API SDKReturnCode CoreSdk_ApplyProfile(uint32_t p_Id, CompleteType* p_Message);
CORESDK_API SDKReturnCode CoreSdk_AssignProfileToUser(UserProfileArgs p_UserProfileArgs, CompleteType* p_Message);
CORESDK_API SDKReturnCode CoreSdk_GetCalibrationProfile(uint32_t p_UserId, CalibrationProfile* p_CalibrationProfile);
//Bandscan
CORESDK_API SDKReturnCode CoreSdk_GetBandScan(BandScanArgs p_BandScanArgs, int32_t* p_BandScanType, unsigned char* p_BandScanData);
CORESDK_API SDKReturnCode CoreSdk_SetChannel(uint32_t p_Channel, uint32_t p_DongleId, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_SetPersistentDongleChannels(bool p_SetPersistent);
CORESDK_API SDKReturnCode CoreSdk_AreDongleChannelsPersistent(bool* p_IsPersistent);
//Virtual Dongles
CORESDK_API SDKReturnCode CoreSdk_SetEnableVirtualDongles(bool p_Enable);
CORESDK_API SDKReturnCode CoreSdk_AreVirtualDonglesEnabled(bool* p_IsEnabled);
//Extended Settings IMU
CORESDK_API SDKReturnCode CoreSdk_SetSettingIgnoreThumbIMU(bool p_IgnoreThumbIMU);
CORESDK_API SDKReturnCode CoreSdk_GetSettingIgnoreThumbIMU(bool* p_IgnoreThumbIMU);
CORESDK_API SDKReturnCode CoreSdk_SetSettingIgnoreNonThumbFingerIMU(bool p_IgnoreNonThumbFingerIMU);
CORESDK_API SDKReturnCode CoreSdk_GetSettingIgnoreNonThumbFingerIMU(bool* p_IgnoreNonThumbFingerIMU);
// Telemetry
CORESDK_API SDKReturnCode CoreSdk_ReportFeatureUsage(FeatureUsed p_Feature, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_ReportExportFeatureUsage(ExportFeatureReport p_Report, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_ReportExportCSVFeatureUsage(ExportCSVFeatureReport p_Report, bool* p_CommandResponse);
CORESDK_API SDKReturnCode CoreSdk_ReportOpenXRFeatureUsage(OpenXRFeatureReport p_Report, bool* p_CommandResponse);
// callbacks
CORESDK_API SDKReturnCode CoreSdk_RegisterCallbackForExtraDataStream(const ExtraDataStreamCallback_t p_ExtraDataStreamCallback);
CORESDK_API SDKReturnCode CoreSdk_RegisterCallbackForDebuggingStream(const DebuggingStreamCallback_t p_DebuggingStreamCallback);
CORESDK_API SDKReturnCode CoreSdk_RegisterCallbackForStatisticsStream(const StatisticsStreamCallback_t p_StatisticsStreamCallback);
/******************************************************************************
* debugging
*****************************************************************************/
CORESDK_API SDKReturnCode CoreSdk_GetDebuggingData(uint32_t p_StartIndex, DebuggingData* p_DebuggingData);
CORESDK_API SDKReturnCode CoreSdk_GetExtraDeviceData(uint32_t p_ExtraDeviceDataIndex, ExtraDeviceData* p_Data);
/******************************************************************************
* Playback Recording
*****************************************************************************/
CORESDK_API SDKReturnCode CoreSdk_StartRecording(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_StopRecording(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_UnloadRecording(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_StartPlayback(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_EnablePlayback(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_StopPlayback(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_SeekFrame(SeekFrameInfo p_SeekFrameInfo, ManusTimestamp* p_Timestamp);
CORESDK_API SDKReturnCode CoreSdk_StartPlaybackFromSpecificTime(uint32_t p_PlaybackStartingTime, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetCurrentRecordingProperties(PlaybackRecordingProperties* p_RecordingProperties);
CORESDK_API SDKReturnCode CoreSdk_SaveRecordingToFile(char* p_PathName, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_LoadRecordingFromFile(char* p_PathName, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_ZipRecordingDataAndGetSize(uint32_t* p_RecordingLengthInBytes);
CORESDK_API SDKReturnCode CoreSdk_GetRecordingData(unsigned char* p_RecordingData, uint32_t p_RecordingSize);
CORESDK_API SDKReturnCode CoreSdk_LoadRecordingFromClientFile(unsigned char* p_RecordingData, uint32_t p_RecordingLengthInBytes, bool* p_Success);
/******************************************************************************
* Timecode
*****************************************************************************/
CORESDK_API SDKReturnCode CoreSdk_UseTimecodeTimestamps(bool p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_IsUsingTimecodeTimestamps(bool* p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_StartTimecode(StartTimecodeArgs p_Args, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_StopTimecode(bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_RefreshTimecodeInterfaces(bool p_Reconnect, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_IsTimecodeRunning(bool* p_Running);
CORESDK_API SDKReturnCode CoreSdk_SetTimecodeAutoStart(bool p_Enabled, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetTimecodeAutoStart(bool* p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_SetTimecodeDeviceKeepAlive(bool p_Enabled, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetTimecodeDeviceKeepAlive(bool* p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_SetTimecodeGenlock(bool p_Enabled, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetTimecodeGenlock(bool* p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_SetTimecodeNonRealTime(bool p_Enabled, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetTimecodeNonRealTime(bool* p_Enabled);
CORESDK_API SDKReturnCode CoreSdk_SetLtcChannel(int32_t p_Channel, bool* p_Success);
CORESDK_API SDKReturnCode CoreSdk_GetLtcChannel(int32_t* p_Channel);
/******************************************************************************/
// statistics
/******************************************************************************/
CORESDK_API SDKReturnCode CoreSdk_GetStatistics(StatisticsStream* p_Data);
/******************************************************************************/
// estimation data
/******************************************************************************/
[[deprecated("Setting was removed, RawSkeletonStream is always enabled")]]
CORESDK_API SDKReturnCode CoreSdk_SetSettingsRawSkeletonStream(bool p_StreamActive);
[[deprecated("Setting was removed, RawSkeletonStream is always enabled")]]
CORESDK_API SDKReturnCode CoreSdk_GetSettingsRawSkeletonStream(bool& p_StreamActive);
/******************************************************************************/
// multicore NetDevices
/******************************************************************************/
CORESDK_API SDKReturnCode CoreSdk_NetDeviceGetNumberOfAvailableHosts(uint32_t& p_NumberOfAvailableHosts);
CORESDK_API SDKReturnCode CoreSdk_NetDeviceGetAvailableHosts(ManusHost* p_Hosts, const uint32_t p_NumberOfAvailableHosts);
CORESDK_API SDKReturnCode CoreSdk_NetDeviceConnect(ManusHost p_Host);
CORESDK_API SDKReturnCode CoreSdk_NetDeviceDisconnect(ManusHost p_Host);
CORESDK_API SDKReturnCode CoreSdk_SetNetDeviceMode(bool p_Client);
CORESDK_API SDKReturnCode CoreSdk_GetNetDeviceMode(bool& p_Client);
CORESDK_API SDKReturnCode CoreSdk_SetNetDeviceAutoconnectPolicy(bool p_Autoconnect);
CORESDK_API SDKReturnCode CoreSdk_GetNetDeviceAutoconnectPolicy(bool& p_Autoconnect);
// Inter Core Connector //
CORESDK_API SDKReturnCode InterCore_Initialize();
CORESDK_API SDKReturnCode InterCore_Start();
CORESDK_API SDKReturnCode InterCore_ShutDown();
//This is the callback that is invoked when new data comes in.
CORESDK_API SDKReturnCode InterCore_RegisterCallbackForInterCoreStream(InterCoreStreamCallback_t p_InterCoreStreamCallback);
//These functions can be called DURING the callback, they are invalid at any other time.
CORESDK_API SDKReturnCode InterCore_GetInterCoreStreamGloveData(Glove* p_Gloves, uint32_t p_GloveCount);
CORESDK_API SDKReturnCode InterCore_GetNetDeviceLandscapeData(NetDevicesLandscape* p_NetDevicesLandscape);
CORESDK_API SDKReturnCode InterCore_GetNumberOfAvailableNetDevices(uint32_t& p_NumberOfAvailablePeers);
CORESDK_API SDKReturnCode InterCore_GetAvailableNetDevices(InterCorePeerInfo* p_Peers, const uint32_t p_NumberOfAvailablePeers);
CORESDK_API SDKReturnCode InterCore_ConnectToNetDevice(InterCorePeerInfo p_Peer);
CORESDK_API SDKReturnCode InterCore_DisconnectFromNetDevice(InterCorePeerInfo p_Peer);
CORESDK_API SDKReturnCode InterCore_SetIsNetDevice(bool p_IsNetDevice);
CORESDK_API SDKReturnCode InterCore_GetIsNetDevice(bool& p_IsNetDevice);
CORESDK_API SDKReturnCode InterCore_SetAutoFindNetDevices(bool p_AutoFind);
CORESDK_API SDKReturnCode InterCore_GetAutoFindNetDevices(bool& p_AutoFind);
CORESDK_API SDKReturnCode InterCore_SetAutoConnectNetDevices(bool p_AutoConnect);
CORESDK_API SDKReturnCode InterCore_GetAutoConnectNetDevices(bool& p_AutoConnect);
CORESDK_API SDKReturnCode InterCore_StartRecording(const ManusTimestamp p_Timestamp, bool& p_Result);
CORESDK_API SDKReturnCode InterCore_StopRecording(bool& p_Result);
CORESDK_API SDKReturnCode InterCore_GetNextRecordedFrame(const uint32_t p_NetDeviceID, InterCoreStreamInfo& p_StreamInfo, bool& p_LastFrame);
CORESDK_API SDKReturnCode InterCore_GetNextRecordedFrameGloveData(Glove* p_Gloves, uint32_t p_GloveCount);
CORESDK_API SDKReturnCode InterCore_PairGlove(const uint32_t p_NetDeviceID, const uint32_t p_GloveID, bool& p_Success);
CORESDK_API SDKReturnCode InterCore_PairGloveToDongle(const uint32_t p_NetDeviceID, const uint32_t p_GloveID, const uint32_t p_DongleID, bool& p_Success);
CORESDK_API SDKReturnCode InterCore_UnpairGlove(const uint32_t p_NetDeviceID, const uint32_t p_GloveID, bool& p_Success);
CORESDK_API SDKReturnCode InterCore_SendHaptics(const uint32_t p_NetDeviceID, const uint32_t p_GloveID, const float* p_Powers);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationStart(const uint32_t p_NetDeviceID, const GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationStop(const uint32_t p_NetDeviceID, const GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationFinish(const uint32_t p_NetDeviceID, const GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationGetNumberOfSteps(const uint32_t p_NetDeviceID, const GloveCalibrationArgs p_CalibrationArgs, uint32_t& p_NumberOfSteps);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationGetStepData(const uint32_t p_NetDeviceID, const GloveCalibrationStepArgs p_CalibrationArgs, GloveCalibrationStepData& p_Data);
CORESDK_API SDKReturnCode InterCore_GloveCalibrationStartStep(const uint32_t p_NetDeviceID, const GloveCalibrationStepArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode InterCore_GetLicenceFeatures(LicenseInfo& p_License);
// Calibration //
CORESDK_API SDKReturnCode Calibration_Initialize();
CORESDK_API SDKReturnCode Calibration_Start();
CORESDK_API SDKReturnCode Calibration_ShutDown();
//This is the callback that is invoked when a new glove profile for a user comes in.
CORESDK_API SDKReturnCode Calibration_RegisterCallbackForUserGloveProfile(UserGloveProfileCallback_t p_UserGloveProfileCallback);
CORESDK_API SDKReturnCode Calibration_AddGloveData(Glove* p_GloveData);
CORESDK_API SDKReturnCode Calibration_AddDeviceLandscape(DeviceLandscape* p_DeviceLandscape);
CORESDK_API SDKReturnCode Calibration_AddUserLandscape(UserLandscape* p_UserLandscape);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationStart(GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationStop(GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationFinish(GloveCalibrationArgs p_CalibrationArgs, bool& p_Result);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationGetNumberOfSteps(GloveCalibrationArgs p_CalibrationArgs, uint32_t& p_NumberOfSteps);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationGetStepData(GloveCalibrationStepArgs p_CalibrationStepArgs, GloveCalibrationStepData& p_Data);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationStartStep(GloveCalibrationStepArgs p_CalibrationStepArgs, bool& p_Result);
CORESDK_API SDKReturnCode Calibration_GetGloveCalibrationSize(uint32_t p_GloveId, uint32_t* p_Size);
CORESDK_API SDKReturnCode Calibration_GetGloveCalibrationSizeForUser(uint32_t p_UserId, Side p_Side, GloveProfileType p_ProfileType, uint32_t* p_Size);
CORESDK_API SDKReturnCode Calibration_GetGloveCalibrationBytes(unsigned char* p_CalibrationBytes, uint32_t p_BytesLength);
CORESDK_API SDKReturnCode Calibration_SetGloveCalibration(uint32_t p_GloveId, unsigned char* p_CalibrationBytes, uint32_t p_BytesLength, SetGloveCalibrationReturnCode& p_Response);
CORESDK_API SDKReturnCode Calibration_SetGloveCalibrationForUser(uint32_t p_UserId, unsigned char* p_CalibrationBytes, uint32_t p_BytesLength, SetGloveCalibrationReturnCode& p_Response);
CORESDK_API SDKReturnCode Calibration_GetGloveCalibrationFromBytes(unsigned char* p_CalibrationBytes, uint32_t p_BytesLength, SetGloveCalibrationReturnCode& p_Response, GloveProfile* p_GloveProfile);
CORESDK_API SDKReturnCode Calibration_GloveCalibrationToBytesAndGetSize(const GloveProfile* p_GloveProfilePtr, uint32_t* p_Size);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // #ifndef HPP_SDK