//---------------------------------------------------------------------------
//
//	AJADSEnums.h
//
//	These are used to set the parameters of the filter.
//
//---------------------------------------------------------------------------
// $Id: AJADSEnums.h,v 1.18 2017/04/01 06:44:29 dkn Exp $
//---------------------------------------------------------------------------

#ifndef __AJADSENUMS_H_
#define __AJADSENUMS_H_

/**
*	List of DS supported Device IDs
*/
typedef enum tagAJADSDeviceID
{
	DS_ID_CORVID1    = 0x10244800,
	DS_ID_CORVID22   = 0x10293000,
	DS_ID_CORVID24   = 0x10402100,
	DS_ID_CORVID3G   = 0x10294900,
	DS_ID_CORVID44   = 0x10565400,
	DS_ID_CORVID88   = 0x10538200,
	DS_ID_IO4K       = 0x10478300,
	DS_ID_IO4KUFC    = 0x10478350,
	DS_ID_IOEXPRESS  = 0x10280300,
	DS_ID_IOXT       = 0x10378800,
	DS_ID_KONA3G     = 0x10294700,
	DS_ID_KONA3GQUAD = 0x10322950,
	DS_ID_KONA4      = 0X10518400,
	DS_ID_KONA4UFC   = 0X10518450,
	DS_ID_LHE_PLUS   = 0x10352300,
	DS_ID_LHI        = 0x10266400,
	DS_ID_TTAP       = 0x10416000,
	DS_ID_NOTFOUND   = -1
} AJADSDeviceID;

/**
*	List of DS supported video formats
*/
#ifdef __midl
cpp_quote("// Formats prefixed with DUAL_ are dual-link and are not used in DirectShow filters")
#endif	// __midl

