libnx  v4.2.0
Data Structures | Enumerations | Functions
pdm.h File Reference

PDM (pdm:*) service IPC wrapper. More...

#include "../types.h"
#include "../sf/service.h"
#include "../services/acc.h"
#include "../kernel/event.h"

Go to the source code of this file.

Data Structures

struct  PdmAppletEvent
 AppletEvent. More...
 
struct  PdmPlayStatistics
 PlayStatistics. More...
 
struct  PdmLastPlayTime
 LastPlayTime. More...
 
struct  PdmPlayEvent
 PlayEvent. More...
 
struct  PdmAccountEvent
 AccountEvent. More...
 
struct  PdmAccountPlayEvent
 AccountPlayEvent. More...
 
struct  PdmApplicationPlayStatistics
 ApplicationPlayStatistics. More...
 

Enumerations

enum  PdmPlayEventType {
  PdmPlayEventType_Applet = 0,
  PdmPlayEventType_Account = 1,
  PdmPlayEventType_PowerStateChange = 2,
  PdmPlayEventType_OperationModeChange = 3,
  PdmPlayEventType_Initialize = 4
}
 PlayEventType. More...
 
enum  PdmAppletEventType {
  PdmAppletEventType_Launch = 0,
  PdmAppletEventType_Exit = 1,
  PdmAppletEventType_InFocus = 2,
  PdmAppletEventType_OutOfFocus = 3,
  PdmAppletEventType_OutOfFocus4 = 4,
  PdmAppletEventType_Exit5 = 5,
  PdmAppletEventType_Exit6 = 6
}
 AppletEventType. More...
 
enum  PdmPlayLogPolicy {
  PdmPlayLogPolicy_All = 0,
  PdmPlayLogPolicy_LogOnly = 1,
  PdmPlayLogPolicy_None = 2,
  PdmPlayLogPolicy_Unknown3 = 3
}
 PlayLogPolicy. More...
 

Functions

Result pdmqryInitialize (void)
 Initialize pdm:qry.
 
void pdmqryExit (void)
 Exit pdm:qry.
 
ServicepdmqryGetServiceSession (void)
 Gets the Service object for the actual pdm:qry service session.
 
Result pdmqryQueryAppletEvent (s32 entry_index, bool flag, PdmAppletEvent *events, s32 count, s32 *total_out)
 Gets a list of PdmAppletEvent. More...
 
Result pdmqryQueryPlayStatisticsByApplicationId (u64 application_id, bool flag, PdmPlayStatistics *stats)
 Gets PdmPlayStatistics for the specified ApplicationId. More...
 
Result pdmqryQueryPlayStatisticsByApplicationIdAndUserAccountId (u64 application_id, AccountUid uid, bool flag, PdmPlayStatistics *stats)
 Gets PdmPlayStatistics for the specified ApplicationId and account userId. More...
 
Result pdmqryQueryLastPlayTime (bool flag, PdmLastPlayTime *playtimes, const u64 *application_ids, s32 count, s32 *total_out)
 Gets PdmLastPlayTime for the specified applications. More...
 
Result pdmqryQueryPlayEvent (s32 entry_index, PdmPlayEvent *events, s32 count, s32 *total_out)
 Gets a list of PdmPlayEvent. More...
 
Result pdmqryGetAvailablePlayEventRange (s32 *total_entries, s32 *start_entry_index, s32 *end_entry_index)
 Gets range fields which can then be used with the other pdmqry funcs, except for pdmqryQueryAccountPlayEvent. More...
 
Result pdmqryQueryAccountEvent (s32 entry_index, PdmAccountEvent *events, s32 count, s32 *total_out)
 Gets a list of PdmAccountEvent. More...
 
Result pdmqryQueryAccountPlayEvent (s32 entry_index, AccountUid uid, PdmAccountPlayEvent *events, s32 count, s32 *total_out)
 Gets a list of PdmAccountPlayEvent. More...
 
Result pdmqryGetAvailableAccountPlayEventRange (AccountUid uid, s32 *total_entries, s32 *start_entry_index, s32 *end_entry_index)
 Gets range fields which can then be used with pdmqryQueryAccountPlayEvent. More...
 
