/*
 * Copyright (C) 2012-2026 MotionSystems
 *
 * This file is part of ForceSeatMI SDK.
 *
 * www.motionsystems.eu
 *
 */

#include "ForceSeatMI_API.h"

ForceSeatMI_API::ForceSeatMI_API(FSMI_Handle handle)
	: m_handle(handle)
{
}

bool ForceSeatMI_API::BeginMotionControl()
{
	return ForceSeatMI_BeginMotionControl(m_handle) != FSMI_False;
}

bool ForceSeatMI_API::EndMotionControl()
{
	return ForceSeatMI_EndMotionControl(m_handle) != FSMI_False;
}

bool ForceSeatMI_API::GetPlatformInfoEx(FSMI_PlatformInfo* platformInfo, unsigned int platformInfoStructSize, unsigned int timeout)
{
	return ForceSeatMI_GetPlatformInfoEx(m_handle, platformInfo, platformInfoStructSize, timeout) != FSMI_False;
}

bool ForceSeatMI_API::SendTelemetryACE(const FSMI_TelemetryACE* telemetry)
{
	return ForceSeatMI_SendTelemetryACE(m_handle, telemetry) != FSMI_False;
}

bool ForceSeatMI_API::SendTelemetryACE3(const FSMI_TelemetryACE* telemetry, const FSMI_SFX* sfx, const FSMI_TactileAudioBasedFeedbackEffects* audioEffects, const FSMI_SbtData* sbt)
{
	return ForceSeatMI_SendTelemetryACE3(m_handle, telemetry, sfx, audioEffects, sbt) != FSMI_False;
}

bool ForceSeatMI_API::SendTopTablePosPhy(const FSMI_TopTablePositionPhysical* position)
{
	return ForceSeatMI_SendTopTablePosPhy(m_handle, position) != FSMI_False;
}

bool ForceSeatMI_API::SendTopTablePosPhy3(const FSMI_TopTablePositionPhysical* position, const FSMI_SFX* sfx, const FSMI_TactileAudioBasedFeedbackEffects* audioEffects, const FSMI_SbtData* sbt)
{
	return ForceSeatMI_SendTopTablePosPhy3(m_handle, position, sfx, audioEffects, sbt) != FSMI_False;
}

bool ForceSeatMI_API::SendTopTableMatrixPhy(const FSMI_TopTableMatrixPhysical* matrix)
{
	return ForceSeatMI_SendTopTableMatrixPhy(m_handle, matrix) != FSMI_False;
}

bool ForceSeatMI_API::SendTopTableMatrixPhy3(const FSMI_TopTableMatrixPhysical* matrix, const FSMI_SFX* sfx, const FSMI_TactileAudioBasedFeedbackEffects* audioEffects, const FSMI_SbtData* sbt)
{
	return ForceSeatMI_SendTopTableMatrixPhy3(m_handle, matrix, sfx, audioEffects, sbt) != FSMI_False;
}
