506 lines
15 KiB
C
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
|