001/*
002 * Copyright (C) Cross The Road Electronics.  All rights reserved.
003 * License information can be found in CTRE_LICENSE.txt
004 * For support and suggestions contact support@ctr-electronics.com or file
005 * an issue tracker at https://github.com/CrossTheRoadElec/Phoenix-Releases
006 */
007package com.ctre.phoenixpro.wpiutils;
008
009import com.ctre.phoenixpro.unmanaged.Unmanaged;
010
011import edu.wpi.first.hal.HAL;
012import edu.wpi.first.hal.HAL.SimPeriodicBeforeCallback;
013import edu.wpi.first.wpilibj.DriverStation;
014
015public class AutoFeedEnable implements AutoCloseable {
016    private static final AutoFeedEnable autoFeedEnable = new AutoFeedEnable();
017    private SimPeriodicBeforeCallback simPeriodicCallback = null;
018
019    public static AutoFeedEnable getInstance() {
020        return autoFeedEnable;
021    }
022
023    private AutoFeedEnable() {
024        simPeriodicCallback = HAL.registerSimPeriodicBeforeCallback(() -> {
025            if (DriverStation.isEnabled()) {
026                Unmanaged.feedEnable(100);
027            }
028        });
029    }
030
031    @Override
032    public void close() {
033        if (simPeriodicCallback != null) {
034            simPeriodicCallback.close();
035            simPeriodicCallback = null;
036        }
037    }
038}