typedef enum tagAJADSVideoFormat
{
	DS_FORMAT_UNKNOWN,                                          // 0
	DS_FORMAT_FIRST_HIGH_DEF_FORMAT,                            // 1
	DS_FORMAT_1080i_5000 = DS_FORMAT_FIRST_HIGH_DEF_FORMAT,     // ->1
	DS_FORMAT_1080psf_2500 = DS_FORMAT_1080i_5000,              // ->1
	DS_FORMAT_1080i_5994,                                       // 2
	DS_FORMAT_1080psf_2997 = DS_FORMAT_1080i_5994,              // ->2
	DS_FORMAT_1080i_6000,                                       // 3
	DS_FORMAT_1080psf_3000 = DS_FORMAT_1080i_6000,              // ->3
	DS_FORMAT_720p_5994,                                        // 4
	DS_FORMAT_720p_6000,                                        // 5
	DS_FORMAT_1080psf_2398,                                     // 6
	DS_FORMAT_1080psf_2400,                                     // 7
	DS_FORMAT_1080p_2997,                                       // 8
	DS_FORMAT_1080p_3000,                                       // 9
	DS_FORMAT_1080p_2500,                                       // 10
	DS_FORMAT_1080p_2398,                                       // 11
	DS_FORMAT_1080p_2400,                                       // 12
	DS_FORMAT_1080p_2K_2398,                                    // 13
	DS_FORMAT_1080p_2K_2400,                                    // 14
	DS_FORMAT_1080psf_2K_2398,                                  // 15
	DS_FORMAT_1080psf_2K_2400,                                  // 16
	DS_FORMAT_720p_5000,                                        // 17
	DUAL_FORMAT_1080p_5000,                                     // 18
	DUAL_FORMAT_1080p_5000_B = DUAL_FORMAT_1080p_5000,          // ->18
	DUAL_FORMAT_1080p_5994,                                     // 19
	DUAL_FORMAT_1080p_5994_B = DUAL_FORMAT_1080p_5994,          // ->19
	DUAL_FORMAT_1080p_6000,                                     // 20
	DUAL_FORMAT_1080p_6000_B = DUAL_FORMAT_1080p_6000,          // ->20
	DS_FORMAT_720p_2398,                                        // 21
	DS_FORMAT_720p_2500,                                        // 22
	DS_FORMAT_1080p_5000_A,                                     // 23
	DS_FORMAT_1080p_5994_A,                                     // 24
	DS_FORMAT_1080p_6000_A,                                     // 25
	DS_FORMAT_1080p_2K_2500,                                    // 26
	DS_FORMAT_1080psf_2K_2500,                                  // 27
	DS_FORMAT_1080psf_2500_2,                                   // 28 - psf only (non-interlaced), deprecates DS_FORMAT_1080psf_2500
	DS_FORMAT_1080psf_2997_2,                                   // 29 - psf only (non-interlaced), deprecates DS_FORMAT_1080psf_2997
	DS_FORMAT_1080psf_3000_2,                                   // 30 - psf only (non-interlaced), deprecates DS_FORMAT_1080psf_3000
	// Add new HD formats here
	DS_FORMAT_END_HIGH_DEF_FORMATS,                             // 31

	DS_FORMAT_FIRST_STANDARD_DEF_FORMAT = 32,
	DS_FORMAT_525_5994 = DS_FORMAT_FIRST_STANDARD_DEF_FORMAT,   // 32
	DS_FORMAT_625_5000,                                         // 33
	DS_FORMAT_525_2398,                                         // 34
	DS_FORMAT_525_2400,                                         // 35
	DS_FORMAT_525psf_2997,                                      // 36
	DS_FORMAT_625psf_2500,                                      // 37
	// Add new SD formats here
	DS_FORMAT_END_STANDARD_DEF_FORMATS,                         // 38

	// 2K Starts Here.
	DS_FORMAT_FIRST_2K_DEF_FORMAT	=  64,
	DS_FORMAT_2K_1498=DS_FORMAT_FIRST_2K_DEF_FORMAT,            // 64
	DS_FORMAT_2K_1500,                                          // 65
	DS_FORMAT_2K_2398,                                          // 66
	DS_FORMAT_2K_2400,                                          // 67
	DS_FORMAT_2K_2500,                                          // 68
	// Add new 2K formats here
	DS_FORMAT_END_2K_DEF_FORMATS,                               // 69

	// 4K Starts Here.
	DS_FORMAT_FIRST_4K_DEF_FORMAT  =  80,
	DS_FORMAT_4x1920x1080psf_2398=DS_FORMAT_FIRST_4K_DEF_FORMAT, // 80
	DS_FORMAT_4x1920x1080psf_2400,                              // 81
	DS_FORMAT_4x1920x1080psf_2500,                              // 82
	DS_FORMAT_4x1920x1080p_2398,                                // 83
	DS_FORMAT_4x1920x1080p_2400,                                // 84
	DS_FORMAT_4x1920x1080p_2500,                                // 85
	DS_FORMAT_4x2048x1080psf_2398,                              // 86
	DS_FORMAT_4x2048x1080psf_2400,                              // 87
	DS_FORMAT_4x2048x1080psf_2500,                              // 88
	DS_FORMAT_4x2048x1080p_2398,                                // 89
	DS_FORMAT_4x2048x1080p_2400,                                // 90
	DS_FORMAT_4x2048x1080p_2500,                                // 91
	DS_FORMAT_4x1920x1080p_2997,                                // 92
	DS_FORMAT_4x1920x1080p_3000,                                // 93
	DS_FORMAT_4x1920x1080psf_2997,                              // 94 NOT SUPPORTED
	DS_FORMAT_4x1920x1080psf_3000,                              // 95 NOT SUPPORTED
	DS_FORMAT_4x2048x1080p_2997,                                // 96
	DS_FORMAT_4x2048x1080p_3000,                                // 97
	DS_FORMAT_4x2048x1080psf_2997,                              // 98 NOT SUPPORTED
	DS_FORMAT_4x2048x1080psf_3000,                              // 99 NOT SUPPORTED
	DS_FORMAT_4x1920x1080p_5000,                                // 100
	DS_FORMAT_4x1920x1080p_5994,                                // 101
	DS_FORMAT_4x1920x1080p_6000,                                // 102
	DS_FORMAT_4x2048x1080p_5000,                                // 103
	DS_FORMAT_4x2048x1080p_5994,                                // 104
	DS_FORMAT_4x2048x1080p_6000,                                // 105
	DS_FORMAT_4x2048x1080p_4795,                                // 106
	DS_FORMAT_4x2048x1080p_4800,                                // 107
	DS_FORMAT_4x2048x1080p_11988,                               // 108
	DS_FORMAT_4x2048x1080p_12000,                               // 109
	// Add new 4K formats here
	DS_FORMAT_END_4K_DEF_FORMATS,                               // 110

	DS_FORMAT_FIRST_HIGH_DEF_FORMAT2 = 110,
	DS_FORMAT_1080p_2K_6000=DS_FORMAT_FIRST_HIGH_DEF_FORMAT2,   // 110
	DS_FORMAT_1080p_2K_6000_A = DS_FORMAT_1080p_2K_6000,	    // ->110
	DS_FORMAT_1080p_2K_5994,                                    // 111
	DS_FORMAT_1080p_2K_5994_A = DS_FORMAT_1080p_2K_5994,	    // ->111
	DS_FORMAT_1080p_2K_2997,                                    // 112
	DS_FORMAT_1080p_2K_3000,                                    // 113
	DS_FORMAT_1080p_2K_5000,                                    // 114
	DS_FORMAT_1080p_2K_5000_A = DS_FORMAT_1080p_2K_5000,        // ->114
	DS_FORMAT_1080p_2K_4795,                                    // 115
	DS_FORMAT_1080p_2K_4795_A = DS_FORMAT_1080p_2K_4795,        // ->115
	DS_FORMAT_1080p_2K_4800,                                    // 116
	DS_FORMAT_1080p_2K_4800_A = DS_FORMAT_1080p_2K_4800,        // ->116
	DUAL_FORMAT_1080p_2K_4795_B,                                // 117
	DUAL_FORMAT_1080p_2K_4800_B,                                // 118
	DUAL_FORMAT_1080p_2K_5000_B,                                // 119
	DUAL_FORMAT_1080p_2K_5994_B,                                // 120
	DUAL_FORMAT_1080p_2K_6000_B,                                // 121
	DS_FORMAT_END_HIGH_DEF_FORMATS2,                            // 122
	DS_MAX_NUM_VIDEO_FORMATS = 	DS_FORMAT_END_HIGH_DEF_FORMATS2
} AJADSVideoFormat;

