mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-29 15:55:29 +03:00
Stub nim services used for eShop communication
We obviously don't need to implement these so add a simple set of stubs to satify games using them (mainly demos such as DQXII)
This commit is contained in:
parent
ff12dc9c10
commit
22695c4feb
@ -322,6 +322,10 @@ add_library(skyline SHARED
|
|||||||
${source_DIR}/skyline/services/nifm/IGeneralService.cpp
|
${source_DIR}/skyline/services/nifm/IGeneralService.cpp
|
||||||
${source_DIR}/skyline/services/nifm/IScanRequest.cpp
|
${source_DIR}/skyline/services/nifm/IScanRequest.cpp
|
||||||
${source_DIR}/skyline/services/nifm/IRequest.cpp
|
${source_DIR}/skyline/services/nifm/IRequest.cpp
|
||||||
|
${source_DIR}/skyline/services/nim/IShopServiceAccessor.cpp
|
||||||
|
${source_DIR}/skyline/services/nim/IShopServiceAccessServer.cpp
|
||||||
|
${source_DIR}/skyline/services/nim/IShopServiceAccessServerInterface.cpp
|
||||||
|
${source_DIR}/skyline/services/nim/IShopServiceAsync.cpp
|
||||||
${source_DIR}/skyline/services/socket/bsd/IClient.cpp
|
${source_DIR}/skyline/services/socket/bsd/IClient.cpp
|
||||||
${source_DIR}/skyline/services/spl/IRandomInterface.cpp
|
${source_DIR}/skyline/services/spl/IRandomInterface.cpp
|
||||||
${source_DIR}/skyline/services/ssl/ISslService.cpp
|
${source_DIR}/skyline/services/ssl/ISslService.cpp
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#include "IShopServiceAccessor.h"
|
||||||
|
#include "IShopServiceAccessServer.h"
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
IShopServiceAccessServer::IShopServiceAccessServer(const DeviceState &state, ServiceManager &manager) : BaseService(state, manager) {}
|
||||||
|
|
||||||
|
Result IShopServiceAccessServer::CreateAccessorInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||||
|
manager.RegisterService(SRVREG(IShopServiceAccessor), session, response);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <services/base_service.h>
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
/**
|
||||||
|
* @brief IShopServiceAccessServer is used by applications to interface with the Nintendo eShop
|
||||||
|
* @url https://switchbrew.org/wiki/NIM_services#IShopServiceAccessServer
|
||||||
|
*/
|
||||||
|
class IShopServiceAccessServer : public BaseService {
|
||||||
|
public:
|
||||||
|
IShopServiceAccessServer(const DeviceState &state, ServiceManager &manager);
|
||||||
|
|
||||||
|
Result CreateAccessorInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||||
|
|
||||||
|
SERVICE_DECL(
|
||||||
|
SFUNC(0x0, IShopServiceAccessServer, CreateAccessorInterface),
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#include "IShopServiceAccessServer.h"
|
||||||
|
#include "IShopServiceAccessServerInterface.h"
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
IShopServiceAccessServerInterface::IShopServiceAccessServerInterface(const DeviceState &state, ServiceManager &manager) : BaseService(state, manager) {}
|
||||||
|
|
||||||
|
Result IShopServiceAccessServerInterface::CreateServerInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||||
|
manager.RegisterService(SRVREG(IShopServiceAccessServer), session, response);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <services/serviceman.h>
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
/**
|
||||||
|
* @brief IShopServiceAccessServerInterface or nim:eca is used by applications to open a channel to communicate with the Nintendo eShop
|
||||||
|
* @url https://switchbrew.org/wiki/NIM_services#nim:eca
|
||||||
|
*/
|
||||||
|
class IShopServiceAccessServerInterface : public BaseService {
|
||||||
|
public:
|
||||||
|
IShopServiceAccessServerInterface(const DeviceState &state, ServiceManager &manager);
|
||||||
|
|
||||||
|
Result CreateServerInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||||
|
|
||||||
|
SERVICE_DECL(
|
||||||
|
SFUNC(0x0, IShopServiceAccessServerInterface, CreateServerInterface)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#include "IShopServiceAsync.h"
|
||||||
|
#include "IShopServiceAccessor.h"
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
IShopServiceAccessor::IShopServiceAccessor(const DeviceState &state, ServiceManager &manager) : BaseService(state, manager) {}
|
||||||
|
|
||||||
|
Result IShopServiceAccessor::CreateAsyncInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||||
|
manager.RegisterService(SRVREG(IShopServiceAsync), session, response);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
23
app/src/main/cpp/skyline/services/nim/IShopServiceAccessor.h
Normal file
23
app/src/main/cpp/skyline/services/nim/IShopServiceAccessor.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <services/serviceman.h>
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
/**
|
||||||
|
* @brief IShopServiceAccessor is used by applications to communicate with the Nintendo eShop
|
||||||
|
* @url https://switchbrew.org/wiki/NIM_services#IShopServiceAccessor
|
||||||
|
*/
|
||||||
|
class IShopServiceAccessor : public BaseService {
|
||||||
|
public:
|
||||||
|
IShopServiceAccessor(const DeviceState &state, ServiceManager &manager);
|
||||||
|
|
||||||
|
Result CreateAsyncInterface(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||||
|
|
||||||
|
SERVICE_DECL(
|
||||||
|
SFUNC(0x0, IShopServiceAccessor, CreateAsyncInterface)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#include "IShopServiceAsync.h"
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
IShopServiceAsync::IShopServiceAsync(const DeviceState &state, ServiceManager &manager) : BaseService(state, manager) {}
|
||||||
|
}
|
17
app/src/main/cpp/skyline/services/nim/IShopServiceAsync.h
Normal file
17
app/src/main/cpp/skyline/services/nim/IShopServiceAsync.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
|
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <services/serviceman.h>
|
||||||
|
|
||||||
|
namespace skyline::service::nim {
|
||||||
|
/**
|
||||||
|
* @brief IShopServiceAsync is used by applications to directly communicate with the Nintendo eShop
|
||||||
|
* @url https://switchbrew.org/wiki/NIM_services#IShopServiceAsync
|
||||||
|
*/
|
||||||
|
class IShopServiceAsync : public BaseService {
|
||||||
|
public:
|
||||||
|
IShopServiceAsync(const DeviceState &state, ServiceManager &manager);
|
||||||
|
};
|
||||||
|
}
|
@ -37,6 +37,7 @@
|
|||||||
#include "friends/IServiceCreator.h"
|
#include "friends/IServiceCreator.h"
|
||||||
#include "nfp/IUserManager.h"
|
#include "nfp/IUserManager.h"
|
||||||
#include "nifm/IStaticService.h"
|
#include "nifm/IStaticService.h"
|
||||||
|
#include "nim/IShopServiceAccessServerInterface.h"
|
||||||
#include "socket/bsd/IClient.h"
|
#include "socket/bsd/IClient.h"
|
||||||
#include "spl/IRandomInterface.h"
|
#include "spl/IRandomInterface.h"
|
||||||
#include "ssl/ISslService.h"
|
#include "ssl/ISslService.h"
|
||||||
@ -115,6 +116,7 @@ namespace skyline::service {
|
|||||||
SERVICE_CASE(bcat::IServiceCreator, "bcat:u")
|
SERVICE_CASE(bcat::IServiceCreator, "bcat:u")
|
||||||
SERVICE_CASE(bt::IBluetoothUser, "bt")
|
SERVICE_CASE(bt::IBluetoothUser, "bt")
|
||||||
SERVICE_CASE(btm::IBtmUser, "btm:u")
|
SERVICE_CASE(btm::IBtmUser, "btm:u")
|
||||||
|
SERVICE_CASE(nim::IShopServiceAccessServerInterface, "nim:eca")
|
||||||
default:
|
default:
|
||||||
std::string_view nameString(span(reinterpret_cast<char *>(&name), sizeof(name)).as_string(true));
|
std::string_view nameString(span(reinterpret_cast<char *>(&name), sizeof(name)).as_string(true));
|
||||||
throw std::out_of_range(fmt::format("CreateService called with an unknown service name: {}", nameString));
|
throw std::out_of_range(fmt::format("CreateService called with an unknown service name: {}", nameString));
|
||||||
|
Loading…
Reference in New Issue
Block a user