libnx/nx/include/switch/services/pl.h
2020-04-15 18:18:14 +02:00

53 lines
1.9 KiB
C

/**
* @file pl.h
* @brief pl:u service IPC wrapper.
* @author yellows8
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "../sf/service.h"
typedef enum {
PlServiceType_User = 0, ///< Initializes pl:u.
PlServiceType_System = 1, ///< Initializes pl:s.
} PlServiceType;
/// SharedFontType
typedef enum {
PlSharedFontType_Standard = 0, ///< Japan, US and Europe
PlSharedFontType_ChineseSimplified = 1, ///< Chinese Simplified
PlSharedFontType_ExtChineseSimplified = 2, ///< Extended Chinese Simplified
PlSharedFontType_ChineseTraditional = 3, ///< Chinese Traditional
PlSharedFontType_KO = 4, ///< Korean (Hangul)
PlSharedFontType_NintendoExt = 5, ///< Nintendo Extended. This font only has the special Nintendo-specific characters, which aren't available with the other fonts.
PlSharedFontType_Total, ///< Total fonts supported by this enum.
} PlSharedFontType;
/// FontData
typedef struct {
u32 type; ///< \ref PlSharedFontType
u32 offset; ///< Offset of the font in sharedmem.
u32 size; ///< Size of the font.
void* address; ///< Address of the actual font.
} PlFontData;
/// Initialize pl.
Result plInitialize(PlServiceType service_type);
/// Exit pl.
void plExit(void);
/// Gets the Service object for the actual pl service session.
Service* plGetServiceSession(void);
/// Gets the address of the SharedMemory.
void* plGetSharedmemAddr(void);
///< Gets a specific shared-font via \ref PlSharedFontType.
Result plGetSharedFontByType(PlFontData* font, PlSharedFontType SharedFontType);
///< Gets shared font(s).
Result plGetSharedFont(u64 LanguageCode, PlFontData* fonts, s32 max_fonts, s32* total_fonts);