!!***************************************************************************
!!
!! Biometrics Opos Control Object Data File
!!
!!     Date                   Modification                          Author
!! -----------|----------------------------------------------------|----------
!!  2006/03/15 1.10.000: Initial version.                           C. Monroe
!!  2006/09/22 1.10.001: Updated definition for Identify*.          C. Monroe
!!
!!***************************************************************************

! Names: Device, Uppercase Device
DeviceName      =Biometrics
DeviceUpper     =BIOMETRICS

! Short device designation used by OPOS.
!   Include file is Opos@DeviceShortName@.hi
!   Property index prefix is PIDX@DeviceShortName@.
DeviceShortName =Bio
! Short upper case device designation used by OPOS.
!   Device registry key is OPOS_CLASSKEY_@DeviceShortUpper@
DeviceShortUpper=BIO

! If Claim and Release are not supported, comment out the next line.
!   (The macro values are not important. We only check for defined or not defined.)
ClaimRelease    =

! If sharable device, comment out the next line.
!   (The macro value is not important. We only check for defined or not defined.)
Exclusive       =

! Supported events. Comment out the unsupported ones.
!   (The macro values are not important. We only check for defined or not defined.)
EventData       =
EventDirectIO   =
EventError      =
!!EventOutput     =
EventStatus     =

! If SAFEARRAYs are used, then uncomment the following line to enable debug trace logic.
SafeArray       =

! UUIDs. UUIDLibrary is required to be the full GUID.
!   The others can be specified in full, or a "*" indicates that the bytes 3-4
!   (hexadecimal chars 5-8) of the UUIDLibrary should be incremented to
!   form their GUIDs.
UUIDControl     =0260
UUIDLibrary     =UUID:@UUIDPre@@UUIDControl@-@UUIDPost@
UUIDInterface   =UUID*
UUIDCoclass     =UUID*
UUIDEvents      =UUID*

! For each version up to the @Version@, list the properties and methods.
!   If method:
!     M  = Method.
!     Release = 1.x
!     Number = Dispatch ID.
!     Details = IDL formatted method and parameters, with assumed ", [out] LONG* pRC )" at end.
!       If usage omitted, assume [in].
!       Parameter types restricted to BOOL, LONG, CURRENCY, and BSTR.
!   If parameter:
!     First char = C for Common (or S for Specific [optional]).
!     Next one or two chars = R for Readable or W for Writable.
!     Release = 1.x
!     Number = Dispatch ID.
!     Details = Property name followed by type in parentheses.
!       Type restricted to BOOL, LONG, CURRENCY, and BSTR.
!     Property Index name without prefix (optional)

:MethodsProperties
!> Added Property
 CR  1.10 49 OpenResult(LONG)
!> Common Properties
 CRW 1.10 10 AutoDisable(BOOL)
 CRW 1.10 11 BinaryConversion(LONG)
 CR  1.10 12 CapPowerReporting(LONG)
 CR  1.10 13 CheckHealthText(BSTR)
 CR  1.10 14 Claimed(BOOL)
 CR  1.10 15 DataCount(LONG)
 CRW 1.10 16 DataEventEnabled(BOOL)
 CRW 1.10 17 DeviceEnabled(BOOL)
 CRW 1.10 18 FreezeEvents(BOOL)
!CR  1.10 19 OutputID(LONG)
 CRW 1.10 20 PowerNotify(LONG)
 CR  1.10 21 PowerState(LONG)
 CR  1.10 22 ResultCode(LONG)
 CR  1.10 23 ResultCodeExtended(LONG)
 CR  1.10 24 State(LONG)
!
 CR  1.10 25 ControlObjectDescription(BSTR)
 CR  1.10 26 ControlObjectVersion(LONG)
 CR  1.10 27 ServiceObjectDescription(BSTR)
 CR  1.10 28 ServiceObjectVersion(LONG)
 CR  1.10 29 DeviceDescription(BSTR)
 CR  1.10 30 DeviceName(BSTR)
!     Added in Release 1.8
 CR  1.10 39 CapStatisticsReporting(BOOL)
 CR  1.10 40 CapUpdateStatistics(BOOL)