Result pdmqryQueryRecentlyPlayedApplication (AccountUid uid, bool flag, u64 *application_ids, s32 count, s32 *total_out)
 Gets a list of applications played by the specified user. More...
 
Result pdmqryGetRecentlyPlayedApplicationUpdateEvent (Event *out_event)
 Gets an Event which is signaled when logging a new PdmPlayEvent which would be available via pdmqryQueryAccountEvent, where PdmPlayEvent::eventData::account::type is 0. More...
 
static u64 pdmPlayTimestampToPosix (u32 timestamp)
 Helper function which converts a Play timestamp from the Pdm*Event structs to POSIX. More...
 

Detailed Description

PDM (pdm:*) service IPC wrapper.

Author
yellows8

Enumeration Type Documentation

◆ PdmAppletEventType

AppletEventType.

Enumerator
PdmAppletEventType_Launch 

"launch"

PdmAppletEventType_Exit 

"exit"

PdmAppletEventType_InFocus 

"in_focus"

PdmAppletEventType_OutOfFocus 

"out_of_focus"

PdmAppletEventType_OutOfFocus4 

"out_of_focus"

PdmAppletEventType_Exit5 

"exit"

PdmAppletEventType_Exit6 

"exit"

◆ PdmPlayEventType

PlayEventType.

Enumerator
PdmPlayEventType_Applet 

Applet.

PdmPlayEventType_Account 

Account.

PdmPlayEventType_PowerStateChange 

PowerStateChange.

PdmPlayEventType_OperationModeChange 

OperationModeChange.

PdmPlayEventType_Initialize 

Initialize. Used for the very first PlayEvent entry in the log.

◆ PdmPlayLogPolicy

PlayLogPolicy.

Enumerator
PdmPlayLogPolicy_All 

All pdm:qry commands which require PdmPlayEventType_Applet and AppletId = Application will only return the entry when PlayLogPolicy matches this value.

PdmPlayLogPolicy_LogOnly 

The above commands will filter out the entry with this.

PdmPlayLogPolicy_None 

The pdm:ntfy commands which handle PdmPlayEventType_Applet logging will immediately return 0 when the input param matches this value.

PdmPlayLogPolicy_Unknown3 

[10.0.0+] The cmds which require PdmPlayLogPolicy_All, now also allow value 3 if the cmd input flag is set.

Function Documentation

◆ pdmPlayTimestampToPosix()

static u64 pdmPlayTimestampToPosix ( u32  timestamp)
inlinestatic

Helper function which converts a Play timestamp from the Pdm*Event structs to POSIX.

Parameters
[in]timestampInput timestamp.

◆ pdmqryGetAvailableAccountPlayEventRange()

Result pdmqryGetAvailableAccountPlayEventRange ( AccountUid  uid,
s32 total_entries,
s32 start_entry_index,
s32 end_entry_index 
)

Gets range fields which can then be used with pdmqryQueryAccountPlayEvent.

Parameters
[in]uidAccountUid
[out]total_entriesTotal entries.
[out]start_entry_indexStart entry index.
[out]end_entry_indexEnd entry index.

◆ pdmqryGetAvailablePlayEventRange()

Result pdmqryGetAvailablePlayEventRange ( s32 total_entries,
s32 start_entry_index,
s32 end_entry_index 
)

Gets range fields which can then be used with the other pdmqry funcs, except for pdmqryQueryAccountPlayEvent.

Parameters
[out]total_entriesTotal entries.
[out]start_entry_indexStart entry index.
[out]end_entry_indexEnd entry index.

◆ pdmqryGetRecentlyPlayedApplicationUpdateEvent()

Result pdmqryGetRecentlyPlayedApplicationUpdateEvent ( Event out_event)

Gets an Event which is signaled when logging a new PdmPlayEvent which would be available via pdmqryQueryAccountEvent, where PdmPlayEvent::eventData::account::type is 0.

Note
Only available with [6.0.0+].
The Event must be closed by the user once finished with it.
Parameters
[out]out_eventOutput Event with autoclear=false.

