#pragma once
#ifndef INERTIA_DEBUGLOG_H
#define INERTIA_DEBUGLOG_H

namespace inertia
{
/** Functions to handle debug output of the library. */
namespace debug
{
	/** Set the debug level to the specified level (-2=nothing to 3=all, default=0).
	 *  @param level the new debugLevel
	 */
	INERTIA_API void SetLevel(int level);

	/** Get the used debug level.
	 *  @return the debug level
	 */
	INERTIA_API int GetLevel();

	/** Set the debug destinations (default=true,false,true).
	 *  @param cout enable debug to the standard output stream
	 *  @param file enable debug to inertiaStudio.log in the executable directory
	 *  @param debugger enable debug to the debugger (Windows, Android)
	 */
	INERTIA_API void SetDest(bool cout, bool file, bool debugger);

	/** Check if debug to the standard output stream is enabled.
	 *  @return true when debug to cout is enabled
	 */
	INERTIA_API bool GetDebugToCout();

	/** Check if debug to file is enabled.
	 *  @return true when debug to file enabled
	 */
	INERTIA_API bool GetDebugToFile();

	/** Check if debug to the debugger is enabled.
	 *  @return true when debug to debugger is enabled
	 */
	INERTIA_API bool GetDebugToDebugger();
}
}

#endif // INERTIA_DEBUGLOG_H
