USB  Видеокамеры  EVS  поставляются  с  WDM  драйверами реализующие 
технологию Microsoft DirectShow входящую в состав Microsoft DirectX.
Что позволяет им работать с большим количеством коммерческих и бесплатных
программ, поддерживающих данную технологию, таких как Ulead Video Studio,
Adobe Premier, AmCap, VirtualDub и др.

Для разработки собственных приложений см. документацию Microsoft DirectX SDK,
MSDN и данный пример.

******************************************************************************
Компиляция примера была проведена в Delphi 7
Данный пример - это адаптация PlayCap из Microsoft DirectX 9 SDK

Кроме того в сети Internet для среды программирования Delphi и С++ имеется 
множество готовых примеров и компонентов по технологиям DirectShow и 
VideoCapture.
******************************************************************************

Для управления камерой необходимо добавить в свой проект файл ECustomProperty.pas
где объявлены необходимые типы и функции:

Управление основными свойствами камеры, такими как Яркость,Контраст,Гамма и т.п.
осуществляется двумя стандартными интерфейсами IAMVideoProcAmp и IAMCameraControl.

Назначение отдельных свойств этих интерфейсов, немного изменено по сравнению со
стандартными. 
Для удобства в файле ECustomProperty.pas вводятся определения измененных свойств. 

Ниже приведено соответствие со стандартными:

tagEVSVideoProcAmpProperty  		-  tagVideoProcAmpProperty
 EVSVideoProcAmp_Brightness		- VideoProcAmp_Brightness   
 EVSVideoProcAmp_Contrast		- VideoProcAmp_Contrast,
 EVSVideoProcAmp_BalanceRed		- VideoProcAmp_Hue,
 EVSVideoProcAmp_Saturation		- VideoProcAmp_Saturation,
 EVSVideoProcAmp_Sharpness		- VideoProcAmp_Sharpness,
 EVSVideoProcAmp_Gamma			- VideoProcAmp_Gamma,
 EVSVideoProcAmp_ColorEnable		- VideoProcAmp_ColorEnable,
 EVSVideoProcAmp_BalanceBlue		- VideoProcAmp_WhiteBalance,
 EVSVideoProcAmp_BlackLevelControlMode	- VideoProcAmp_BacklightCompensation,
 EVSVideoProcAmp_Gain			- VideoProcAmp_Gain

tagEVSCameraControlProperty 		- tagCameraControlProperty 
  EVSCameraControl_XPan			- CameraControl_Pan,
  EVSCameraControl_YPan			- CameraControl_Tilt,
  EVSCameraControl_LoopAE		- CameraControl_Roll,
  EVSCameraControl_Zoom			- CameraControl_Zoom,
  EVSCameraControl_Exposure		- CameraControl_Exposure,
  EVSCameraControl_TLine		- CameraControl_Iris,
  EVSCameraControl_LevelAE		- CameraControl_Focus

В "аналоговых" камерах серии VSC-xxx-USB, интерфейс IAMCameraControl имеет
следующее соответствие:

tagEVSAnalogCameraControlProperty 		- tagCameraControlProperty 
  EVSAnalogCameraControl_Gain_ADC		- CameraControl_Pan,
  EVSAnalogCameraControl_BlackLevel_ADC		- CameraControl_Tilt,
  EVSAnalogCameraControl_BlackLevel_Manual	- CameraControl_Roll,
  EVSAnalogCameraControl_BlackLevel_Mode	- CameraControl_Zoom,
  EVSAnalogCameraControl_Exposure		- CameraControl_Exposure,
  EVSAnalogCameraControl_Iris			- CameraControl_Iris,
  EVSAnalogCameraControl_Focus			- CameraControl_Focus
  

Управление нестандартными свойствами осуществляется функциями:

SetCustomProperty(const MyObjectHandle	: THandle; 
			Request		: TRegCustomProerty; 
			Value		: Array of Integer);

GetCustomProperty(const MyObjectHandle	: THandle; 
			Request		: TRegCustomProerty; 
		  var	Value		: Array of Integer);

где:

 MyObjectHandle	- Handle на объект камеры (см. пример)

 Request	- Вид свойства:
	      		REQ_GET_DEVICE_ID	Get Device ID
      	  		REQ_GET_STATE		Get State
      			REQ_SET_VIDEO_INPUT	Set Video Input 1-4 
							(for Contrast USB)
      			REQ_RESERVED1		Reserved
      			REQ_RESERVED2		Reserved
      			REQ_SET_PORTD           Set PORTD
      			REQ_SET_VIDEO_OUTPUT	Set Video Output 0-3 (for Contrast USB)
      			REQ_ADDITIONAL_MODE 	Установка дополнительных режимов


 Value		- Массив Array[0..2] of integer (Значения зависят от 'Request')

		    для: 

			REQ_GET_DEVICE_ID  	(только чтение)		
				Value[0] - тип камеры:
						C_Unknown   =  0 - неизвестная
						C_Contrast  =  1 - 'Контраст USB'
						C_7620      =  2 - OV7620
						C_9630      =  3 - OV9630 (Vxx-135)
						C_2610      =  4 - OV2610 
						C_3610      =  5 - OV3610
						C_3620      =  5 - OV3620 (Vxx-335)
					      	C_Analog700 =  7 - VSC-74x-USB
      						C_9121      =  8 - OV9120/9121(Vxx-135)
      						C_5610      =  9 - 0V5610 (Vxx-535)
      						C_5620      = 10 - 0V5620 (Vxx-545)
      						C_2620      = 11
      						C_2630      = 12
      						C_MT9T001   = 13
      						C_MT9D111   = 14 - MT9D111/131(Vxx-245/235)
      						C_MT9P031   = 15
      						C_MT9V001   = 16
     						C_Analog500 = 17 - VSC-54x-USB
      						C_PO3130R0  = 18

				Value[1] - Зарезервировано
				Value[2] - Зарезервировано

			REQ_GET_STATE	   Переключает цифровой вход/выход на вход
				Value[0] - Зарезервировано
				Value[1] - состояние порта D (Цифровой вход) 
				Value[2] - Зарезервировано

			REQ_SET_VIDEO_INPUT	(только для 'Контраст USB')
				Value[0] - Номер входа
				Value[1] - Зарезервировано
				Value[2] - Зарезервировано

      			REQ_SET_PORTD      Переключает цифровой вход/выход на выход     
				Value[0] - значение порта D (Цифровой выход)
				Value[1] - Зарезервировано
				Value[2] - Зарезервировано

      			REQ_SET_VIDEO_OUTPUT	Set Video Output 0-3 (for Contrast USB)
				Value[0] - Номер входа к которому подключается видеовыход 
				Value[1] - Зарезервировано 
				Value[2] - Зарезервировано 

      			REQ_ADDITIONAL_MODE   Установка дополнительных режимов
                                Value[0] - Request
      					     REQADD_INTERPOLATION = 1  Режим интерполяции (1/0)
      					     REQADD_NOISE	  = 2  Уровень шумоподавления
      					     REQADD_AGAIN	  = 3  Включение дополнительного усиления (1/0)
      					     REQADD_SNAPSHOT	  = 4  SnapShot режим (1/0)
      					     REQADD_SLAVEMODE	  = 5  Включение вдущиго/ведомого режима (1/0)
      					     REQADD_JPEGQUALITY	  = 8  JPEG Quality
      					     REQADD_CANCELFRAME	  = 10 CancelFrame (только для 'Контраст USB')
                                Value[1] - Value
                                Value[2] - AddValue
      			
			REQ_RESERVED2  Зарезервировано



