2019-05-18 03:10:09 +00:00
|
|
|
#include <windows.h>
|
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
|
|
#include "platform/amvideo.h"
|
2019-10-15 03:18:18 +00:00
|
|
|
#include "platform/clock.h"
|
2019-05-18 03:10:09 +00:00
|
|
|
#include "platform/config.h"
|
2019-09-04 17:43:47 +00:00
|
|
|
#include "platform/dns.h"
|
2019-05-18 03:10:09 +00:00
|
|
|
#include "platform/hwmon.h"
|
2019-05-18 03:14:08 +00:00
|
|
|
#include "platform/misc.h"
|
2019-11-02 17:28:55 +00:00
|
|
|
#include "platform/netenv.h"
|
2019-05-18 03:10:09 +00:00
|
|
|
#include "platform/nusec.h"
|
2019-08-30 22:46:57 +00:00
|
|
|
#include "platform/pcbid.h"
|
2019-05-18 03:10:09 +00:00
|
|
|
#include "platform/platform.h"
|
2019-05-18 03:11:51 +00:00
|
|
|
#include "platform/vfs.h"
|
2019-05-18 03:10:09 +00:00
|
|
|
|
2019-08-30 22:46:57 +00:00
|
|
|
HRESULT platform_hook_init_alls(
|
|
|
|
const struct alls_config *cfg,
|
|
|
|
const char *game_id,
|
|
|
|
const char *platform_id,
|
|
|
|
HMODULE redir_mod)
|
|
|
|
{
|
|
|
|
HRESULT hr;
|
|
|
|
|
|
|
|
assert(cfg != NULL);
|
|
|
|
assert(game_id != NULL);
|
|
|
|
assert(platform_id != NULL);
|
|
|
|
assert(redir_mod != NULL);
|
|
|
|
|
|
|
|
hr = amvideo_hook_init(&cfg->amvideo, redir_mod);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-10-15 03:18:18 +00:00
|
|
|
hr = clock_hook_init(&cfg->clock);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-09-04 17:43:47 +00:00
|
|
|
hr = dns_platform_hook_init(&cfg->dns);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-08-30 22:46:57 +00:00
|
|
|
hr = hwmon_hook_init(&cfg->hwmon);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
|
|
|
hr = misc_hook_init(&cfg->misc, platform_id);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-11-02 17:28:55 +00:00
|
|
|
hr = netenv_hook_init(&cfg->netenv, &cfg->nusec);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-08-30 22:46:57 +00:00
|
|
|
hr = nusec_hook_init(&cfg->nusec, game_id, platform_id);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
|
|
|
pcbid_hook_init(&cfg->pcbid);
|
|
|
|
|
|
|
|
hr = vfs_hook_init(&cfg->vfs);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
|
|
|
return S_OK;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:10:09 +00:00
|
|
|
HRESULT platform_hook_init_nu(
|
|
|
|
const struct nu_config *cfg,
|
|
|
|
const char *game_id,
|
|
|
|
const char *platform_id,
|
|
|
|
HMODULE redir_mod)
|
|
|
|
{
|
|
|
|
HRESULT hr;
|
|
|
|
|
|
|
|
assert(cfg != NULL);
|
|
|
|
assert(game_id != NULL);
|
|
|
|
assert(platform_id != NULL);
|
|
|
|
assert(redir_mod != NULL);
|
|
|
|
|
|
|
|
hr = amvideo_hook_init(&cfg->amvideo, redir_mod);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-10-15 03:18:18 +00:00
|
|
|
hr = clock_hook_init(&cfg->clock);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-09-04 17:43:47 +00:00
|
|
|
hr = dns_platform_hook_init(&cfg->dns);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:10:09 +00:00
|
|
|
hr = hwmon_hook_init(&cfg->hwmon);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:14:08 +00:00
|
|
|
hr = misc_hook_init(&cfg->misc, platform_id);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-11-02 17:28:55 +00:00
|
|
|
hr = netenv_hook_init(&cfg->netenv, &cfg->nusec);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:10:09 +00:00
|
|
|
hr = nusec_hook_init(&cfg->nusec, game_id, platform_id);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:11:51 +00:00
|
|
|
hr = vfs_hook_init(&cfg->vfs);
|
|
|
|
|
|
|
|
if (FAILED(hr)) {
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
|
2019-05-18 03:10:09 +00:00
|
|
|
return S_OK;
|
|
|
|
}
|