/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef btk_SDK_EM_H #define btk_SDK_EM_H #ifdef __cplusplus extern "C" { #endif /** * Visual Sensing SDK * SDK Context object */ /* ---- includes ----------------------------------------------------------- */ #include "Types.h" #include <sys/types.h> /* ---- related objects --------------------------------------------------- */ /** SDK context object */ struct btk_SDK; /* ---- typedefs ----------------------------------------------------------- */ /** handle for SDK context */ typedef struct btk_SDK* btk_HSDK; /** malloc function pointer */ typedef void* ( *btk_fpMalloc )( size_t sizeA ); /** free function pointer */ typedef void ( *btk_fpFree )( void* memPtrA ); /** error handler function pointer */ typedef void ( *btk_fpError )( btk_HSDK hsdkA ); /** SDK creation parameters */ typedef struct { /** (optional) handler to error-handler function */ btk_fpError fpError; /** handler to malloc function */ btk_fpMalloc fpMalloc; /** handler to free function */ btk_fpFree fpFree; /** pointer to preallocated exclusive (=persistent) memory (alternative to fpMalloc) */ void* pExMem; /** size of external memory */ u32 sizeExMem; /** pointer to preallocated shared memory (alternative to fpMalloc) */ void* pShMem; /** size of external memory */ u32 sizeShMem; /** pointer to 0-terminated license key string */ const char* licenseKey; /** maximum image witdh used */ u32 maxImageWidth; /** maximum image height used */ u32 maxImageHeight; } btk_SDKCreateParam; /* ---- constants ---------------------------------------------------------- */ /* ---- functions ---------------------------------------------------------- */ /** returns default SDK parameters */ btk_DECLSPEC btk_SDKCreateParam btk_SDK_defaultParam( void ); /** creates an SDK context using dynamic memory management */ btk_DECLSPEC btk_Status btk_SDK_create( const btk_SDKCreateParam* pCreateParamA, btk_HSDK* hpsdkA ); /** closes an SDK context */ btk_DECLSPEC btk_Status btk_SDK_close( btk_HSDK hsdkA ); /** returns last occurred error and removes it from the error stack */ btk_DECLSPEC btk_Error btk_SDK_getError( btk_HSDK hsdkA, char* msgBufA, u32 msgBufSizeA ); /** returns amount of allocated exclusive memory in bytes */ btk_DECLSPEC u32 btk_SDK_exAllocSize( btk_HSDK hsdkA ); /** returns amount of allocated shared memory in bytes */ btk_DECLSPEC u32 btk_SDK_shAllocSize( btk_HSDK hsdkA ); /** returns total amount of allocated memory in bytes */ btk_DECLSPEC u32 btk_SDK_allocSize( btk_HSDK hsdkA ); #ifdef __cplusplus } #endif #endif /* btk_SDK_EM_H */