/**
*	List of DS supported inputs
*/
typedef enum tagAJADSInputSource
{
	DS_INPUTSOURCE_ANALOG = 0,
	DS_INPUTSOURCE_HDMI,
	DS_INPUTSOURCE_SDI1,
	DS_INPUTSOURCE_SDI2,
	DS_INPUTSOURCE_SDI3,
	DS_INPUTSOURCE_SDI4,
	DS_INPUTSOURCE_SDI5,
	DS_INPUTSOURCE_SDI6,
	DS_INPUTSOURCE_SDI7,
	DS_INPUTSOURCE_SDI8,
	DS_INPUTSOURCE_INVALID,
	DS_NUM_INPUTSOURCES = DS_INPUTSOURCE_INVALID
} AJADSInputSource;

/**
*	List of DS supported outputs
*/
typedef enum tagAJADSOutputDestination
{
	DS_OUTPUTDESTINATION_ANALOG = 0,
	DS_OUTPUTDESTINATION_HDMI,
	DS_OUTPUTDESTINATION_SDI1,
	DS_OUTPUTDESTINATION_SDI2,
	DS_OUTPUTDESTINATION_SDI3,
	DS_OUTPUTDESTINATION_SDI4,
	DS_OUTPUTDESTINATION_SDI5,
	DS_OUTPUTDESTINATION_SDI6,
	DS_OUTPUTDESTINATION_SDI7,
	DS_OUTPUTDESTINATION_SDI8,
	DS_OUTPUTDESTINATION_INVALID,
	DS_NUM_OUTPUTDESTINATIONS = DS_OUTPUTDESTINATION_INVALID
} AJADSOutputDestination;

