Files
Sun1602/SUN3DEngine/include/Client/wzSound/util/wz_util.h
T
2022-10-26 12:25:11 +08:00

109 lines
3.3 KiB
C

#ifndef __CP_UTIL_H__
#define __CP_UTIL_H__
#ifdef __cplusplus
extern "C" {
#endif
// wz_util.h
//========================================
// Constants / Defines / TypDefs
//========================================
#define SAFE_DELETE(p) { if(p) { free(p); (p)=NULL; } }
#define SAFE_DELETE_ARRAY(p) { if(p) { free(p); (p)=NULL; } }
//////////////////////////////////////////////////////////////////////////
// debugging facility
/*
#ifdef _DEBUG
//#ifndef _MSCP_VER
int __CrtDbgReport(
int reportType,
const char *filename,
int linenumber,
const char *moduleName,
const char *lpszFormat ,
...
);
//#else
#include <crtdbg.h>
//#endif
#define CP_TRACE0(format) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n")
#define CP_TRACE1(format, arg1) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n", arg1)
#define CP_TRACE2(format, arg1, arg2) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n", arg1, arg2)
#define CP_TRACE3(format, arg1, arg2, arg3) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n", arg1, arg2, arg3)
#define CP_TRACE4(format, arg1, arg2, arg3, arg4) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n", arg1, arg2, arg3, arg4)
#define CP_TRACE5(format, arg1, arg2, arg3, arg4, arg5) __CrtDbgReport(_CRT_WARN, __FILE__, __LINE__, NULL, format "\n", arg1, arg2, arg3, arg4, arg5)
//
#define CP_ASSERT(expr) if(!(expr)) { CP_TRACE1("ASSERTION %s FAILS", #expr); __asm { int 3 } }
#define CP_FAIL(errstring) { CP_TRACE1("HARD FAILURE %s", #errstring); __asm { int 3 } }
//
#define CP_CHECKOBJECT(obj_ptr_typed) if(!obj_ptr_typed || !_CrtIsMemoryBlock(obj_ptr_typed, sizeof(*obj_ptr_typed), NULL, NULL, NULL)) { CP_TRACE1("POINTER %s is Bogus", #obj_ptr_typed); __asm { int 3 } }
#else*/
#define CP_CHECKOBJECT(obj_ptr_typed) { }
#define CP_ASSERT(expr) { }
#define CP_FAIL(expr) { }
#define CP_TRACE0(f) { }
#define CP_TRACE1(f, e1) { }
#define CP_TRACE2(f, e1, e2) { }
#define CP_TRACE3(f, e1, e2, e3) { }
#define CP_TRACE4(f, e1, e2, e3, e4) { }
#define CP_TRACE5(f, e1, e2, e3, e4, e5){ }
//#endif
void _LOG(const char* szFormat, ...);
void OpenLogFile();
void CloseLogFile();
//////////////////////////////////////////////////////////////////////////
//
HWND MakeHelperWindow(char* pClassname, WNDPROC lpfnWndProc);
//////////////////////////////////////////////////////////////////////////
// shell command utilities
BOOL path_is_directory(char *filename);
BOOL path_is_relative(const char *path);
BOOL path_remove_filespec(LPTSTR path);
void path_add_backslash(char *path);
void path_unquote(LPTSTR path);
DWORD main_get_program_path(HINSTANCE hInst, LPTSTR pszBuffer,
DWORD dwSize);
//////////////////////////////////////////////////////////////////////////
// string utilities
char *str_delete_substr(char *strbuf, char *strtodel);
char *str_trim(char *string);
// Some basic string utility stuff
void STR_AllocSetString(char** ppcDest, const char* pcSource, const BOOL bFreeExisting);
//////////////////////////////////////////////////////////////////////////
// math utilities
FLOAT ConvertLinearSliderPosToLogScale( LONG lSliderPos );
LONG ConvertLogScaleToLinearSliderPosTo( FLOAT fValue );
#ifdef __cplusplus
}
#endif
#endif //__CP_UTIL_H__