1/**
2 * @file oe.h
3 * @brief Extenstions to OS functions.
4 */
5
6#pragma once
7
8#include <nn/album/album_types.h>
9#include <nn/settings.h>
10#include <nn/types.h>
11
12namespace nn::oe {
13
14enum OperationMode {
15 OperationMode_Handheld,
16 OperationMode_Docked,
17};
18
19enum PerformanceMode {
20 PerformanceMode_Normal = 0,
21 PerformanceMode_Boost = 1,
22 PerformanceMode_Invalid = -1,
23};
24
25enum FocusHandlingMode {
26 FocusHandlingMode_SuspendHomeSleep,
27 FocusHandlingMode_NoSuspend,
28 FocusHandlingMode_SuspendHomeSleepNotify,
29 FocusHandlingMode_AlwaysSuspend
30};
31
32enum FocusState {
33 FocusState_InFocus = 1,
34 FocusState_OutOfFocus = 2,
35 FocusState_Background = 3,
36};
37
38struct DisplayVersion {
39 char name[16];
40};
41
42typedef s32 PerformanceConfiguration;
43
44void Initialize();
45void FinishStartupLogo();
46void EnableGamePlayRecording(void*, u64);
47void SetExpectedVolumeBalance(f32, f32);
48void SetPerformanceConfiguration(nn::oe::PerformanceMode, nn::oe::PerformanceConfiguration);
49void SetResumeNotificationEnabled(bool);
50void SetOperationModeChangedNotificationEnabled(bool);
51void SetPerformanceModeChangedNotificationEnabled(bool);
52void SetFocusHandlingMode(nn::oe::FocusHandlingMode);
53void setScreenShotImageOrientation(nn::album::ImageOrientation);
54void SetUserInactivityDetectionTimeExtended(bool);
55bool IsUserInactivityDetectionTimeExtended();
56bool TryPopNotificationMessage(u32*);
57bool TryPopLaunchParameter(size_t*, void*, size_t);
58void GetExpectedVolumeBalance(f32*, f32*);
59void GetDisplayVersion(DisplayVersion*);
60FocusState GetCurrentFocusState();
61OperationMode GetOperationMode();
62PerformanceMode GetPerformanceMode();
63nn::settings::LanguageCode GetDesiredLanguage();
64
65} // namespace nn::oe
66