## EntangleCamera

EntangleCamera — a digital SLR camera device

## Functions

EntangleCamera * | entangle_camera_new ()
const char * | entangle_camera_get_model ()
const char * | entangle_camera_get_port ()
gboolean | entangle_camera_open ()
void | entangle_camera_open_async ()
gboolean | entangle_camera_open_finish ()
gboolean | entangle_camera_close ()
void | entangle_camera_close_async ()
gboolean | entangle_camera_close_finish ()
gboolean | entangle_camera_get_opened ()
char * | entangle_camera_get_summary ()
char * | entangle_camera_get_manual ()
char * | entangle_camera_get_driver ()
EntangleCameraFile * | entangle_camera_capture_image ()
void | entangle_camera_capture_image_async ()
EntangleCameraFile * | entangle_camera_capture_image_finish ()
EntangleCameraFile * | entangle_camera_preview_image ()
void | entangle_camera_preview_image_async ()
EntangleCameraFile * | entangle_camera_preview_image_finish ()
gboolean | entangle_camera_download_file ()
void | entangle_camera_download_file_async ()
gboolean | entangle_camera_download_file_finish ()
gboolean | entangle_camera_delete_file ()
void | entangle_camera_delete_file_async ()
gboolean | entangle_camera_delete_file_finish ()
gboolean | entangle_camera_process_events ()
void | entangle_camera_process_events_async ()
gboolean | entangle_camera_process_events_finish ()
gboolean | entangle_camera_set_viewfinder ()
void | entangle_camera_set_viewfinder_async ()
gboolean | entangle_camera_set_viewfinder_finish ()
gboolean | entangle_camera_autofocus ()
void | entangle_camera_autofocus_async ()
gboolean | entangle_camera_autofocus_finish ()
gboolean | entangle_camera_manualfocus ()
void | entangle_camera_manualfocus_async ()
gboolean | entangle_camera_manualfocus_finish ()
gboolean | entangle_camera_set_clock ()
void | entangle_camera_set_clock_async ()
gboolean | entangle_camera_set_clock_finish ()
gboolean | entangle_camera_set_capture_target ()
void | entangle_camera_set_capture_target_async ()
gboolean | entangle_camera_set_capture_target_finish ()
gboolean | entangle_camera_get_has_capture ()
gboolean | entangle_camera_get_has_preview ()
gboolean | entangle_camera_get_has_settings ()
gboolean | entangle_camera_get_has_viewfinder ()
gboolean | entangle_camera_load_controls ()
void | entangle_camera_load_controls_async ()
gboolean | entangle_camera_load_controls_finish ()
gboolean | entangle_camera_save_controls ()
void | entangle_camera_save_controls_async ()
gboolean | entangle_camera_save_controls_finish ()
EntangleControlGroup * | entangle_camera_get_controls ()
void | entangle_camera_set_progress ()
EntangleProgress * | entangle_camera_get_progress ()
gboolean | entangle_camera_is_mounted ()
void | entangle_camera_mount_async ()
gboolean | entangle_camera_mount_finish ()
void | entangle_camera_unmount_async ()
gboolean | entangle_camera_unmount_finish ()

## Properties

char * | driver | Read
gboolean | has-capture | Read / Write / Construct Only
gboolean | has-preview | Read / Write / Construct Only
gboolean | has-settings | Read / Write / Construct Only
gboolean | has-viewfinder | Read / Write / Construct Only
char * | manual | Read
char * | model | Read / Write / Construct Only
char * | port | Read / Write / Construct Only
EntangleProgress * | progress | Read / Write
char * | serial | Read / Write / Construct Only
char * | summary | Read

## Signals

void | camera-closed | Run First
void | camera-controls-changed | Run First
void | camera-file-added | Run First
void | camera-file-captured | Run First
void | camera-file-deleted | Run First
void | camera-file-downloaded | Run First
void | camera-file-previewed | Run First
void | camera-opened | Run First

## Types and Values

#define | ENTANGLE_TYPE_CAMERA
enum | EntangleCameraManualFocusStep
enum | EntangleCameraCaptureTarget
| EntangleCamera

## Object Hierarchy

        GEnum
        ├── EntangleCameraCaptureTarget
        ╰── EntangleCameraManualFocusStep
        GObject
        ╰── EntangleCamera

## Description

The EntangleCamera object provides a way to control a digital SLR camera device.

## Functions

### entangle_camera_new ()

    EntangleCamera *
    entangle_camera_new (const char *model,
                         const char *port,
                         const char *serial,
                         gboolean hasCapture,
                         gboolean hasPreview,
                         gboolean hasSettings);

### entangle_camera_get_model ()

    const char *
    entangle_camera_get_model (EntangleCamera *cam);

Get the camera model name

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the model name.

[transfer none]

### entangle_camera_get_port ()

    const char *
    entangle_camera_get_port (EntangleCamera *cam);

Get the camera port name

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the port name.

[transfer none]

### entangle_camera_open ()

    gboolean
    entangle_camera_open (EntangleCamera *cam,
                          GError **error);

Attempt to open to and initialize the camera. This may fail if the camera is in use by another application, has gone to sleep or has been disconnected from the port.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the camera is connected, FALSE on error

### entangle_camera_open_async ()

    void
    entangle_camera_open_async (EntangleCamera *cam,
                                GCancellable *cancellable,
                                GAsyncReadyCallback callback,
                                gpointer user_data);

Attempt to open to and initialize the camera. This may fail if the camera is in use by another application, has gone to sleep or has been disconnected from the port.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_open_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_open_finish ()

    gboolean
    entangle_camera_open_finish (EntangleCamera *cam,
                                 GAsyncResult *result,
                                 GError **error);

Check the completion status of a previous call to entangle_camera_open_async

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the camera is opened, FALSE on error

### entangle_camera_close ()

    gboolean
    entangle_camera_close (EntangleCamera *cam,
                           GError **error);

Close from the camera, enabling it to be used by other applications.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the camera is closed, FALSE on error

### entangle_camera_close_async ()

    void
    entangle_camera_close_async (EntangleCamera *cam,
                                 GCancellable *cancellable,
                                 GAsyncReadyCallback callback,
                                 gpointer user_data);

Close from the camera, enabling it to be used by other applications.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_open_async can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_close_finish ()

    gboolean
    entangle_camera_close_finish (EntangleCamera *cam,
                                  GAsyncResult *result,
                                  GError **error);

Check the completion status of a previous call to entangle_camera_close_async

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the camera is closed, FALSE on error

### entangle_camera_get_opened ()

    gboolean
    entangle_camera_get_opened (EntangleCamera *cam);

Determine if the camera is currently opened

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera is opened, FALSE otherwise

### entangle_camera_get_summary ()

    char *
    entangle_camera_get_summary (EntangleCamera *cam);

Get the camera summary text. This is only available while the camera is opened

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the camera summary.

[transfer full]

### entangle_camera_get_manual ()

    char *
    entangle_camera_get_manual (EntangleCamera *cam);

Get the camera manual text. This is only available while the camera is opened

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the camera manual.

[transfer full]

### entangle_camera_get_driver ()

    char *
    entangle_camera_get_driver (EntangleCamera *cam);

Get the camera driver information text. This is only available while the camera is opened

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the camera driver information.

[transfer full]

### entangle_camera_capture_image ()

    EntangleCameraFile *
    entangle_camera_capture_image (EntangleCamera *cam,
                                   GError **error);

Trigger the camera shutter and download the first resulting image. If the camera is shooting in multiple formats (eg JPEG and RAW) this method will only return the first format captured The caller should watch for signal notifications to detect any additional images

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

the captured image or NULL.

[transfer full]

