# 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 will be 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.

## See Also

`CAMERASelect`
`CAMERACallback`
`CAMERAResult`

## Revision History

2008/10/30 Added that `CAMERA_SELECT_BOTH` also can be specified.
2008/08/22 Initial version.

CONFIDENTIAL