mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-29 09:05:41 +00:00
dep: Update RAInterface
This commit is contained in:
parent
ce5ff4186c
commit
43869bf74c
|
@ -76,6 +76,7 @@ enum ConsoleID
|
||||||
MegaDuck = 69,
|
MegaDuck = 69,
|
||||||
Zeebo = 70,
|
Zeebo = 70,
|
||||||
Arduboy = 71,
|
Arduboy = 71,
|
||||||
|
WASM4 = 72,
|
||||||
|
|
||||||
NumConsoleIDs
|
NumConsoleIDs
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,12 +20,14 @@ static int (CCONV* _RA_InitClientOffline)(HWND hMainWnd, const char* sC
|
||||||
static void (CCONV* _RA_InstallSharedFunctions)(int(*)(), void(*)(), void(*)(), void(*)(), void(*)(char*), void(*)(), void(*)(const char*)) = nullptr;
|
static void (CCONV* _RA_InstallSharedFunctions)(int(*)(), void(*)(), void(*)(), void(*)(), void(*)(char*), void(*)(), void(*)(const char*)) = nullptr;
|
||||||
static void (CCONV* _RA_SetForceRepaint)(int bEnable) = nullptr;
|
static void (CCONV* _RA_SetForceRepaint)(int bEnable) = nullptr;
|
||||||
static HMENU (CCONV* _RA_CreatePopupMenu)() = nullptr;
|
static HMENU (CCONV* _RA_CreatePopupMenu)() = nullptr;
|
||||||
|
static int (CCONV* _RA_GetPopupMenuItems)(RA_MenuItem*) = nullptr;
|
||||||
static void (CCONV* _RA_InvokeDialog)(LPARAM nID) = nullptr;
|
static void (CCONV* _RA_InvokeDialog)(LPARAM nID) = nullptr;
|
||||||
static void (CCONV* _RA_SetUserAgentDetail)(const char* sDetail);
|
static void (CCONV* _RA_SetUserAgentDetail)(const char* sDetail);
|
||||||
static void (CCONV* _RA_AttemptLogin)(int bBlocking) = nullptr;
|
static void (CCONV* _RA_AttemptLogin)(int bBlocking) = nullptr;
|
||||||
static int (CCONV* _RA_SetConsoleID)(unsigned int nConsoleID) = nullptr;
|
static int (CCONV* _RA_SetConsoleID)(unsigned int nConsoleID) = nullptr;
|
||||||
static void (CCONV* _RA_ClearMemoryBanks)() = nullptr;
|
static void (CCONV* _RA_ClearMemoryBanks)() = nullptr;
|
||||||
static void (CCONV* _RA_InstallMemoryBank)(int nBankID, RA_ReadMemoryFunc* pReader, RA_WriteMemoryFunc* pWriter, int nBankSize) = nullptr;
|
static void (CCONV* _RA_InstallMemoryBank)(int nBankID, RA_ReadMemoryFunc* pReader, RA_WriteMemoryFunc* pWriter, int nBankSize) = nullptr;
|
||||||
|
static void (CCONV* _RA_InstallMemoryBankBlockReader)(int nBankID, RA_ReadMemoryBlockFunc* pReader) = nullptr;
|
||||||
static int (CCONV* _RA_Shutdown)() = nullptr;
|
static int (CCONV* _RA_Shutdown)() = nullptr;
|
||||||
// Overlay
|
// Overlay
|
||||||
static int (CCONV* _RA_IsOverlayFullyVisible)() = nullptr;
|
static int (CCONV* _RA_IsOverlayFullyVisible)() = nullptr;
|
||||||
|
@ -134,11 +136,22 @@ void RA_InstallMemoryBank(int nBankID, RA_ReadMemoryFunc pReader, RA_WriteMemory
|
||||||
_RA_InstallMemoryBank(nBankID, pReader, pWriter, nBankSize);
|
_RA_InstallMemoryBank(nBankID, pReader, pWriter, nBankSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RA_InstallMemoryBankBlockReader(int nBankID, RA_ReadMemoryBlockFunc pReader)
|
||||||
|
{
|
||||||
|
if (_RA_InstallMemoryBankBlockReader != nullptr)
|
||||||
|
_RA_InstallMemoryBankBlockReader(nBankID, pReader);
|
||||||
|
}
|
||||||
|
|
||||||
HMENU RA_CreatePopupMenu(void)
|
HMENU RA_CreatePopupMenu(void)
|
||||||
{
|
{
|
||||||
return (_RA_CreatePopupMenu != nullptr) ? _RA_CreatePopupMenu() : nullptr;
|
return (_RA_CreatePopupMenu != nullptr) ? _RA_CreatePopupMenu() : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int RA_GetPopupMenuItems(RA_MenuItem *pItems)
|
||||||
|
{
|
||||||
|
return (_RA_GetPopupMenuItems != nullptr) ? _RA_GetPopupMenuItems(pItems) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
void RA_UpdateAppTitle(const char* sCustomMsg)
|
void RA_UpdateAppTitle(const char* sCustomMsg)
|
||||||
{
|
{
|
||||||
if (_RA_UpdateAppTitle != nullptr)
|
if (_RA_UpdateAppTitle != nullptr)
|
||||||
|
@ -293,6 +306,7 @@ static BOOL DoBlockingHttpCall(const char* sHostUrl, const char* sRequestedPage,
|
||||||
{
|
{
|
||||||
BOOL bResults = FALSE, bSuccess = FALSE;
|
BOOL bResults = FALSE, bSuccess = FALSE;
|
||||||
HINTERNET hSession = nullptr, hConnect = nullptr, hRequest = nullptr;
|
HINTERNET hSession = nullptr, hConnect = nullptr, hRequest = nullptr;
|
||||||
|
size_t nHostnameLen;
|
||||||
|
|
||||||
WCHAR wBuffer[1024];
|
WCHAR wBuffer[1024];
|
||||||
size_t nTemp;
|
size_t nTemp;
|
||||||
|
@ -313,6 +327,17 @@ static BOOL DoBlockingHttpCall(const char* sHostUrl, const char* sRequestedPage,
|
||||||
nPort = INTERNET_DEFAULT_HTTPS_PORT;
|
nPort = INTERNET_DEFAULT_HTTPS_PORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* sPort = strchr(sHostName, ':');
|
||||||
|
if (sPort)
|
||||||
|
{
|
||||||
|
nHostnameLen = sPort - sHostName;
|
||||||
|
nPort = atoi(sPort + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nHostnameLen = strlen(sHostName);
|
||||||
|
}
|
||||||
|
|
||||||
// Use WinHttpOpen to obtain a session handle.
|
// Use WinHttpOpen to obtain a session handle.
|
||||||
hSession = WinHttpOpen(L"RetroAchievements Client Bootstrap",
|
hSession = WinHttpOpen(L"RetroAchievements Client Bootstrap",
|
||||||
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
|
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
|
||||||
|
@ -327,10 +352,11 @@ static BOOL DoBlockingHttpCall(const char* sHostUrl, const char* sRequestedPage,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
||||||
mbstowcs_s(&nTemp, wBuffer, sizeof(wBuffer) / sizeof(wBuffer[0]), sHostName, strlen(sHostName) + 1);
|
mbstowcs_s(&nTemp, wBuffer, sizeof(wBuffer) / sizeof(wBuffer[0]), sHostName, nHostnameLen);
|
||||||
#else
|
#else
|
||||||
nTemp = mbstowcs(wBuffer, sHostName, strlen(sHostName) + 1);
|
nTemp = mbstowcs(wBuffer, sHostName, nHostnameLen);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (nTemp > 0)
|
if (nTemp > 0)
|
||||||
{
|
{
|
||||||
hConnect = WinHttpConnect(hSession, wBuffer, nPort, 0);
|
hConnect = WinHttpConnect(hSession, wBuffer, nPort, 0);
|
||||||
|
@ -659,12 +685,14 @@ static const char* CCONV _RA_InstallIntegration()
|
||||||
_RA_InstallSharedFunctions = (void(CCONV*)(int(*)(), void(*)(), void(*)(), void(*)(), void(*)(char*), void(*)(), void(*)(const char*))) GetProcAddress(g_hRADLL, "_RA_InstallSharedFunctionsExt");
|
_RA_InstallSharedFunctions = (void(CCONV*)(int(*)(), void(*)(), void(*)(), void(*)(), void(*)(char*), void(*)(), void(*)(const char*))) GetProcAddress(g_hRADLL, "_RA_InstallSharedFunctionsExt");
|
||||||
_RA_SetForceRepaint = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_SetForceRepaint");
|
_RA_SetForceRepaint = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_SetForceRepaint");
|
||||||
_RA_CreatePopupMenu = (HMENU(CCONV*)(void)) GetProcAddress(g_hRADLL, "_RA_CreatePopupMenu");
|
_RA_CreatePopupMenu = (HMENU(CCONV*)(void)) GetProcAddress(g_hRADLL, "_RA_CreatePopupMenu");
|
||||||
|
_RA_GetPopupMenuItems = (int(CCONV*)(RA_MenuItem*)) GetProcAddress(g_hRADLL, "_RA_GetPopupMenuItems");
|
||||||
_RA_InvokeDialog = (void(CCONV*)(LPARAM)) GetProcAddress(g_hRADLL, "_RA_InvokeDialog");
|
_RA_InvokeDialog = (void(CCONV*)(LPARAM)) GetProcAddress(g_hRADLL, "_RA_InvokeDialog");
|
||||||
_RA_SetUserAgentDetail = (void(CCONV*)(const char*)) GetProcAddress(g_hRADLL, "_RA_SetUserAgentDetail");
|
_RA_SetUserAgentDetail = (void(CCONV*)(const char*)) GetProcAddress(g_hRADLL, "_RA_SetUserAgentDetail");
|
||||||
_RA_AttemptLogin = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_AttemptLogin");
|
_RA_AttemptLogin = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_AttemptLogin");
|
||||||
_RA_SetConsoleID = (int(CCONV*)(unsigned int)) GetProcAddress(g_hRADLL, "_RA_SetConsoleID");
|
_RA_SetConsoleID = (int(CCONV*)(unsigned int)) GetProcAddress(g_hRADLL, "_RA_SetConsoleID");
|
||||||
_RA_ClearMemoryBanks = (void(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_ClearMemoryBanks");
|
_RA_ClearMemoryBanks = (void(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_ClearMemoryBanks");
|
||||||
_RA_InstallMemoryBank = (void(CCONV*)(int, RA_ReadMemoryFunc*, RA_WriteMemoryFunc*, int)) GetProcAddress(g_hRADLL, "_RA_InstallMemoryBank");
|
_RA_InstallMemoryBank = (void(CCONV*)(int, RA_ReadMemoryFunc*, RA_WriteMemoryFunc*, int)) GetProcAddress(g_hRADLL, "_RA_InstallMemoryBank");
|
||||||
|
_RA_InstallMemoryBankBlockReader = (void(CCONV*)(int, RA_ReadMemoryBlockFunc*)) GetProcAddress(g_hRADLL, "_RA_InstallMemoryBankBlockReader");
|
||||||
_RA_Shutdown = (int(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_Shutdown");
|
_RA_Shutdown = (int(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_Shutdown");
|
||||||
_RA_IsOverlayFullyVisible = (int(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_IsOverlayFullyVisible");
|
_RA_IsOverlayFullyVisible = (int(CCONV*)()) GetProcAddress(g_hRADLL, "_RA_IsOverlayFullyVisible");
|
||||||
_RA_SetPaused = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_SetPaused");
|
_RA_SetPaused = (void(CCONV*)(int)) GetProcAddress(g_hRADLL, "_RA_SetPaused");
|
||||||
|
@ -983,12 +1011,14 @@ void RA_Shutdown()
|
||||||
_RA_InstallSharedFunctions = nullptr;
|
_RA_InstallSharedFunctions = nullptr;
|
||||||
_RA_SetForceRepaint = nullptr;
|
_RA_SetForceRepaint = nullptr;
|
||||||
_RA_CreatePopupMenu = nullptr;
|
_RA_CreatePopupMenu = nullptr;
|
||||||
|
_RA_GetPopupMenuItems = nullptr;
|
||||||
_RA_InvokeDialog = nullptr;
|
_RA_InvokeDialog = nullptr;
|
||||||
_RA_SetUserAgentDetail = nullptr;
|
_RA_SetUserAgentDetail = nullptr;
|
||||||
_RA_AttemptLogin = nullptr;
|
_RA_AttemptLogin = nullptr;
|
||||||
_RA_SetConsoleID = nullptr;
|
_RA_SetConsoleID = nullptr;
|
||||||
_RA_ClearMemoryBanks = nullptr;
|
_RA_ClearMemoryBanks = nullptr;
|
||||||
_RA_InstallMemoryBank = nullptr;
|
_RA_InstallMemoryBank = nullptr;
|
||||||
|
_RA_InstallMemoryBankBlockReader = nullptr;
|
||||||
_RA_Shutdown = nullptr;
|
_RA_Shutdown = nullptr;
|
||||||
_RA_IsOverlayFullyVisible = nullptr;
|
_RA_IsOverlayFullyVisible = nullptr;
|
||||||
_RA_SetPaused = nullptr;
|
_RA_SetPaused = nullptr;
|
||||||
|
|
|
@ -72,6 +72,21 @@ extern HMENU RA_CreatePopupMenu(void);
|
||||||
#define IDM_RA_MENUSTART 1700
|
#define IDM_RA_MENUSTART 1700
|
||||||
#define IDM_RA_MENUEND 1739
|
#define IDM_RA_MENUEND 1739
|
||||||
|
|
||||||
|
typedef struct RA_MenuItem
|
||||||
|
{
|
||||||
|
LPCWSTR sLabel;
|
||||||
|
LPARAM nID;
|
||||||
|
int bChecked;
|
||||||
|
} RA_MenuItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets items for building a popup menu.
|
||||||
|
*
|
||||||
|
* @param pItems Pre-allocated array to populate [should contain space for at least 32 items]
|
||||||
|
* @return Number of items populated in the items array
|
||||||
|
*/
|
||||||
|
extern int RA_GetPopupMenuItems(RA_MenuItem *pItems);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a menu item in the popup menu is selected.
|
* Called when a menu item in the popup menu is selected.
|
||||||
*
|
*
|
||||||
|
@ -127,6 +142,9 @@ typedef void (RA_WriteMemoryFunc)(unsigned int nAddress, unsigned char nValue);
|
||||||
*/
|
*/
|
||||||
extern void RA_InstallMemoryBank(int nBankID, RA_ReadMemoryFunc pReader, RA_WriteMemoryFunc pWriter, int nBankSize);
|
extern void RA_InstallMemoryBank(int nBankID, RA_ReadMemoryFunc pReader, RA_WriteMemoryFunc pWriter, int nBankSize);
|
||||||
|
|
||||||
|
typedef unsigned int (RA_ReadMemoryBlockFunc)(unsigned int nAddress, unsigned char* pBuffer, unsigned int nBytes);
|
||||||
|
extern void RA_InstallMemoryBankBlockReader(int nBankID, RA_ReadMemoryBlockFunc pReader);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deinitializes and unloads the DLL.
|
* Deinitializes and unloads the DLL.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue