#pragma once

#include "data/config/LegacyConfig.h"

namespace inertia
{

/** LoggingType */
enum LoggingType
{
	LOGGING_PER_FRAME_NUMBER = 0,
	LOGGING_PER_TIMESTAMP = 1,
	LOGGING_PER_SAMPLE_NUMBER = 5
};

struct INERTIA_API LoggingConfig
	: LegacyConfig
{
	bool autoStart;
	LoggingType type;
	uint8_t frameSize;
	uint8_t monitoringHistoryLength;

	LoggingConfig();
	LoggingConfig(uint8_t const* in);
	LoggingConfig(std::wstring const& argString);

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

	ConfigType GetConfigType() const override;
	static unsigned GetLength();
	void GetBytes(std::vector<uint8_t>& out) const override;
	const std::wstring ToString() const override;
};

}
