[wpilib] Remove UserControls (#8973)

It was too complex, and we can solve it by figuring out how to make
singleton GenericHID objects, implemented in #8970.
This commit is contained in:
Thad House
2026-06-11 15:33:51 -07:00
committed by GitHub
parent c647e67de0
commit 025732093f
10 changed files with 55 additions and 267 deletions

View File

@@ -1,33 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package org.wpilib.driverstation;
import org.wpilib.driverstation.internal.DriverStationBackend;
/**
* A default implementation of UserControls that provides Gamepad instances for each of the 6
* joystick ports provided by the DS.
*/
public class DefaultUserControls implements UserControls {
private final Gamepad[] m_gamepads;
/** Constructs a DefaultUserControls instance with Gamepads for each port. */
public DefaultUserControls() {
m_gamepads = new Gamepad[DriverStationBackend.JOYSTICK_PORTS];
for (int i = 0; i < m_gamepads.length; i++) {
m_gamepads[i] = new Gamepad(i);
}
}
/**
* Returns the Gamepad instance for the specified port.
*
* @param port The joystick port number.
* @return The Gamepad instance for the given port.
*/
public Gamepad getGamepad(int port) {
return m_gamepads[port];
}
}

View File

@@ -1,15 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package org.wpilib.driverstation;
/**
* An interface representing user controls such as gamepads or joysticks. If your main robot class
* has a UserControlsInstance attribute with a class implementing this interface, the constructor is
* able to receive an instance of that class. Additionally, any OpModes can also receive that same
* instance.
*
* <p>The implementation of this class must have a default constructor
*/
public interface UserControls {}

View File

@@ -1,26 +0,0 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package org.wpilib.driverstation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* An annotation to specify the UserControls implementation class to be used for a robot. Apply this
* annotation to your main robot class, providing a class that implements the UserControls
* interface.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserControlsInstance {
/**
* The UserControls implementation class to be used.
*
* @return The class that implements UserControls.
*/
Class<? extends UserControls> value();
}