Linux: Fixed compiler errors from my prev commit, along with a few verbose warnings and a compile error in SPU2-X. (note, moved Linux's define of SVN_REV macro to PrecompiledHeader.h for now, until a proper solution is implemented)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1819 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-09-13 20:56:22 +00:00
parent 4fbc2c26aa
commit de0442321f
13 changed files with 110 additions and 68 deletions

View File

@ -50,6 +50,7 @@
<Compiler>
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" />
<Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
<Add option="-DNDEBUG" />
<Add directory="../../include" />
<Add directory="../../include/Utilities" />

View File

@ -50,6 +50,7 @@
<Add option="-Wall" />
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=no --cflags`" />
<Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
<Add option="-DNDEBUG" />
</Compiler>
<Linker>

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team
*
*
* PCSX2 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.
@ -27,17 +27,23 @@ extern void DevAssert( bool condition, const char* msg );
// exception. Use this macro to dispose of these dangerous exceptions, and generate a
// friendly error log in their wake.
//
#define DESTRUCTOR_CATCHALL \
#define __DESTRUCTOR_CATCHALL( funcname ) \
catch( Exception::BaseException& ex ) \
{ \
Console::Error( "Unhandled BaseException in " __FUNCTION__ " (ignored!):" ); \
Console::Error( "Unhandled BaseException in %s (ignored!):", funcname ); \
Console::Error( ex.FormatDiagnosticMessage() ); \
} \
catch( std::exception& ex ) \
{ \
Console::Error( "Unhandled std::exception in " __FUNCTION__ " (ignored!):" ); \
Console::Error( "Unhandled std::exception in %s (ignored!):", funcname ); \
Console::Error( ex.what() ); \
}
}
#ifdef __GNUC__
# define DESTRUCTOR_CATCHALL __DESTRUCTOR_CATCHALL( __PRETTY_FUNCTION__ )
#else
# define DESTRUCTOR_CATCHALL __DESTRUCTOR_CATCHALL( __FUNCTION__ )
#endif
namespace Exception
{
@ -89,7 +95,7 @@ namespace Exception
// Construction using one translation key.
void InitBaseEx( const char* msg_eng );
};
// --------------------------------------------------------------------------------------
// Ps2Generic Exception
// --------------------------------------------------------------------------------------
@ -195,7 +201,7 @@ namespace Exception
public:
DEFINE_EXCEPTION_COPYTORS( IndexBoundsFault )
IndexBoundsFault( const wxString& objname, int index, int arrsize )
{
BaseException::InitBaseEx( "Index is outside the bounds of an array." );
@ -208,12 +214,12 @@ namespace Exception
virtual wxString FormatDiagnosticMessage() const;
virtual wxString FormatDisplayMessage() const;
};
class ParseError : public RuntimeError
{
public:
DEFINE_RUNTIME_EXCEPTION( ParseError, "Parse error" );
};
};
// ---------------------------------------------------------------------------------------
// Hardware/OS Exceptions:
@ -344,7 +350,7 @@ namespace Exception
};
// Exception thrown by SaveState class when a plugin returns an error during state
// load or save.
// load or save.
//
class FreezePluginFailure : public virtual RuntimeError
{
@ -374,7 +380,7 @@ namespace Exception
public:
DEFINE_EXCEPTION_COPYTORS( UnsupportedStateVersion )
explicit UnsupportedStateVersion( int version, const wxString& objname=wxEmptyString )
{
StreamName = objname;

View File

@ -1,7 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_workspace_file>
<Workspace title="pcsx2_suite_2008 workspace">
<Project filename="pcsx2/Linux/pcsx2.cbp" />
<Project filename="pcsx2/Linux/pcsx2.cbp">
<Depends filename="common/build/x86emitter/x86emitter.cbp" />
<Depends filename="common/build/Utilities/Utilities.cbp" />
<Depends filename="3rdparty/zlib/zlib.cbp" />
<Depends filename="tools/bin2cpp/bin2cpp.cbp" />
</Project>
<Project filename="common/build/x86emitter/x86emitter.cbp" />
<Project filename="common/build/Utilities/Utilities.cbp" />
<Project filename="3rdparty/SoundTouch/SoundTouch.cbp" />

View File

@ -45,6 +45,7 @@
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" />
<Add option="-DNDEBUG" />
<Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
</Compiler>
<ResourceCompiler>
<Add directory="$(ProjectRootDir)/gui" />
@ -287,8 +288,8 @@
<Unit filename="../gui/MainFrame.cpp" />
<Unit filename="../gui/MainFrame.h" />
<Unit filename="../gui/MainMenuClicks.cpp" />
<Unit filename="../gui/MemoryCardFile.cpp" />
<Unit filename="../gui/Panels/AudioPanel.cpp" />
<Unit filename="../gui/MemoryCardFile.cpp" />
<Unit filename="../gui/Panels/AudioPanel.cpp" />
<Unit filename="../gui/Panels/BiosSelectorPanel.cpp" />
<Unit filename="../gui/Panels/ConfigurationPanels.h" />
<Unit filename="../gui/Panels/CpuPanel.cpp" />
@ -303,16 +304,19 @@
<Unit filename="../gui/Resources/AppIcon16.h" />
<Unit filename="../gui/Resources/AppIcon16.png">
<Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit>
<Unit filename="../gui/Resources/AppIcon32.h" />
<Unit filename="../gui/Resources/AppIcon32.png">
<Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit>
<Unit filename="../gui/Resources/AppIcon64.h" />
<Unit filename="../gui/Resources/AppIcon64.png">
<Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit>
<Unit filename="../gui/Resources/BackgroundLogo.h" />

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team
*
*
* PCSX2 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.
@ -632,7 +632,7 @@ static void PS2E_CALLBACK pcsx2_OSD_WriteLn( int icon, const char* msg )
PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] )
{
Console::Status( "Loading plugins..." );
const PluginInfo* pi = tbl_PluginInfo-1;
while( ++pi, pi->shortname != NULL )
{
@ -674,21 +674,21 @@ PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] )
// Hack for PAD's stupid parameter passed on Init
PADinit = (_PADinit)m_info[PluginId_PAD].CommonBindings.Init;
m_info[PluginId_PAD].CommonBindings.Init = _hack_PADinit;
Console::Status( "Plugins loaded successfully.\n" );
// HACK! Manually bind the Internal MemoryCard plugin for now, until
// we get things more completed in the new plugin api.
static const PS2E_EmulatorInfo myself =
{
"PCSX2",
{ 0, PCSX2_VersionHi, PCSX2_VersionLo, SVN_REV },
x86caps.PhysicalCores,
x86caps.LogicalCores,
pcsx2_GetInt,
pcsx2_GetBoolean,
pcsx2_GetString,
@ -712,7 +712,6 @@ PluginManager::~PluginManager()
Shutdown();
}
DESTRUCTOR_CATCHALL
// All library unloading done automatically.
}
@ -988,9 +987,9 @@ void PluginManager::Shutdown()
m_info[pid].IsInitialized = false;
m_info[pid].CommonBindings.Shutdown();
}
// More memorycard hacks!!
if( EmuPlugins.Mcd != NULL && m_mcdPlugin != NULL )
{
m_mcdPlugin->DeleteComponentInstance( (PS2E_THISPTR)EmuPlugins.Mcd );

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team
*
*
* PCSX2 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.
@ -29,7 +29,7 @@ struct PluginInfo
PluginsEnum_t id;
int typemask;
int version; // minimum version required / supported
wxString GetShortname() const
{
return wxString::FromUTF8( shortname );
@ -127,7 +127,7 @@ struct LegacyPluginAPI_Common
s32 (CALLBACK* Test)();
void (CALLBACK* Configure)();
void (CALLBACK* About)();
LegacyPluginAPI_Common() :
Init ( NULL )
, Close ( NULL )
@ -154,7 +154,7 @@ class EmuPluginBindings
{
protected:
PS2E_ComponentAPI_Mcd* Mcd;
public:
EmuPluginBindings() :
Mcd( NULL )
@ -204,7 +204,7 @@ public:
virtual void Freeze( PluginsEnum_t pid, int mode, freezeData* data ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual void Freeze( PluginsEnum_t pid, SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual void Freeze( SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual bool KeyEvent( const keyEvent& evt ) { return false; }
};
@ -225,7 +225,7 @@ protected:
LegacyPluginAPI_Common CommonBindings;
wxDynamicLibrary Lib;
PluginStatus_t() :
IsInitialized( false )
, IsOpened( false )
@ -268,7 +268,7 @@ protected:
void BindCommon( PluginsEnum_t pid );
void BindRequired( PluginsEnum_t pid );
void BindOptional( PluginsEnum_t pid );
friend class mtgsThreadObject;
};
@ -282,7 +282,7 @@ extern PluginManagerBase& GetPluginManager();
// Hack to expose internal MemoryCard plugin:
extern "C" extern const PS2E_LibraryAPI* FileMcd_InitAPI( const PS2E_EmulatorInfo* emuinfo );
extern "C" const PS2E_LibraryAPI* FileMcd_InitAPI( const PS2E_EmulatorInfo* emuinfo );
// Per ChickenLiver, this is being used to pass the GS plugins window handle to the Pad plugins.
// So a rename to pDisplay is in the works, but it will not, in fact, be removed.

View File

@ -90,6 +90,12 @@ typedef int BOOL;
#include "Utilities/General.h"
#include "x86emitter/tools.h"
// Linux isn't set up for svn version numbers yet.
#ifdef __LINUX__
# define SVN_REV 0
# define SVN_MODS 0
#endif
//////////////////////////////////////////////////////////////////////////////////////////
// Compiler/OS specific macros and defines -- Begin Section

View File

@ -279,26 +279,16 @@ MainEmuFrame::MainEmuFrame(wxWindow* parent, const wxString& title):
wxString wintitle;
if( PCSX2_VersionLo & 1 )
{
#ifdef __LINUX__
// Linux isn't set up for svn version numbers yet.
wintitle.Printf( _("PCSX2 %d.%d.%d (svn) %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
wxString::FromUTF8(__DATE__).c_str() );
#else
// Odd versions: beta / development editions, which feature revision number and compile date.
wintitle.Printf( _("PCSX2 %d.%d.%d.%d%s (svn) %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
SVN_REV, SVN_MODS ? L"m" : wxEmptyString, wxString::FromUTF8(__DATE__).c_str() );
#endif
}
else
{
#ifdef __LINUX__
wintitle.Printf( _("PCSX2 %d.%d.%d"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo);
#else
// evens: stable releases, with a simpler title.
wintitle.Printf( _("PCSX2 %d.%d.%d %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
SVN_MODS ? _("(modded)") : wxEmptyString
);
#endif
}
SetTitle( wintitle );
@ -306,13 +296,13 @@ MainEmuFrame::MainEmuFrame(wxWindow* parent, const wxString& title):
// Ideally the __WXMSW__ port should use the embedded IDI_ICON2 icon, because wxWidgets sucks and
// loses the transparency information when loading bitmaps into icons. But for some reason
// I cannot get it to work despite following various examples to the letter.
wxIconBundle bundle;
bundle.AddIcon( EmbeddedImage<res_AppIcon32>().GetIcon() );
bundle.AddIcon( EmbeddedImage<res_AppIcon64>().GetIcon() );
bundle.AddIcon( EmbeddedImage<res_AppIcon16>().GetIcon() );
SetIcons( bundle );
int m_statusbar_widths[] = { (int)(backsize.GetWidth()*0.73), (int)(backsize.GetWidth()*0.25) };
m_statusbar.SetStatusWidths(2, m_statusbar_widths);
m_statusbar.SetStatusText( L"The Status is Good!", 0);

View File

@ -2,9 +2,12 @@
#ifndef _BASETYPES_H_
#define _BASETYPES_H_
#include "PS2Edefs.h"
//system defines
#ifdef __LINUX__
#include <gtk/gtk.h>
# undef __LINUX__ // supress gtk's warnings on redefinition
# include <gtk/gtk.h>
#else
# define WINVER 0x0501
# define _WIN32_WINNT 0x0501
@ -27,8 +30,6 @@
using std::string;
using std::wstring;
#include "PS2Edefs.h"
//////////////////////////////////////////////////////////////////////////
// Override Win32 min/max macros with the STL's type safe and macro
// free varieties (much safer!)
@ -65,7 +66,7 @@ extern void SysMessage(const char *fmt, ...);
# define DevMsg MsgBox
#else
# define DevCon 0&&Console
# define DevMsg
# define DevMsg
#endif
#ifdef PCSX2_DEBUG
@ -83,7 +84,7 @@ struct StereoOut32
s32 Left;
s32 Right;
StereoOut32() :
Left( 0 ),
Right( 0 )
@ -95,12 +96,12 @@ struct StereoOut32
Right( right )
{
}
StereoOut32( const StereoOut16& src );
explicit StereoOut32( const StereoOutFloat& src );
StereoOut16 DownSample() const;
StereoOut32 operator+( const StereoOut32& right ) const
{
return StereoOut32(
@ -109,7 +110,7 @@ struct StereoOut32
);
}
StereoOut32 operator/( int src ) const
StereoOut32 operator/( int src ) const
{
return StereoOut32( Left / src, Right / src );
}

View File

@ -59,7 +59,7 @@ struct StereoOut16
Right( right )
{
}
StereoOut32 UpSample() const;
void ResampleFrom( const StereoOut32& src )
@ -214,7 +214,7 @@ struct Stereo51Out16DplII
s32 XL = abs(ValL>>8);
s32 XR = abs(ValR>>8);
if(XL>LMax) LMax = XL;
if(XR>RMax) RMax = XR;
@ -264,7 +264,7 @@ struct Stereo51Out16DplII
s32 VL=(ValL>>4) * Cfl; //16.12
s32 VR=(ValR>>4) * Cfr;
s32 SC = (VL-VR)>>15;
//s32 SC = (VL-VR)>>15;
SL = (((VR/148 - VL/209)>>4)*Cfr)>>8;
SR = (((VR/209 - VL/148)>>4)*Cfl)>>8;
@ -283,7 +283,7 @@ struct Stereo51Out16DplII
int AddCX = (C * AddCLR)>>8;
Left = (((L * GainL ))>>8) + AddCX;
Right = (((R * GainL ))>>8) + AddCX;
Right = (((R * GainR ))>>8) + AddCX;
Center = (((C * GainC ))>>8);
LFE = (((SUB * GainLFE))>>8);
LeftBack = (((SL * GainSL ))>>8);
@ -310,7 +310,7 @@ struct Stereo71Out16
LFE = Center;
LeftBack = src.Left >> SndOutVolumeShift;
RightBack = src.Right >> SndOutVolumeShift;
LeftSide = src.Left >> (SndOutVolumeShift+1);
RightSide = src.Right >> (SndOutVolumeShift+1);
}
@ -352,7 +352,7 @@ private:
static StereoOut32* sndTempBuffer;
static StereoOut16* sndTempBuffer16;
static int sndTempProgress;
static int m_dsp_progress;
@ -381,7 +381,7 @@ private:
static void timeStretchWrite();
static void timeStretchUnderrun();
static s32 timeStretchOverrun();
static void PredictDataWrite( int samples );
static float GetStatusPct();
static void UpdateTempoChange();
@ -392,13 +392,13 @@ public:
static void Write( const StereoOut32& Sample );
static s32 Test();
static void ClearContents();
#ifdef _MSC_VER
static void Configure(HWND parent, u32 module );
#else
static void Configure(uptr parent, u32 module );
#endif
// Note: When using with 32 bit output buffers, the user of this function is responsible
// for shifting the values to where they need to be manually. The fixed point depth of
// the sample output is determined by the SndOutVolumeShift, which is the number of bits

View File

@ -1,6 +1,6 @@
/* SPU2-X, A plugin for Emulating the Sound Processing Unit of the Playstation 2
* Developed and maintained by the Pcsx2 Development Team.
*
*
* 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.
@ -130,7 +130,7 @@ static const int pcm_DecodedSamplesPerBlock = 28;
struct PcmCacheEntry
{
bool Validated;
bool Validated;
s16 Sampledata[pcm_DecodedSamplesPerBlock];
};
@ -144,10 +144,10 @@ extern short *_spu2mem;
extern PcmCacheEntry* pcm_cache_data;
extern s16 __forceinline * __fastcall GetMemPtr(u32 addr);
extern s16 __forceinline __fastcall spu2M_Read( u32 addr );
extern void __inline __fastcall spu2M_Write( u32 addr, s16 value );
extern void __inline __fastcall spu2M_Write( u32 addr, u16 value );
extern s16* __fastcall GetMemPtr(u32 addr);
extern s16 __fastcall spu2M_Read( u32 addr );
extern void __fastcall spu2M_Write( u32 addr, s16 value );
extern void __fastcall spu2M_Write( u32 addr, u16 value );
#define spu2Rs16(mmem) (*(s16 *)((s8 *)spu2regs + ((mmem) & 0x1fff)))
#define spu2Ru16(mmem) (*(u16 *)((s8 *)spu2regs + ((mmem) & 0x1fff)))

View File

@ -5,6 +5,11 @@
<Option title="bin2cpp" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Option show_notes="0">
<notes>
<![CDATA[Built Targets: Debug and Devel builds are carbon copies of Release. Code::Blocks won't build bin2cpp automatically as a dependency of PCSX2 unless it has matching debug/devel configurations (that is, the depdendency only builds in Release modes, if the dependency only has a release target). There's no point in having debug/devel builds other than that.]]>
</notes>
</Option>
<Build>
<Target title="Release">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
@ -18,6 +23,30 @@
<Add option="-s" />
</Linker>
</Target>
<Target title="Debug">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
<Option object_output="./.objs/release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
<Target title="Devel">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
<Option object_output="./.objs/release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />