using System.Collections.Generic; using Inspectron.Camera.Image; namespace Inspectron.Camera { public interface ICamera { /// /// Returns the name of the camera /// string Name { get; } /// /// Opens the camera /// void Open(); /// /// Returns true if the camera is opened /// bool IsOpen { get; } /// /// Closes the camera /// void Close(); /// /// Returns true if the camera is live /// bool IsGrabbingContinuous { get; } /// /// Stats live asynchronous acquisition. Images are transmitted the ImageGrabbed Event /// void StartGrabContinuous(); /// /// Stops the asynchronous acquisition. /// void StopGrabContinuous(); /// /// Loads the parameters from a filename /// /// void LoadParameters(string parametersFile); /// /// Saves the camera parameters to the given filename /// /// void SaveParameters(string parametersFile); /// /// Saves the parameters to the camera memory /// void SaveParametersToDevice(); /// /// Synchronously grab an image /// /// IImage GrabSingle(); /// /// Event occuring when a new frame is acquired /// event ImageGrabbedHandler ImageGrabbed; /// /// Returns the capabilities of the camera /// ICameraCapabilities Capabilities { get; } /// /// Returns a Ienumerable containing all of the camera /// IEnumerable Parameters { get; } /// /// Reference to Parent Camera Provider /// ICameraProvider Provider { get; } } /// /// Handler called when an image has been grabbed /// /// the grabbed image public delegate void ImageGrabbedHandler(ICamera sender, IImage image); }