Address lioncash feedback: Log formatting, extern const PadButtonArray, little touch ups
This commit is contained in:
		
							parent
							
								
									6e1639c7b0
								
							
						
					
					
						commit
						e69d715e3d
					
				| @ -9,6 +9,14 @@ | ||||
| 
 | ||||
| namespace GCAdapter { | ||||
| 
 | ||||
| /// Used to loop through and assign button in poller
 | ||||
| constexpr std::array<PadButton, 12> PadButtonArray{ | ||||
|     PadButton::PAD_BUTTON_LEFT, PadButton::PAD_BUTTON_RIGHT, PadButton::PAD_BUTTON_DOWN, | ||||
|     PadButton::PAD_BUTTON_UP,   PadButton::PAD_TRIGGER_Z,    PadButton::PAD_TRIGGER_R, | ||||
|     PadButton::PAD_TRIGGER_L,   PadButton::PAD_BUTTON_A,     PadButton::PAD_BUTTON_B, | ||||
|     PadButton::PAD_BUTTON_X,    PadButton::PAD_BUTTON_Y,     PadButton::PAD_BUTTON_START, | ||||
| }; | ||||
| 
 | ||||
| Adapter::Adapter() { | ||||
|     if (usb_adapter_handle != nullptr) { | ||||
|         return; | ||||
| @ -32,27 +40,31 @@ GCPadStatus Adapter::GetPadStatus(int port, const std::array<u8, 37>& adapter_pa | ||||
| 
 | ||||
|     adapter_controllers_status[port] = type; | ||||
| 
 | ||||
|     constexpr std::array<PadButton, 8> b1_buttons{ | ||||
|     static constexpr std::array<PadButton, 8> b1_buttons{ | ||||
|         PadButton::PAD_BUTTON_A,    PadButton::PAD_BUTTON_B,    PadButton::PAD_BUTTON_X, | ||||
|         PadButton::PAD_BUTTON_Y,    PadButton::PAD_BUTTON_LEFT, PadButton::PAD_BUTTON_RIGHT, | ||||
|         PadButton::PAD_BUTTON_DOWN, PadButton::PAD_BUTTON_UP}; | ||||
|         PadButton::PAD_BUTTON_DOWN, PadButton::PAD_BUTTON_UP, | ||||
|     }; | ||||
| 
 | ||||
|     constexpr std::array<PadButton, 4> b2_buttons{ | ||||
|         PadButton::PAD_BUTTON_START, PadButton::PAD_TRIGGER_Z, PadButton::PAD_TRIGGER_R, | ||||
|         PadButton::PAD_TRIGGER_L}; | ||||
|     static constexpr std::array<PadButton, 4> b2_buttons{ | ||||
|         PadButton::PAD_BUTTON_START, | ||||
|         PadButton::PAD_TRIGGER_Z, | ||||
|         PadButton::PAD_TRIGGER_R, | ||||
|         PadButton::PAD_TRIGGER_L, | ||||
|     }; | ||||
| 
 | ||||
|     if (adapter_controllers_status[port] != ControllerTypes::None) { | ||||
|         const u8 b1 = adapter_payload[1 + (9 * port) + 1]; | ||||
|         const u8 b2 = adapter_payload[1 + (9 * port) + 2]; | ||||
| 
 | ||||
|         for (std::size_t i = 0; i < b1_buttons.size(); ++i) { | ||||
|             if (b1 & (1 << i)) { | ||||
|             if ((b1 & (1U << i)) != 0) { | ||||
|                 pad.button |= static_cast<u16>(b1_buttons[i]); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         for (std::size_t j = 0; j < b2_buttons.size(); ++j) { | ||||
|             if (b2 & (1 << j)) { | ||||
|             if ((b2 & (1U << j)) != 0) { | ||||
|                 pad.button |= static_cast<u16>(b2_buttons[j]); | ||||
|             } | ||||
|         } | ||||
| @ -107,7 +119,7 @@ void Adapter::Read() { | ||||
| 
 | ||||
|         if (payload_size_copy != sizeof(adapter_payload_copy) || | ||||
|             adapter_payload_copy[0] != LIBUSB_DT_HID) { | ||||
|             LOG_ERROR(Input, "error reading payload (size: %d, type: %02x)", payload_size_copy, | ||||
|             LOG_ERROR(Input, "error reading payload (size: {}, type: {:02x})", payload_size_copy, | ||||
|                       adapter_payload_copy[0]); | ||||
|             adapter_thread_running = false; // error reading from adapter, stop reading.
 | ||||
|             break; | ||||
| @ -220,7 +232,7 @@ bool Adapter::CheckDeviceAccess(libusb_device* device) { | ||||
|     const int get_descriptor_error = libusb_get_device_descriptor(device, &desc); | ||||
|     if (get_descriptor_error) { | ||||
|         // could not acquire the descriptor, no point in trying to use it.
 | ||||
|         LOG_ERROR(Input, "libusb_get_device_descriptor failed with error: %d", | ||||
|         LOG_ERROR(Input, "libusb_get_device_descriptor failed with error: {}", | ||||
|                   get_descriptor_error); | ||||
|         return false; | ||||
|     } | ||||
| @ -232,12 +244,12 @@ bool Adapter::CheckDeviceAccess(libusb_device* device) { | ||||
|     const int open_error = libusb_open(device, &usb_adapter_handle); | ||||
| 
 | ||||
|     if (open_error == LIBUSB_ERROR_ACCESS) { | ||||
|         LOG_ERROR(Input, "Yuzu can not gain access to this device: ID %04X:%04X.", desc.idVendor, | ||||
|                   desc.idProduct); | ||||
|         LOG_ERROR(Input, "Yuzu can not gain access to this device: ID {:04X}:{:04X}.", | ||||
|                   desc.idVendor, desc.idProduct); | ||||
|         return false; | ||||
|     } | ||||
|     if (open_error) { | ||||
|         LOG_ERROR(Input, "libusb_open failed to open device with error = %d", open_error); | ||||
|         LOG_ERROR(Input, "libusb_open failed to open device with error = {}", open_error); | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
| @ -245,7 +257,7 @@ bool Adapter::CheckDeviceAccess(libusb_device* device) { | ||||
|     if (kernel_driver_error == 1) { | ||||
|         kernel_driver_error = libusb_detach_kernel_driver(usb_adapter_handle, 0); | ||||
|         if (kernel_driver_error != 0 && kernel_driver_error != LIBUSB_ERROR_NOT_SUPPORTED) { | ||||
|             LOG_ERROR(Input, "libusb_detach_kernel_driver failed with error = %d", | ||||
|             LOG_ERROR(Input, "libusb_detach_kernel_driver failed with error = {}", | ||||
|                       kernel_driver_error); | ||||
|         } | ||||
|     } | ||||
| @ -258,7 +270,7 @@ bool Adapter::CheckDeviceAccess(libusb_device* device) { | ||||
| 
 | ||||
|     const int interface_claim_error = libusb_claim_interface(usb_adapter_handle, 0); | ||||
|     if (interface_claim_error) { | ||||
|         LOG_ERROR(Input, "libusb_claim_interface failed with error = %d", interface_claim_error); | ||||
|         LOG_ERROR(Input, "libusb_claim_interface failed with error = {}", interface_claim_error); | ||||
|         libusb_close(usb_adapter_handle); | ||||
|         usb_adapter_handle = nullptr; | ||||
|         return false; | ||||
|  | ||||
| @ -36,12 +36,7 @@ enum class PadButton { | ||||
|     PAD_STICK = 0x2000, | ||||
| }; | ||||
| 
 | ||||
| /// Used to loop through the and assign button in poller
 | ||||
| static constexpr std::array<PadButton, 12> PadButtonArray{ | ||||
|     PadButton::PAD_BUTTON_LEFT, PadButton::PAD_BUTTON_RIGHT, PadButton::PAD_BUTTON_DOWN, | ||||
|     PadButton::PAD_BUTTON_UP,   PadButton::PAD_TRIGGER_Z,    PadButton::PAD_TRIGGER_R, | ||||
|     PadButton::PAD_TRIGGER_L,   PadButton::PAD_BUTTON_A,     PadButton::PAD_BUTTON_B, | ||||
|     PadButton::PAD_BUTTON_X,    PadButton::PAD_BUTTON_Y,     PadButton::PAD_BUTTON_START}; | ||||
| extern const std::array<PadButton, 12> PadButtonArray; | ||||
| 
 | ||||
| enum class PadAxes : u8 { | ||||
|     StickX, | ||||
|  | ||||
| @ -14,7 +14,7 @@ namespace InputCommon { | ||||
| 
 | ||||
| class GCButton final : public Input::ButtonDevice { | ||||
| public: | ||||
|     explicit GCButton(int port_, int button_, int axis_, GCAdapter::Adapter* adapter) | ||||
|     explicit GCButton(int port_, int button_, GCAdapter::Adapter* adapter) | ||||
|         : port(port_), button(button_), gcadapter(adapter) {} | ||||
| 
 | ||||
|     ~GCButton() override; | ||||
| @ -45,7 +45,9 @@ public: | ||||
|     bool GetStatus() const override { | ||||
|         const float axis_value = (gcadapter->GetPadState()[port].axes.at(axis) - 128.0f) / 128.0f; | ||||
|         if (trigger_if_greater) { | ||||
|             return axis_value > threshold; // TODO(ameerj) : Fix threshold.
 | ||||
|             // TODO: Might be worthwile to set a slider for the trigger threshold. It is currently
 | ||||
|             // always set to 0.5 in configure_input_player.cpp ZL/ZR HandleClick
 | ||||
|             return axis_value > threshold; | ||||
|         } | ||||
|         return axis_value < -threshold; | ||||
|     } | ||||
| @ -71,8 +73,7 @@ std::unique_ptr<Input::ButtonDevice> GCButtonFactory::Create(const Common::Param | ||||
| 
 | ||||
|     // button is not an axis/stick button
 | ||||
|     if (button_id != PAD_STICK_ID) { | ||||
|         std::unique_ptr<GCButton> button = | ||||
|             std::make_unique<GCButton>(port, button_id, params.Get("axis", 0), adapter.get()); | ||||
|         auto button = std::make_unique<GCButton>(port, button_id, adapter.get()); | ||||
|         return std::move(button); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Ameer
						Ameer