diff options
| author | german77 <juangerman-13@hotmail.com> | 2021-12-05 22:55:23 -0600 | 
|---|---|---|
| committer | Narr the Reg <juangerman-13@hotmail.com> | 2021-12-06 10:36:37 -0600 | 
| commit | ac1bfe228f688bb8eef38bdaf26011008891afdf (patch) | |
| tree | 210c2aa10c1adda5432154238dc23aa18033f7da | |
| parent | fae07919af1421c0fd6ea0c41853d2b20a2a389b (diff) | |
service/notif: Add notif:a and stub ListAlarmSettings,Initialize
Used by ring fit adventure 1.2.0
| -rw-r--r-- | src/common/logging/filter.cpp | 1 | ||||
| -rw-r--r-- | src/common/logging/types.h | 1 | ||||
| -rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/hle/service/glue/glue.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/glue/notif.cpp | 44 | ||||
| -rw-r--r-- | src/core/hle/service/glue/notif.h | 25 | 
6 files changed, 77 insertions, 0 deletions
| diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp index 42744c994..b898a652c 100644 --- a/src/common/logging/filter.cpp +++ b/src/common/logging/filter.cpp @@ -114,6 +114,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {      SUB(Service, NGCT)                                                                             \      SUB(Service, NIFM)                                                                             \      SUB(Service, NIM)                                                                              \ +    SUB(Service, NOTIF)                                                                            \      SUB(Service, NPNS)                                                                             \      SUB(Service, NS)                                                                               \      SUB(Service, NVDRV)                                                                            \ diff --git a/src/common/logging/types.h b/src/common/logging/types.h index 2d21fc483..9ed0c7ad6 100644 --- a/src/common/logging/types.h +++ b/src/common/logging/types.h @@ -82,6 +82,7 @@ enum class Class : u8 {      Service_NGCT,      ///< The NGCT (No Good Content for Terra) service      Service_NIFM,      ///< The NIFM (Network interface) service      Service_NIM,       ///< The NIM service +    Service_NOTIF,     ///< The NOTIF (Notification) service      Service_NPNS,      ///< The NPNS service      Service_NS,        ///< The NS services      Service_NVDRV,     ///< The NVDRV (Nvidia driver) service diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index eee8e2ccd..721685bb7 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -408,6 +408,8 @@ add_library(core STATIC      hle/service/glue/glue.h      hle/service/glue/glue_manager.cpp      hle/service/glue/glue_manager.h +    hle/service/glue/notif.cpp +    hle/service/glue/notif.h      hle/service/grc/grc.cpp      hle/service/grc/grc.h      hle/service/hid/hid.cpp diff --git a/src/core/hle/service/glue/glue.cpp b/src/core/hle/service/glue/glue.cpp index a08dc9758..b24d469cf 100644 --- a/src/core/hle/service/glue/glue.cpp +++ b/src/core/hle/service/glue/glue.cpp @@ -8,6 +8,7 @@  #include "core/hle/service/glue/bgtc.h"  #include "core/hle/service/glue/ectx.h"  #include "core/hle/service/glue/glue.h" +#include "core/hle/service/glue/notif.h"  namespace Service::Glue { @@ -24,6 +25,9 @@ void InstallInterfaces(Core::System& system) {      // Error Context      std::make_shared<ECTX_AW>(system)->InstallAsService(system.ServiceManager()); + +    // Notification Services for application +    std::make_shared<NOTIF_A>(system)->InstallAsService(system.ServiceManager());  }  } // namespace Service::Glue diff --git a/src/core/hle/service/glue/notif.cpp b/src/core/hle/service/glue/notif.cpp new file mode 100644 index 000000000..c559ec9df --- /dev/null +++ b/src/core/hle/service/glue/notif.cpp @@ -0,0 +1,44 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/glue/notif.h" + +namespace Service::Glue { + +NOTIF_A::NOTIF_A(Core::System& system_) : ServiceFramework{system_, "notif:a"} { +    // clang-format off +    static const FunctionInfo functions[] = { +        {500, nullptr, "RegisterAlarmSetting"}, +        {510, nullptr, "UpdateAlarmSetting"}, +        {520, &NOTIF_A::ListAlarmSettings, "ListAlarmSettings"}, +        {530, nullptr, "LoadApplicationParameter"}, +        {540, nullptr, "DeleteAlarmSetting"}, +        {1000, &NOTIF_A::Initialize, "Initialize"}, +    }; +    // clang-format on + +    RegisterHandlers(functions); +} + +NOTIF_A::~NOTIF_A() = default; + +void NOTIF_A::ListAlarmSettings(Kernel::HLERequestContext& ctx) { +    // Returns an array of AlarmSetting +    constexpr s32 alarm_count = 0; + +    LOG_WARNING(Service_NOTIF, "(STUBBED) called"); + +    IPC::ResponseBuilder rb{ctx, 3}; +    rb.Push(ResultSuccess); +    rb.Push(alarm_count); +} + +void NOTIF_A::Initialize(Kernel::HLERequestContext& ctx) { +    LOG_WARNING(Service_NOTIF, "(STUBBED) called"); +    IPC::ResponseBuilder rb{ctx, 2}; +    rb.Push(ResultSuccess); +} + +} // namespace Service::Glue diff --git a/src/core/hle/service/glue/notif.h b/src/core/hle/service/glue/notif.h new file mode 100644 index 000000000..6ecf2015c --- /dev/null +++ b/src/core/hle/service/glue/notif.h @@ -0,0 +1,25 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/hle/service/service.h" + +namespace Core { +class System; +} + +namespace Service::Glue { + +class NOTIF_A final : public ServiceFramework<NOTIF_A> { +public: +    explicit NOTIF_A(Core::System& system_); +    ~NOTIF_A() override; + +private: +    void ListAlarmSettings(Kernel::HLERequestContext& ctx); +    void Initialize(Kernel::HLERequestContext& ctx); +}; + +} // namespace Service::Glue | 
