mirror of https://github.com/PCSX2/pcsx2.git
Adds support to PCSX2 for 'SetLogDir' being passed to the plugins; needed for proper UAC/user homedir mess (patch by gregory).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3111 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
1cf685c8c6
commit
250b5da3ab
|
@ -245,6 +245,7 @@ s32 CALLBACK GSopen(void *pDsp, char *Title, int multithread);
|
|||
void CALLBACK GSclose();
|
||||
void CALLBACK GSshutdown();
|
||||
void CALLBACK GSsetSettingsDir( const char* dir );
|
||||
void CALLBACK GSsetLogDir( const char* dir );
|
||||
|
||||
void CALLBACK GSvsync(int field);
|
||||
void CALLBACK GSgifTransfer1(u32 *pMem, u32 addr);
|
||||
|
@ -298,6 +299,7 @@ s32 CALLBACK PADopen(void *pDsp);
|
|||
void CALLBACK PADclose();
|
||||
void CALLBACK PADshutdown();
|
||||
void CALLBACK PADsetSettingsDir( const char* dir );
|
||||
void CALLBACK PADsetLogDir( const char* dir );
|
||||
|
||||
// PADkeyEvent is called every vsync (return NULL if no event)
|
||||
keyEvent* CALLBACK PADkeyEvent();
|
||||
|
@ -339,6 +341,7 @@ s32 CALLBACK SPU2open(void *pDsp);
|
|||
void CALLBACK SPU2close();
|
||||
void CALLBACK SPU2shutdown();
|
||||
void CALLBACK SPU2setSettingsDir( const char* dir );
|
||||
void CALLBACK SPU2setLogDir( const char* dir );
|
||||
|
||||
void CALLBACK SPU2write(u32 mem, u16 value);
|
||||
u16 CALLBACK SPU2read(u32 mem);
|
||||
|
@ -399,6 +402,7 @@ s32 CALLBACK CDVDopen(const char* pTitleFilename);
|
|||
void CALLBACK CDVDclose();
|
||||
void CALLBACK CDVDshutdown();
|
||||
void CALLBACK CDVDsetSettingsDir( const char* dir );
|
||||
void CALLBACK CDVDsetLogDir( const char* dir );
|
||||
|
||||
s32 CALLBACK CDVDreadTrack(u32 lsn, int mode);
|
||||
|
||||
|
@ -449,6 +453,7 @@ s32 CALLBACK DEV9open(void *pDsp);
|
|||
void CALLBACK DEV9close();
|
||||
void CALLBACK DEV9shutdown();
|
||||
void CALLBACK DEV9setSettingsDir( const char* dir );
|
||||
void CALLBACK DEV9setLogDir( const char* dir );
|
||||
|
||||
u8 CALLBACK DEV9read8(u32 addr);
|
||||
u16 CALLBACK DEV9read16(u32 addr);
|
||||
|
@ -491,6 +496,7 @@ s32 CALLBACK USBopen(void *pDsp);
|
|||
void CALLBACK USBclose();
|
||||
void CALLBACK USBshutdown();
|
||||
void CALLBACK USBsetSettingsDir( const char* dir );
|
||||
void CALLBACK USBsetLogDir( const char* dir );
|
||||
|
||||
u8 CALLBACK USBread8(u32 addr);
|
||||
u16 CALLBACK USBread16(u32 addr);
|
||||
|
@ -529,6 +535,7 @@ s32 CALLBACK FWopen(void *pDsp);
|
|||
void CALLBACK FWclose();
|
||||
void CALLBACK FWshutdown();
|
||||
void CALLBACK FWsetSettingsDir( const char* dir );
|
||||
void CALLBACK FWsetLogDir( const char* dir );
|
||||
|
||||
u32 CALLBACK FWread32(u32 addr);
|
||||
void CALLBACK FWwrite32(u32 addr, u32 value);
|
||||
|
|
|
@ -137,6 +137,7 @@ static s32 CALLBACK fallback_freeze(int mode, freezeData *data)
|
|||
|
||||
static void CALLBACK fallback_keyEvent(keyEvent *ev) {}
|
||||
static void CALLBACK fallback_setSettingsDir(const char* dir) {}
|
||||
static void CALLBACK fallback_SetLogFolder(const char* dir) {}
|
||||
static void CALLBACK fallback_configure() {}
|
||||
static void CALLBACK fallback_about() {}
|
||||
static s32 CALLBACK fallback_test() { return 0; }
|
||||
|
@ -291,6 +292,7 @@ static const LegacyApi_CommonMethod s_MethMessCommon[] =
|
|||
|
||||
{ "keyEvent", (vMeth*)fallback_keyEvent },
|
||||
{ "setSettingsDir", (vMeth*)fallback_setSettingsDir },
|
||||
{ "SetLogFolder", (vMeth*)fallback_SetLogFolder },
|
||||
|
||||
{ "freeze", (vMeth*)fallback_freeze },
|
||||
{ "test", (vMeth*)fallback_test },
|
||||
|
@ -931,6 +933,7 @@ void PluginManager::Load( const wxString (&folders)[PluginId_Count] )
|
|||
throw Exception::PluginLoadError( PluginId_Mcd, wxEmptyString, "Internal Memorycard Plugin failed to load." );
|
||||
}
|
||||
|
||||
SendLogFolder();
|
||||
SendSettingsFolder();
|
||||
}
|
||||
|
||||
|
@ -1404,6 +1407,33 @@ void PluginManager::SetSettingsFolder( const wxString& folder )
|
|||
SendSettingsFolder();
|
||||
}
|
||||
|
||||
void PluginManager::SendLogFolder()
|
||||
{
|
||||
ScopedLock lock( m_mtx_PluginStatus );
|
||||
if( m_LogFolder.IsEmpty() ) return;
|
||||
|
||||
wxCharBuffer utf8buffer( m_LogFolder.ToUTF8() );
|
||||
|
||||
const PluginInfo* pi = tbl_PluginInfo; do {
|
||||
if( m_info[pi->id] ) m_info[pi->id]->CommonBindings.SetLogFolder( utf8buffer );
|
||||
} while( ++pi, pi->shortname != NULL );
|
||||
}
|
||||
|
||||
void PluginManager::SetLogFolder( const wxString& folder )
|
||||
{
|
||||
ScopedLock lock( m_mtx_PluginStatus );
|
||||
|
||||
wxString fixedfolder( folder );
|
||||
if( !fixedfolder.IsEmpty() && (fixedfolder[fixedfolder.length()-1] != wxFileName::GetPathSeparator() ) )
|
||||
{
|
||||
fixedfolder += wxFileName::GetPathSeparator();
|
||||
}
|
||||
|
||||
if( m_LogFolder == fixedfolder ) return;
|
||||
m_LogFolder = fixedfolder;
|
||||
SendLogFolder();
|
||||
}
|
||||
|
||||
void PluginManager::Configure( PluginsEnum_t pid )
|
||||
{
|
||||
ScopedLock lock( m_mtx_PluginStatus );
|
||||
|
|
|
@ -181,6 +181,8 @@ struct LegacyPluginAPI_Common
|
|||
|
||||
void (CALLBACK* KeyEvent)( keyEvent* evt );
|
||||
void (CALLBACK* SetSettingsDir)( const char* dir );
|
||||
void (CALLBACK* SetLogFolder)( const char* dir );
|
||||
|
||||
s32 (CALLBACK* Freeze)(int mode, freezeData *data);
|
||||
s32 (CALLBACK* Test)();
|
||||
void (CALLBACK* Configure)();
|
||||
|
@ -267,6 +269,7 @@ protected:
|
|||
|
||||
const PS2E_LibraryAPI* m_mcdPlugin;
|
||||
wxString m_SettingsFolder;
|
||||
wxString m_LogFolder;
|
||||
Threading::MutexRecursive m_mtx_PluginStatus;
|
||||
|
||||
// Lovely hack until the new PS2E API is completed.
|
||||
|
@ -310,6 +313,9 @@ public:
|
|||
virtual void Configure( PluginsEnum_t pid );
|
||||
virtual void SetSettingsFolder( const wxString& folder );
|
||||
virtual void SendSettingsFolder();
|
||||
virtual void SetLogFolder( const wxString& folder );
|
||||
virtual void SendLogFolder();
|
||||
|
||||
|
||||
const wxString GetName( PluginsEnum_t pid ) const;
|
||||
const wxString GetVersion( PluginsEnum_t pid ) const;
|
||||
|
|
|
@ -326,6 +326,11 @@ bool AppConfig::FullpathMatchTest( PluginsEnum_t pluginId, const wxString& cmpto
|
|||
return left == right;
|
||||
}
|
||||
|
||||
wxDirName GetLogFolder()
|
||||
{
|
||||
return UseDefaultLogs ? PathDefs::GetLogs() : Logs;
|
||||
}
|
||||
|
||||
wxDirName GetSettingsFolder()
|
||||
{
|
||||
return UseDefaultSettingsFolder ? PathDefs::GetSettings() : SettingsFolder;
|
||||
|
|
|
@ -45,9 +45,12 @@ extern DocsModeType DocsFolderMode; //
|
|||
extern wxDirName SettingsFolder; // dictates where the settings folder comes from, *if* UseDefaultSettingsFolder is FALSE.
|
||||
extern wxDirName CustomDocumentsFolder; // allows the specification of a custom home folder for PCSX2 documents files.
|
||||
extern bool UseDefaultSettingsFolder; // when TRUE, pcsx2 derives the settings folder from the UseAdminMode
|
||||
extern wxDirName Logs;
|
||||
extern bool UseDefaultLogs;
|
||||
|
||||
wxDirName GetSettingsFolder();
|
||||
wxString GetSettingsFilename();
|
||||
wxDirName GetLogFolder();
|
||||
|
||||
enum AspectRatioType
|
||||
{
|
||||
|
|
|
@ -232,7 +232,9 @@ void AppPluginManager::Load( const wxString (&folders)[PluginId_Count] )
|
|||
{
|
||||
if( !pxAssert(!AreLoaded()) ) return;
|
||||
|
||||
SetLogFolder( GetSettingsFolder().ToString() );
|
||||
SetSettingsFolder( GetSettingsFolder().ToString() );
|
||||
|
||||
_parent::Load( folders );
|
||||
PostPluginStatus( CorePlugins_Loaded );
|
||||
}
|
||||
|
@ -273,6 +275,7 @@ void AppPluginManager::Shutdown( PluginsEnum_t pid )
|
|||
|
||||
void AppPluginManager::Init()
|
||||
{
|
||||
SetLogFolder( GetLogFolder().ToString() );
|
||||
SetSettingsFolder( GetSettingsFolder().ToString() );
|
||||
_parent::Init();
|
||||
PostPluginStatus( CorePlugins_Init );
|
||||
|
@ -314,6 +317,7 @@ void AppPluginManager::Open()
|
|||
return;
|
||||
}*/
|
||||
|
||||
SetLogFolder( GetLogFolder().ToString() );
|
||||
SetSettingsFolder( GetSettingsFolder().ToString() );
|
||||
|
||||
if( !NeedsOpen() ) return;
|
||||
|
|
|
@ -43,6 +43,8 @@ DocsModeType DocsFolderMode = DocsFolder_User;
|
|||
wxDirName SettingsFolder;
|
||||
wxDirName CustomDocumentsFolder;
|
||||
bool UseDefaultSettingsFolder = true;
|
||||
wxDirName Logs;
|
||||
bool UseDefaultLogs = true;
|
||||
|
||||
ScopedPtr<AppConfig> g_Conf;
|
||||
ConfigOverrides OverrideOptions;
|
||||
|
|
Loading…
Reference in New Issue