Stub LibraryAppletPlayerSelect

This commit is contained in:
Billy Laws 2022-05-11 23:15:03 +01:00
parent 4ec1cc7086
commit a164635f32
4 changed files with 73 additions and 0 deletions

View File

@ -258,6 +258,7 @@ add_library(skyline SHARED
${source_DIR}/skyline/services/btm/IBtmUserCore.cpp ${source_DIR}/skyline/services/btm/IBtmUserCore.cpp
${source_DIR}/skyline/applet/applet_creator.cpp ${source_DIR}/skyline/applet/applet_creator.cpp
${source_DIR}/skyline/applet/controller_applet.cpp ${source_DIR}/skyline/applet/controller_applet.cpp
${source_DIR}/skyline/applet/player_select_applet.cpp
${source_DIR}/skyline/services/codec/IHardwareOpusDecoder.cpp ${source_DIR}/skyline/services/codec/IHardwareOpusDecoder.cpp
${source_DIR}/skyline/services/codec/IHardwareOpusDecoderManager.cpp ${source_DIR}/skyline/services/codec/IHardwareOpusDecoderManager.cpp
${source_DIR}/skyline/services/hid/IHidServer.cpp ${source_DIR}/skyline/services/hid/IHidServer.cpp

View File

@ -2,6 +2,7 @@
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/) // Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
#include "controller_applet.h" #include "controller_applet.h"
#include "player_select_applet.h"
#include "applet_creator.h" #include "applet_creator.h"
namespace skyline::applet { namespace skyline::applet {
@ -14,6 +15,8 @@ namespace skyline::applet {
switch (appletId) { switch (appletId) {
case AppletId::LibraryAppletController: case AppletId::LibraryAppletController:
return std::make_shared<ControllerApplet>(state, manager, std::move(onAppletStateChanged), std::move(onNormalDataPushFromApplet), std::move(onInteractiveDataPushFromApplet), appletMode); return std::make_shared<ControllerApplet>(state, manager, std::move(onAppletStateChanged), std::move(onNormalDataPushFromApplet), std::move(onInteractiveDataPushFromApplet), appletMode);
case AppletId::LibraryAppletPlayerSelect:
return std::make_shared<PlayerSelectApplet>(state, manager, std::move(onAppletStateChanged), std::move(onNormalDataPushFromApplet), std::move(onInteractiveDataPushFromApplet), appletMode);
default: default:
throw exception("Unimplemented Applet: 0x{:X} ({})", static_cast<u32>(appletId), ToString(appletId)); throw exception("Unimplemented Applet: 0x{:X} ({})", static_cast<u32>(appletId), ToString(appletId));
} }

View File

@ -0,0 +1,32 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
#include <services/am/storage/ObjIStorage.h>
#include "player_select_applet.h"
namespace skyline::applet {
PlayerSelectApplet::PlayerSelectApplet(const DeviceState &state,
service::ServiceManager &manager,
std::shared_ptr<kernel::type::KEvent> onAppletStateChanged,
std::shared_ptr<kernel::type::KEvent> onNormalDataPushFromApplet,
std::shared_ptr<kernel::type::KEvent> onInteractiveDataPushFromApplet,
service::applet::LibraryAppletMode appletMode)
: IApplet(state, manager, std::move(onAppletStateChanged), std::move(onNormalDataPushFromApplet), std::move(onInteractiveDataPushFromApplet), appletMode) {}
Result PlayerSelectApplet::Start() {
// Return default user
PushNormalDataAndSignal(std::make_shared<service::am::ObjIStorage<AccountResult>>(state, manager, AccountResult{}));
// Notify the guest that we've finished running
onAppletStateChanged->Signal();
return {};
};
Result PlayerSelectApplet::GetResult() {
return {};
}
void PlayerSelectApplet::PushNormalDataToApplet(std::shared_ptr<service::am::IStorage> data) {}
void PlayerSelectApplet::PushInteractiveDataToApplet(std::shared_ptr<service::am::IStorage> data) {}
}

View File

@ -0,0 +1,37 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
#pragma once
#include <common/uuid.h>
#include <services/account/IAccountServiceForApplication.h>
#include <services/am/applet/IApplet.h>
namespace skyline::applet {
/**
* @brief The player select applet is responsible for allowing the user to select a player to use with the application
*/
class PlayerSelectApplet : public service::am::IApplet {
private:
/**
* @brief Result structure for the player select applet
*/
struct AccountResult {
Result result{};
u32 _pad_;
service::account::UserId accountId{constant::DefaultUserId};
};
static_assert(sizeof(AccountResult) == 0x18);
public:
PlayerSelectApplet(const DeviceState &state, service::ServiceManager &manager, std::shared_ptr<kernel::type::KEvent> onAppletStateChanged, std::shared_ptr<kernel::type::KEvent> onNormalDataPushFromApplet, std::shared_ptr<kernel::type::KEvent> onInteractiveDataPushFromApplet, service::applet::LibraryAppletMode appletMode);
Result Start() override;
Result GetResult() override;
void PushNormalDataToApplet(std::shared_ptr<service::am::IStorage> data) override;
void PushInteractiveDataToApplet(std::shared_ptr<service::am::IStorage> data) override;
};
}