/**
*	List of DS supported reference inputs
*/
typedef enum tagAJADSReferenceSource
{
	DS_REFERENCE_EXTERNAL, 
	DS_REFERENCE_INPUT1, 
	DS_REFERENCE_INPUT2,
	DS_REFERENCE_FREERUN,
	DS_REFERENCE_ANALOG_INPUT, 
	DS_REFERENCE_HDMI_INPUT,
	DS_REFERENCE_INPUT3,
	DS_REFERENCE_INPUT4,
	DS_REFERENCE_INPUT5,
	DS_REFERENCE_INPUT6,
	DS_REFERENCE_INPUT7,
	DS_REFERENCE_INPUT8,
	DS_REFERENCE_INVALID,
	DS_NUM_REFERENCE_INPUTS = DS_REFERENCE_INVALID
} AJADSReferenceSource;

/**
*	List of DS supported audio sources
*/
typedef enum tagAJADSAudioSource
{
	DS_AUDIO_EMBEDDED,
	DS_AUDIO_AES,
	DS_AUDIO_ANALOG,
	DS_AUDIO_HDMI,
	DS_AUDIO_SOURCE_INVALID,
	DS_MAX_NUM_AudioSources = DS_AUDIO_SOURCE_INVALID
} AJADSAudioSource;

/**
*	List of DS supported ADC formats
*/
typedef enum tagAJADSADCMode
{
	DS_480iADCComponentBeta,
	DS_480iADCComponentSMPTE,
	DS_480iADCSVideoUS,
	DS_480iADCCompositeUS,
	DS_480iADCComponentBetaJapan,
	DS_480iADCComponentSMPTEJapan,
	DS_480iADCSVideoJapan,
	DS_480iADCCompositeJapan,
	DS_576iADCComponentBeta,
	DS_576iADCComponentSMPTE,
	DS_576iADCSVideo,
	DS_576iADCComposite,
	DS_720p_60,                 // 60 + 59.94
	DS_1080i_30,                // 30 + 29.97
	DS_720p_50,
	DS_1080i_25,
	DS_1080pSF24,               // 24 + 23.98	
	DS_AJADSADCMode_INVALID,
	DS_MAX_NUM_AJADSADCModes = DS_AJADSADCMode_INVALID
} AJADSADCMode;

/**
*	List of DS supported DAC formats
*/
typedef enum tagAJADSDACMode
{
	DS_480iRGB,
	DS_480iYPbPrSMPTE,
	DS_480iYPbPrBetacam525,	
	DS_480iYPbPrBetacamJapan,
	DS_480iNTSC_US_Composite,	
	DS_480iNTSC_Japan_Composite,
	DS_576iRGB,	
	DS_576iYPbPrSMPTE,
	DS_576iPAL_Composite,	
	DS_1080iRGB,
	DS_1080psfRGB,	
	DS_720pRGB,
	DS_1080iSMPTE,	
	DS_1080psfSMPTE,
	DS_720pSMPTE,

	// Next modes are not supported
//	DS_1080iXVGA,
//	DS_1080psfXVGA,
//	DS_720pXVGA,
//	DS_2Kx1080RGB,
//	DS_2Kx1080SMPTE,
//	DS_2Kx1080XVGA,

	DS_AJADSDACMode_INVALID,
	DS_MAX_NUM_AJADSDACModes = DS_AJADSDACMode_INVALID
} AJADSDACMode;

/**
*	List of DS supported scaler modes
*/
typedef enum tagAJADSScaleMode
{
	DS_SCALE_NONE = 0,
	DS_SCALE_HDV,
	DS_SCALE_DVCPROHD
} AJADSScaleMode;

