mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	sdl_impl: Make use of insert_or_assign() where applicable
Avoids churning ParamPackage instances.
This commit is contained in:
		
							parent
							
								
									f3ac088345
								
							
						
					
					
						commit
						e92164e6a0
					
				@ -697,16 +697,17 @@ ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& pa
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
    const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0));
 | 
			
		||||
    auto controller = joystick->GetSDLGameController();
 | 
			
		||||
    if (!controller) {
 | 
			
		||||
    auto* controller = joystick->GetSDLGameController();
 | 
			
		||||
    if (controller == nullptr) {
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ButtonMapping mapping{};
 | 
			
		||||
    for (const auto& [switch_button, sdl_button] : switch_to_sdl_button) {
 | 
			
		||||
        const auto& binding = SDL_GameControllerGetBindForButton(controller, sdl_button);
 | 
			
		||||
        mapping[switch_button] =
 | 
			
		||||
            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding);
 | 
			
		||||
        mapping.insert_or_assign(
 | 
			
		||||
            switch_button,
 | 
			
		||||
            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Add the missing bindings for ZL/ZR
 | 
			
		||||
@ -717,8 +718,9 @@ ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& pa
 | 
			
		||||
        };
 | 
			
		||||
    for (const auto& [switch_button, sdl_axis] : switch_to_sdl_axis) {
 | 
			
		||||
        const auto& binding = SDL_GameControllerGetBindForAxis(controller, sdl_axis);
 | 
			
		||||
        mapping[switch_button] =
 | 
			
		||||
            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding);
 | 
			
		||||
        mapping.insert_or_assign(
 | 
			
		||||
            switch_button,
 | 
			
		||||
            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return mapping;
 | 
			
		||||
@ -729,8 +731,8 @@ AnalogMapping SDLState::GetAnalogMappingForDevice(const Common::ParamPackage& pa
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
    const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0));
 | 
			
		||||
    auto controller = joystick->GetSDLGameController();
 | 
			
		||||
    if (!controller) {
 | 
			
		||||
    auto* controller = joystick->GetSDLGameController();
 | 
			
		||||
    if (controller == nullptr) {
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -739,16 +741,18 @@ AnalogMapping SDLState::GetAnalogMappingForDevice(const Common::ParamPackage& pa
 | 
			
		||||
        SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTX);
 | 
			
		||||
    const auto& binding_left_y =
 | 
			
		||||
        SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTY);
 | 
			
		||||
    mapping[Settings::NativeAnalog::LStick] =
 | 
			
		||||
        BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(),
 | 
			
		||||
                                   binding_left_x.value.axis, binding_left_y.value.axis);
 | 
			
		||||
    mapping.insert_or_assign(Settings::NativeAnalog::LStick,
 | 
			
		||||
                             BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(),
 | 
			
		||||
                                                        binding_left_x.value.axis,
 | 
			
		||||
                                                        binding_left_y.value.axis));
 | 
			
		||||
    const auto& binding_right_x =
 | 
			
		||||
        SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTX);
 | 
			
		||||
    const auto& binding_right_y =
 | 
			
		||||
        SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTY);
 | 
			
		||||
    mapping[Settings::NativeAnalog::RStick] =
 | 
			
		||||
        BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(),
 | 
			
		||||
                                   binding_right_x.value.axis, binding_right_y.value.axis);
 | 
			
		||||
    mapping.insert_or_assign(Settings::NativeAnalog::RStick,
 | 
			
		||||
                             BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(),
 | 
			
		||||
                                                        binding_right_x.value.axis,
 | 
			
		||||
                                                        binding_right_y.value.axis));
 | 
			
		||||
    return mapping;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user