using System.Collections.Generic;
using System.Drawing;

namespace EOSDigital.API
{
	public interface ICanonAPI
	{
		/// <summary>
		/// Fires if a new camera is added
		/// </summary>
		event CameraAddedHandler CameraAdded;


		/// <summary>
		/// Terminates the SDK and disposes resources
		/// </summary>
		void Dispose();


		/// <summary>
		/// Get a list of all cameras connected to the host.
		/// <para>If a camera has been connected previously, the same instance of the class is returned.</para>
		/// </summary>
		/// <returns>A list of connected cameras</returns>
		/// <exception cref="ObjectDisposedException">This instance has been disposed already</exception>
		/// <exception cref="SDKException">An SDK call failed</exception>
		List<ICamera> GetCameraList();


		/// <summary>
		/// Gets a thumbnail from a Raw or Jpg image
		/// </summary>
		/// <param name="filepath">Path to the image file</param>
		/// <returns>A <see cref="Bitmap"/> thumbnail from the provided image file</returns>
		Bitmap GetFileThumb(string filepath);
	}
}