/*!****************************************************************************

 @file         PVRTError.h
 @copyright    Copyright (c) Imagination Technologies Limited.
 @brief        PVRT error codes.  

******************************************************************************/
#ifndef _PVRTERROR_H_
#define _PVRTERROR_H_

#if defined(ANDROID)
	#include <android/log.h>
#else
	#if defined(_WIN32)
		#include <windows.h>
	#else
		#include <stdio.h>
	#endif
#endif
/*!***************************************************************************
 Macros
*****************************************************************************/

/*! Outputs a string to the standard error if built for debugging. */
#if !defined(PVRTERROR_OUTPUT_DEBUG)
	#if defined(_DEBUG) || defined(DEBUG)
		#if defined(ANDROID)
			#define PVRTERROR_OUTPUT_DEBUG(A) __android_log_print(ANDROID_LOG_INFO, "PVRTools", A);
		#elif defined(_WIN32) && !defined(UNDER_CE)
			#define PVRTERROR_OUTPUT_DEBUG(A) OutputDebugStringA(A);
		#else
			#define PVRTERROR_OUTPUT_DEBUG(A) fprintf(stderr,A);
		#endif
	#else
		#define PVRTERROR_OUTPUT_DEBUG(A)
	#endif
#endif


/*!***************************************************************************
 Enums
*****************************************************************************/
/*!***************************************************************************
 @enum  			EPVRTError
 @brief         	EPVRT error conditions.
*****************************************************************************/
enum EPVRTError
{
	PVR_SUCCESS = 0,    /*!< Success! :D */
	PVR_FAIL = 1,       /*!< Failed :( */
	PVR_OVERFLOW = 2    /*!< Overflow error :| */
};

/*!***************************************************************************
 @brief     		Outputs a string to the standard error.
 @param[in]			format		printf style format followed by arguments it requires.
*****************************************************************************/
void PVRTErrorOutputDebug(char const * const format, ...);

#endif // _PVRTERROR_H_

/*****************************************************************************
End of file (PVRTError.h)
*****************************************************************************/

