libgphoto2 photo camera library (libgphoto2) API  2.5.16
gphoto2-camera.h
Go to the documentation of this file.
1 
26 #ifndef __GPHOTO2_CAMERA_H__
27 #define __GPHOTO2_CAMERA_H__
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif /* __cplusplus */
32 
44 typedef struct _Camera Camera;
45 #ifdef __cplusplus
46 }
47 #endif /* __cplusplus */
48 
49 
51 #include <gphoto2/gphoto2-port.h>
52 
53 #include <gphoto2/gphoto2-widget.h>
55 #include <gphoto2/gphoto2-result.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif /* __cplusplus */
60 
68 typedef struct {
69  char text [32 * 1024];
70 } CameraText;
71 
79 typedef struct {
80  char name [128];
81  char folder [1024];
83 
90 typedef enum {
95 
103 typedef enum {
110 
137 typedef int (*CameraExitFunc) (Camera *camera, GPContext *context);
138 
158 typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
159  GPContext *context);
183 typedef int (*CameraGetSingleConfigFunc) (Camera *camera, const char *name, CameraWidget **widget,
184  GPContext *context);
208 typedef int (*CameraListConfigFunc) (Camera *camera, CameraList *list, GPContext *context);
222 typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget *widget,
223  GPContext *context);
236 typedef int (*CameraSetSingleConfigFunc) (Camera *camera, const char *name, CameraWidget *widget,
237  GPContext *context);
238 
239 typedef int (*CameraCaptureFunc) (Camera *camera, CameraCaptureType type,
240  CameraFilePath *path, GPContext *context);
241 typedef int (*CameraTriggerCaptureFunc) (Camera *camera, GPContext *context);
242 typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
243  GPContext *context);
244 typedef int (*CameraSummaryFunc) (Camera *camera, CameraText *text,
245  GPContext *context);
246 typedef int (*CameraManualFunc) (Camera *camera, CameraText *text,
247  GPContext *context);
248 typedef int (*CameraAboutFunc) (Camera *camera, CameraText *text,
249  GPContext *context);
250 typedef int (*CameraWaitForEvent) (Camera *camera, int timeout,
251  CameraEventType *eventtype, void **eventdata,
252  GPContext *context);
270 typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
271 
284 typedef struct _CameraFunctions {
290  /* Configuration */
298  /* Capturing */
299  CameraCaptureFunc capture;
300  CameraTriggerCaptureFunc trigger_capture;
301  CameraCapturePreviewFunc capture_preview;
303  /* Textual information */
304  CameraSummaryFunc summary;
305  CameraManualFunc manual;
306  CameraAboutFunc about;
308  /* Event Interface */
309  CameraWaitForEvent wait_for_event;
310  /* Reserved space to use in the future without changing the struct size */
311  void *reserved1;
312  void *reserved2;
313  void *reserved3;
314  void *reserved4;
315  void *reserved5;
316  void *reserved6;
317  void *reserved7;
318  void *reserved8;
320 
321 typedef struct _CameraPrivateLibrary CameraPrivateLibrary;
323 
324 struct _Camera {
325 
328  GPPort *port;
329  CameraFilesystem *fs;
330  CameraFunctions *functions;
333  CameraPrivateLibrary *pl;
335 };
336 
337 
339 int gp_camera_new (Camera **camera);
340 
341 
345 int gp_camera_set_abilities (Camera *camera, CameraAbilities abilities);
346 int gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities);
347 int gp_camera_set_port_info (Camera *camera, GPPortInfo info);
348 int gp_camera_get_port_info (Camera *camera, GPPortInfo *info);
349 
361 int gp_camera_set_port_speed (Camera *camera, int speed);
362 int gp_camera_get_port_speed (Camera *camera);
363 
370 int gp_camera_autodetect (CameraList *list, GPContext *context);
371 int gp_camera_init (Camera *camera, GPContext *context);
372 int gp_camera_exit (Camera *camera, GPContext *context);
373 
381 int gp_camera_ref (Camera *camera);
382 int gp_camera_unref (Camera *camera);
383 int gp_camera_free (Camera *camera);
384 
385 int gp_camera_get_config (Camera *camera, CameraWidget **window,
386  GPContext *context);
387 int gp_camera_list_config (Camera *camera, CameraList *list,
388  GPContext *context);
389 int gp_camera_get_single_config (Camera *camera, const char *name, CameraWidget **widget,
390  GPContext *context);
391 int gp_camera_set_config (Camera *camera, CameraWidget *window,
392  GPContext *context);
393 int gp_camera_set_single_config (Camera *camera, const char *name, CameraWidget *widget,
394  GPContext *context);
395 int gp_camera_get_summary (Camera *camera, CameraText *summary,
396  GPContext *context);
397 int gp_camera_get_manual (Camera *camera, CameraText *manual,
398  GPContext *context);
399 int gp_camera_get_about (Camera *camera, CameraText *about,
400  GPContext *context);
401 int gp_camera_capture (Camera *camera, CameraCaptureType type,
402  CameraFilePath *path, GPContext *context);
403 int gp_camera_trigger_capture (Camera *camera, GPContext *context);
404 int gp_camera_capture_preview (Camera *camera, CameraFile *file,
405  GPContext *context);
406 int gp_camera_wait_for_event (Camera *camera, int timeout,
407  CameraEventType *eventtype, void **eventdata,
408  GPContext *context);
409 
411  int *, GPContext *context);
412 
419 int gp_camera_folder_list_files (Camera *camera, const char *folder,
420  CameraList *list, GPContext *context);
421 int gp_camera_folder_list_folders (Camera *camera, const char *folder,
422  CameraList *list, GPContext *context);
423 int gp_camera_folder_delete_all (Camera *camera, const char *folder,
424  GPContext *context);
425 int gp_camera_folder_put_file (Camera *camera,
426  const char *folder, const char *filename,
427  CameraFileType type,
428  CameraFile *file, GPContext *context);
429 int gp_camera_folder_make_dir (Camera *camera, const char *folder,
430  const char *name, GPContext *context);
431 int gp_camera_folder_remove_dir (Camera *camera, const char *folder,
432  const char *name, GPContext *context);
439 int gp_camera_file_get_info (Camera *camera, const char *folder,
440  const char *file, CameraFileInfo *info,
441  GPContext *context);
442 int gp_camera_file_set_info (Camera *camera, const char *folder,
443  const char *file, CameraFileInfo info,
444  GPContext *context);
445 int gp_camera_file_get (Camera *camera, const char *folder,
446  const char *file, CameraFileType type,
447  CameraFile *camera_file, GPContext *context);
448 int gp_camera_file_read (Camera *camera, const char *folder, const char *file,
449  CameraFileType type,
450  uint64_t offset, char *buf, uint64_t *size,
451  GPContext *context);
452 int gp_camera_file_delete (Camera *camera, const char *folder,
453  const char *file, GPContext *context);
461 typedef int (* CameraTimeoutFunc) (Camera *camera,
462  GPContext *context);
463 typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
464  unsigned int timeout,
465  CameraTimeoutFunc func,
466  void *data);
467 typedef void (* CameraTimeoutStopFunc) (Camera *camera,
468  unsigned int id, void *data);
469 void gp_camera_set_timeout_funcs (Camera *camera,
470  CameraTimeoutStartFunc start_func,
471  CameraTimeoutStopFunc stop_func,
472  void *data);
473 int gp_camera_start_timeout (Camera *camera, unsigned int timeout,
474  CameraTimeoutFunc func);
475 void gp_camera_stop_timeout (Camera *camera, unsigned int id);
476 
478 #ifdef __cplusplus
479 }
480 #endif /* __cplusplus */
481 
482 
483 #endif /* __GPHOTO2_CAMERA_H__ */
int gp_camera_unref(Camera *camera)
Definition: gphoto2-camera.c:528
CameraCaptureType
Type of the capture to do.
Definition: gphoto2-camera.h:90
Definition: gphoto2-list.c:47
CameraPrivateCore * pc
Definition: gphoto2-camera.h:334
Definition: gphoto2-camera.h:104
int gp_camera_get_single_config(Camera *camera, const char *name, CameraWidget **widget, GPContext *context)
Definition: gphoto2-camera.c:891
int gp_camera_trigger_capture(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:1358
Definition: gphoto2-camera.h:105
int gp_camera_get_config(Camera *camera, CameraWidget **window, GPContext *context)
Definition: gphoto2-camera.c:858
int gp_camera_get_about(Camera *camera, CameraText *about, GPContext *context)
Definition: gphoto2-camera.c:1294
int gp_camera_autodetect(CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:618
Definition: gphoto2-camera.h:106
int gp_camera_folder_put_file(Camera *camera, const char *folder, const char *filename, CameraFileType type, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1548
void * reserved4
reserved for future use
Definition: gphoto2-camera.h:314
CameraPrePostFunc post_func
Function called after each camera operation.
Definition: gphoto2-camera.h:286
int(* CameraListConfigFunc)(Camera *camera, CameraList *list, GPContext *context)
List all configuration widgets for a specific configuration.
Definition: gphoto2-camera.h:208
Definition: gphoto2-camera.h:107
CameraSetSingleConfigFunc set_single_config
Called for setting a single configuration widget.
Definition: gphoto2-camera.h:296
int gp_camera_get_summary(Camera *camera, CameraText *summary, GPContext *context)
Definition: gphoto2-camera.c:1231
int(* CameraSetConfigFunc)(Camera *camera, CameraWidget *widget, GPContext *context)
Set the configuration in the camera.
Definition: gphoto2-camera.h:222
int gp_camera_init(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:683
int gp_camera_exit(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:264
Definition: gphoto2-camera.h:324
int gp_camera_set_abilities(Camera *camera, CameraAbilities abilities)
Sets the camera abilities.
Definition: gphoto2-camera.c:368
void * reserved3
reserved for future use
Definition: gphoto2-camera.h:313
void * reserved8
reserved for future use
Definition: gphoto2-camera.h:318
Definition: gphoto2-widget.c:38
int gp_camera_get_storageinfo(Camera *camera, CameraStorageInformation **, int *, GPContext *context)
Gets information on the camera attached storage.
Definition: gphoto2-camera.c:1837
int gp_camera_wait_for_event(Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context)
Definition: gphoto2-camera.c:1438
CameraCapturePreviewFunc capture_preview
Preview viewfinder content.
Definition: gphoto2-camera.h:301
int gp_camera_folder_delete_all(Camera *camera, const char *folder, GPContext *context)
Definition: gphoto2-camera.c:1522
int gp_camera_file_set_info(Camera *camera, const char *folder, const char *file, CameraFileInfo info, GPContext *context)
Definition: gphoto2-camera.c:1644
int gp_camera_set_config(Camera *camera, CameraWidget *window, GPContext *context)
Definition: gphoto2-camera.c:1102
int gp_camera_free(Camera *camera)
Definition: gphoto2-camera.c:562
int gp_camera_folder_list_files(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1467
int gp_camera_start_timeout(Camera *camera, unsigned int timeout, CameraTimeoutFunc func)
Definition: gphoto2-camera.c:1893
int(* CameraGetSingleConfigFunc)(Camera *camera, const char *name, CameraWidget **widget, GPContext *context)
Get a configuration widget for a specific configuration.
Definition: gphoto2-camera.h:183
Definition: gphoto2-camera.c:219
File structure.
int gp_camera_file_get(Camera *camera, const char *folder, const char *file, CameraFileType type, CameraFile *camera_file, GPContext *context)
Definition: gphoto2-camera.c:1671
int gp_camera_get_manual(Camera *camera, CameraText *manual, GPContext *context)
Definition: gphoto2-camera.c:1262
int(* CameraPrePostFunc)(Camera *camera, GPContext *context)
Definition: gphoto2-camera.h:270
struct _CameraFunctions CameraFunctions
Various camera specific functions.
void * reserved1
reserved for future use
Definition: gphoto2-camera.h:311
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:1714
CameraGetSingleConfigFunc get_single_config
Called for requesteing a single widget.
Definition: gphoto2-camera.h:295
Capture audio.
Definition: gphoto2-camera.h:93
CameraAboutFunc about
A little About text, including authors and credits.
Definition: gphoto2-camera.h:306
Various camera specific functions.
Definition: gphoto2-camera.h:284
The GPhoto port structure.
Definition: gphoto2-port.h:143
int gp_camera_folder_list_folders(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1495
int(* CameraExitFunc)(Camera *camera, GPContext *context)
The camera exit function.
Definition: gphoto2-camera.h:137
int gp_camera_capture_preview(Camera *camera, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1388
void * reserved2
reserved for future use
Definition: gphoto2-camera.h:312
CameraTriggerCaptureFunc trigger_capture
Remote control the camera to trigger capture.
Definition: gphoto2-camera.h:300
int gp_camera_file_delete(Camera *camera, const char *folder, const char *file, GPContext *context)
Definition: gphoto2-camera.c:1752
void * reserved6
reserved for future use
Definition: gphoto2-camera.h:316
int gp_camera_folder_remove_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1802
int gp_camera_set_port_speed(Camera *camera, int speed)
Definition: gphoto2-camera.c:456
int gp_camera_ref(Camera *camera)
Definition: gphoto2-camera.c:507
int gp_camera_set_single_config(Camera *camera, const char *name, CameraWidget *widget, GPContext *context)
Definition: gphoto2-camera.c:1134
File information structure.
Definition: gphoto2-filesys.h:141
Filesystem related operations and declarations.
CameraGetConfigFunc get_config
Called for requesting the configuration widgets.
Definition: gphoto2-camera.h:291
CameraEventType
Specify what event we received from the camera.
Definition: gphoto2-camera.h:103
Definition: gphoto2-camera.h:108
CameraCaptureFunc capture
Remote control the camera to capture.
Definition: gphoto2-camera.h:299
The internal camera filesystem structure.
Definition: gphoto2-filesys.c:242
CameraPrivateLibrary * pl
Definition: gphoto2-camera.h:333
void * reserved5
reserved for future use
Definition: gphoto2-camera.h:315
void gp_camera_set_timeout_funcs(Camera *camera, CameraTimeoutStartFunc start_func, CameraTimeoutStopFunc stop_func, void *data)
Definition: gphoto2-camera.c:1867
int gp_camera_new(Camera **camera)
Definition: gphoto2-camera.c:317
List of supported camera models including their abilities.
int gp_camera_folder_make_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1778
CameraSummaryFunc summary
Give a summary about the current camera status, translated.
Definition: gphoto2-camera.h:304
int gp_camera_file_get_info(Camera *camera, const char *folder, const char *file, CameraFileInfo *info, GPContext *context)
Definition: gphoto2-camera.c:1578
A structure created by the capture operation.
Definition: gphoto2-camera.h:79
CameraSetConfigFunc set_config
Called after a configuration was changed.
Definition: gphoto2-camera.h:292
CameraListConfigFunc list_config
Called for listing the available configuration widgets.
Definition: gphoto2-camera.h:294
CameraWaitForEvent wait_for_event
Wait for a specific event from the camera.
Definition: gphoto2-camera.h:309
int(* CameraSetSingleConfigFunc)(Camera *camera, const char *name, CameraWidget *widget, GPContext *context)
Set a single configuration variable in the camera.
Definition: gphoto2-camera.h:236
int gp_camera_get_port_speed(Camera *camera)
Definition: gphoto2-camera.c:491
CameraText structure used in various functions.
Definition: gphoto2-camera.h:68
Definition: gphoto2-port-info.h:32
CameraFileType
The type of view on the specified file.
Definition: gphoto2-file.h:72
int(* CameraGetConfigFunc)(Camera *camera, CameraWidget **widget, GPContext *context)
Get a configuration tree for the camera and its driver.
Definition: gphoto2-camera.h:158
Storage information structue.
Definition: gphoto2-filesys.h:214
CameraPrePostFunc pre_func
Function called before each camera operation.
Definition: gphoto2-camera.h:285
void gp_camera_stop_timeout(Camera *camera, unsigned int id)
Definition: gphoto2-camera.c:1934
int gp_camera_capture(Camera *camera, CameraCaptureType type, CameraFilePath *path, GPContext *context)
Definition: gphoto2-camera.c:1327
Describes the properties of a specific camera.
Definition: gphoto2-abilities-list.h:120
Definition: gphoto2-context.c:38
int gp_camera_get_abilities(Camera *camera, CameraAbilities *abilities)
Definition: gphoto2-camera.c:396
Capture a movie.
Definition: gphoto2-camera.h:92
void * reserved7
reserved for future use
Definition: gphoto2-camera.h:317
Capture an image.
Definition: gphoto2-camera.h:91
CameraExitFunc exit
Function called on closing the camera.
Definition: gphoto2-camera.h:288
CameraManualFunc manual
Give a brief manual about any specific items a user has to know, translated.
Definition: gphoto2-camera.h:305