Home » Source Code » ocr face recognition delphi » NDeviceManager.pas

NDeviceManager.pas ( File view )

  • By adm.maniaco 2014-09-01
  • View(s):170
  • Download(s):11
  • Point(s): 2
			unit NDeviceManager;

interface

uses
  Windows, NCore, NImages, NUtils, Classes, SysUtils;

//-------------------------------------
// External functions
//-------------------------------------

procedure NDeviceManagerGetInfo(var info: TNLibraryInfo);

//-------------------------------------
// Types
//-------------------------------------

type
 TFPScannerMan = class;
 TFPScanner = class;
 
 TScannerManCallback    = procedure(scannerId: string) of object;
 TScannerImageCallback  = procedure(scanner: TFPScanner; image: TNImage) of object;
 TScannerStatusCallback = procedure(scanner: TFPScanner) of object;

 TCamera = class(TObject)
  private
   _handle: Pointer;
   _cameraId: string;
   
   function  GetBoolParameter(paramId: LongWord): Boolean;
   procedure SetBoolParameter(paramId: LongWord; value: Boolean);

   constructor Create(pointerToCamera: Pointer); overload;
  public
   procedure CopyParameters(destination: TCamera);
   
   property  Id: string read _cameraId;

   property  Handle: Pointer read _handle;

   function  IsCapturing: Boolean;

   procedure StartCapturing;
   procedure StopCapturing;

   function  CurrentFrame: TNImage;

   function  VideoFormat: TCameraVideoFormat;
   procedure SetVideoFormat(var format: TCameraVideoFormat);
   function  GetVideoFormats: TArrayOfTCameraVideoFormat;

   procedure SetAutomaticSettings(value: Boolean);
   function  AutomaticSettings: Boolean;
   procedure SetMirrorHorizontal(value: Boolean);
   function  MirrorHorizontal: Boolean;
   procedure SetMirrorVertical(value: Boolean);
   function  MirrorVertical: Boolean;
 end;

 TCameraMan = class(TObject)
  private

  public
   constructor Create; overload;
   destructor  Destroy; override;

   function CameraCount: Integer;
   function GetCamera(index: Integer): TCamera; overload;
   function GetCamera(id: String): TCamera; overload;

 end;

 TFPScanner = class (TObject)
  private
   _handle: Pointer;
   _scannerId: string;

   _scannerImageCallback: array of TScannerImageCallback;
   _scannerFingerPlacedCallback: array of TScannerStatusCallback;
   _scannerFingerRemovedCallback: array of TScannerStatusCallback;

   constructor Create(scanner: Pointer);
  public
   destructor  Destroy(); override;

   function  IsCapturing(): Boolean;

   procedure StopCapturing;
   procedure StartCapturing(oneImage: Boolean = False);

   property  Handle: Pointer read _handle;

   property  Id: string read _scannerId;

   procedure SetScannedImageCallback(callback: TScannerImageCallback);
   procedure SetFingerRemovedCallback(callback: TScannerStatusCallback);
   procedure SetFingerPlacedCallback(callback: TScannerStatusCallback);
 end;

 TFPScannerMan = class(TObject)
  private
   _scannerAddedCallbacks: array of TScannerManCallback;
   _scannerRemovedCallbacks: array of TScannerManCallback;
  public
   class function GetAvailableScannerModules(): String;

   constructor Create; overload;
   constructor Create(scannerModules: String); overload;
   destructor  Destroy; override;

   function ScannerCount: Integer;

   function GetScanner(index: Integer): TFPScanner; overload;
   function GetScanner(id: String): TFPScanner; overload;

   procedure SetAddedScannerCallback(callback: TScannerManCallback);
   procedure SetRemovedScannerCallback(callback: TScannerManCallback);
 end;

implementation
//-------------------------------------
// Constants
//-------------------------------------

 const
  dllName = 'NDeviceManager.dll';

  CAMERAP_MIRROR_HORIZONTAL  = 10200;
  CAMERAP_MIRROR_VERTICAL    = 10201;
  CAMERAP_AUTOMATIC_SETTINGS = 10301;

//-------------------------------------
// Types
//-------------------------------------
 type
  TCallBackScannerMan    = procedure(scannerId: Pchar;  Param: Pointer); stdcall;
  TCallBackScannerStatus = procedure(hScanner: Pointer; Param: Pointer); stdcall;
  TCallBackImageScanned  = procedure(hScanner: Pointer; hImage: Pointer; Param: Pointer); stdcall;


//-------------------------------------
// External(functions form dll)
//-------------------------------------

{
$ifdef ver210
}
function  NDeviceManagerGetInfoInternal(var info: TNLibraryInfo): Integer stdcall; external dllName name 'NDeviceManagerGetInfoW';
{
$else
}
function  NDeviceManagerGetInfoInternal(var info: TNLibraryInfo): Integer stdcall; external dllName name 'NDeviceManagerGetInfoA';
{
$endif
}

function  CameraManInitialize(): Integer stdcall; external dllName;
procedure CameraManUninitialize(); stdcall; external dllName;
function  CameraManGetCameraCount(var pValue: Integer): Integer stdcall; external dllName;
function  CameraManGetCamera(index: Integer; var hCamera: Pointer): Integer stdcall; external dllName;
{
$ifdef ver210
}
function  CameraManGetCameraById(szId: AnsiString; var hCamera: Pointer): Integer stdcall; external dllName name 'CameraManGetCameraByIdA';
{
$else
}
function  CameraManGetCameraById(szId: AnsiString; var hCamera: Pointer): Integer stdcall; external dllName name 'CameraManGetCameraByIdA';
{
$endif
}

{
$ifdef ver210
}
function  CameraGetId(hCamera: Pointer; pValue: PAnsiChar): Integer stdcall; external dllName name 'CameraGetIdA';
{
$else
}
function  CameraGetId(hCamera: Pointer; pValue: PAnsiChar): Integer stdcall; external dllName name 'CameraGetIdA';
{
$endif
}
function  CameraIsCapturing(hCamera: Pointer; var pValue: Integer): Integer stdcall; external dllName;
function  CameraStartCapturing(hCamera: Pointer): Integer stdcall; external dllName;
function  CameraStopCapturing(hCamera: Pointer): Integer stdcall; external dllName;
function  CameraGetCurrentFrame(hCamera: Pointer; var hImage: Pointer): Integer stdcall; external dllName;
function  CameraGetVideoFormats(hCamera: Pointer; pArVideoFormats: Pointer): Integer stdcall; external dllName;
function  CameraGetVideoFormat(hCamera: Pointer; var pVideoFormat: TCameraVideoFormat): Integer stdcall; external dllName;
function  CameraSetVideoFormat(hCamera: Pointer; var pVideoFormat: TCameraVideoFormat): Integer stdcall; external dllName;

{
$ifdef ver210
}
function  FPScannerGetId(hScanner: Pointer; pValue: PAnsiChar):  Integer stdcall; external dllName name 'FPScannerGetIdA';
{
$else
}
function  FPScannerGetId(hScanner: Pointer; pValue: PAnsiChar):  Integer stdcall; external dllName name 'FPScannerGetIdA';
{
$endif
}

function  FPScannerIsCapturing(hScanner: Pointer; var pValue: integer): Integer stdcall; external dllName;
function  FPScannerStopCapturing(hScanner: Pointer): Integer stdcall; external dllName;
function  FPScannerStartCapturingForOneImage(hScanner: Pointer): Integer stdcall; external dllName;
function  FPScannerStartCapturing(hScanner: Pointer): Integer stdcall; external dllName;
function  FPScannerSetFingerPlacedCallback(hScanner: Pointer; pCallback: TCallBackScannerStatus; pParam: Pointer): Integer stdcall; external dllName;
function  FPScannerSetFingerRemovedCallback(hScanner: Pointer; pCallback: TCallBackScannerStatus; pParam: Pointer): Integer stdcall; external dllName;
function  FPScannerSetImageScannedCallback(hScanner: Pointer; pCallback: TCallBackImageScanned; pParam: Pointer): Integer stdcall; external dllName;

function  FPScannerManInitialize: Integer stdcall; external dllName;
{
$ifdef ver210
}
function  FPScannerManInitializeWithModules(scannerModules: AnsiString): Integer stdcall; external dllName name 'FPScannerManInitializeWithModulesA'; overload;
function  FPScannerManInitializeWithModules(var scannerModules: Integer): Integer stdcall; external dllName name 'FPScannerManInitializeWithModulesA'; overload;
function  FPScannerManGetAvailableModules(var scannerModules: PAnsiChar): Integer stdcall; external dllName name 'FPScannerManGetAvailableModulesA';
{
$else
}
function  FPScannerManInitializeWithModules(scannerModules: AnsiString): Integer stdcall; external dllName name 'FPScannerManInitializeWithModulesA'; overload;
function  FPScannerManInitializeWithModules(var scannerModules: Integer): Integer stdcall; external dllName name 'FPScannerManInitializeWithModulesA'; overload;
function  FPScannerManGetAvailableModules(var scannerModules: PAnsiChar): Integer stdcall; external dllName name 'FPScannerManGetAvailableModulesA';
{
$endif
}
procedure FPScannerManUninitialize; stdcall; external dllName;

{
$ifdef ver210
}
function  FPScannerManSetScannerAddedCallback(pCallback: TCallBackScannerMan; pParam: Pointer): Integer stdcall; external dllName name 'FPScannerManSetScannerAddedCallbackA';
function  FPScannerManSetScannerRemovedCallback(pCallback: TCallBackScannerMan; pParam: Pointer): Integer stdcall; external dllName name 'FPScannerManSetScannerRemovedCallbackA';
function  FPScannerManGetScannerById(szID: AnsiString; var pValue: Pointer): Integer stdcall; external dllName name 'FPScannerManGetScannerByIdA';
{
$else
}
function  FPScannerManSetScannerAddedCallback(pCallback: TCallBackScannerMan; pParam: Pointer): Integer stdcall; external dllName name 'FPScannerManSetScannerAddedCallbackA';
function  FPScannerManSetScannerRemovedCallback(pCallback: TCallBackScannerMan; pParam: Pointer): Integer stdcall; external dllName name 'FPScannerManSetScannerRemovedCallbackA';
function  FPScannerManGetScannerById(szID: AnsiString; var pValue: Pointer): Integer stdcall; external dllName name 'FPScannerManGetScannerByIdA';
{
$endif
}
function  FPScannerManGetScannerCount(var pValue: LongInt): Integer stdcall; external dllName;
function  FPScannerManGetScanner(index: LongInt; var pValue: Pointer): Integer stdcall; external dllName;

//-----------------------------------------
// Misc
//-----------------------------------------

procedure NDeviceManagerGetInfo(var info: TNLibraryInfo);
 var res: Integer;
begin
 res := NDeviceManagerGetInfoInternal(info);
 NCheck(res);
end;

procedure ScannerAdded(scannerId: PChar; Param: Pointer); stdcall;
 var scannerMan: TFPScannerMan;
     i: Integer;
begin
 scannerMan := TFPScannerMan(param);
 if ((scannerMan <> nil) and (Length(scannerMan._scannerAddedCallbacks) <> 0)) then
 begin
   for i := 0 to Length(scannerMan._scannerAddedCallbacks)
