Haha-Yes/node_modules/node-opus/src/common.h

52 lines
1.5 KiB
C
Raw Normal View History

2018-09-09 21:20:36 +02:00
#if !defined( COMMON_H )
#define COMMON_H
#include <stdio.h>
#define TRACING
#if defined(TRACING)
#define TRACE(msg) printf(" TRACE: %s\n", msg)
#define TRACE_S(msg, s) printf(" TRACE: %s : %s\n", msg, s)
#define TRACE_I(msg, i) printf(" TRACE: %s : %d\n", msg, i)
#define TRACE_CALL printf("-> TRACE: Call::%s\n", __FUNCTION__)
#define TRACE_CALL_I(p1) printf("-> TRACE: Call::%s(%d)\n", __FUNCTION__, p1)
#define TRACE_END printf("<- Call::%s\n", __FUNCTION__)
#else
#define TRACE(msg)
#define TRACE_CALL
#define TRACE_CALL_I(p1)
#define TRACE_END
#endif
#define THROW_TYPE_ERROR( MSG ) \
return Nan::ThrowTypeError( MSG );
#define CHECK_ARG(I, CHECK, DO_TRUE, DO_FALSE) \
if ( info.Length() <= (I) || !info[I]->CHECK ) { DO_FALSE; } else { DO_TRUE; }
#define REQUIRE_ARG(I, CHECK) \
CHECK_ARG( I, CHECK, , THROW_TYPE_ERROR("Argument " #I " must be an object") )
#define REQ_OBJ_ARG(I, VAR) \
REQUIRE_ARG( I, IsObject() ) \
Local<Object> VAR = Local<Object>::Cast( info[I] )
#define REQ_INT_ARG(I, VAR) \
REQUIRE_ARG( I, IsNumber() ) \
int VAR = info[I]->Int32Value()
#define OPT_INT_ARG(I, VAR, DEFAULT) \
int VAR; \
CHECK_ARG( I, IsNumber(), VAR = info[I]->Int32Value(), VAR = DEFAULT )
#define REQ_FUN_ARG(I, VAR) \
if (info.Length() <= (I) || !info[I]->IsFunction()) \
return Nan::ThrowTypeError("Argument " #I " must be a function"); \
Local<Function> VAR = Local<Function>::Cast(info[I]);
#endif