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()
|
||||
{
|
||||
// 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
|
||||
// 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;
|
||||
}
|
||||
|
||||
CDVD_SourceType CDVDsys_GetSourceType()
|
||||
{
|
||||
return m_CurrentSourceType;
|
||||
}
|
||||
|
||||
void CDVDsys_ChangeSource( CDVD_SourceType type )
|
||||
{
|
||||
GetPluginManager().Close( PluginId_CDVD );
|
||||
|
|
|
@ -69,6 +69,7 @@ extern const wxChar* CDVD_SourceLabels[];
|
|||
|
||||
extern void CDVDsys_ChangeSource( CDVD_SourceType type );
|
||||
extern void CDVDsys_SetFile( CDVD_SourceType srctype, const wxString& newfile );
|
||||
extern CDVD_SourceType CDVDsys_GetSourceType();
|
||||
|
||||
extern bool DoCDVDopen();
|
||||
extern void DoCDVDclose();
|
||||
|
|
|
@ -35,13 +35,13 @@ static __threadlocal SysCoreThread* tls_coreThread = NULL;
|
|||
// (Called from outside the context of this thread)
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
SysCoreThread::SysCoreThread() :
|
||||
m_resetRecompilers( true )
|
||||
, m_resetProfilers( true )
|
||||
, m_resetVirtualMachine( true )
|
||||
, m_hasValidState( false )
|
||||
SysCoreThread::SysCoreThread()
|
||||
{
|
||||
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()
|
||||
|
@ -119,8 +119,20 @@ void SysCoreThread::ApplySettings( const Pcsx2Config& src )
|
|||
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)
|
||||
// --------------------------------------------------------------------------------------
|
||||
SysCoreThread& SysCoreThread::Get()
|
||||
|
|
|
@ -220,6 +220,7 @@ public:
|
|||
|
||||
virtual const wxString& GetElfOverride() const { return m_elf_override; }
|
||||
virtual void SetElfOverride( const wxString& elf );
|
||||
virtual void ChangeCdvdSource( CDVD_SourceType type );
|
||||
|
||||
protected:
|
||||
void CpuInitializeMess();
|
||||
|
|
|
@ -534,6 +534,7 @@ public:
|
|||
virtual void Reset();
|
||||
virtual void StateCheckInThread();
|
||||
virtual void ApplySettings( const Pcsx2Config& src );
|
||||
virtual void ChangeCdvdSource( CDVD_SourceType type );
|
||||
|
||||
protected:
|
||||
virtual void OnResumeReady();
|
||||
|
|
|
@ -100,6 +100,15 @@ void AppCoreThread::Resume()
|
|||
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()
|
||||
{
|
||||
ApplySettings( g_Conf->EmuOptions );
|
||||
|
|
|
@ -74,13 +74,13 @@ pxAppResources::pxAppResources()
|
|||
|
||||
wxMenu& Pcsx2App::GetRecentIsoMenu()
|
||||
{
|
||||
pxAssert( m_Resources->RecentIsoMenu );
|
||||
pxAssert( !!m_Resources->RecentIsoMenu );
|
||||
return *m_Resources->RecentIsoMenu;
|
||||
}
|
||||
|
||||
RecentIsoManager& Pcsx2App::GetRecentIsoList()
|
||||
{
|
||||
pxAssert( m_Resources->RecentIsoList );
|
||||
pxAssert( !!m_Resources->RecentIsoList );
|
||||
return *m_Resources->RecentIsoList;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,9 @@ bool IsoDropTarget::OnDropFiles(wxCoord x, wxCoord y, const wxArrayString& filen
|
|||
{
|
||||
SysUpdateIsoSrcFile( filenames[0] );
|
||||
if( result != wxID_RESET )
|
||||
CDVDsys_ChangeSource( CDVDsrc_Iso );
|
||||
{
|
||||
CoreThread.ChangeCdvdSource( CDVDsrc_Iso );
|
||||
}
|
||||
else
|
||||
{
|
||||
sApp.SysExecute( CDVDsrc_Iso );
|
||||
|
|
|
@ -61,12 +61,7 @@ void MainEmuFrame::Menu_CdvdSource_Click( wxCommandEvent &event )
|
|||
|
||||
jNO_DEFAULT
|
||||
}
|
||||
|
||||
if( g_Conf->CdvdSource == newSource ) return;
|
||||
|
||||
bool resume = CoreThread.Suspend();
|
||||
CDVDsys_ChangeSource( g_Conf->CdvdSource = newSource );
|
||||
if( resume ) CoreThread.Resume();
|
||||
CoreThread.ChangeCdvdSource( newSource );
|
||||
}
|
||||
|
||||
// Returns FALSE if the user cancelled the action.
|
||||
|
|
|
@ -140,7 +140,8 @@ EXPORT_C_(s32) SPU2test()
|
|||
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.
|
||||
SysMessage( L"The '%s' driver test failed. Please configure\ndifferent SoundOut module and try again.", mods[OutputModule]->GetIdent() );
|
||||
|
|
Loading…
Reference in New Issue