/**
*	List of DS supported fourcc formats
*/
typedef enum tagAJADSFCCMode
{
	DS_FCC_UNK = 0,
	DS_FCC_UYVY = 0x59565955,    // Swap('UYVY')
	DS_FCC_YUY2 = 0x32595559,    // Swap('YUY2')
	DS_FCC_ARGB = 0x773c9ac0,    // MEDIASUBTYPE_ARGB32.Data1
	DS_FCC_V210 = 0x30313276,    // Swap('v210')
	DS_FCC_AB10 = 0x576f7893,    // MEDIASUBTYPE_A2B10G10R10.Data1

	// [DKN 2017-03-27] ATTENTION. We can't differentiate FOURCC DS_FCC_AB10 and DS_FCC_AR10
	// from NTV2FrameBufferFormat - we need in additional variable.
	// Solution: DS_FCC_AR10 removed from supported.
//	DS_FCC_AR10 = 0x2f8bb76d,    // MEDIASUBTYPE_A2R10G10B10.Data1

	DS_FCC_BR16 = 0x36315242     // Swap('BR16'). Color space B16G16R16: B16: bytes 5-4, G16: bytes 3-2, R16: bytes 1-0
} AJADSFCCMode;

/////////////////////////////////////////////////////////////////////////////
#ifdef __midl
cpp_quote("//-------------------------------------------------------------------------------------------------------------")
cpp_quote("// Important notes about connection mediatypes: the following media types are supported (shown only for 1080i50)")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_UYVY is subtype from uuids.h, biCompression = 'UYVY' = 0x59565955")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_UYVY / FORMAT_VideoInfo2 ), size=4147200, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=829440000, errRate=0, AvgT=0.040")
cpp_quote("//    ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=16, compress=UYVY, sizeImg=4147200")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_UYVY / FORMAT_VideoInfo ), size=4147200, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=829440000, errRate=0, AvgT=0.040")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=16, compress=UYVY, sizeImg=4147200")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_YUY2 is subtype from uuids.h, biCompression = 'YUY2' = 0x32595559")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_YUY2 / FORMAT_VideoInfo2 ), size=4147200, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=829440000, errRate=0, AvgT=0.040")
cpp_quote("//    ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=16, compress=YUY2, sizeImg=4147200")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_YUY2 / FORMAT_VideoInfo ), size=4147200, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=829440000, errRate=0, AvgT=0.040")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=16, compress=YUY2, sizeImg=4147200")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_ARGB32 is subtype from uuids.h, biCompression = BI_RGB = 0")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_ARGB32 / FORMAT_VideoInfo2 ), size=8294400, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1658880000, errRate=0, AvgT=0.040")
cpp_quote("//    MT: ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=32, compress=BI_RGB, sizeImg=8294400")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_ARGB32 / FORMAT_VideoInfo ), size=8294400, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1658880000, errRate=0, AvgT=0.040")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=32, compress=BI_RGB, sizeImg=8294400")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_v210 = {30313276-0000-0010-8000-00AA00389B71}, biCompression = 'v210' = 0x30313276")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_v210 / FORMAT_VideoInfo2 ), size=5529600, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1105920000, errRate=0, AvgT=0.040")
cpp_quote("//    ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=20, compress=v210, sizeImg=5529600")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_v210 / FORMAT_VideoInfo ), size=5529600, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1105920000, errRate=0, AvgT=0.040")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=20, compress=v210, sizeImg=5529600")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_A2B10G10R10 is subtype from uuids.h. ATTENTION. biCompression = 'AB10' = 0x30314241 != MEDIASUBTYPE_A2B10G10R10.Data1")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_A2B10G10R10 / FORMAT_VideoInfo2 ), size=8294400, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1658880000, errRate=0, AvgT=0.040")
cpp_quote("//    ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=32, compress=AB10, sizeImg=8294400")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_A2B10G10R10 / FORMAT_VideoInfo ), size=8294400, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=1658880000, errRate=0, AvgT=0.040")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=32, compress=AB10, sizeImg=8294400")
cpp_quote("//")
cpp_quote("//  MEDIASUBTYPE_BR16 = {36315242-0000-0010-8000-00AA00389B71}, biCompression = 'BR16' = 0x36315242")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_BR16 / FORMAT_VideoInfo2 ), size=12441600, cbForm=112, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=2488320000, errRate=0, AvgT=0.040")
cpp_quote("//    ilace=0xA5 (INTERLACED), copProt=0x0, aspect={16,9}, ctrl=0x0")
cpp_quote("//    BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=48, compress=BR16, sizeImg=12441600")
cpp_quote("//    ( MEDIATYPE_Video / MEDIASUBTYPE_BR16 / FORMAT_VideoInfo ), size=12441600, cbForm=88, fix:Y, compr:N")
cpp_quote("//    src=[0,0:0,0], targ=[0,0:0,0], rate=2488320000, errRate=0, AvgT=0.040")
cpp_quote("//    MT:  BITMAPINFOHEADER: size=40, w=1920, h=1080, planes=1, bits=48, compress=BR16, sizeImg=12441600")
cpp_quote("//")
cpp_quote("//-------------------------------------------------------------------------------------------------------------")
cpp_quote("")
#endif

