mirror of https://github.com/PCSX2/pcsx2.git
* Implemented more support for on-the-fly CDVD source changes (not well tested, probably need work).
* Fix Reelease mode compilation errors. * More misc bugfixes to the UI. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2207 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
4ab6a9846e
commit
c942e3aaca
|
@ -32,7 +32,7 @@ __forceinline void Threading::SpinWait()
|
||||||
|
|
||||||
__forceinline void Threading::EnableHiresScheduler()
|
__forceinline void Threading::EnableHiresScheduler()
|
||||||
{
|
{
|
||||||
// This improves accuracy of Sleep() by some amount, and only adds a negligable amount of
|
// This improves accuracy of Sleep() by some amount, and only adds a negligible amount of
|
||||||
// overhead on modern CPUs. Typically desktops are already set pretty low, but laptops in
|
// overhead on modern CPUs. Typically desktops are already set pretty low, but laptops in
|
||||||
// particular may have a scheduler Period of 15 or 20ms to extend battery life.
|
// particular may have a scheduler Period of 15 or 20ms to extend battery life.
|
||||||
|
|
||||||
|
|
|
@ -268,6 +268,11 @@ void CDVDsys_SetFile( CDVD_SourceType srctype, const wxString& newfile )
|
||||||
m_SourceFilename[srctype] = newfile;
|
m_SourceFilename[srctype] = newfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CDVD_SourceType CDVDsys_GetSourceType()
|
||||||
|
{
|
||||||
|
return m_CurrentSourceType;
|
||||||
|
}
|
||||||
|
|
||||||
void CDVDsys_ChangeSource( CDVD_SourceType type )
|
void CDVDsys_ChangeSource( CDVD_SourceType type )
|
||||||
{
|
{
|
||||||
GetPluginManager().Close( PluginId_CDVD );
|
GetPluginManager().Close( PluginId_CDVD );
|
||||||
|
|
|
@ -69,6 +69,7 @@ extern const wxChar* CDVD_SourceLabels[];
|
||||||
|
|
||||||
extern void CDVDsys_ChangeSource( CDVD_SourceType type );
|
extern void CDVDsys_ChangeSource( CDVD_SourceType type );
|
||||||
extern void CDVDsys_SetFile( CDVD_SourceType srctype, const wxString& newfile );
|
extern void CDVDsys_SetFile( CDVD_SourceType srctype, const wxString& newfile );
|
||||||
|
extern CDVD_SourceType CDVDsys_GetSourceType();
|
||||||
|
|
||||||
extern bool DoCDVDopen();
|
extern bool DoCDVDopen();
|
||||||
extern void DoCDVDclose();
|
extern void DoCDVDclose();
|
||||||
|
|
|
@ -35,13 +35,13 @@ static __threadlocal SysCoreThread* tls_coreThread = NULL;
|
||||||
// (Called from outside the context of this thread)
|
// (Called from outside the context of this thread)
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
SysCoreThread::SysCoreThread() :
|
SysCoreThread::SysCoreThread()
|
||||||
m_resetRecompilers( true )
|
|
||||||
, m_resetProfilers( true )
|
|
||||||
, m_resetVirtualMachine( true )
|
|
||||||
, m_hasValidState( false )
|
|
||||||
{
|
{
|
||||||
m_name = L"EE Core";
|
m_name = L"EE Core";
|
||||||
|
m_resetRecompilers = true;
|
||||||
|
m_resetProfilers = true;
|
||||||
|
m_resetVirtualMachine = true;
|
||||||
|
m_hasValidState = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SysCoreThread::~SysCoreThread() throw()
|
SysCoreThread::~SysCoreThread() throw()
|
||||||
|
@ -119,8 +119,20 @@ void SysCoreThread::ApplySettings( const Pcsx2Config& src )
|
||||||
if( resumeWhenDone ) Resume();
|
if( resumeWhenDone ) Resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SysCoreThread::ChangeCdvdSource( CDVD_SourceType type )
|
||||||
|
{
|
||||||
|
if( type == CDVDsys_GetSourceType() ) return;
|
||||||
|
|
||||||
|
// Fast change of the CDVD source only -- a Pause will suffice.
|
||||||
|
|
||||||
|
bool resumeWhenDone = Pause();
|
||||||
|
GetPluginManager().Close( PluginId_CDVD );
|
||||||
|
CDVDsys_ChangeSource( type );
|
||||||
|
if( resumeWhenDone ) Resume();
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
// EECoreThread *Worker* Implementations
|
// SysCoreThread *Worker* Implementations
|
||||||
// (Called from the context of this thread only)
|
// (Called from the context of this thread only)
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
SysCoreThread& SysCoreThread::Get()
|
SysCoreThread& SysCoreThread::Get()
|
||||||
|
|
|
@ -220,6 +220,7 @@ public:
|
||||||
|
|
||||||
virtual const wxString& GetElfOverride() const { return m_elf_override; }
|
virtual const wxString& GetElfOverride() const { return m_elf_override; }
|
||||||
virtual void SetElfOverride( const wxString& elf );
|
virtual void SetElfOverride( const wxString& elf );
|
||||||
|
virtual void ChangeCdvdSource( CDVD_SourceType type );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void CpuInitializeMess();
|
void CpuInitializeMess();
|
||||||
|
|
|
@ -534,6 +534,7 @@ public:
|
||||||
virtual void Reset();
|
virtual void Reset();
|
||||||
virtual void StateCheckInThread();
|
virtual void StateCheckInThread();
|
||||||
virtual void ApplySettings( const Pcsx2Config& src );
|
virtual void ApplySettings( const Pcsx2Config& src );
|
||||||
|
virtual void ChangeCdvdSource( CDVD_SourceType type );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void OnResumeReady();
|
virtual void OnResumeReady();
|
||||||
|
|
|
@ -100,6 +100,15 @@ void AppCoreThread::Resume()
|
||||||
resume_tries = 0;
|
resume_tries = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AppCoreThread::ChangeCdvdSource( CDVD_SourceType type )
|
||||||
|
{
|
||||||
|
g_Conf->CdvdSource = type;
|
||||||
|
_parent::ChangeCdvdSource( type );
|
||||||
|
sMainFrame.UpdateIsoSrcSelection();
|
||||||
|
|
||||||
|
// TODO: Add a listener for CDVDsource changes? Or should we bother?
|
||||||
|
}
|
||||||
|
|
||||||
void AppCoreThread::OnResumeReady()
|
void AppCoreThread::OnResumeReady()
|
||||||
{
|
{
|
||||||
ApplySettings( g_Conf->EmuOptions );
|
ApplySettings( g_Conf->EmuOptions );
|
||||||
|
|
|
@ -74,13 +74,13 @@ pxAppResources::pxAppResources()
|
||||||
|
|
||||||
wxMenu& Pcsx2App::GetRecentIsoMenu()
|
wxMenu& Pcsx2App::GetRecentIsoMenu()
|
||||||
{
|
{
|
||||||
pxAssert( m_Resources->RecentIsoMenu );
|
pxAssert( !!m_Resources->RecentIsoMenu );
|
||||||
return *m_Resources->RecentIsoMenu;
|
return *m_Resources->RecentIsoMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
RecentIsoManager& Pcsx2App::GetRecentIsoList()
|
RecentIsoManager& Pcsx2App::GetRecentIsoList()
|
||||||
{
|
{
|
||||||
pxAssert( m_Resources->RecentIsoList );
|
pxAssert( !!m_Resources->RecentIsoList );
|
||||||
return *m_Resources->RecentIsoList;
|
return *m_Resources->RecentIsoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,9 @@ bool IsoDropTarget::OnDropFiles(wxCoord x, wxCoord y, const wxArrayString& filen
|
||||||
{
|
{
|
||||||
SysUpdateIsoSrcFile( filenames[0] );
|
SysUpdateIsoSrcFile( filenames[0] );
|
||||||
if( result != wxID_RESET )
|
if( result != wxID_RESET )
|
||||||
CDVDsys_ChangeSource( CDVDsrc_Iso );
|
{
|
||||||
|
CoreThread.ChangeCdvdSource( CDVDsrc_Iso );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sApp.SysExecute( CDVDsrc_Iso );
|
sApp.SysExecute( CDVDsrc_Iso );
|
||||||
|
|
|
@ -61,12 +61,7 @@ void MainEmuFrame::Menu_CdvdSource_Click( wxCommandEvent &event )
|
||||||
|
|
||||||
jNO_DEFAULT
|
jNO_DEFAULT
|
||||||
}
|
}
|
||||||
|
CoreThread.ChangeCdvdSource( newSource );
|
||||||
if( g_Conf->CdvdSource == newSource ) return;
|
|
||||||
|
|
||||||
bool resume = CoreThread.Suspend();
|
|
||||||
CDVDsys_ChangeSource( g_Conf->CdvdSource = newSource );
|
|
||||||
if( resume ) CoreThread.Resume();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns FALSE if the user cancelled the action.
|
// Returns FALSE if the user cancelled the action.
|
||||||
|
|
|
@ -140,7 +140,8 @@ EXPORT_C_(s32) SPU2test()
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !SndBuffer::Test() )
|
ReadSettings();
|
||||||
|
if( SndBuffer::Test() == 0 )
|
||||||
{
|
{
|
||||||
// TODO : Implement a proper dialog that allows the user to test different audio out drivers.
|
// TODO : Implement a proper dialog that allows the user to test different audio out drivers.
|
||||||
SysMessage( L"The '%s' driver test failed. Please configure\ndifferent SoundOut module and try again.", mods[OutputModule]->GetIdent() );
|
SysMessage( L"The '%s' driver test failed. Please configure\ndifferent SoundOut module and try again.", mods[OutputModule]->GetIdent() );
|
||||||
|
|
Loading…
Reference in New Issue