summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/glue/notif.h
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2022-05-07 22:28:51 +0200
committerNarr the Reg <juangerman-13@hotmail.com>2022-05-09 17:28:04 +0200
commitcc6a4bedfc01ef251cf9caf362997a1821fd1ffa (patch)
tree10fa1408c999dcc9bd5da6ed64a15712440438bc /src/core/hle/service/glue/notif.h
parentMerge pull request #8300 from Morph1984/resultval-range (diff)
downloadyuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar.gz
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar.bz2
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar.lz
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar.xz
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.tar.zst
yuzu-cc6a4bedfc01ef251cf9caf362997a1821fd1ffa.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/glue/notif.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/core/hle/service/glue/notif.h b/src/core/hle/service/glue/notif.h
index 7310d7f72..4467e1f35 100644
--- a/src/core/hle/service/glue/notif.h
+++ b/src/core/hle/service/glue/notif.h
@@ -3,6 +3,10 @@
#pragma once
+#include <array>
+#include <vector>
+
+#include "common/uuid.h"
#include "core/hle/service/service.h"
namespace Core {
@@ -17,8 +21,52 @@ public:
~NOTIF_A() override;
private:
+ static constexpr std::size_t max_alarms = 8;
+
+ // This is nn::notification::AlarmSettingId
+ using AlarmSettingId = u16;
+ static_assert(sizeof(AlarmSettingId) == 0x2, "AlarmSettingId is an invalid size");
+
+ using ApplicationParameter = std::array<u8, 0x400>;
+ static_assert(sizeof(ApplicationParameter) == 0x400, "ApplicationParameter is an invalid size");
+
+ struct DailyAlarmSetting {
+ s8 hour;
+ s8 minute;
+ };
+ static_assert(sizeof(DailyAlarmSetting) == 0x2, "DailyAlarmSetting is an invalid size");
+
+ struct WeeklyScheduleAlarmSetting {
+ INSERT_PADDING_BYTES(0xA);
+ std::array<DailyAlarmSetting, 0x7> day_of_week;
+ };
+ static_assert(sizeof(WeeklyScheduleAlarmSetting) == 0x18,
+ "WeeklyScheduleAlarmSetting is an invalid size");
+
+ // This is nn::notification::AlarmSetting
+ struct AlarmSetting {
+ AlarmSettingId alarm_setting_id;
+ u8 kind;
+ u8 muted;
+ INSERT_PADDING_BYTES(0x4);
+ Common::UUID account_id;
+ u64 application_id;
+ INSERT_PADDING_BYTES(0x8);
+ WeeklyScheduleAlarmSetting schedule;
+ };
+ static_assert(sizeof(AlarmSetting) == 0x40, "AlarmSetting is an invalid size");
+
+ void RegisterAlarmSetting(Kernel::HLERequestContext& ctx);
+ void UpdateAlarmSetting(Kernel::HLERequestContext& ctx);
void ListAlarmSettings(Kernel::HLERequestContext& ctx);
+ void LoadApplicationParameter(Kernel::HLERequestContext& ctx);
+ void DeleteAlarmSetting(Kernel::HLERequestContext& ctx);
void Initialize(Kernel::HLERequestContext& ctx);
+
+ std::vector<AlarmSetting>::iterator GetAlarmFromId(AlarmSettingId alarm_setting_id);
+
+ std::vector<AlarmSetting> alarms{};
+ AlarmSettingId last_alarm_setting_id{};
};
} // namespace Service::Glue