#pragma once

#include "data/config/AxisConfig.h"
#include "data/config/SensorSpecificSettings.h"

namespace inertia
{

struct INERTIA_API OtherAxisCapability
	: AxisConfig
{
	SpecificSensorSettingsPtr specificCapabilities;

	OtherAxisCapability(uint8_t sensorID, uint8_t const headerRevision = 1, uint8_t const sensorRevision = 0);
	OtherAxisCapability(uint8_t const* in, const unsigned _length);
	OtherAxisCapability(std::wstring const& argString);

#ifdef WITH_BOOST_PROGRAM_OPTIONS
	static const po::options_description GetOptionDescription();
#endif

	void GetBytes(std::vector<uint8_t>& out) const override;
	const std::wstring ToString() const override;
	const std::wstring ToSimpleString(uint16_t const globalRate) const override;
	unsigned GetInstanceMask() const override;
};

}
