libgphoto2 photo camera library (libgphoto2) API 2.5.29
gphoto2-camera.h
Go to the documentation of this file.
1
26#ifndef LIBGPHOTO2_GPHOTO2_CAMERA_H
27#define LIBGPHOTO2_GPHOTO2_CAMERA_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif /* __cplusplus */
32
44typedef struct _Camera Camera;
45#ifdef __cplusplus
46}
47#endif /* __cplusplus */
48
49
52
56
57#ifdef __cplusplus
58extern "C" {
59#endif /* __cplusplus */
60
68typedef struct {
69 char text [32 * 1024];
71
79typedef struct {
80 char name [128];
81 char folder [1024];
83
90typedef enum {
95
103typedef enum {
111
138typedef int (*CameraExitFunc) (Camera *camera, GPContext *context);
139
159typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
160 GPContext *context);
184typedef int (*CameraGetSingleConfigFunc) (Camera *camera, const char *name, CameraWidget **widget,
185 GPContext *context);
209typedef int (*CameraListConfigFunc) (Camera *camera, CameraList *list, GPContext *context);
223typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget *widget,
224 GPContext *context);
237typedef int (*CameraSetSingleConfigFunc) (Camera *camera, const char *name, CameraWidget *widget,
238 GPContext *context);
239
240typedef int (*CameraCaptureFunc) (Camera *camera, CameraCaptureType type,
241 CameraFilePath *path, GPContext *context);
242typedef int (*CameraTriggerCaptureFunc) (Camera *camera, GPContext *context);
243typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
244 GPContext *context);
245typedef int (*CameraSummaryFunc) (Camera *camera, CameraText *text,
246 GPContext *context);
247typedef int (*CameraManualFunc) (Camera *camera, CameraText *text,
248 GPContext *context);
249typedef int (*CameraAboutFunc) (Camera *camera, CameraText *text,
250 GPContext *context);
251typedef int (*CameraWaitForEvent) (Camera *camera, int timeout,
252 CameraEventType *eventtype, void **eventdata,
253 GPContext *context);
271typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
272
285typedef struct _CameraFunctions {
291 /* Configuration */
299 /* Capturing */
300 CameraCaptureFunc capture;
301 CameraTriggerCaptureFunc trigger_capture;
302 CameraCapturePreviewFunc capture_preview;
304 /* Textual information */
305 CameraSummaryFunc summary;
306 CameraManualFunc manual;
307 CameraAboutFunc about;
309 /* Event Interface */
310 CameraWaitForEvent wait_for_event;
311 /* Reserved space to use in the future without changing the struct size */
312 void *reserved1;
313 void *reserved2;
314 void *reserved3;
315 void *reserved4;
316 void *reserved5;
317 void *reserved6;
318 void *reserved7;
319 void *reserved8;
321
322typedef struct _CameraPrivateLibrary CameraPrivateLibrary;
324
325struct _Camera {
326
329 GPPort *port;
331 CameraFunctions *functions;
334 CameraPrivateLibrary *pl;
336};
337
338
340int gp_camera_new (Camera **camera);
341
342
346int gp_camera_set_abilities (Camera *camera, CameraAbilities abilities);
347int gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities);
348int gp_camera_set_port_info (Camera *camera, GPPortInfo info);
349int gp_camera_get_port_info (Camera *camera, GPPortInfo *info);
350
362int gp_camera_set_port_speed (Camera *camera, int speed);
363int gp_camera_get_port_speed (Camera *camera);
364
371int gp_camera_autodetect (CameraList *list, GPContext *context);
372int gp_camera_init (Camera *camera, GPContext *context);
373int gp_camera_exit (Camera *camera, GPContext *context);
374
382int gp_camera_ref (Camera *camera);
383int gp_camera_unref (Camera *camera);
384int gp_camera_free (Camera *camera);
385
386int gp_camera_get_config (Camera *camera, CameraWidget **window,
387 GPContext *context);
388int gp_camera_list_config (Camera *camera, CameraList *list,
389 GPContext *context);
390int gp_camera_get_single_config (Camera *camera, const char *name, CameraWidget **widget,
391 GPContext *context);
392int gp_camera_set_config (Camera *camera, CameraWidget *window,
393 GPContext *context);
394int gp_camera_set_single_config (Camera *camera, const char *name, CameraWidget *widget,
395 GPContext *context);
396int gp_camera_get_summary (Camera *camera, CameraText *summary,
397 GPContext *context);
398int gp_camera_get_manual (Camera *camera, CameraText *manual,
399 GPContext *context);
400int gp_camera_get_about (Camera *camera, CameraText *about,
401 GPContext *context);
403 CameraFilePath *path, GPContext *context);
404int gp_camera_trigger_capture (Camera *camera, GPContext *context);
406 GPContext *context);
407int gp_camera_wait_for_event (Camera *camera, int timeout,
408 CameraEventType *eventtype, void **eventdata,
409 GPContext *context);
410
412 int *, GPContext *context);
413
420int gp_camera_folder_list_files (Camera *camera, const char *folder,
421 CameraList *list, GPContext *context);
422int gp_camera_folder_list_folders (Camera *camera, const char *folder,
423 CameraList *list, GPContext *context);
424int gp_camera_folder_delete_all (Camera *camera, const char *folder,
425 GPContext *context);
427 const char *folder, const char *filename,
428 CameraFileType type,
429 CameraFile *file, GPContext *context);
430int gp_camera_folder_make_dir (Camera *camera, const char *folder,
431 const char *name, GPContext *context);
432int gp_camera_folder_remove_dir (Camera *camera, const char *folder,
433 const char *name, GPContext *context);
440int gp_camera_file_get_info (Camera *camera, const char *folder,
441 const char *file, CameraFileInfo *info,
442 GPContext *context);
443int gp_camera_file_set_info (Camera *camera, const char *folder,
444 const char *file, CameraFileInfo info,
445 GPContext *context);
446int gp_camera_file_get (Camera *camera, const char *folder,
447 const char *file, CameraFileType type,
448 CameraFile *camera_file, GPContext *context);
449int gp_camera_file_read (Camera *camera, const char *folder, const char *file,
450 CameraFileType type,
451 uint64_t offset, char *buf, uint64_t *size,
452 GPContext *context);
453int gp_camera_file_delete (Camera *camera, const char *folder,
454 const char *file, GPContext *context);
462typedef int (* CameraTimeoutFunc) (Camera *camera,
463 GPContext *context);
464typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
465 unsigned int timeout,
466 CameraTimeoutFunc func,
467 void *data);
468typedef void (* CameraTimeoutStopFunc) (Camera *camera,
469 unsigned int id, void *data);
471 CameraTimeoutStartFunc start_func,
472 CameraTimeoutStopFunc stop_func,
473 void *data);
474int gp_camera_start_timeout (Camera *camera, unsigned int timeout,
475 CameraTimeoutFunc func);
476void gp_camera_stop_timeout (Camera *camera, unsigned int id);
477
479#ifdef __cplusplus
480}
481#endif /* __cplusplus */
482
483
484#endif /* !defined(LIBGPHOTO2_GPHOTO2_CAMERA_H) */
List of supported camera models including their abilities.
int gp_camera_get_port_speed(Camera *camera)
Definition: gphoto2-camera.c:476
struct _CameraFunctions CameraFunctions
Various camera specific functions.
int gp_camera_get_about(Camera *camera, CameraText *about, GPContext *context)
Definition: gphoto2-camera.c:1279
int gp_camera_set_config(Camera *camera, CameraWidget *window, GPContext *context)
Definition: gphoto2-camera.c:1087
int gp_camera_folder_delete_all(Camera *camera, const char *folder, GPContext *context)
Definition: gphoto2-camera.c:1507
int gp_camera_folder_list_files(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1452
int gp_camera_set_port_speed(Camera *camera, int speed)
Definition: gphoto2-camera.c:441
int gp_camera_folder_remove_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1787
int gp_camera_file_set_info(Camera *camera, const char *folder, const char *file, CameraFileInfo info, GPContext *context)
Definition: gphoto2-camera.c:1629
int gp_camera_file_read(Camera *camera, const char *folder, const char *file, CameraFileType type, uint64_t offset, char *buf, uint64_t *size, GPContext *context)
Definition: gphoto2-camera.c:1699
int gp_camera_get_abilities(Camera *camera, CameraAbilities *abilities)
Definition: gphoto2-camera.c:381
int gp_camera_file_get(Camera *camera, const char *folder, const char *file, CameraFileType type, CameraFile *camera_file, GPContext *context)
Definition: gphoto2-camera.c:1656
int(* CameraSetConfigFunc)(Camera *camera, CameraWidget *widget, GPContext *context)
Set the configuration in the camera.
Definition: gphoto2-camera.h:223
int(* CameraSetSingleConfigFunc)(Camera *camera, const char *name, CameraWidget *widget, GPContext *context)
Set a single configuration variable in the camera.
Definition: gphoto2-camera.h:237
int gp_camera_get_manual(Camera *camera, CameraText *manual, GPContext *context)
Definition: gphoto2-camera.c:1247
int(* CameraPrePostFunc)(Camera *camera, GPContext *context)
Definition: gphoto2-camera.h:271
CameraEventType
Specify what event we received from the camera.
Definition: gphoto2-camera.h:103
@ GP_EVENT_FILE_ADDED
Definition: gphoto2-camera.h:106
@ GP_EVENT_FOLDER_ADDED
Definition: gphoto2-camera.h:107
@ GP_EVENT_TIMEOUT
Definition: gphoto2-camera.h:105
@ GP_EVENT_UNKNOWN
Definition: gphoto2-camera.h:104
@ GP_EVENT_FILE_CHANGED
Definition: gphoto2-camera.h:109
@ GP_EVENT_CAPTURE_COMPLETE
Definition: gphoto2-camera.h:108
int gp_camera_ref(Camera *camera)
Definition: gphoto2-camera.c:492
int gp_camera_file_delete(Camera *camera, const char *folder, const char *file, GPContext *context)
Definition: gphoto2-camera.c:1737
int gp_camera_trigger_capture(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:1343
int gp_camera_unref(Camera *camera)
Definition: gphoto2-camera.c:513
int gp_camera_start_timeout(Camera *camera, unsigned int timeout, CameraTimeoutFunc func)
Definition: gphoto2-camera.c:1878
int gp_camera_wait_for_event(Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context)
Definition: gphoto2-camera.c:1423
CameraCaptureType
Type of the capture to do.
Definition: gphoto2-camera.h:90
@ GP_CAPTURE_IMAGE
Capture an image.
Definition: gphoto2-camera.h:91
@ GP_CAPTURE_SOUND
Capture audio.
Definition: gphoto2-camera.h:93
@ GP_CAPTURE_MOVIE
Capture a movie.
Definition: gphoto2-camera.h:92
int gp_camera_folder_make_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1763
void gp_camera_stop_timeout(Camera *camera, unsigned int id)
Definition: gphoto2-camera.c:1919
int gp_camera_exit(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:248
int gp_camera_free(Camera *camera)
Definition: gphoto2-camera.c:547
int gp_camera_get_summary(Camera *camera, CameraText *summary, GPContext *context)
Definition: gphoto2-camera.c:1216
int gp_camera_folder_list_folders(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1480
int gp_camera_capture(Camera *camera, CameraCaptureType type, CameraFilePath *path, GPContext *context)
Definition: gphoto2-camera.c:1312
int gp_camera_set_abilities(Camera *camera, CameraAbilities abilities)
Sets the camera abilities.
Definition: gphoto2-camera.c:353
int gp_camera_get_storageinfo(Camera *camera, CameraStorageInformation **, int *, GPContext *context)
Gets information on the camera attached storage.
Definition: gphoto2-camera.c:1822
int gp_camera_folder_put_file(Camera *camera, const char *folder, const char *filename, CameraFileType type, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1533
int(* CameraGetConfigFunc)(Camera *camera, CameraWidget **widget, GPContext *context)
Get a configuration tree for the camera and its driver.
Definition: gphoto2-camera.h:159
int gp_camera_init(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:668
int gp_camera_get_single_config(Camera *camera, const char *name, CameraWidget **widget, GPContext *context)
Definition: gphoto2-camera.c:876
int(* CameraExitFunc)(Camera *camera, GPContext *context)
The camera exit function.
Definition: gphoto2-camera.h:138
int gp_camera_capture_preview(Camera *camera, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1373
int(* CameraGetSingleConfigFunc)(Camera *camera, const char *name, CameraWidget **widget, GPContext *context)
Get a configuration widget for a specific configuration.
Definition: gphoto2-camera.h:184
int gp_camera_new(Camera **camera)
Definition: gphoto2-camera.c:302
int gp_camera_file_get_info(Camera *camera, const char *folder, const char *file, CameraFileInfo *info, GPContext *context)
Definition: gphoto2-camera.c:1563
int gp_camera_set_single_config(Camera *camera, const char *name, CameraWidget *widget, GPContext *context)
Definition: gphoto2-camera.c:1119
int(* CameraListConfigFunc)(Camera *camera, CameraList *list, GPContext *context)
List all configuration widgets for a specific configuration.
Definition: gphoto2-camera.h:209
int gp_camera_autodetect(CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:603
int gp_camera_get_config(Camera *camera, CameraWidget **window, GPContext *context)
Definition: gphoto2-camera.c:843
void gp_camera_set_timeout_funcs(Camera *camera, CameraTimeoutStartFunc start_func, CameraTimeoutStopFunc stop_func, void *data)
Definition: gphoto2-camera.c:1852
CameraFileType
The type of view on the specified file.
Definition: gphoto2-file.h:73
Filesystem related operations and declarations.
Describes the properties of a specific camera.
Definition: gphoto2-abilities-list.h:120
A structure created by the capture operation.
Definition: gphoto2-camera.h:79
File structure.
CameraText structure used in various functions.
Definition: gphoto2-camera.h:68
File information structure.
Definition: gphoto2-filesys.h:141
The internal camera filesystem structure.
Definition: gphoto2-filesys.c:226
Various camera specific functions.
Definition: gphoto2-camera.h:285
void * reserved5
reserved for future use
Definition: gphoto2-camera.h:316
void * reserved4
reserved for future use
Definition: gphoto2-camera.h:315
CameraSetSingleConfigFunc set_single_config
Called for setting a single configuration widget.
Definition: gphoto2-camera.h:297
void * reserved2
reserved for future use
Definition: gphoto2-camera.h:313
CameraGetSingleConfigFunc get_single_config
Called for requesteing a single widget.
Definition: gphoto2-camera.h:296
CameraCapturePreviewFunc capture_preview
Preview viewfinder content.
Definition: gphoto2-camera.h:302
CameraPrePostFunc post_func
Function called after each camera operation.
Definition: gphoto2-camera.h:287
CameraManualFunc manual
Give a brief manual about any specific items a user has to know, translated.
Definition: gphoto2-camera.h:306
CameraWaitForEvent wait_for_event
Wait for a specific event from the camera.
Definition: gphoto2-camera.h:310
void * reserved8
reserved for future use
Definition: gphoto2-camera.h:319
void * reserved6
reserved for future use
Definition: gphoto2-camera.h:317
CameraPrePostFunc pre_func
Function called before each camera operation.
Definition: gphoto2-camera.h:286
CameraGetConfigFunc get_config
Called for requesting the configuration widgets.
Definition: gphoto2-camera.h:292
CameraAboutFunc about
A little About text, including authors and credits.
Definition: gphoto2-camera.h:307
CameraSetConfigFunc set_config
Called after a configuration was changed.
Definition: gphoto2-camera.h:293
CameraSummaryFunc summary
Give a summary about the current camera status, translated.
Definition: gphoto2-camera.h:305
CameraExitFunc exit
Function called on closing the camera.
Definition: gphoto2-camera.h:289
CameraTriggerCaptureFunc trigger_capture
Remote control the camera to trigger capture.
Definition: gphoto2-camera.h:301
CameraCaptureFunc capture
Remote control the camera to capture.
Definition: gphoto2-camera.h:300
CameraListConfigFunc list_config
Called for listing the available configuration widgets.
Definition: gphoto2-camera.h:295
void * reserved7
reserved for future use
Definition: gphoto2-camera.h:318
void * reserved1
reserved for future use
Definition: gphoto2-camera.h:312
void * reserved3
reserved for future use
Definition: gphoto2-camera.h:314
Definition: gphoto2-list.c:47
Definition: gphoto2-camera.c:203
Storage information structue.
Definition: gphoto2-filesys.h:214
Definition: gphoto2-widget.c:39
Definition: gphoto2-camera.h:325
CameraPrivateLibrary * pl
Definition: gphoto2-camera.h:334
CameraPrivateCore * pc
Definition: gphoto2-camera.h:335
Definition: gphoto2-context.c:39
Definition: gphoto2-port-info.h:32
The GPhoto port structure.
Definition: gphoto2-port.h:139