# CAMERA_I2CEffect*

## Syntax

  `#include <twl/camera.h>`
  `CAMERAResult CAMERA_I2CEffect(CAMERASelect camera, CAMERAEffect effect);`
  `CAMERAResult CAMERA_I2CEffectAsync(CAMERASelect camera, CAMERAEffect effect, CAMERACallback callback, void *arg);`
  `CAMERAResult CAMERA_I2CEffectEx(CAMERASelect camera, CAMERAContext context, CAMERAEffect effect);`
  `CAMERAResult CAMERA_I2CEffectExAsync(CAMERASelect camera, CAMERAContext context, CAMERAEffect effect, CAMERACallback callback, void *arg);`

## Arguments

camera | Camera to configure (`CAMERA_SELECT_IN`, `CAMERA_SELECT_OUT`, or `CAMERA_SELECT_BOTH`).
context | Context to change.
effect | Effect to set.
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

Changes the camera effects.
The `CAMERA_I2CEffectEx` function is used to change the setting with the context specified. The non-Ex functions change the setting for both context A and B. See `CAMERAContext` for information on contexts.
Unlike `CAMERA_I2CEffect`, the `CAMERA_I2CEffectAsync` function returns control immediately and runs asynchronously. Use callback to confirm that processing has completed.
Note: When specifying an effect with this function, you can vary the result of the effect by changing another setting at the same time.

1. When `CAMERA_EFFECT_NEGAFILM` is specified, you can emphasize red tones by raising the color temperature of the white balance (`CAMERA_WHITE_BALANCE_SHADE`).
2. When `CAMERA_EFFECT_SEPIA` is set, a soft impression can be obtained by lowering the sharpness setting.

## See Also

`CAMERASelect`
`CAMERAContext`
`CAMERAEffect`
`CAMERACallback`
`CAMERAResult`

## Revision History

2008/10/30 Added that `CAMERA_SELECT_BOTH` also can be specified.
2008/03/17 Added explanation about combining with other settings.
2007/10/12 Initial version.

CONFIDENTIAL