hle: service: ldn: IUserLocalCommunicationService: Improve the stub.

This commit is contained in:
bunnei 2021-02-13 21:45:09 -08:00
parent 51c13606d6
commit d9a8060ce3

View File

@ -104,7 +104,7 @@ public:
: ServiceFramework{system_, "IUserLocalCommunicationService"} { : ServiceFramework{system_, "IUserLocalCommunicationService"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetState"}, {0, &IUserLocalCommunicationService::GetState, "GetState"},
{1, nullptr, "GetNetworkInfo"}, {1, nullptr, "GetNetworkInfo"},
{2, nullptr, "GetIpv4Address"}, {2, nullptr, "GetIpv4Address"},
{3, nullptr, "GetDisconnectReason"}, {3, nullptr, "GetDisconnectReason"},
@ -139,14 +139,38 @@ public:
RegisterHandlers(functions); RegisterHandlers(functions);
} }
void Initialize2(Kernel::HLERequestContext& ctx) { void GetState(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_LDN, "(STUBBED) called"); LOG_WARNING(Service_LDN, "(STUBBED) called");
// Return the disabled error to indicate that LDN is currently unavailable, otherwise games IPC::ResponseBuilder rb{ctx, 3};
// will continue to try to make a connection.
IPC::ResponseBuilder rb{ctx, 2}; // Indicate a network error, as we do not actually emulate LDN
rb.Push(ERROR_DISABLED); rb.Push(static_cast<u32>(State::Error));
rb.Push(RESULT_SUCCESS);
} }
void Initialize2(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_LDN, "called");
is_initialized = true;
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS);
}
private:
enum class State {
None,
Initialized,
AccessPointOpened,
AccessPointCreated,
StationOpened,
StationConnected,
Error,
};
bool is_initialized{};
}; };
class LDNS final : public ServiceFramework<LDNS> { class LDNS final : public ServiceFramework<LDNS> {