# CAMERA_I2CAutoWhiteBalance*

## Syntax

  `#include <twl/camera.h>`
  `CAMERAResult CAMERA_I2CAutoWhiteBalance(CAMERASelect camera, BOOL on);`
  `CAMERAResult CAMERA_I2CAutoWhiteBalanceAsync(CAMERASelect camera, BOOL on, CAMERACallback callback, void *arg);`

## Arguments

camera | Camera to configure (`CAMERA_SELECT_IN`, `CAMERA_SELECT_OUT`, or `CAMERA_SELECT_BOTH`).
on | If `TRUE`, the auto-adjustment feature is enabled. If `FALSE`, it is disabled.
callback | Function that is called when asynchronous processing has completed.
arg | Arguments when the callback function is invoked.

## Return Values

Returns `CAMERA_RESULT_SUCCESS` if configuration was successful.

## Description

Enables or disables the auto-adjustment feature for the camera's white balance when it is set to "auto" with `CAMERA_WHITE_BALANCE_NORMAL`. The exposure value is unstable immediately after the camera is started with the `CAMERA_I2CActivate` function. A value of `INVALID_COMMAND` is returned if `CAMERA_WHITE_BALANCE_NORMAL` is not set. Calling the `CAMERA_I2CWhiteBalance` function resets the value set by this function and enables the auto-adjustment feature.
Unlike `CAMERA_I2CAutoWhiteBalance`, the `CAMERA_I2CAutoWhiteBalanceAsync` function returns control immediately and runs asynchronously. Use callback to confirm that processing has completed.
Note:
If camera settings are changed using any of the `CAMERA_I2C*` functions, the changes may be delayed for approximately one frame before they are applied. Consequently, note that if camera settings are changed while capturing, the application may not be able to get an updated image (an image with changes applied) at the time the application intended.

## See Also

`CAMERASelect`
`CAMERACallback`
`CAMERAResult`

## Revision History

2009/03/25 Added a note on changes to camera settings during capture operations.
2008/10/30 Noted that `CAMERA_SELECT_BOTH` can also be specified.
2008/08/22 Initial version.

CONFIDENTIAL