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);
}