Glue services: Difference between revisions
No edit summary |
|||
(10 intermediate revisions by 2 users not shown) | |||
Line 94: | Line 94: | ||
|- | |- | ||
| 3 || [15.0.0+] [[#AcquireApplicationCertificateUpdater|AcquireApplicationCertificateUpdater]] | | 3 || [15.0.0+] [[#AcquireApplicationCertificateUpdater|AcquireApplicationCertificateUpdater]] | ||
|- | |||
| 4 || [19.0.0+] [[#RegisterApplicationControlProperty|RegisterApplicationControlProperty]] | |||
|} | |} | ||
Line 110: | Line 112: | ||
== AcquireApplicationCertificateUpdater == | == AcquireApplicationCertificateUpdater == | ||
Takes an input [[#ApplicationInstanceId]]. Returns an [[#IUpdater]]. | Takes an input [[#ApplicationInstanceId]]. Returns an [[#IUpdater]]. | ||
== RegisterApplicationControlProperty == | |||
Takes a type-0x15 input buffer containing an [[NACP|ApplicationControlProperty]] and an input [[#ApplicationInstanceId]]. No output. | |||
== IRegistrar == | == IRegistrar == | ||
Line 122: | Line 127: | ||
| 1 || [[#SetApplicationLaunchProperty|SetApplicationLaunchProperty]] | | 1 || [[#SetApplicationLaunchProperty|SetApplicationLaunchProperty]] | ||
|- | |- | ||
| 2 || [[#SetApplicationControlProperty|SetApplicationControlProperty]] | | 2 || [1.0.0-18.1.0] [[#SetApplicationControlProperty|SetApplicationControlProperty]] | ||
|} | |} | ||
Line 171: | Line 176: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 100 || [[# | | 100 || [[#CreateTaskService]] | ||
|} | |} | ||
== | == CreateTaskService == | ||
No input. Returns an [[#ITaskService]]. | No input. Returns an [[#ITaskService]]. | ||
Line 206: | Line 211: | ||
| 15 || SchedulePeriodicTask | | 15 || SchedulePeriodicTask | ||
|- | |- | ||
| 16 || [9.0.0+] | | 16 || [9.0.0+] ScheduleStrictTask | ||
|- | |- | ||
| 101 || [3.0.0+] GetOperationMode | | 101 || [3.0.0+] GetOperationMode | ||
Line 214: | Line 219: | ||
| 103 || [3.0.0+] WillStayHalfAwakeInsteadSleep | | 103 || [3.0.0+] WillStayHalfAwakeInsteadSleep | ||
|- | |- | ||
| 200 || [12.0.0+] | | 200 || [12.0.0+] EnableStayHalfAwake | ||
|} | |} | ||
Line 289: | Line 294: | ||
|- | |- | ||
| 501 || [4.0.0+] CalculateSpanBetween || | | 501 || [4.0.0+] CalculateSpanBetween || | ||
|- | |||
| 600 || [19.0.0+] GetInitialLaunchEndTime || | |||
|} | |} | ||
Line 578: | Line 585: | ||
| 540 || [[#DeleteAlarmSetting]] | | 540 || [[#DeleteAlarmSetting]] | ||
|- | |- | ||
| 1000 || | | 1000 || [[#GetNotificationCount]] | ||
|- | |- | ||
| 1010 || | | 1010 || ListNotifications | ||
|- | |- | ||
| 1020 || | | 1020 || DeleteNotification | ||
|- | |- | ||
| 1030 || | | 1030 || ClearNotifications | ||
|- | |- | ||
| 1040 || [[# | | 1040 || [[#GetNotificationSendingNotifier]] | ||
|- | |- | ||
| 1500 || | | 1500 || SetNotificationPresentationSetting | ||
|- | |- | ||
| 1510 || | | 1510 || GetNotificationPresentationSetting | ||
|- | |- | ||
| 2000 || [[#GetAlarmSetting]] | | 2000 || [[#GetAlarmSetting]] | ||
|- | |- | ||
| 2001 || | | 2001 || GetAlarmSettingWithApplicationParameter | ||
|- | |||
| 2010 || [[#SetAlarmSettingIsMuted]] | |||
|- | |||
| 2020 || [[#IsAlarmSettingDeletable]] | |||
|- | |- | ||
| | | 3000 || [20.0.0+] | ||
|- | |- | ||
| | | 3010 || [20.0.0+] | ||
|- | |- | ||
| 8000 || | | 8000 || RegisterAppletResourceUserId | ||
|- | |- | ||
| 8010 || | | 8010 || UnregisterAppletResourceUserId | ||
|- | |- | ||
| 8999 || [10.0.0+] | | 8999 || [10.0.0+] GetCurrentTime | ||
|- | |- | ||
| 9000 || [[# | | 9000 || [[#GetAlarmSettingNextNotificationTime]] | ||
|} | |} | ||
== | == GetNotificationCount == | ||
No input | No input. Returns a total of 4-bytes of output. | ||
== | == GetNotificationSendingNotifier == | ||
No input. Returns an output [[#INotificationSystemEventAccessor]]. | |||
No input | |||
== INotificationSystemEventAccessor == | == INotificationSystemEventAccessor == | ||
Line 637: | Line 635: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || GetSystemEvent | ||
|} | |} | ||
== GetAlarmSetting == | == GetAlarmSetting == | ||
Takes an input [[#AlarmSettingId]]. Returns an [[#AlarmSetting]]. | Takes an input [[#AlarmSettingId]]. Returns an [[#AlarmSetting]]. | ||
== | == SetAlarmSettingIsMuted == | ||
Takes an input [[#AlarmSettingId]] and a bool. No output. | |||
Takes an input [[#AlarmSettingId]] and a bool. | |||
== IsAlarmSettingDeletable == | |||
Takes an input [[#AlarmSettingId]]. Returns a bool. | Takes an input [[#AlarmSettingId]]. Returns a bool. | ||
== | == GetAlarmSettingNextNotificationTime == | ||
Takes an input [[#AlarmSettingId]]. Returns an u8 '''IsAlarmScheduled''' and a [[Glue_services#PosixTime|PosixTime]] for the next scheduled alarm. | Takes an input [[#AlarmSettingId]]. Returns an u8 '''IsAlarmScheduled''' and a [[Glue_services#PosixTime|PosixTime]] for the next scheduled alarm. | ||
Line 681: | Line 663: | ||
| 1 || CommitContext | | 1 || CommitContext | ||
|- | |- | ||
| 2 || | | 2 || RemoveContext | ||
|} | |} | ||
Line 725: | Line 707: | ||
|- | |- | ||
| 1 || CommitContext | | 1 || CommitContext | ||
|} | |||
= pl:u = | |||
This is "nn::pl::sharedresource::detail::IPlatformSharedResourceManager". | |||
This was added with [16.0.0+]. | |||
This has max_sessions 5. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#RequestLoad]] | |||
|- | |||
| 1 || [[#GetLoadState]] | |||
|- | |||
| 2 || [[#GetSize]] | |||
|- | |||
| 3 || [[#GetSharedMemoryAddressOffset]] | |||
|- | |||
| 4 || [[#GetSharedMemoryNativeHandle]] | |||
|- | |||
| 5 || [[#GetSharedFontInOrderOfPriority]] | |||
|- | |||
| 6 || GetSharedFontInOrderOfPriorityForSystem | |||
|- | |||
| 2000 || [S2] | |||
|- | |||
| 2010 || [S2] | |||
|- | |||
| 2020 || [S2] | |||
|- | |||
| 2100 || [S2] OpenFont. Returns an [[#(Switch 2) IFontService]]. | |||
|} | |||
== RequestLoad == | |||
Takes a [[#SharedFontType]] (uint32), no output. | |||
== GetLoadState == | |||
Takes a [[#SharedFontType]] (uint32), returns the [[#LoadState]] (uint32). | |||
=== LoadState === | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0x00 || Loading | |||
|- | |||
| 0x01 || Loaded | |||
|} | |||
== GetSize == | |||
Takes a [[#SharedFontType]] (uint32), returns the Font Size (uint32). | |||
== GetSharedMemoryAddressOffset == | |||
Takes a [[#SharedFontType]] (uint32), returns the offset (uint32) to the Font Address. | |||
== GetSharedMemoryNativeHandle == | |||
No input, returns an output SharedMemory handle. | |||
User-processes map this SharedMemory with size=0x1100000 and permissions=R--. | |||
Font data is TTF, located at the offset returned by [[#GetSharedMemoryAddressOffset]]. | |||
== GetSharedFontInOrderOfPriority == | |||
Takes an input u64 [[Settings_services#LanguageCode|LanguageCode]] and 3 type-0x6 output buffers, returns an output u8 and u32. The u8 is a bool to specify if the fonts are loaded or not and the u32 is the font count. | |||
The first buffer contains a list of [[#SharedFontType|Shared font types]], the second buffer contains the font offsets and the final buffer contains the font sizes. | |||
The buffers are an array of u32s which specify information about a specific font. Buffer1[n] is related to Buffer2[n] and Buffer3[n]. | |||
Example: Font index 0s offset is at Buffer2[0], size is at Buffer3[0]. | |||
The fonts are relative to the shared memory created by [[#GetSharedFontSharedMemoryHandle]] | |||
== SharedFontType == | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0x00 || Japan, US and Europe (Standard) | |||
|- | |||
| 0x01 || Chinese Simplified | |||
|- | |||
| 0x02 || Extended Chinese Simplified | |||
|- | |||
| 0x03 || Chinese Traditional | |||
|- | |||
| 0x04 || Korean (Hangul) | |||
|- | |||
| 0x05 || Nintendo Extended | |||
|} | |||
* Nintendo Extended: Contains Nintendo-specific characters, including HID buttons, HID controller styles, applet icons, Wii(U) icons, etc. | |||
== (Switch 2) IFontService == | |||
This is "nn::pl::sharedresource::detail::IFontService". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || | |||
|- | |||
| 1 || | |||
|} | |} | ||
Line 785: | Line 869: | ||
This is a 0x1-byte struct. | This is a 0x1-byte struct. | ||
[17.0.0+] This is a 0x10-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 795: | Line 881: | ||
| 0x01 | | 0x01 | ||
| ProgramIndex | | ProgramIndex | ||
|- | |||
| 0x01 | |||
| 0x0F | |||
| | |||
|} | |} | ||