/**
*	List of DS supported key modes
*/
typedef enum tagAJADSKEYMode
{
	DS_KEYMODE_OFF = 0,
	DS_KEYMODE_1,
	DS_KEYMODE_2
} AJADSKEYMode;

// Max number of boards in one PC"
const int AJA_MAX_BOARDS = 8;

// Max number of channels in one board
const int AJA_MAX_CHANNELS = 8;

/////////////////////////////////////////////////////////////////////////////
#ifdef __midl

cpp_quote("// Success/error codes -------------------------------------")

cpp_quote("#define FACILITY_AJA					0xA7A")

cpp_quote("#define AJA_HRSUCCESS(code)				MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_AJA, (code))")
cpp_quote("#define AJA_HRERROR(code)				MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AJA, (code))")

//---------------------------------------------------------------------------
// Success codes

// For sample only:
// AJA_S_SMALL_PROBLEM: some small problem exist
// cpp_quote("#define AJA_S_SMALL_PROBLEM				AJA_HRSUCCESS(0x0001)")

//---------------------------------------------------------------------------
// Error codes

cpp_quote("// Device (driver or hardware) error. Computer must be rebooted.")
cpp_quote("#define AJA_E_DEVICE					AJA_HRERROR(0x0001)")

cpp_quote("// Auto circuilate can't enter into running mode.")
cpp_quote("// Possible invalid parameters of card: color space, SDI/analog input,")
cpp_quote("// component/S-Video/composite input selection, etc.")
cpp_quote("#define AJA_E_AUTOCIRCULATE_NOT_RUNNING	AJA_HRERROR(0x0002)")

cpp_quote("// Device already locked by the other instance(s) of filter and properties")
cpp_quote("// can't be changed (for example, Reference Source)")
cpp_quote("#define AJA_E_DEVICE_LOCKED				AJA_HRERROR(0x0003)")

cpp_quote("// Wanted widgect (Frame store, Color convertor, input, output, etc.) is busy by")
cpp_quote("// the other instance and can't be used in current moment")
cpp_quote("#define AJA_E_WIDGET_BUSY				AJA_HRERROR(0x0004)")

cpp_quote("// Error returned when registering multi-channel filters, if they are")
cpp_quote("// not found (found only single-channel filters)")
cpp_quote("#define AJA_E_REG_MULTICHAN				AJA_HRERROR(0x0005)")

cpp_quote("// Wanted property is not supported by device (video format, color space,")
cpp_quote("// input source, output destination, etc.).")
cpp_quote("#define AJA_E_UNSUPPORTED				AJA_HRERROR(0x0006)")

cpp_quote("// Selected video format can't be set - found instance of the filter")
cpp_quote("// with the other interlacing.")
cpp_quote("#define AJA_E_INTERLACING				AJA_HRERROR(0x0007)")

cpp_quote("//----------------------------------------------------------")

#endif	// __midl

/////////////////////////////////////////////////////////////////////////////
#endif	// __AJADSENUMS_H_
