|
|
|
@ -12,8 +12,10 @@ namespace Service::AM {
|
|
|
|
|
|
|
|
|
|
class ILibraryAppletProxy final : public ServiceFramework<ILibraryAppletProxy> {
|
|
|
|
|
public:
|
|
|
|
|
explicit ILibraryAppletProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
|
|
|
|
|
: ServiceFramework("ILibraryAppletProxy"), nvflinger(std::move(nvflinger)) {
|
|
|
|
|
explicit ILibraryAppletProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger,
|
|
|
|
|
std::shared_ptr<AppletMessageQueue> msg_queue)
|
|
|
|
|
: ServiceFramework("ILibraryAppletProxy"), nvflinger(std::move(nvflinger)),
|
|
|
|
|
msg_queue(std::move(msg_queue)) {
|
|
|
|
|
static const FunctionInfo functions[] = {
|
|
|
|
|
{0, &ILibraryAppletProxy::GetCommonStateGetter, "GetCommonStateGetter"},
|
|
|
|
|
{1, &ILibraryAppletProxy::GetSelfController, "GetSelfController"},
|
|
|
|
@ -32,7 +34,7 @@ private:
|
|
|
|
|
void GetCommonStateGetter(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushIpcInterface<ICommonStateGetter>();
|
|
|
|
|
rb.PushIpcInterface<ICommonStateGetter>(msg_queue);
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -93,12 +95,15 @@ private:
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
|
|
|
|
|
std::shared_ptr<AppletMessageQueue> msg_queue;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ISystemAppletProxy final : public ServiceFramework<ISystemAppletProxy> {
|
|
|
|
|
public:
|
|
|
|
|
explicit ISystemAppletProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
|
|
|
|
|
: ServiceFramework("ISystemAppletProxy"), nvflinger(std::move(nvflinger)) {
|
|
|
|
|
explicit ISystemAppletProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger,
|
|
|
|
|
std::shared_ptr<AppletMessageQueue> msg_queue)
|
|
|
|
|
: ServiceFramework("ISystemAppletProxy"), nvflinger(std::move(nvflinger)),
|
|
|
|
|
msg_queue(std::move(msg_queue)) {
|
|
|
|
|
static const FunctionInfo functions[] = {
|
|
|
|
|
{0, &ISystemAppletProxy::GetCommonStateGetter, "GetCommonStateGetter"},
|
|
|
|
|
{1, &ISystemAppletProxy::GetSelfController, "GetSelfController"},
|
|
|
|
@ -119,7 +124,7 @@ private:
|
|
|
|
|
void GetCommonStateGetter(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushIpcInterface<ICommonStateGetter>();
|
|
|
|
|
rb.PushIpcInterface<ICommonStateGetter>(msg_queue);
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -186,31 +191,34 @@ private:
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
|
|
|
|
|
std::shared_ptr<AppletMessageQueue> msg_queue;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void AppletAE::OpenSystemAppletProxy(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushIpcInterface<ISystemAppletProxy>(nvflinger);
|
|
|
|
|
rb.PushIpcInterface<ISystemAppletProxy>(nvflinger, msg_queue);
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void AppletAE::OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger);
|
|
|
|
|
rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger, msg_queue);
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
|
|
rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger);
|
|
|
|
|
rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger, msg_queue);
|
|
|
|
|
LOG_DEBUG(Service_AM, "called");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
|
|
|
|
|
: ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) {
|
|
|
|
|
AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger,
|
|
|
|
|
std::shared_ptr<AppletMessageQueue> msg_queue)
|
|
|
|
|
: ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)),
|
|
|
|
|
msg_queue(std::move(msg_queue)) {
|
|
|
|
|
// clang-format off
|
|
|
|
|
static const FunctionInfo functions[] = {
|
|
|
|
|
{100, &AppletAE::OpenSystemAppletProxy, "OpenSystemAppletProxy"},
|
|
|
|
@ -228,4 +236,8 @@ AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
|
|
|
|
|
|
|
|
|
|
AppletAE::~AppletAE() = default;
|
|
|
|
|
|
|
|
|
|
const std::shared_ptr<AppletMessageQueue>& AppletAE::GetMessageQueue() const {
|
|
|
|
|
return msg_queue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Service::AM
|
|
|
|
|