From 29484f5c060a26b0b3fd8ddbc18d713c6f91eecb Mon Sep 17 00:00:00 2001 From: yellows8 Date: Tue, 8 Dec 2020 00:23:52 -0500 Subject: [PATCH] hid/sevensixaxis: Updated for hid-refactor. --- hid/sevensixaxis/source/main.c | 58 +++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/hid/sevensixaxis/source/main.c b/hid/sevensixaxis/source/main.c index e27a1c6..7247ee4 100644 --- a/hid/sevensixaxis/source/main.c +++ b/hid/sevensixaxis/source/main.c @@ -1,18 +1,34 @@ -#include +// Include the most common headers from the C standard library #include +#include +#include +// Include the main libnx system header, for Switch development #include // This example shows how to use the SevenSixAxisSensor. Official sw usually only uses this while VrMode is active. See also the vrmode example. // See also libnx hid.h. // SevenSixAxisSensor combines the SixAxisSensor for the Console and Joy-Cons together. -int main(int argc, char **argv) +// Main program entrypoint +int main(int argc, char* argv[]) { - Result rc=0; - + // This example uses a text console, as a simple way to output text to the screen. + // If you want to write a software-rendered graphics application, + // take a look at the graphics/simplegfx example, which uses the libnx Framebuffer API instead. + // If on the other hand you want to write an OpenGL based application, + // take a look at the graphics/opengl set of examples, which uses EGL instead. consoleInit(NULL); + // Configure our supported input layout: a single player with standard controller styles + padConfigureInput(1, HidNpadStyleSet_NpadStandard); + + // Initialize the default gamepad (which reads handheld mode inputs as well as the first connected controller) + PadState pad; + padInitializeDefault(&pad); + + Result rc=0; + printf("Press A to get state.\n"); printf("Press + to exit.\n"); @@ -31,27 +47,30 @@ int main(int argc, char **argv) // Main loop while(appletMainLoop()) { - //Scan all the inputs. This should be done once for each frame - hidScanInput(); + // Scan the gamepad. This should be done once for each frame + padUpdate(&pad); - //hidKeysDown returns information about which buttons have been just pressed (and they weren't in the previous frame) - u64 kDown = hidKeysDown(CONTROLLER_P1_AUTO); + // padGetButtonsDown returns the set of buttons that have been + // newly pressed in this frame compared to the previous one + u64 kDown = padGetButtonsDown(&pad); - if (kDown & KEY_PLUS) break; // break in order to return to hbmenu + if (kDown & HidNpadButton_Plus) + break; // break in order to return to hbmenu - if (kDown & KEY_A) { - HidSevenSixAxisSensorState states[1]={0}; - size_t total_out=0; - rc = hidGetSevenSixAxisSensorStates(states, 1, &total_out); - printf("hidGetSevenSixAxisSensorStates(): 0x%x, %lx\n", rc, total_out); + if (kDown & HidNpadButton_A) { + HidSevenSixAxisSensorState states[1]={0}; + size_t total_out=0; + rc = hidGetSevenSixAxisSensorStates(states, 1, &total_out); + printf("hidGetSevenSixAxisSensorStates(): 0x%x, %lx\n", rc, total_out); - if (R_SUCCEEDED(rc) && total_out) { - printf("unk_x18: "); - for (u32 i=0; i