mirror of
https://github.com/rvtr/twl_wrapsdk.git
synced 2025-10-31 06:11:10 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@92 4ee2a332-4b2b-5046-8439-1ba90f034370
409 lines
15 KiB
C
409 lines
15 KiB
C
/*---------------------------------------------------------------------------*
|
|
Project: TwlSDK - library - camera
|
|
File: camera_api.h
|
|
|
|
Copyright 2007 Nintendo. All rights reserved.
|
|
|
|
These coded instructions, statements, and computer programs contain
|
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
Company Ltd., and are protected by Federal copyright law. They may
|
|
not be disclosed to third parties or copied or duplicated in any form,
|
|
in whole or in part, without the prior written consent of Nintendo.
|
|
|
|
$Log: $
|
|
$NoKeywords: $
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef TWL_CAMERA_CAMERA_API_H_
|
|
#define TWL_CAMERA_CAMERA_API_H_
|
|
|
|
#include <twl/types.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*===========================================================================*/
|
|
|
|
// 処理結果定義
|
|
typedef enum CAMERAResult
|
|
{
|
|
CAMERA_RESULT_SUCCESS = 0,
|
|
CAMERA_RESULT_SUCCESS_TRUE,
|
|
CAMERA_RESULT_SUCCESS_FALSE,
|
|
CAMERA_RESULT_BUSY,
|
|
CAMERA_RESULT_ILLEGAL_PARAMETER,
|
|
CAMERA_RESULT_SEND_ERROR,
|
|
CAMERA_RESULT_INVALID_COMMAND,
|
|
CAMERA_RESULT_ILLEGAL_STATUS,
|
|
CAMERA_RESULT_FATAL_ERROR,
|
|
CAMERA_RESULT_MAX
|
|
}
|
|
CAMERAResult;
|
|
|
|
// コールバック
|
|
typedef void (*CAMERACallback)(CAMERAResult result, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_Init
|
|
|
|
Description: CAMERAライブラリを初期化する。
|
|
|
|
Arguments: None.
|
|
|
|
Returns: None.
|
|
*---------------------------------------------------------------------------*/
|
|
void CAMERA_Init(void);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetStbyn2Async
|
|
|
|
Description: select STBYN for 2nd CAMERA
|
|
async version
|
|
|
|
Arguments: state - High/Low
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetStbyn2Async(BOOL state, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetStbyn2
|
|
|
|
Description: select STBYN for 2nd CAMERA
|
|
sync version.
|
|
|
|
Arguments: state - High/Low
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetStbyn2(BOOL state);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_WriteRegistersAsync
|
|
|
|
Description: write CAMERA registers via I2C.
|
|
async version.
|
|
|
|
Arguments: addr - start address
|
|
bufp - buffer to write
|
|
length - length of bufp
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_WriteRegistersAsync(u8 addr, const u8* bufp, size_t length, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_WriteRegisters
|
|
|
|
Description: write CAMERA registers via I2C.
|
|
sync version.
|
|
|
|
Arguments: addr - start address
|
|
bufp - buffer to write
|
|
length - length of bufp
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_WriteRegisters(u8 addr, const u8* bufp, size_t length);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_ReadRegistersAsync
|
|
|
|
Description: read CAMERA registers via I2C.
|
|
|
|
Arguments: addr - start address
|
|
bufp - buffer to read
|
|
length - length of bufp
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_ReadRegistersAsync(u8 addr, u8* bufp, size_t length, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_ReadRegisters
|
|
|
|
Description: set CAMERA key normally
|
|
sync version.
|
|
|
|
Arguments: pKey - pointer to key data
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_ReadRegisters(u8 addr, u8* bufp, size_t length);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetParamsAsync
|
|
|
|
Description: set register as reg = (reg & ~mask) | (bits & mask);
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to set
|
|
mask - mask to touch
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetParamsAsync(u8 addr, u8 bits, u8 mask, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetParams
|
|
|
|
Description: set register as reg = (reg & ~mask) | (bits & mask);
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to set
|
|
mask - mask to touch
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetParams(u8 addr, u8 bits, u8 mask);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetFlagsAsync
|
|
|
|
Description: set register as reg |= bits;
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to set
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetFlagsAsync(u8 addr, u8 bits, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetFlags
|
|
|
|
Description: set register as reg |= bits;
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to set
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetFlags(u8 addr, u8 bits);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_ClearFlagsAsync
|
|
|
|
Description: set register as reg &= ~bits;
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to clear
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_ClearFlagsAsync(u8 addr, u8 bits, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_ClearFlags
|
|
|
|
Description: set register as reg &= ~bits;
|
|
|
|
Arguments: addr - address to access
|
|
bits - bits to set
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_ClearFlags(u8 addr, u8 bits);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CInitAsync
|
|
|
|
Description: initialize camera registers via I2C
|
|
async version.
|
|
|
|
Arguments: callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CInitAsync(CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CInit
|
|
|
|
Description: initialize camera registers via I2C
|
|
sync version.
|
|
|
|
Arguments: None.
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CInit(void);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPresetAsync
|
|
|
|
Description: set camera registers with specified preset via I2C
|
|
async version
|
|
|
|
Arguments: preset - preset type
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPresetAsync(CameraPreset preset, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPreset
|
|
|
|
Description: set camera registers with specified preset via I2C
|
|
sync version.
|
|
|
|
Arguments: preset - preset type
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPreset(CameraPreset preset);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPreSleepAsync
|
|
|
|
Description: pre-sleep process in camera registers via I2C
|
|
async version.
|
|
|
|
Arguments: callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPreSleepAsync(CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPreSleep
|
|
|
|
Description: pre-sleep process in camera registers via I2C
|
|
sync version.
|
|
|
|
Arguments: None.
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPreSleep(void);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPostSleepAsync
|
|
|
|
Description: post-sleep process in camera registers via I2C
|
|
async version.
|
|
|
|
Arguments: callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPostSleepAsync(CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_I2CPostSleep
|
|
|
|
Description: post-sleep process in camera registers via I2C
|
|
sync version.
|
|
|
|
Arguments: None.
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_I2CPostSleep(void);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetCroppingAsync
|
|
|
|
Description: set offset and size
|
|
|
|
Arguments: x_off - x offset to start capturing
|
|
y_off - y offset to start capturing
|
|
width - width of image
|
|
height - height of image
|
|
callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetCroppingAsync(u16 x_off, u16 y_off, u16 width, u16 height, CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_SetCropping
|
|
|
|
Description: set offset and size
|
|
|
|
Arguments: x_off - x offset to start capturing
|
|
y_off - y offset to start capturing
|
|
width - width of image
|
|
height - height of image
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_SetCropping(u16 x_off, u16 y_off, u16 width, u16 height);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_PauseAsync
|
|
|
|
Description: pause camera via I2C
|
|
async version.
|
|
|
|
Arguments: callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_PauseAsync(CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_Pause
|
|
|
|
Description: pause camera via I2C
|
|
sync version.
|
|
|
|
Arguments: None.
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_Pause(void);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_ResumeAsync
|
|
|
|
Description: resume camera from pausing via I2C
|
|
async version.
|
|
|
|
Arguments: callback - 非同期処理が完了した再に呼び出す関数を指定
|
|
arg - コールバック関数の呼び出し時の引数を指定。
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_ResumeAsync(CAMERACallback callback, void *arg);
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
Name: CAMERA_Resume
|
|
|
|
Description: resume camera from pausing via I2C
|
|
sync version.
|
|
|
|
Arguments: None.
|
|
|
|
Returns: CAMERAResult
|
|
*---------------------------------------------------------------------------*/
|
|
CAMERAResult CAMERA_Resume(void);
|
|
|
|
/*===========================================================================*/
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* TWL_CAMERA_CAMERA_API_H_ */
|