...
...
(Not finished, please download and read the complete file)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 2

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
Aboutform.dcu7.81 kB29-05-10 03:22
AboutForm.dfm59.86 kB02-04-10 14:37
AboutForm.pas2.79 kB02-04-10 14:37
DataBase.dcu10.72 kB29-05-10 02:56
DataBase.pas7.02 kB02-04-10 14:37
NCore.dcu12.55 kB29-05-10 02:56
NCore.pas11.17 kB02-04-10 14:37
NDeviceManager.dcu24.08 kB29-05-10 02:56
NDeviceManager.pas20.58 kB26-05-10 01:21
NExtractors.dcu26.38 kB29-05-10 02:56
NExtractors.pas22.97 kB02-04-10 14:37
NImages.dcu18.89 kB29-05-10 02:56
NImages.pas16.86 kB02-04-10 14:37
NLicensing.dcu1.73 kB29-05-10 02:56
NLicensing.pas2.27 kB02-04-10 14:37
NMatchers.dcu10.16 kB29-05-10 02:56
NMatchers.pas8.69 kB02-04-10 14:37
NTemplates.dcu13.67 kB29-05-10 02:56
NTemplates.pas10.28 kB02-04-10 14:37
NUtils.dcu17.47 kB29-05-10 02:56
NUtils.pas14.14 kB02-04-10 14:37
SQLite3.dcu10.79 kB29-05-10 02:56
sqlite3.dll493.92 kB02-04-10 14:37
SQLite3.pas13.07 kB02-04-10 14:37
SQLiteTable3.dcu49.60 kB29-05-10 02:56
SQLiteTable3.pas44.43 kB02-04-10 14:37
<SQLite>0.00 B29-05-10 03:00
DataBase.pas.~1~7.02 kB02-04-10 14:37
DataBase.pas.~2~7.02 kB26-05-10 01:49
DataBase.pas.~3~7.03 kB26-05-10 01:51
NDeviceManager.pas.~1~20.57 kB02-04-10 14:37
<__history>0.00 B29-05-10 03:00
<Bibliotecas>0.00 B29-05-10 03:00
CameraForm.dcu7.54 kB29-05-10 03:22
CameraForm.dfm172.63 kB02-04-10 14:37
CameraForm.pas2.57 kB02-04-10 14:37
DataBase.dcu10.98 kB29-05-10 03:22
DataBase.pas7.02 kB02-04-10 14:37
EnrollmentForm.dcu4.85 kB29-05-10 03:22
EnrollmentForm.dfm171.08 kB02-04-10 14:37
EnrollmentForm.pas577.00 B02-04-10 14:37
FacesSamplePas.cfg473.00 B02-04-10 14:37
FacesSamplePas.dof2.57 kB02-04-10 14:37
FacesSamplePas.dpr1.00 kB02-04-10 14:37
FacesSamplePas.dproj5.96 kB29-05-10 03:20
FacesSamplePas.dproj.20074.74 kB02-04-10 14:37
FacesSamplePas.dproj.local62.00 B29-05-10 03:21
FacesSamplePas.identcache1.19 kB29-05-10 03:22
FacesSamplePas.res78.90 kB29-05-10 03:20
fPrincipal.dcu53.36 kB29-05-10 03:13
fPrincipal.dfm176.14 kB29-05-10 03:05
fPrincipal.pas47.37 kB29-05-10 03:05
MainForm.dcu53.56 kB29-05-10 03:22
MainForm.dfm176.34 kB29-05-10 02:38
MainForm.pas47.42 kB29-05-10 02:54
NCore.dcu12.56 kB29-05-10 03:15
NDeviceManager.dcu24.09 kB29-05-10 03:15
Neurotechnology.bmp19.17 kB02-04-10 14:37
Neurotechnology.ico77.80 kB02-04-10 14:37
NExtractors.dcu26.39 kB29-05-10 03:15
NImages.dcu18.90 kB29-05-10 03:15
NLicensing.dcu1.74 kB29-05-10 03:15
NMatchers.dcu10.17 kB29-05-10 03:15
NTemplates.dcu13.68 kB29-05-10 03:15
NUtils.dcu17.48 kB29-05-10 03:15
SettingsForm.dcu15.43 kB29-05-10 03:22
SettingsForm.dfm177.53 kB02-04-10 14:37
SettingsForm.pas7.09 kB02-04-10 14:37
SQLite3.dcu10.80 kB29-05-10 03:15
SQLiteTable3.dcu49.61 kB29-05-10 03:15
FacesSamplePas.dpr.~1~1.00 kB02-04-10 14:37
FacesSamplePas.dpr.~2~1.01 kB29-05-10 03:02
FacesSamplePas.dpr.~3~411.00 B29-05-10 03:02
fPrincipal.dfm.~1~176.34 kB29-05-10 02:38
fPrincipal.dfm.~2~176.35 kB29-05-10 03:02
fPrincipal.dfm.~3~176.32 kB29-05-10 03:04
fPrincipal.pas.~1~47.42 kB29-05-10 03:01
fPrincipal.pas.~2~47.59 kB29-05-10 03:02
fPrincipal.pas.~3~47.58 kB29-05-10 03:04
fPrincipal.pas.~4~47.43 kB29-05-10 03:05
MainForm.dfm.~1~176.32 kB02-04-10 14:37
MainForm.dfm.~2~176.34 kB26-05-10 01:10
MainForm.dfm.~3~176.34 kB26-05-10 01:45
MainForm.dfm.~4~176.35 kB26-05-10 23:51
MainForm.dfm.~5~176.35 kB27-05-10 01:38
MainForm.dfm.~6~176.35 kB29-05-10 01:37
MainForm.pas.~1~45.50 kB02-04-10 14:37
MainForm.pas.~2~45.50 kB26-05-10 01:26
MainForm.pas.~3~45.64 kB26-05-10 01:45
MainForm.pas.~4~47.41 kB27-05-10 00:51
MainForm.pas.~5~47.42 kB27-05-10 01:18
MainForm.pas.~6~47.42 kB29-05-10 01:40
<__history>0.00 B29-05-10 03:16
<Biometria>0.00 B0 0%
...
Sponsored links

NDeviceManager.pas (1.58 MB)

Need 2 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D