!     Added in Release 1.9
 CR  1.10 44 CapCompareFirmwareVersion(BOOL)
 CR  1.10 45 CapUpdateFirmware(BOOL)
!
!> Common Methods
 M   1.10 31 CheckHealth(LONG Level)
 M   1.10 32 Claim(LONG Timeout)
 M   1.10 33 ClearInput()
!M   1.10 34 ClearOutput()
 M   1.10 35 Close()
 M   1.10 36 DirectIO(LONG Command, [in, out] LONG* pData, [in, out] BSTR* pString)
 M   1.10 37 Open(BSTR DeviceName)
 M   1.10 38 Release()
!     Added in Release 1.8
 M   1.10 41 ResetStatistics(BSTR StatisticsBuffer)
 M   1.10 42 RetrieveStatistics([in, out] BSTR* pStatisticsBuffer)
 M   1.10 43 UpdateStatistics(BSTR StatisticsBuffer)
!     Added in Release 1.9
 M   1.10 46 CompareFirmwareVersion(BSTR FirmwareFileName, [out] LONG* pResult)
 M   1.10 47 UpdateFirmware(BSTR FirmwareFileName)
!     Added in Release 1.10
 M   1.10 48 ClearInputProperties()
!
!> Specific Properties
  RW 1.10 60 Algorithm(LONG)
  R  1.10 61 AlgorithmList(BSTR)
  R  1.10 62 BIR(BSTR)
  R  1.10 63 CapPrematchData(BOOL)
  R  1.10 64 CapRawSensorData(BOOL)
  R  1.10 65 CapRealTimeData(BOOL)
  R  1.10 66 CapSensorColor(LONG)
  R  1.10 67 CapSensorOrientation(LONG)
  R  1.10 68 CapSensorType(LONG)
  R  1.10 69 CapTemplateAdaptation(BOOL)
  R  1.10 70 RawSensorData(BSTR)
  RW 1.10 71 RealTimeDataEnabled(BOOL)
  R  1.10 72 SensorBPP(LONG)
  RW 1.10 73 SensorColor(LONG)
  R  1.10 74 SensorHeight(LONG)
  RW 1.10 75 SensorOrientation(LONG)
  RW 1.10 76 SensorType(LONG)
  R  1.10 77 SensorWidth(LONG)
!
!> Specific Methods
 M   1.10 90 BeginEnrollCapture(BSTR ReferenceBIR, BSTR Payload)
 M   1.10 91 BeginVerifyCapture()
 M   1.10 92 EndCapture()
 M   1.10 93 Identify(LONG MaxFARRequested, LONG MaxFRRRequested, BOOL FARPrecedence, BSTR[] ReferenceBIRPopulation, [in, out] LONG[]* pCandidateRanking, LONG Timeout)
 M   1.10 94 IdentifyMatch(LONG MaxFARRequested, LONG MaxFRRRequested, BOOL FARPrecedence, BSTR SampleBIR, BSTR[] ReferenceBIRPopulation, [in, out] LONG[]* pCandidateRanking)
 M   1.10 95 ProcessPrematchData(BSTR CapturedBIR, BSTR PrematchDataBIR, [in, out] BSTR* pProcessedBIR)
 M   1.10 96 Verify(LONG MaxFARRequested, LONG MaxFRRRequested, BOOL FARPrecedence, BSTR ReferenceBIR, [in, out] BSTR* pAdaptedBIR, [in, out] BOOL* pResult, [in, out] LONG* pFARAchieved, [in, out] LONG* pFRRAchieved, [in, out] BSTR* pPayload, LONG Timeout)
 M   1.10 97 VerifyMatch(LONG MaxFARRequested, LONG MaxFRRRequested, BOOL FARPrecedence, BSTR SampleBIR, BSTR ReferenceBIR, [in, out] BSTR* pAdaptedBIR, [in, out] BOOL* pResult, [in, out] LONG* pFARAchieved, [in, out] LONG* pFRRAchieved, [in, out] BSTR* pPayload)

!!End
