Get Controller plugin to update at request
This commit is contained in:
parent
2850cc78c8
commit
bfd206e0a7
|
@ -2232,6 +2232,19 @@ bool CN64System::LoadState(const char * FileName)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t CN64System::GetButtons(int32_t Control) const
|
||||||
|
{
|
||||||
|
CControl_Plugin::fnGetKeys GetKeys = g_Plugins->Control()->GetKeys;
|
||||||
|
if (!UpdateControllerOnRefresh() && GetKeys != nullptr)
|
||||||
|
{
|
||||||
|
BUTTONS Keys;
|
||||||
|
memset(&Keys, 0, sizeof(Keys));
|
||||||
|
GetKeys(Control, &Keys);
|
||||||
|
return Keys.Value;
|
||||||
|
}
|
||||||
|
return m_Buttons[Control];
|
||||||
|
}
|
||||||
|
|
||||||
void CN64System::DisplayRSPListCount()
|
void CN64System::DisplayRSPListCount()
|
||||||
{
|
{
|
||||||
g_Notify->DisplayMessage(0, stdstr_f("Dlist: %d Alist: %d Unknown: %d", m_DlistCount, m_AlistCount, m_UnknownCount).c_str());
|
g_Notify->DisplayMessage(0, stdstr_f("Dlist: %d Alist: %d Unknown: %d", m_DlistCount, m_AlistCount, m_UnknownCount).c_str());
|
||||||
|
@ -2365,7 +2378,7 @@ void CN64System::RefreshScreen()
|
||||||
{
|
{
|
||||||
g_Audio->SetViIntr(VI_INTR_TIME);
|
g_Audio->SetViIntr(VI_INTR_TIME);
|
||||||
}
|
}
|
||||||
if (g_Plugins->Control()->GetKeys)
|
if (UpdateControllerOnRefresh() && g_Plugins->Control()->GetKeys != nullptr)
|
||||||
{
|
{
|
||||||
BUTTONS Keys;
|
BUTTONS Keys;
|
||||||
memset(&Keys, 0, sizeof(Keys));
|
memset(&Keys, 0, sizeof(Keys));
|
||||||
|
|
|
@ -68,15 +68,15 @@ public:
|
||||||
void PluginReset();
|
void PluginReset();
|
||||||
void ApplyGSButton(void);
|
void ApplyGSButton(void);
|
||||||
|
|
||||||
void Pause();
|
void Pause();
|
||||||
void RunRSP();
|
void RunRSP();
|
||||||
bool SaveState();
|
bool SaveState();
|
||||||
bool LoadState(const char * FileName);
|
bool LoadState(const char * FileName);
|
||||||
bool LoadState();
|
bool LoadState();
|
||||||
|
uint32_t GetButtons(int32_t Control) const;
|
||||||
|
|
||||||
bool DmaUsed() const { return m_DMAUsed; }
|
bool DmaUsed() const { return m_DMAUsed; }
|
||||||
void SetDmaUsed(bool DMAUsed) { m_DMAUsed = DMAUsed; }
|
void SetDmaUsed(bool DMAUsed) { m_DMAUsed = DMAUsed; }
|
||||||
uint32_t GetButtons(int32_t Control) const { return m_Buttons[Control]; }
|
|
||||||
CPlugins * GetPlugins() { return m_Plugins; }
|
CPlugins * GetPlugins() { return m_Plugins; }
|
||||||
|
|
||||||
// Variable used to track that the SP is being handled and stays the same as the real SP in sync core
|
// Variable used to track that the SP is being handled and stays the same as the real SP in sync core
|
||||||
|
|
|
@ -85,6 +85,8 @@ private:
|
||||||
class CControl_Plugin : public CPlugin
|
class CControl_Plugin : public CPlugin
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
typedef void(CALL * fnGetKeys) (int32_t Control, BUTTONS * Keys);
|
||||||
|
|
||||||
CControl_Plugin(void);
|
CControl_Plugin(void);
|
||||||
~CControl_Plugin();
|
~CControl_Plugin();
|
||||||
|
|
||||||
|
@ -95,7 +97,7 @@ public:
|
||||||
void(CALL *WM_KeyDown) (uint32_t wParam, uint32_t lParam);
|
void(CALL *WM_KeyDown) (uint32_t wParam, uint32_t lParam);
|
||||||
void(CALL *WM_KeyUp) (uint32_t wParam, uint32_t lParam);
|
void(CALL *WM_KeyUp) (uint32_t wParam, uint32_t lParam);
|
||||||
void(CALL *RumbleCommand) (int32_t Control, int32_t bRumble);
|
void(CALL *RumbleCommand) (int32_t Control, int32_t bRumble);
|
||||||
void(CALL *GetKeys) (int32_t Control, BUTTONS * Keys);
|
fnGetKeys GetKeys;
|
||||||
void(CALL *ReadController) (int32_t Control, uint8_t * Command);
|
void(CALL *ReadController) (int32_t Control, uint8_t * Command);
|
||||||
void(CALL *ControllerCommand) (int32_t Control, uint8_t * Command);
|
void(CALL *ControllerCommand) (int32_t Control, uint8_t * Command);
|
||||||
|
|
||||||
|
|
|
@ -125,6 +125,7 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
||||||
AddHandler(Setting_LanguageDir, new CSettingTypeApplicationPath("Lang Directory", "Directory", Setting_LanguageDirDefault));
|
AddHandler(Setting_LanguageDir, new CSettingTypeApplicationPath("Lang Directory", "Directory", Setting_LanguageDirDefault));
|
||||||
AddHandler(Setting_SyncViaAudioEnabled, new CSettingTypeTempBool(false, "SyncViaAudioEnabled"));
|
AddHandler(Setting_SyncViaAudioEnabled, new CSettingTypeTempBool(false, "SyncViaAudioEnabled"));
|
||||||
AddHandler(Setting_DiskSaveType, new CSettingTypeApplication("Settings", "Disk Save Type", (uint32_t)1));
|
AddHandler(Setting_DiskSaveType, new CSettingTypeApplication("Settings", "Disk Save Type", (uint32_t)1));
|
||||||
|
AddHandler(Setting_UpdateControllerOnRefresh, new CSettingTypeTempBool(false));
|
||||||
|
|
||||||
AddHandler(Default_RDRamSize, new CSettingTypeApplication("Defaults", "RDRAM Size", 0x800000u));
|
AddHandler(Default_RDRamSize, new CSettingTypeApplication("Defaults", "RDRAM Size", 0x800000u));
|
||||||
AddHandler(Default_UseHleGfx, new CSettingTypeApplication("Defaults", "HLE GFX Default", true));
|
AddHandler(Default_UseHleGfx, new CSettingTypeApplication("Defaults", "HLE GFX Default", true));
|
||||||
|
|
|
@ -8,6 +8,7 @@ bool CN64SystemSettings::m_bBasicMode;
|
||||||
bool CN64SystemSettings::m_bLimitFPS;
|
bool CN64SystemSettings::m_bLimitFPS;
|
||||||
bool CN64SystemSettings::m_bShowDListAListCount;
|
bool CN64SystemSettings::m_bShowDListAListCount;
|
||||||
bool CN64SystemSettings::m_bDisplayFrameRate;
|
bool CN64SystemSettings::m_bDisplayFrameRate;
|
||||||
|
bool CN64SystemSettings::m_UpdateControllerOnRefresh;
|
||||||
|
|
||||||
CN64SystemSettings::CN64SystemSettings()
|
CN64SystemSettings::CN64SystemSettings()
|
||||||
{
|
{
|
||||||
|
@ -44,4 +45,5 @@ void CN64SystemSettings::RefreshSettings(void *)
|
||||||
m_bShowCPUPer = g_Settings->LoadBool(UserInterface_ShowCPUPer);
|
m_bShowCPUPer = g_Settings->LoadBool(UserInterface_ShowCPUPer);
|
||||||
m_bShowDListAListCount = g_Settings->LoadBool(Debugger_ShowDListAListCount);
|
m_bShowDListAListCount = g_Settings->LoadBool(Debugger_ShowDListAListCount);
|
||||||
m_bLimitFPS = g_Settings->LoadBool(GameRunning_LimitFPS);
|
m_bLimitFPS = g_Settings->LoadBool(GameRunning_LimitFPS);
|
||||||
|
m_UpdateControllerOnRefresh = g_Settings->LoadBool(Setting_UpdateControllerOnRefresh);
|
||||||
}
|
}
|
|
@ -11,6 +11,7 @@ protected:
|
||||||
inline static bool bShowCPUPer(void) { return m_bShowCPUPer; }
|
inline static bool bShowCPUPer(void) { return m_bShowCPUPer; }
|
||||||
inline static bool bShowDListAListCount(void) { return m_bShowDListAListCount; }
|
inline static bool bShowDListAListCount(void) { return m_bShowDListAListCount; }
|
||||||
inline static bool bLimitFPS(void) { return m_bLimitFPS; }
|
inline static bool bLimitFPS(void) { return m_bLimitFPS; }
|
||||||
|
inline static bool UpdateControllerOnRefresh(void) { return m_UpdateControllerOnRefresh; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void RefreshSettings(void *);
|
static void RefreshSettings(void *);
|
||||||
|
@ -20,6 +21,7 @@ private:
|
||||||
static bool m_bLimitFPS;
|
static bool m_bLimitFPS;
|
||||||
static bool m_bShowDListAListCount;
|
static bool m_bShowDListAListCount;
|
||||||
static bool m_bDisplayFrameRate;
|
static bool m_bDisplayFrameRate;
|
||||||
|
static bool m_UpdateControllerOnRefresh;
|
||||||
|
|
||||||
static int32_t m_RefCount;
|
static int32_t m_RefCount;
|
||||||
};
|
};
|
||||||
|
|
|
@ -60,6 +60,7 @@ enum SettingID
|
||||||
Setting_SyncViaAudioEnabled,
|
Setting_SyncViaAudioEnabled,
|
||||||
Setting_Enhancement,
|
Setting_Enhancement,
|
||||||
Setting_DiskSaveType,
|
Setting_DiskSaveType,
|
||||||
|
Setting_UpdateControllerOnRefresh,
|
||||||
|
|
||||||
// Default settings
|
// Default settings
|
||||||
Default_RDRamSize,
|
Default_RDRamSize,
|
||||||
|
|
Loading…
Reference in New Issue