2009-09-29 19:18:50 +00:00
|
|
|
/* SPU2-X, A plugin for Emulating the Sound Processing Unit of the Playstation 2
|
|
|
|
* Developed and maintained by the Pcsx2 Development Team.
|
|
|
|
*
|
|
|
|
* Original portions from SPU2ghz are (c) 2008 by David Quintana [gigaherz]
|
|
|
|
*
|
|
|
|
* SPU2-X is free software: you can redistribute it and/or modify it under the terms
|
|
|
|
* of the GNU Lesser General Public License as published by the Free Software Found-
|
|
|
|
* ation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* SPU2-X is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
|
* PURPOSE. See the GNU Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* along with SPU2-X. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SPU2X_GLOBAL_H_
|
|
|
|
#define _SPU2X_GLOBAL_H_
|
|
|
|
|
2009-10-08 19:26:57 +00:00
|
|
|
#define NOMINMAX
|
|
|
|
|
2009-09-29 19:18:50 +00:00
|
|
|
struct StereoOut16;
|
|
|
|
struct StereoOut32;
|
|
|
|
struct StereoOutFloat;
|
|
|
|
|
|
|
|
struct V_Core;
|
|
|
|
|
|
|
|
namespace soundtouch
|
|
|
|
{
|
|
|
|
class SoundTouch;
|
|
|
|
}
|
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
#include <cstdlib>
|
|
|
|
#include <cstdio>
|
|
|
|
#include <cstring>
|
|
|
|
#include <cstdarg>
|
|
|
|
#include <cmath>
|
|
|
|
#include <ctime>
|
|
|
|
#include <stdexcept>
|
|
|
|
#include <string>
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
|
|
using std::string;
|
|
|
|
using std::wstring;
|
|
|
|
|
|
|
|
#include "Pcsx2Types.h"
|
|
|
|
|
|
|
|
namespace VersionInfo
|
|
|
|
{
|
|
|
|
static const u8 Release = 1;
|
|
|
|
static const u8 Revision = 3; // increase that with each version
|
|
|
|
}
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// Override Win32 min/max macros with the STL's type safe and macro
|
|
|
|
// free varieties (much safer!)
|
|
|
|
|
|
|
|
#undef min
|
|
|
|
#undef max
|
|
|
|
|
|
|
|
template< typename T >
|
|
|
|
static __forceinline void Clampify( T& src, T min, T max )
|
|
|
|
{
|
|
|
|
src = std::min( std::max( src, min ), max );
|
|
|
|
}
|
|
|
|
|
|
|
|
template< typename T >
|
|
|
|
static __forceinline T GetClamped( T src, T min, T max )
|
|
|
|
{
|
|
|
|
return std::min( std::max( src, min ), max );
|
|
|
|
}
|
|
|
|
|
|
|
|
extern void SysMessage(const char *fmt, ...);
|
2009-11-16 13:14:02 +00:00
|
|
|
extern void SysMessage(const wchar_t *fmt, ...);
|
2009-09-29 19:18:50 +00:00
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
// Dev / Debug conditionals --
|
|
|
|
// Consts for using if() statements instead of uglier #ifdef macros.
|
|
|
|
// Abbreviated macros for dev/debug only consoles and msgboxes.
|
|
|
|
|
|
|
|
#ifdef PCSX2_DEVBUILD
|
|
|
|
# define DevCon Console
|
|
|
|
# define DevMsg MsgBox
|
|
|
|
#else
|
|
|
|
# define DevCon 0&&Console
|
|
|
|
# define DevMsg
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef PCSX2_DEBUG
|
|
|
|
# define DbgCon Console
|
|
|
|
#else
|
|
|
|
# define DbgCon 0&&Console
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef PCSX2_DEVBUILD
|
|
|
|
# define SPU2_LOG
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "Utilities/Exceptions.h"
|
|
|
|
#include "Utilities/SafeArray.h"
|
|
|
|
|
|
|
|
#include "ConvertUTF.h"
|
|
|
|
|
|
|
|
#include "defs.h"
|
|
|
|
#include "regs.h"
|
|
|
|
|
|
|
|
#include "Config.h"
|
|
|
|
#include "Debug.h"
|
|
|
|
#include "SndOut.h"
|
|
|
|
|
|
|
|
#endif
|