// Created with MonoDevelop
//
//    Copyright (C) 2013 Hiperscan GmbH Dresden, Germany
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;

using Hiperscan.SGS.Common;
using Hiperscan.Spectroscopy;
using Hiperscan.Spectroscopy.IO;
using Hiperscan.Unix;
using Hiperscan.SGS.SerialInterface;

namespace Hiperscan.SGS.Benchtop
{
    public partial class StabilizedFinderX
    {
        public delegate void BeforeSaveSpectrumHandler(Spectrum spectrum);
        public event BeforeSaveSpectrumHandler BeforeSaveSpectrum;

        public delegate void ShowInfoMessageHandler(string msg);
        public event ShowInfoMessageHandler ShowInfoMessage;

        public delegate void WaitForLightSourceHandler(TimeSpan remaining);
        public event WaitForLightSourceHandler OnWaitForLightSource;

        public delegate void FinderStatusChangedHandler(IDevice dev, FinderStatus status);
        public event FinderStatusChangedHandler FinderStatusChanged;

        public delegate void ExternalCalibrationStartedHandler();
        public event ExternalCalibrationStartedHandler ExternalCalibrationStarted;

        public delegate void ExternalCalibrationFinishedHandler(bool success);
        public event ExternalCalibrationFinishedHandler ExternalCalibrationFinished;

        public delegate void ExternalRecalibrationFailedHandler();
        public event ExternalRecalibrationFailedHandler ExternalCalibrationFailed;

    }
}
