mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-11-04 04:34:07 +01:00 
			
		
		
		
	input_common: Fix VS2022 compilation errors
This commit is contained in:
		
							parent
							
								
									f190547bbb
								
							
						
					
					
						commit
						b01aa721ff
					
				@ -471,46 +471,42 @@ CalibrationConfigurationJob::CalibrationConfigurationJob(
 | 
			
		||||
    std::function<void(u16, u16, u16, u16)> data_callback) {
 | 
			
		||||
 | 
			
		||||
    std::thread([=, this] {
 | 
			
		||||
        constexpr u16 CALIBRATION_THRESHOLD = 100;
 | 
			
		||||
 | 
			
		||||
        u16 min_x{UINT16_MAX};
 | 
			
		||||
        u16 min_y{UINT16_MAX};
 | 
			
		||||
        u16 max_x{};
 | 
			
		||||
        u16 max_y{};
 | 
			
		||||
 | 
			
		||||
        Status current_status{Status::Initialized};
 | 
			
		||||
        SocketCallback callback{[](Response::Version) {}, [](Response::PortInfo) {},
 | 
			
		||||
                                [&](Response::PadData data) {
 | 
			
		||||
                                    if (current_status == Status::Initialized) {
 | 
			
		||||
                                        // Receiving data means the communication is ready now
 | 
			
		||||
                                        current_status = Status::Ready;
 | 
			
		||||
                                        status_callback(current_status);
 | 
			
		||||
                                    }
 | 
			
		||||
                                    if (data.touch[0].is_active == 0) {
 | 
			
		||||
                                        return;
 | 
			
		||||
                                    }
 | 
			
		||||
                                    LOG_DEBUG(Input, "Current touch: {} {}", data.touch[0].x,
 | 
			
		||||
                                              data.touch[0].y);
 | 
			
		||||
                                    min_x = std::min(min_x, static_cast<u16>(data.touch[0].x));
 | 
			
		||||
                                    min_y = std::min(min_y, static_cast<u16>(data.touch[0].y));
 | 
			
		||||
                                    if (current_status == Status::Ready) {
 | 
			
		||||
                                        // First touch - min data (min_x/min_y)
 | 
			
		||||
                                        current_status = Status::Stage1Completed;
 | 
			
		||||
                                        status_callback(current_status);
 | 
			
		||||
                                    }
 | 
			
		||||
                                    if (data.touch[0].x - min_x > CALIBRATION_THRESHOLD &&
 | 
			
		||||
                                        data.touch[0].y - min_y > CALIBRATION_THRESHOLD) {
 | 
			
		||||
                                        // Set the current position as max value and finishes
 | 
			
		||||
                                        // configuration
 | 
			
		||||
                                        max_x = data.touch[0].x;
 | 
			
		||||
                                        max_y = data.touch[0].y;
 | 
			
		||||
                                        current_status = Status::Completed;
 | 
			
		||||
                                        data_callback(min_x, min_y, max_x, max_y);
 | 
			
		||||
                                        status_callback(current_status);
 | 
			
		||||
        SocketCallback callback{
 | 
			
		||||
            [](Response::Version) {}, [](Response::PortInfo) {},
 | 
			
		||||
            [&](Response::PadData data) {
 | 
			
		||||
                static constexpr u16 CALIBRATION_THRESHOLD = 100;
 | 
			
		||||
                static constexpr u16 MAX_VALUE = UINT16_MAX;
 | 
			
		||||
 | 
			
		||||
                                        complete_event.Set();
 | 
			
		||||
                                    }
 | 
			
		||||
                                }};
 | 
			
		||||
                if (current_status == Status::Initialized) {
 | 
			
		||||
                    // Receiving data means the communication is ready now
 | 
			
		||||
                    current_status = Status::Ready;
 | 
			
		||||
                    status_callback(current_status);
 | 
			
		||||
                }
 | 
			
		||||
                const auto& touchpad_0 = data.touch[0];
 | 
			
		||||
                if (touchpad_0.is_active == 0) {
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                LOG_DEBUG(Input, "Current touch: {} {}", touchpad_0.x, touchpad_0.y);
 | 
			
		||||
                const u16 min_x = std::min(MAX_VALUE, static_cast<u16>(touchpad_0.x));
 | 
			
		||||
                const u16 min_y = std::min(MAX_VALUE, static_cast<u16>(touchpad_0.y));
 | 
			
		||||
                if (current_status == Status::Ready) {
 | 
			
		||||
                    // First touch - min data (min_x/min_y)
 | 
			
		||||
                    current_status = Status::Stage1Completed;
 | 
			
		||||
                    status_callback(current_status);
 | 
			
		||||
                }
 | 
			
		||||
                if (touchpad_0.x - min_x > CALIBRATION_THRESHOLD &&
 | 
			
		||||
                    touchpad_0.y - min_y > CALIBRATION_THRESHOLD) {
 | 
			
		||||
                    // Set the current position as max value and finishes configuration
 | 
			
		||||
                    const u16 max_x = touchpad_0.x;
 | 
			
		||||
                    const u16 max_y = touchpad_0.y;
 | 
			
		||||
                    current_status = Status::Completed;
 | 
			
		||||
                    data_callback(min_x, min_y, max_x, max_y);
 | 
			
		||||
                    status_callback(current_status);
 | 
			
		||||
 | 
			
		||||
                    complete_event.Set();
 | 
			
		||||
                }
 | 
			
		||||
            }};
 | 
			
		||||
        Socket socket{host, port, std::move(callback)};
 | 
			
		||||
        std::thread worker_thread{SocketLoop, &socket};
 | 
			
		||||
        complete_event.Wait();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user