#pragma once
#include <opencv\cv.h>
#include <opencv\highgui.h>

namespace Domination {
	namespace Unmanaged {
		namespace OpenCV {

			public enum class VideoCaptureProperties {
				/// <summary>Current position of the video file in milliseconds or video capture timestamp</summary>
				PosMSEC = CV_CAP_PROP_POS_MSEC,
				/// <summary>0-based index of the frame to be decoded/captured next.</summary>
				PosFrames = CV_CAP_PROP_POS_FRAMES,
				/// <summary>Relative position of the video file: 0 - start of the film, 1 - end of the film.</summary>
				PosAviRatio = CV_CAP_PROP_POS_AVI_RATIO,
				/// <summary>Width of the frames in the video stream.</summary>
				FrameWidth = CV_CAP_PROP_FRAME_WIDTH,
				/// <summary>Height of the frames in the video stream.</summary>
				FrameHeight = CV_CAP_PROP_FRAME_HEIGHT,
				/// <summary>Frame rate.</summary>
				FPS = CV_CAP_PROP_FPS,
				/// <summary>4-character code of codec.</summary>
				FourCC = CV_CAP_PROP_FOURCC,
				/// <summary>Number of frames in the video file.</summary>
				FrameCount = CV_CAP_PROP_FRAME_COUNT,
				/// <summary>Format of the Mat objects returned by retrieve() .</summary>
				Format = CV_CAP_PROP_FORMAT,
				/// <summary>Backend-specific value indicating the current capture mode.</summary>
				Mode = CV_CAP_PROP_MODE,
				/// <summary>Brightness of the image (only for cameras).</summary>
				Brightness = CV_CAP_PROP_BRIGHTNESS,
				/// <summary>Contrast of the image (only for cameras).</summary>
				Contrast = CV_CAP_PROP_CONTRAST,
				/// <summary>Saturation of the image (only for cameras).</summary>
				Saturation = CV_CAP_PROP_SATURATION,
				/// <summary>Hue of the image (only for cameras).</summary>
				Hue = CV_CAP_PROP_HUE,
				/// <summary>Gain of the image (only for cameras).</summary>
				Gain = CV_CAP_PROP_GAIN,
				/// <summary>Exposure (only for cameras).</summary>
				Exposure = CV_CAP_PROP_EXPOSURE,
				/// <summary>Boolean flags indicating whether images should be converted to RGB.</summary>
				ConvertRGB = CV_CAP_PROP_CONVERT_RGB,
				///// <summary>Currently not supported</summary>
				//WhiteBalance = CV_CAP_PROP_WHITE_BALANCE,
				/// <summary>Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)</summary>
				Rectification = CV_CAP_PROP_RECTIFICATION
			};

		}
	}
}