#include "inc/Gamepad.h"

// worker
void gp_worker() {
    // do background work, read from gamepad, write to variables
    while(1) {}
}

// init, term
GEN_TYPE_boolean gp_initialized = false;
GEN_TYPE_boolean gp_terminated = false;

void gp_init() {
    // important, since all btns are accessing the same method
    if(gp_initialized) return;

    // TODO initialize...
}

void gp_term() {
    // important, since all btns are accessing the same method
    if(gp_terminated) return;

    // TODO terminate...
}

// noval
GEN_TYPE_boolean gp_btn1_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btn2_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btn3_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btn4_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnL1_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnL2_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnR1_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnR2_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnLX_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnLY_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnRX_is_noval() {
    return true;
}

GEN_TYPE_boolean gp_btnRY_is_noval() {
    return true;
}

// readers
GEN_TYPE_boolean gp_btn1_read() {
    return false;
}

GEN_TYPE_boolean gp_btn2_read() {
    return false;
}

GEN_TYPE_boolean gp_btn3_read() {
    return false;
}

GEN_TYPE_boolean gp_btn4_read() {
    return false;
}

GEN_TYPE_boolean gp_btnL1_read() {
    return false;
}

GEN_TYPE_boolean gp_btnL2_read() {
    return false;
}

GEN_TYPE_boolean gp_btnR1_read() {
    return false;
}

GEN_TYPE_boolean gp_btnR2_read() {
    return false;
}

GEN_TYPE_double gp_btnLX_read() {
    return 0.0;
}

GEN_TYPE_double gp_btnLY_read() {
    return 0.0;
}

GEN_TYPE_double gp_btnRX_read() {
    return 0.0;
}

GEN_TYPE_double gp_btnRY_read() {
    return 0.0;
}