mirror of
				https://github.com/Zelda64Recomp/Zelda64Recomp.git
				synced 2025-10-30 08:03:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef __RECOMP_INPUT_H__
 | 
						|
#define __RECOMP_INPUT_H__
 | 
						|
 | 
						|
#include <cstdint>
 | 
						|
#include <variant>
 | 
						|
#include <vector>
 | 
						|
#include <type_traits>
 | 
						|
#include <span>
 | 
						|
 | 
						|
namespace recomp {
 | 
						|
    struct InputField {
 | 
						|
        uint32_t device_type;
 | 
						|
        int32_t input_id;
 | 
						|
    };
 | 
						|
 | 
						|
    void poll_inputs();
 | 
						|
    float get_input_analog(const InputField& field);
 | 
						|
    float get_input_analog(const std::span<const recomp::InputField> fields);
 | 
						|
    bool get_input_digital(const InputField& field);
 | 
						|
    bool get_input_digital(const std::span<const recomp::InputField> fields);
 | 
						|
    
 | 
						|
    struct DefaultN64Mappings {
 | 
						|
        std::vector<InputField> a;
 | 
						|
        std::vector<InputField> b;
 | 
						|
        std::vector<InputField> l;
 | 
						|
        std::vector<InputField> r;
 | 
						|
        std::vector<InputField> z;
 | 
						|
        std::vector<InputField> start;
 | 
						|
 | 
						|
        std::vector<InputField> c_left;
 | 
						|
        std::vector<InputField> c_right;
 | 
						|
        std::vector<InputField> c_up;
 | 
						|
        std::vector<InputField> c_down;
 | 
						|
 | 
						|
        std::vector<InputField> dpad_left;
 | 
						|
        std::vector<InputField> dpad_right;
 | 
						|
        std::vector<InputField> dpad_up;
 | 
						|
        std::vector<InputField> dpad_down;
 | 
						|
 | 
						|
        std::vector<InputField> analog_left;
 | 
						|
        std::vector<InputField> analog_right;
 | 
						|
        std::vector<InputField> analog_up;
 | 
						|
        std::vector<InputField> analog_down;
 | 
						|
    };
 | 
						|
 | 
						|
    extern const DefaultN64Mappings default_n64_keyboard_mappings;
 | 
						|
    extern const DefaultN64Mappings default_n64_controller_mappings;
 | 
						|
 | 
						|
    void get_n64_input(uint16_t* buttons_out, float* x_out, float* y_out);
 | 
						|
    void handle_events();
 | 
						|
 | 
						|
    bool game_input_disabled();
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |