camera_take_photo()

Take a photo.

Synopsis:

#include <camera/camera_api.h>
 
camera_error_t camera_take_photo(camera_handle_t handle, void(*shutter_callback)(camera_handle_t, void *), void(*raw_callback)(camera_handle_t, camera_buffer_t *, void *), void(*postview_callback)(camera_handle_t, camera_buffer_t *, void *), void(*image_callback)(camera_handle_t, camera_buffer_t *, void *), void *arg, bool wait)

Arguments:

handle

The handle returned by a call to the camera_open() function.

shutter_callback

A function pointer to a function with the following signature: void function_name( camera_handle_t, void*). The function is a callback that gets invoked when the shutter fires. Typically, the callback function plays a shutter sound. You can use NULL if no function needs to be called. For information about the callback arguments, see About callback-mode.

raw_callback

Use NULL. Reserved for future use.

postview_callback

A function pointer to a function with the following signature: void function_name( camera_handle_t, camera_buffer_t*, void*). The function is a callback that gets invoked when the post-view (review) image data is available. This callback is used to provide a preview-sized copy of the photo. Typically, the preview-sized photo is used to provide visual feedback by the UI before the final image is available. You can use NULL if no function needs to be called. For information about the callback arguments, see About callback-mode.

image_callback

A function pointer to a function with the following signature: void function_name( camera_handle_t, camera_buffer_t*, void*). The function that is called when the final final image, such as a JPEG is available. You can camera_set_photo_property() function to change the CAMERA_IMGPROP_FORMAT to another format other than CAMERA)FRAMETYPE_JPEG. You can also use NULL if no function needs to be called. For information about the callback arguments, see About callback-mode.

arg

The argument passed to all callback functions, which is the last argument in the callback functions.

wait

A boolean value that indicates whether the function blocks or not. If the value is set to true, this function is blocking and will return once all specified callbacks have returned. If the value is set to false, this function call is non-blocking and returns before all specified callbacks have returned.

Library:

libcamapi

Description:

Before you take a photo, ensure that you have configured the viewfinder, set the output properties for the photo, and started the viewfinder. This function can only be called if the CAMERA_FEATURE_PHOTO is available. You can determine whether the feature is available by calling the camera_can_feature() function. Callbacks that are invoked by this function are called only once.

If you want an application to save the photo to a file, then this function should be invoked with the image_callback argument set. When the image_callback is set, the image buffer is provided as the second argument to the callback function. Then, in the image_callback function that is invoked, you can save the buffer to a file.

The Camera library does not automatically play audible shutter sounds when a picture is taken or a video is recorded. Camera applications must supply their own sound when a photo is captured or a video recording begins and ends. While you can choose to not have a shutter sound when taking a picture — you are responsible to ensure that the application adheres to the local laws of the regions in which you wish to distribute the application. For example, it is illegal to mute or modify the shutter sound of a camera application in Japan and Korea. Ensure you comply with the laws and regulations for the countries in which you distribute your application.

Returns:

CAMERA_OK when the function successfully completes, otherwise another camera_error_t value that provides the reason that the call failed.