17f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/*
27f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
37f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project *
47f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
57f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * you may not use this file except in compliance with the License.
67f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * You may obtain a copy of the License at
77f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project *
87f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
97f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project *
107f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
117f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
127f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * See the License for the specific language governing permissions and
147f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project * limitations under the License.
157f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */
167f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
177f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifndef btk_FaceFinder_EM_H
187f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#define btk_FaceFinder_EM_H
197f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
207f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifdef __cplusplus
217f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectextern "C" {
227f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif
237f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
247f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/**
257f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project *  Face Finder object
267f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project */
277f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
287f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- includes ----------------------------------------------------------- */
297f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
307f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#include "DCR.h"
317f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
327f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- related objects  --------------------------------------------------- */
337f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
347f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** face finder object */
357f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectstruct btk_FaceFinder;
367f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
377f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- typedefs ----------------------------------------------------------- */
387f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
397f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** handle for face finder object */
407f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projecttypedef struct btk_FaceFinder* btk_HFaceFinder;
417f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
427f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** FaceFinder creation parameters */
437f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projecttypedef struct
447f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project{
457f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	/* reserved parameter */
467f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	u32 reserved;
477f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
487f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	/* obaque module parameters */
497f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	void* pModuleParam;
507f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
517f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	/* size of module parameters */
527f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	u32 moduleParamSize;
537f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
547f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	/* maximum number of detectable faces */
557f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project	u32 maxDetectableFaces;
567f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
577f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project} btk_FaceFinderCreateParam;
587f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
597f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- constants ---------------------------------------------------------- */
607f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
617f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/* ---- functions ---------------------------------------------------------- */
627f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
637f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** returns default FaceFinder parameters */
647f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
657f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_FaceFinderCreateParam btk_FaceFinder_defaultParam( void );
667f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
677f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** creates a face finder object */
687f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
697f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_create( btk_HSDK hsdkA,     /* sdk handle */
707f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								  const btk_FaceFinderCreateParam* pCreateParamA,
717f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								  btk_HFaceFinder* hpFaceFinderA );
727f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
737f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** closes a face finder object */
747f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
757f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_close( btk_HFaceFinder hFaceFinderA );
767f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
777f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** sets eye distance range */
787f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
797f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_setRange( btk_HFaceFinder hFaceFinderA,
807f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								    u32 minDistA,
817f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project									u32 maxDistA );
827f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
837f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** passes a DCR object and triggers image processing */
847f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
857f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_putDCR( btk_HFaceFinder hFaceFinderA,
867f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								  btk_HDCR hdcrA );
877f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
887f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** returns number of faces that can be retrieved from face finder with function btk_FaceFinder_getDCR */
897f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
907f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectu32 btk_FaceFinder_faces( btk_HFaceFinder hFaceFinderA );
917f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
927f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** retrieves a DCR object for each detected face */
937f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
947f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_getDCR( btk_HFaceFinder hFaceFinderA,
957f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								  btk_HDCR hdcrA );
967f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
977f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project/** processes DCR for single face detection */
987f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_DECLSPEC
997f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Projectbtk_Status btk_FaceFinder_process( btk_HFaceFinder hFaceFinderA,
1007f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project								   btk_HDCR hdcrA );
1017f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
1027f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#ifdef __cplusplus
1037f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project}
1047f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif
1057f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project
1067f81d9b6fa7f2ec161b682622db577a28c90b49fThe Android Open Source Project#endif /* btk_FaceFinder_EM_H */
107