Toggle cameras only once.
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / CameraFeeds.java
CommitLineData
409d6878
ME
1package org.usfirst.frc.team3501.robot;
2
2ada01fd
RH
3import edu.wpi.cscore.AxisCamera;
4import edu.wpi.cscore.UsbCamera;
b7b608d6 5import edu.wpi.cscore.VideoSource;
409d6878
ME
6import edu.wpi.first.wpilibj.CameraServer;
7
8public class CameraFeeds {
50a075d8
RH
9 // private final int intakeCam;
10 // private final int climberCam;
4dff9cc3 11 private VideoSource curCam;
409d6878 12 private CameraServer server;
50a075d8
RH
13 private static UsbCamera intakeCam;
14 private static AxisCamera climberCam;
4dff9cc3
RH
15 private static String usbCamName;
16 private static String axisCamName;
4bc0cb18 17 private static CameraFeeds cameraFeeds = null;
409d6878 18
fbc1210e 19 @SuppressWarnings("deprecation")
9ea6a533 20 private CameraFeeds(/* Joystick Button */) {
85c0135e
RH
21 usbCamName = intakeCam.getName();
22 axisCamName = climberCam.getName();
409d6878 23 server = CameraServer.getInstance();
85c0135e 24 climberCam = server.addAxisCamera(axisCamName, "10.35.1.11");
4dff9cc3 25 intakeCam = server.startAutomaticCapture();
9ea6a533 26 curCam = climberCam;
409d6878 27 }
7638f542 28
4bc0cb18 29 public static CameraFeeds getCameraFeeds() {
7638f542
RH
30 if (cameraFeeds == null) {
31 cameraFeeds = new CameraFeeds();
32 }
33 return cameraFeeds;
34
4bc0cb18 35 }
409d6878
ME
36
37 public void init() {
fb2aaf9c 38 changeCam(climberCam);
409d6878
ME
39 }
40
4dff9cc3 41 public void toggleCamera() {
fb2aaf9c 42 System.out.println("enter toggleCamera");
4dff9cc3 43 if (curCam.equals(intakeCam)) {
fb2aaf9c 44 changeCam(climberCam);
4dff9cc3 45 curCam = climberCam;
fb2aaf9c 46 System.out.println("Switching to climber camera.");
85c0135e 47 } else if (curCam.equals(climberCam)) {
fb2aaf9c 48 changeCam(intakeCam);
4dff9cc3 49 curCam = intakeCam;
fb2aaf9c 50 System.out.println("Switching to intake camera.");
4dff9cc3 51 }
409d6878
ME
52 }
53
54 /**
50a075d8 55 *
4bc0cb18 56 * Change the camera to get image from to a different one
409d6878 57 *
7638f542 58 * newId for camera
409d6878 59 */
4dff9cc3 60 public void changeCam(VideoSource cam) {
9ea6a533 61 server.removeCamera(curCam.getName());
4dff9cc3 62 server.addCamera(cam);
409d6878
ME
63 }
64}