diff options
Diffstat (limited to 'src/DSi_I2C.h')
-rw-r--r-- | src/DSi_I2C.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/DSi_I2C.h b/src/DSi_I2C.h index 48c8e88..8a54a2c 100644 --- a/src/DSi_I2C.h +++ b/src/DSi_I2C.h @@ -42,6 +42,56 @@ enum u8 GetBatteryLevel(); void SetBatteryLevel(u8 batteryLevel); + +// 0-31 +u8 GetVolumeLevel(); +void SetVolumeLevel(u8 volume); + +// 0-4 +u8 GetBacklightLevel(); +void SetBacklightLevel(u8 backlight); + +void DoHardwareReset(bool direct); +void DoShutdown(); + +enum +{ + volumeKey_Up, + volumeKey_Down, +}; + +// Used by hotkeys +void SetPowerButtonHeld(double time); +void SetPowerButtonReleased(double time); +void SetVolumeSwitchHeld(u32 key); +void SetVolumeSwitchReleased(u32 key); +s32 ProcessVolumeSwitchInput(double time); + +void DoPowerButtonPress(); +void DoPowerButtonReset(); +void DoPowerButtonShutdown(); +void DoPowerButtonForceShutdown(); +void DoVolumeSwitchPress(u32 key); + +enum +{ + IRQ_PowerButtonReset = 0x01, // Triggered after releasing the power button quickly + IRQ_PowerButtonShutdown = 0x02, // Triggered after holding the power button for less than a second + IRQ_PowerButtonPressed = 0x08, // Triggered after pressing the power button + IRQ_BatteryEmpty = 0x10, // + IRQ_BatteryLow = 0x20, // Triggered when the battery level reaches 1 + IRQ_VolumeSwitchPressed = 0x40, // Triggered once when the volume sliders are first pressed and repeatedly when held down + /* + Bit 2 (0x04) could be set when holding the power button for more than 5 seconds? (forced power off) + It is unknown whether it is set as the console powers off immediately. + Bit 7 (0x80) is unused? + Both bits are never used by the official ARM7 libraries, but could have some undocumented hardware functionality (?). + */ + IRQ_ValidMask = 0x7B, +}; + +void SetIRQ(u8 irqFlag); + } namespace DSi_I2C |