windows-nt/Source/XPSP1/NT/drivers/wdm/capture/mini/1394dcam/propdata.h
2020-09-26 16:20:57 +08:00

506 lines
15 KiB
C

//===========================================================================
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1996 - 2000 Microsoft Corporation. All Rights Reserved.
//
//===========================================================================
//
// Video and camera properties of a 1394 desktop digital camera
//
#ifndef _PROPDATA_H
#define _PROPDATA_H
// ------------------------------------------------------------------------
// S O N Y D i g i t a l C a m e r a
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Property set for VideoProcAmp
// ------------------------------------------------------------------------
// Default values for some of the properties
#define SONYDCAM_DEF_BRIGHTNESS 12
#define SONYDCAM_DEF_HUE 128
#define SONYDCAM_DEF_SATURATION 25
#define SONYDCAM_DEF_SHARPNESS 15
#define SONYDCAM_DEF_WHITEBALANCE 160
#define SONYDCAM_DEF_ZOOM 640
#define SONYDCAM_DEF_FOCUS 1600
//
// First define all of the ranges and stepping values
//
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG BrightnessRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
0, // Minimum in (IRE * 100) units
15 // Maximum in (IRE * 100) units
}
};
const static LONG BrightnessDefault = SONYDCAM_DEF_BRIGHTNESS;
static KSPROPERTY_MEMBERSLIST BrightnessMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (BrightnessRangeAndStep),
SIZEOF_ARRAY (BrightnessRangeAndStep),
0
},
(PVOID) BrightnessRangeAndStep,
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (BrightnessDefault),
sizeof (BrightnessDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &BrightnessDefault,
}
};
static KSPROPERTY_VALUES BrightnessValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (BrightnessMembersList),
BrightnessMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG SharpnessRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
0, // Minimum in (gain * 100) units
15 // Maximum in (gain * 100) units
}
};
const static LONG SharpnessDefault = SONYDCAM_DEF_SHARPNESS;
static KSPROPERTY_MEMBERSLIST SharpnessMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (SharpnessRangeAndStep),
SIZEOF_ARRAY (SharpnessRangeAndStep),
0
},
(PVOID) SharpnessRangeAndStep
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (SharpnessDefault),
sizeof (SharpnessDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &SharpnessDefault,
}
};
static KSPROPERTY_VALUES SharpnessValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (SharpnessMembersList),
SharpnessMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG HueRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
96, // Minimum in (gain * 100) units
160 // Maximum in (gain * 100) units
}
};
const static LONG HueDefault = SONYDCAM_DEF_HUE;
static KSPROPERTY_MEMBERSLIST HueMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (HueRangeAndStep),
SIZEOF_ARRAY (HueRangeAndStep),
0
},
(PVOID) HueRangeAndStep
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (HueDefault),
sizeof (HueDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &HueDefault,
}
};
static KSPROPERTY_VALUES HueValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (HueMembersList),
HueMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG SaturationRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
0, // Minimum in (gain * 100) units
199 // Maximum in (gain * 100) units
}
};
const static LONG SaturationDefault = SONYDCAM_DEF_SATURATION;
static KSPROPERTY_MEMBERSLIST SaturationMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (SaturationRangeAndStep),
SIZEOF_ARRAY (SaturationRangeAndStep),
0
},
(PVOID) SaturationRangeAndStep
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (SaturationDefault),
sizeof (SaturationDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &SaturationDefault,
}
};
static KSPROPERTY_VALUES SaturationValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (SaturationMembersList),
SaturationMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG WhiteBalanceRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
32, // Minimum in (gain * 100) units
224 // Maximum in (gain * 100) units
}
};
const static LONG WhiteBalanceDefault = SONYDCAM_DEF_WHITEBALANCE;
static KSPROPERTY_MEMBERSLIST WhiteBalanceMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (WhiteBalanceRangeAndStep),
SIZEOF_ARRAY (WhiteBalanceRangeAndStep),
0
},
(PVOID) WhiteBalanceRangeAndStep
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (WhiteBalanceDefault),
sizeof (WhiteBalanceDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &WhiteBalanceDefault,
}
};
static KSPROPERTY_VALUES WhiteBalanceValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (WhiteBalanceMembersList),
WhiteBalanceMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG FocusRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
0, // Minimum in (IRE * 100) units
3456 // Maximum in (IRE * 100) units
}
};
const static LONG FocusDefault = SONYDCAM_DEF_FOCUS;
static KSPROPERTY_MEMBERSLIST FocusMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (FocusRangeAndStep),
SIZEOF_ARRAY (FocusRangeAndStep),
0
},
(PVOID) FocusRangeAndStep,
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (FocusDefault),
sizeof (FocusDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &FocusDefault,
}
};
static KSPROPERTY_VALUES FocusValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (FocusMembersList),
FocusMembersList
};
// ------------------------------------------------------------------------
static KSPROPERTY_STEPPING_LONG ZoomRangeAndStep [] =
{
{
1, // SteppingDelta (range / steps)
0, // Reserved
64, // Minimum in (IRE * 100) units
1855 // Maximum in (IRE * 100) units
}
};
const static LONG ZoomDefault = SONYDCAM_DEF_ZOOM;
static KSPROPERTY_MEMBERSLIST ZoomMembersList [] =
{
{
{
KSPROPERTY_MEMBER_RANGES,
sizeof (ZoomRangeAndStep),
SIZEOF_ARRAY (ZoomRangeAndStep),
0
},
(PVOID) ZoomRangeAndStep,
},
{
{
KSPROPERTY_MEMBER_VALUES,
sizeof (ZoomDefault),
sizeof (ZoomDefault),
KSPROPERTY_MEMBER_FLAG_DEFAULT
},
(PVOID) &ZoomDefault,
}
};
static KSPROPERTY_VALUES ZoomValues =
{
{
STATICGUIDOF (KSPROPTYPESETID_General),
VT_I4,
0
},
SIZEOF_ARRAY (ZoomMembersList),
ZoomMembersList
};
// ------------------------------------------------------------------------
DEFINE_KSPROPERTY_TABLE(VideoProcAmpProperties)
{
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
TRUE, // SetSupported or Handler
&BrightnessValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_VIDEOPROCAMP_SHARPNESS,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
TRUE, // SetSupported or Handler
&SharpnessValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_VIDEOPROCAMP_HUE,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
TRUE, // SetSupported or Handler
&HueValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_VIDEOPROCAMP_SATURATION,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
TRUE, // SetSupported or Handler
&SaturationValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
TRUE, // SetSupported or Handler
&WhiteBalanceValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
};
DEFINE_KSPROPERTY_TABLE(CameraControlProperties)
{
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_CAMERACONTROL_FOCUS,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_CAMERACONTROL_S), // MinProperty
sizeof(KSPROPERTY_CAMERACONTROL_S), // MinData
TRUE, // SetSupported or Handler
&FocusValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_CAMERACONTROL_ZOOM,
TRUE, // GetSupported or Handler
sizeof(KSPROPERTY_CAMERACONTROL_S), // MinProperty
sizeof(KSPROPERTY_CAMERACONTROL_S), // MinData
TRUE, // SetSupported or Handler
&ZoomValues, // Values
0, // RelationsCount
NULL, // Relations
NULL, // SupportHandler
sizeof(ULONG) // SerializedSize
),
};
// ------------------------------------------------------------------------
// Array of all of the property sets supported by the adapter
// ------------------------------------------------------------------------
DEFINE_KSPROPERTY_SET_TABLE(AdapterPropertyTable)
{
DEFINE_KSPROPERTY_SET
(
&PROPSETID_VIDCAP_VIDEOPROCAMP,
SIZEOF_ARRAY(VideoProcAmpProperties),
VideoProcAmpProperties,
0,
NULL
),
DEFINE_KSPROPERTY_SET
(
&PROPSETID_VIDCAP_CAMERACONTROL,
SIZEOF_ARRAY(CameraControlProperties),
CameraControlProperties,
0,
NULL
)
};
#define NUMBER_OF_ADAPTER_PROPERTY_SETS (SIZEOF_ARRAY (AdapterPropertyTable))
#endif