#ifndef __MYPRINTF_H
#define __MYPRINTF_H

#include <stdio.h>
#include "../mcu/types.h"

//#define DEBUG_MODE

#ifdef DEBUG_MODE

#define DPRINT(x) (			\
{					\
	printf(x);			\
}					\
)


#define DPRINT1(x,arg1) (		\
{					\
	printf(x,arg1);		\
}					\
)

#define DPRINT2(x,arg1,arg2) (		\
{					\
	printf(x,arg1,arg2);	\
}					\
)

#define DPRINT3(x,arg1,arg2,arg3) (	\
{					\
	printf(x,arg1,arg2,arg3);	\
}					\
)

#define DPRINT4(x,arg1,arg2,arg3,arg4) (	\
{						\
	printf(x,arg1,arg2,arg3,arg4);	\
}						\
)

#define DPRINTLN(x) (				\
{						\
	printf(x);				\
	printf("\r\n");		\
}						\
)						

#define DPRINTLN1(x,arg1) (			\
{						\
	printf(x,arg1);			\
	printf("\r\n");		\
}						\
)

#define DPRINTLN2(x,arg1,arg2) (		\
{						\
	printf(x,arg1,arg2);		\
	printf("\r\n");		\
}						\
)

#define DPRINTLN3(x,arg1,arg2,arg3) (		\
{						\
	printf(x,arg1,arg2,arg3);		\
	printf("\r\n");		\
}						\
)

#define DPRINTLN4(x,arg1,arg2,arg3,arg4) (		\
{							\
	printf(x,arg1,arg2,arg3,arg4);		\
	printf("\r\n");		\
}							\
)

#else

#define DPRINT(x) ({})

#define DPRINT1(x,arg1) ({})

#define DPRINT2(x,arg1,arg2) ({})

#define DPRINT3(x,arg1,arg2,arg3) ({})

#define DPRINT4(x,arg1,arg2,arg3,arg4) ({})

#define DPRINTLN(x) ({})

#define DPRINTLN1(x,arg1) ({})

#define DPRINTLN2(x,arg1,arg2) ({})

#define DPRINTLN3(x,arg1,arg2,arg3) ({})

#define DPRINTLN4(x,arg1,arg2,arg3,arg4) ({})

#endif

#endif
