libctru/libctru/include/3ds/services/irrst.h
2015-10-04 22:27:43 -07:00

63 lines
1.4 KiB
C

/**
* @file irrst.h
* @brief IRRST service.
*/
#pragma once
//See also: http://3dbrew.org/wiki/IR_Services http://3dbrew.org/wiki/IRRST_Shared_Memory
#include "3ds/services/hid.h" // for circlePosition definition
/// IRRST's shared memory handle.
extern Handle irrstMemHandle;
/// IRRST's shared memory.
extern vu32* irrstSharedMem;
/// Initializes IRRST.
Result irrstInit(void);
/// Exits IRRST.
void irrstExit(void);
/// Scans IRRST for input.
void irrstScanInput(void);
/**
* @brief Gets IRRST's held keys.
* @return IRRST's held keys.
*/
u32 irrstKeysHeld(void);
/**
* @brief Reads the current c-stick position.
* @param pos Pointer to output the current c-stick position to.
*/
void irrstCstickRead(circlePosition* pos);
/**
* @brief Waits for the IRRST input event to trigger.
* @param nextEvent Whether to discard the current event and wait until the next event.
*/
void irrstWaitForEvent(bool nextEvent);
/// Macro for irrstCstickRead.
#define hidCstickRead irrstCstickRead
/**
* @brief Gets the shared memory and event handles for IRRST.
* @param outMemHandle Pointer to write the shared memory handle to.
* @param outEventHandle Pointer to write the event handle to.
*/
Result IRRST_GetHandles(Handle* outMemHandle, Handle* outEventHandle);
/**
* @brief Initializes IRRST.
* @param unk1 Unknown.
* @param unk2 Unknown.
*/
Result IRRST_Initialize(u32 unk1, u8 unk2);
/// Shuts down IRRST.
Result IRRST_Shutdown(void);