◆ pdmqryQueryAccountEvent()

Result pdmqryQueryAccountEvent ( s32  entry_index,
PdmAccountEvent events,
s32  count,
s32 total_out 
)

Gets a list of PdmAccountEvent.

Parameters
[in]entry_indexStart entry index.
[out]eventsOutput PdmAccountEvent array.
[in]countMax entries in the output array.
[out]total_outTotal output entries.

◆ pdmqryQueryAccountPlayEvent()

Result pdmqryQueryAccountPlayEvent ( s32  entry_index,
AccountUid  uid,
PdmAccountPlayEvent events,
s32  count,
s32 total_out 
)

Gets a list of PdmAccountPlayEvent.

Note
Only available with [4.0.0+].
Parameters
[in]entry_indexStart entry index.
[in]uidAccountUid
[out]eventsOutput PdmAccountPlayEvent array.
[in]countMax entries in the output array.
[out]total_outTotal output entries.

◆ pdmqryQueryAppletEvent()

Result pdmqryQueryAppletEvent ( s32  entry_index,
bool  flag,
PdmAppletEvent events,
s32  count,
s32 total_out 
)

Gets a list of PdmAppletEvent.

Parameters
[in]entry_indexStart entry index.
[in]flag[10.0.0+] Whether to additionally allow using entries with PdmPlayLogPolicy_Unknown3.
[out]eventsOutput PdmAppletEvent array.
[in]countMax entries in the output array.
[out]total_outTotal output entries.

◆ pdmqryQueryLastPlayTime()

Result pdmqryQueryLastPlayTime ( bool  flag,
PdmLastPlayTime playtimes,
const u64 application_ids,
s32  count,
s32 total_out 
)

Gets PdmLastPlayTime for the specified applications.

Parameters
[in]flag[10.0.0+] Whether to additionally allow using entries with PdmPlayLogPolicy_Unknown3.
[out]playtimesOutput PdmLastPlayTime array.
[in]application_idsInput ApplicationIds array.
[in]countTotal entries in the input/output arrays.
[out]total_outTotal output entries.

◆ pdmqryQueryPlayEvent()

Result pdmqryQueryPlayEvent ( s32  entry_index,
PdmPlayEvent events,
s32  count,
s32 total_out 
)

Gets a list of PdmPlayEvent.

Parameters
[in]entry_indexStart entry index.
[out]eventsOutput PdmPlayEvent array.
[in]countMax entries in the output array.
[out]total_outTotal output entries.

◆ pdmqryQueryPlayStatisticsByApplicationId()

Result pdmqryQueryPlayStatisticsByApplicationId ( u64  application_id,
bool  flag,
PdmPlayStatistics stats 
)

Gets PdmPlayStatistics for the specified ApplicationId.

Parameters
[in]application_idApplicationId
[in]flag[10.0.0+] Whether to additionally allow using entries with PdmPlayLogPolicy_Unknown3.
[out]statsPdmPlayStatistics

◆ pdmqryQueryPlayStatisticsByApplicationIdAndUserAccountId()

Result pdmqryQueryPlayStatisticsByApplicationIdAndUserAccountId ( u64  application_id,
AccountUid  uid,
bool  flag,
PdmPlayStatistics stats 
)

Gets PdmPlayStatistics for the specified ApplicationId and account userId.

Parameters
[in]application_idApplicationId
[in]uidAccountUid
[in]flag[10.0.0+] Whether to additionally allow using entries with PdmPlayLogPolicy_Unknown3.
[out]statsPdmPlayStatistics

◆ pdmqryQueryRecentlyPlayedApplication()

Result pdmqryQueryRecentlyPlayedApplication ( AccountUid  uid,
bool  flag,
u64 application_ids,
s32  count,
s32 total_out 
)

Gets a list of applications played by the specified user.

Note
Only available with [6.0.0+].
Parameters
[in]uidAccountUid
[in]flag[10.0.0+] Whether to additionally allow using entries with PdmPlayLogPolicy_Unknown3.
[out]application_idsOutput ApplicationIds array.
[in]countMax entries in the output array.
[out]total_outTotal output entries.