### entangle_camera_capture_image_async ()

    void
    entangle_camera_capture_image_async (EntangleCamera *cam,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Trigger the camera shutter and download the first resulting image. If the camera is shooting in multiple formats (eg JPEG and RAW) this method will only return the first format captured The caller should watch for signal notifications to detect any additional images

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_capture_image_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_capture_image_finish ()

    EntangleCameraFile *
    entangle_camera_capture_image_finish (EntangleCamera *cam,
                                          GAsyncResult *result,
                                          GError **error);

Check the completion status of a previous call to entangle_camera_capture_image_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

the captured image or NULL.

[transfer full]

### entangle_camera_preview_image ()

    EntangleCameraFile *
    entangle_camera_preview_image (EntangleCamera *cam,
                                   GError **error);

Enable "live view", if not already enabled, and capture a low resolution preview image. The "live view" mode will remain enabled after execution.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

the captured image or NULL.

[transfer full]

### entangle_camera_preview_image_async ()

    void
    entangle_camera_preview_image_async (EntangleCamera *cam,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Enable "live view", if not already enabled, and capture a low resolution preview image. The "live view" mode will remain enabled after execution.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_preview_image_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_preview_image_finish ()

    EntangleCameraFile *
    entangle_camera_preview_image_finish (EntangleCamera *cam,
                                          GAsyncResult *result,
                                          GError **error);

Check the completion status of a previous call to entangle_camera_preview_image_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

the captured image or NULL.

[transfer full]

### entangle_camera_download_file ()

    gboolean
    entangle_camera_download_file (EntangleCamera *cam,
                                   EntangleCameraFile *file,
                                   GError **error);

Download the data associated with `file` and set the data on `file` .

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
file | the file whose contents to download. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the file was downloaded, FALSE on error

### entangle_camera_download_file_async ()

    void
    entangle_camera_download_file_async (EntangleCamera *cam,
                                         EntangleCameraFile *file,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Download the data associated with `file` and set the data on `file` .

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_download_file_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
file | the file whose contents to download. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_download_file_finish ()

    gboolean
    entangle_camera_download_file_finish (EntangleCamera *cam,
                                          GAsyncResult *result,
                                          GError **error);

Check the completion status of a previous call to entangle_camera_download_file_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the file was downloaded, FALSE on error

### entangle_camera_delete_file ()

    gboolean
    entangle_camera_delete_file (EntangleCamera *cam,
                                 EntangleCameraFile *file,
                                 GError **error);

Delete `file` from the camera capture target.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
file | the file to delete. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the file was deleted, FALSE on error

### entangle_camera_delete_file_async ()

    void
    entangle_camera_delete_file_async (EntangleCamera *cam,
                                       EntangleCameraFile *file,
                                       GCancellable *cancellable,
                                       GAsyncReadyCallback callback,
                                       gpointer user_data);

Delete `file` from the camera capture target.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_delete_file_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
file | the file to delete. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_delete_file_finish ()

    gboolean
    entangle_camera_delete_file_finish (EntangleCamera *cam,
                                        GAsyncResult *result,
                                        GError **error);

Check the completion status of a previous call to entangle_camera_delete_file_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the file was deleted, FALSE on error

### entangle_camera_process_events ()

    gboolean
    entangle_camera_process_events (EntangleCamera *cam,
                                    guint64 waitms,
                                    GError **error);

Wait upto `waitms` milliseconds for events to arrive from the camera. Signals will be emitted for any interesting events that arrive. Multiple events will be processed until `waitms` is exceeded.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
waitms | the number of milliseconds to wait |
error | a GError, or NULL |

#### Returns

TRUE if the file was deleted, FALSE on error

### entangle_camera_process_events_async ()

    void
    entangle_camera_process_events_async (EntangleCamera *cam,
                                          guint64 waitms,
                                          GCancellable *cancellable,
                                          GAsyncReadyCallback callback,
                                          gpointer user_data);

Wait upto `waitms` milliseconds for events to arrive from the camera. Signals will be emitted for any interesting events that arrive. Multiple events will be processed until `waitms` is exceeded.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_process_events_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
waitms | the number of milliseconds to wait |
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_process_events_finish ()

    gboolean
    entangle_camera_process_events_finish (EntangleCamera *cam,
                                           GAsyncResult *result,
                                           GError **error);

Check the completion status of a previous call to entangle_camera_process_events_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if events were processed, FALSE on error

### entangle_camera_set_viewfinder ()

    gboolean
    entangle_camera_set_viewfinder (EntangleCamera *cam,
                                    gboolean enabled,
                                    GError **error);

If `enabled` is TRUE, the view finder will be activated allowing preview images to be captured. If `enabled` is FALSE, the view finder will be deactivated.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
enabled | TRUE to turn on the view finder |
error | a GError, or NULL |

#### Returns

TRUE if the viewer finder state was changed, FALSE on error

### entangle_camera_set_viewfinder_async ()

    void
    entangle_camera_set_viewfinder_async (EntangleCamera *cam,
                                          gboolean enabled,
                                          GCancellable *cancellable,
                                          GAsyncReadyCallback callback,
                                          gpointer user_data);

If `enabled` is TRUE, the view finder will be activated allowing preview images to be captured. If `enabled` is FALSE, the view finder will be deactivated.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_set_viewfinder_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
enabled | TRUE to turn on the view finder |
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_set_viewfinder_finish ()

    gboolean
    entangle_camera_set_viewfinder_finish (EntangleCamera *cam,
                                           GAsyncResult *result,
                                           GError **error);

Check the completion status of a previous call to entangle_camera_set_viewfinder_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the viewfinder state was changed, FALSE on error

### entangle_camera_autofocus ()

    gboolean
    entangle_camera_autofocus (EntangleCamera *cam,
                               GError **error);

Trigger the autofocus mechanism on the camera, waiting until focus is achieved or fails.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if autofocus was achieved, FALSE on error

### entangle_camera_autofocus_async ()

    void
    entangle_camera_autofocus_async (EntangleCamera *cam,
                                     GCancellable *cancellable,
                                     GAsyncReadyCallback callback,
                                     gpointer user_data);

Trigger the autofocus mechanism on the camera, waiting until focus is achieved or fails.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_autofocus_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_autofocus_finish ()

    gboolean
    entangle_camera_autofocus_finish (EntangleCamera *cam,
                                      GAsyncResult *result,
                                      GError **error);

Check the completion status of a previous call to entangle_camera_autofocus_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if autofocus was performed, FALSE on error

### entangle_camera_manualfocus ()

    gboolean
    entangle_camera_manualfocus (EntangleCamera *cam,
                                 EntangleCameraManualFocusStep step,
                                 GError **error);

Trigger the focus mechanism on the camera, to move by `step` .

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
step | how much to change focus by |
error | a GError, or NULL |

#### Returns

TRUE if autofocus was achieved, FALSE on error

### entangle_camera_manualfocus_async ()

    void
    entangle_camera_manualfocus_async (EntangleCamera *cam,
                                       EntangleCameraManualFocusStep step,
                                       GCancellable *cancellable,
                                       GAsyncReadyCallback callback,
                                       gpointer user_data);

Trigger the focus mechanism on the camera, to move by `step` .

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_manualfocus_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
step | how much to change focus by |
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_manualfocus_finish ()

    gboolean
    entangle_camera_manualfocus_finish (EntangleCamera *cam,
                                        GAsyncResult *result,
                                        GError **error);

Check the completion status of a previous call to entangle_camera_manualfocus_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if manual focus was performed, FALSE on error

### entangle_camera_set_clock ()

    gboolean
    entangle_camera_set_clock (EntangleCamera *cam,
                               gint64 epochsecs,
                               GError **error);

Update the camera clock to be `epochsecs` seconds since the epoch.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
epochsecs | new time in seconds since the epoch |
error | a GError, or NULL |

#### Returns

TRUE if the clock was changed, FALSE on error

### entangle_camera_set_clock_async ()

    void
    entangle_camera_set_clock_async (EntangleCamera *cam,
                                     gint64 epochsecs,
                                     GCancellable *cancellable,
                                     GAsyncReadyCallback callback,
                                     gpointer user_data);

Update the camera clock to be `epochsecs` seconds since the epoch.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_set_clock_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
epochsecs | new time in seconds since the epoch |
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_set_clock_finish ()

    gboolean
    entangle_camera_set_clock_finish (EntangleCamera *cam,
                                      GAsyncResult *result,
                                      GError **error);

Check the completion status of a previous call to entangle_camera_set_clock_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the clock was changed, FALSE on error

### entangle_camera_set_capture_target ()

    gboolean
    entangle_camera_set_capture_target (EntangleCamera *cam,
                                        EntangleCameraCaptureTarget target,
                                        GError **error);

Set the destination for storing captured images to `target` .

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
target | the capture target |
error | a GError, or NULL |

#### Returns

TRUE if the capture target was changed, FALSE on error

### entangle_camera_set_capture_target_async ()

    void
    entangle_camera_set_capture_target_async
                                   (EntangleCamera *cam,
                                    EntangleCameraCaptureTarget target,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Set the destination for storing captured images to `target` .

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_set_clock_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
target | the capture target |
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_set_capture_target_finish ()

    gboolean
    entangle_camera_set_capture_target_finish
                                   (EntangleCamera *cam,
                                    GAsyncResult *result,
                                    GError **error);

### entangle_camera_get_has_capture ()

    gboolean
    entangle_camera_get_has_capture (EntangleCamera *cam);

Check if the camera supports images capture

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera supports image capture, FALSE otherwise

### entangle_camera_get_has_preview ()

    gboolean
    entangle_camera_get_has_preview (EntangleCamera *cam);

Check if the camera supports images preview

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera supports image preview, FALSE otherwise

### entangle_camera_get_has_settings ()

    gboolean
    entangle_camera_get_has_settings (EntangleCamera *cam);

Check if the camera supports configuration settings

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera supports configuration settings, FALSE otherwise

### entangle_camera_get_has_viewfinder ()

    gboolean
    entangle_camera_get_has_viewfinder (EntangleCamera *cam);

Check if the camera supports view finder control

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera supports view finder control, FALSE otherwise

### entangle_camera_load_controls ()

    gboolean
    entangle_camera_load_controls (EntangleCamera *cam,
                                   GError **error);

Loads the configuration controls from the camera.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the controls were loaded, FALSE on error

### entangle_camera_load_controls_async ()

    void
    entangle_camera_load_controls_async (EntangleCamera *cam,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Loads the configuration controls from the camera.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_load_controls_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_load_controls_finish ()

    gboolean
    entangle_camera_load_controls_finish (EntangleCamera *cam,
                                          GAsyncResult *result,
                                          GError **error);

Check the completion status of a previous call to entangle_camera_load_controls_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the controls were loaded, FALSE on error

### entangle_camera_save_controls ()

    gboolean
    entangle_camera_save_controls (EntangleCamera *cam,
                                   GError **error);

Saves the configuration controls to the camera.

This can only be invoked when the camera is opened.

This block execution of the caller until completion.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

TRUE if the controls were saved, FALSE on error

### entangle_camera_save_controls_async ()

    void
    entangle_camera_save_controls_async (EntangleCamera *cam,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Saves the configuration controls to the camera.

This can only be invoked when the camera is opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_save_controls_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_save_controls_finish ()

    gboolean
    entangle_camera_save_controls_finish (EntangleCamera *cam,
                                          GAsyncResult *result,
                                          GError **error);

Check the completion status of a previous call to entangle_camera_save_controls_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the controls were saved, FALSE on error

### entangle_camera_get_controls ()

    EntangleControlGroup *
    entangle_camera_get_controls (EntangleCamera *cam,
                                  GError **error);

Get the configuration controls associated with the camera.

This can only be invoked when the camera is opened.

#### Parameters

cam | the camera. | [transfer none]
error | a GError, or NULL |

#### Returns

the controls, or NULL.

[transfer full]

### entangle_camera_set_progress ()

    void
    entangle_camera_set_progress (EntangleCamera *cam,
                                  EntangleProgress *prog);

Set the object instance to receive operation progress notifications

#### Parameters

cam | the camera. | [transfer none]
prog | the progress instance. | [transfer none][allow-none]

### entangle_camera_get_progress ()

    EntangleProgress *
    entangle_camera_get_progress (EntangleCamera *cam);

Get the object instance that is receiving operation progress notifications

#### Parameters

cam | the camera. | [transfer none]

#### Returns

the progress object.

[transfer full]

### entangle_camera_is_mounted ()

    gboolean
    entangle_camera_is_mounted (EntangleCamera *cam);

Check whether the camera is mounted as a virtual filesystem, which would prevent opening it.

#### Parameters

cam | the camera. | [transfer none]

#### Returns

TRUE if the camera is mounted, FALSE otherwise

### entangle_camera_mount_async ()

    void
    entangle_camera_mount_async (EntangleCamera *cam,
                                 GCancellable *cancellable,
                                 GAsyncReadyCallback callback,
                                 gpointer user_data);

### entangle_camera_mount_finish ()

    gboolean
    entangle_camera_mount_finish (EntangleCamera *cam,
                                  GAsyncResult *result,
                                  GError **error);

### entangle_camera_unmount_async ()

    void
    entangle_camera_unmount_async (EntangleCamera *cam,
                                   GCancellable *cancellable,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data);

Unmount the camera virtual filesystem, allowing it to be opened.

This will execute in the background, and invoke `callback` when complete, whereupon entangle_camera_unmount_finish can be used to check the status

#### Parameters

cam | the camera. | [transfer none]
cancellable | optional GCancellable object, NULL to ignore. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied. | [scope async]
user_data | the data to pass to callback function. | [closure]

### entangle_camera_unmount_finish ()

    gboolean
    entangle_camera_unmount_finish (EntangleCamera *cam,
                                    GAsyncResult *result,
                                    GError **error);

Check the completion status of a previous call to entangle_camera_unmount_async.

#### Parameters

cam | the camera. | [transfer none]
result | a GAsyncResult |
error | a GError, or NULL |

#### Returns

TRUE if the camera was unmounted, FALSE on error

## Types and Values

### ENTANGLE_TYPE_CAMERA

    #define ENTANGLE_TYPE_CAMERA (entangle_camera_get_type())

### enum EntangleCameraManualFocusStep

#### Members

ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_IN_COARSE |  |
ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_IN_MEDIUM |  |
ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_IN_FINE |  |
ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_OUT_COARSE |  |
ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_OUT_MEDIUM |  |
ENTANGLE_CAMERA_MANUAL_FOCUS_STEP_OUT_FINE |  |

### enum EntangleCameraCaptureTarget

#### Members

ENTANGLE_CAMERA_CAPTURE_TARGET_RAM |  |
ENTANGLE_CAMERA_CAPTURE_TARGET_CARD |  |

### EntangleCamera

    typedef struct _EntangleCamera EntangleCamera;

## Property Details

### The `“driver”` property

      “driver”                   char *

Camera driver information.

Owner: EntangleCamera

Flags: Read

Default value: NULL

### The `“has-capture”` property

      “has-capture”              gboolean

Whether image capture is supported.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: FALSE

### The `“has-preview”` property

      “has-preview”              gboolean

Whether image preview is supported.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: FALSE

### The `“has-settings”` property

      “has-settings”             gboolean

Whether camera settings configuration is supported.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: FALSE

### The `“has-viewfinder”` property

      “has-viewfinder”           gboolean

Whether camera viewfinder configuration is supported.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: FALSE

### The `“manual”` property

      “manual”                   char *

Camera manual.

Owner: EntangleCamera

Flags: Read

Default value: NULL

### The `“model”` property

      “model”                    char *

Model name of the camera.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: NULL

### The `“port”` property

      “port”                     char *

Device port of the camera.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: NULL

### The `“progress”` property

      “progress”                 EntangleProgress *

Operation progress updater.

Owner: EntangleCamera

Flags: Read / Write

### The `“serial”` property

      “serial”                   char *

Device serial of the camera.

Owner: EntangleCamera

Flags: Read / Write / Construct Only

Default value: NULL

### The `“summary”` property

      “summary”                  char *

Camera summary.

Owner: EntangleCamera

Flags: Read

Default value: NULL

## Signal Details

### The `“camera-closed”` signal

    void
    user_function (EntangleCamera *entanglecamera,
                   gpointer        user_data)

Flags: Run First

### The `“camera-controls-changed”` signal

    void
    user_function (EntangleCamera *entanglecamera,
                   gpointer        user_data)

Flags: Run First

### The `“camera-file-added”` signal

    void
    user_function (EntangleCamera     *entanglecamera,
                   EntangleCameraFile *arg1,
                   gpointer            user_data)

Flags: Run First

### The `“camera-file-captured”` signal

    void
    user_function (EntangleCamera     *entanglecamera,
                   EntangleCameraFile *arg1,
                   gpointer            user_data)

Flags: Run First

### The `“camera-file-deleted”` signal

    void
    user_function (EntangleCamera     *entanglecamera,
                   EntangleCameraFile *arg1,
                   gpointer            user_data)

Flags: Run First

### The `“camera-file-downloaded”` signal

    void
    user_function (EntangleCamera     *entanglecamera,
                   EntangleCameraFile *arg1,
                   gpointer            user_data)

Flags: Run First

### The `“camera-file-previewed”` signal

    void
    user_function (EntangleCamera     *entanglecamera,
                   EntangleCameraFile *arg1,
                   gpointer            user_data)

Flags: Run First

### The `“camera-opened”` signal

    void
    user_function (EntangleCamera *entanglecamera,
                   gpointer        user_data)

Flags: Run First