libgphoto2 photo camera library (libgphoto2) API  2.4.11
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 
104 typedef enum {
111 
138 typedef int (*CameraExitFunc) (Camera *camera, GPContext *context);
158 typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
159  GPContext *context);
173 typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget *widget,
174  GPContext *context);
175 typedef int (*CameraCaptureFunc) (Camera *camera, CameraCaptureType type,
176  CameraFilePath *path, GPContext *context);
177 typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
178  GPContext *context);
179 typedef int (*CameraSummaryFunc) (Camera *camera, CameraText *text,
180  GPContext *context);
181 typedef int (*CameraManualFunc) (Camera *camera, CameraText *text,
182  GPContext *context);
183 typedef int (*CameraAboutFunc) (Camera *camera, CameraText *text,
184  GPContext *context);
185 typedef int (*CameraWaitForEvent) (Camera *camera, int timeout,
186  CameraEventType *eventtype, void **eventdata,
187  GPContext *context);
205 typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
206 
219 typedef struct _CameraFunctions {
225  /* Configuration */
229  /* Capturing */
230  CameraCaptureFunc capture;
231  CameraCapturePreviewFunc capture_preview;
233  /* Textual information */
234  CameraSummaryFunc summary;
235  CameraManualFunc manual;
236  CameraAboutFunc about;
238  /* Event Interface */
239  CameraWaitForEvent wait_for_event;
241  /* Reserved space to use in the future without changing the struct size */
242  void *reserved1;
243  void *reserved2;
244  void *reserved3;
245  void *reserved4;
246  void *reserved5;
247  void *reserved6;
248  void *reserved7;
250 
251 /* Those are DEPRECATED */
252 typedef GPPort CameraPort;
253 typedef GPPortInfo CameraPortInfo;
254 
255 typedef struct _CameraPrivateLibrary CameraPrivateLibrary;
257 
258 struct _Camera {
259 
262  GPPort *port;
263  CameraFilesystem *fs;
264  CameraFunctions *functions;
267  CameraPrivateLibrary *pl;
269 };
270 
271 
273 int gp_camera_new (Camera **camera);
274 
275 
279 int gp_camera_set_abilities (Camera *camera, CameraAbilities abilities);
280 int gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities);
281 int gp_camera_set_port_info (Camera *camera, GPPortInfo info);
282 int gp_camera_get_port_info (Camera *camera, GPPortInfo *info);
283 
295 int gp_camera_set_port_speed (Camera *camera, int speed);
296 int gp_camera_get_port_speed (Camera *camera);
297 
304 int gp_camera_init (Camera *camera, GPContext *context);
305 int gp_camera_exit (Camera *camera, GPContext *context);
306 
314 int gp_camera_ref (Camera *camera);
315 int gp_camera_unref (Camera *camera);
316 int gp_camera_free (Camera *camera);
317 
318 int gp_camera_get_config (Camera *camera, CameraWidget **window,
319  GPContext *context);
320 int gp_camera_set_config (Camera *camera, CameraWidget *window,
321  GPContext *context);
322 int gp_camera_get_summary (Camera *camera, CameraText *summary,
323  GPContext *context);
324 int gp_camera_get_manual (Camera *camera, CameraText *manual,
325  GPContext *context);
326 int gp_camera_get_about (Camera *camera, CameraText *about,
327  GPContext *context);
328 int gp_camera_capture (Camera *camera, CameraCaptureType type,
329  CameraFilePath *path, GPContext *context);
330 int gp_camera_capture_preview (Camera *camera, CameraFile *file,
331  GPContext *context);
332 int gp_camera_wait_for_event (Camera *camera, int timeout,
333  CameraEventType *eventtype, void **eventdata,
334  GPContext *context);
335 
337  int *, GPContext *context);
338 
345 int gp_camera_folder_list_files (Camera *camera, const char *folder,
346  CameraList *list, GPContext *context);
347 int gp_camera_folder_list_folders (Camera *camera, const char *folder,
348  CameraList *list, GPContext *context);
349 int gp_camera_folder_delete_all (Camera *camera, const char *folder,
350  GPContext *context);
351 int gp_camera_folder_put_file (Camera *camera, const char *folder,
352  CameraFile *file, GPContext *context);
353 int gp_camera_folder_make_dir (Camera *camera, const char *folder,
354  const char *name, GPContext *context);
355 int gp_camera_folder_remove_dir (Camera *camera, const char *folder,
356  const char *name, GPContext *context);
363 int gp_camera_file_get_info (Camera *camera, const char *folder,
364  const char *file, CameraFileInfo *info,
365  GPContext *context);
366 int gp_camera_file_set_info (Camera *camera, const char *folder,
367  const char *file, CameraFileInfo info,
368  GPContext *context);
369 int gp_camera_file_get (Camera *camera, const char *folder,
370  const char *file, CameraFileType type,
371  CameraFile *camera_file, GPContext *context);
372 int gp_camera_file_delete (Camera *camera, const char *folder,
373  const char *file, GPContext *context);
381 typedef int (* CameraTimeoutFunc) (Camera *camera,
382  GPContext *context);
383 typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
384  unsigned int timeout,
385  CameraTimeoutFunc func,
386  void *data);
387 typedef void (* CameraTimeoutStopFunc) (Camera *camera,
388  unsigned int id, void *data);
389 void gp_camera_set_timeout_funcs (Camera *camera,
390  CameraTimeoutStartFunc start_func,
391  CameraTimeoutStopFunc stop_func,
392  void *data);
393 int gp_camera_start_timeout (Camera *camera, unsigned int timeout,
394  CameraTimeoutFunc func);
395 void gp_camera_stop_timeout (Camera *camera, unsigned int id);
396 
398 #ifdef __cplusplus
399 }
400 #endif /* __cplusplus */
401 
402 #endif /* __GPHOTO2_CAMERA_H__ */
void gp_camera_stop_timeout(Camera *camera, unsigned int id)
Definition: gphoto2-camera.c:1522
int gp_camera_file_get_info(Camera *camera, const char *folder, const char *file, CameraFileInfo *info, GPContext *context)
Definition: gphoto2-camera.c:1196
CameraCaptureType
Type of the capture to do.
Definition: gphoto2-camera.h:90
int(* CameraExitFunc)(Camera *camera, GPContext *context)
The camera exit function.
Definition: gphoto2-camera.h:138
Definition: gphoto2-list.c:77
CameraPrivateCore * pc
Definition: gphoto2-camera.h:268
Definition: gphoto2-camera.h:105
int gp_camera_get_about(Camera *camera, CameraText *about, GPContext *context)
Definition: gphoto2-camera.c:948
int(* CameraSetConfigFunc)(Camera *camera, CameraWidget *widget, GPContext *context)
Set the configuration in the camera.
Definition: gphoto2-camera.h:173
int gp_camera_get_summary(Camera *camera, CameraText *summary, GPContext *context)
Definition: gphoto2-camera.c:885
Definition: gphoto2-camera.h:106
int gp_camera_init(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:643
int gp_camera_exit(Camera *camera, GPContext *context)
Definition: gphoto2-camera.c:270
int gp_camera_start_timeout(Camera *camera, unsigned int timeout, CameraTimeoutFunc func)
Definition: gphoto2-camera.c:1477
int gp_camera_folder_put_file(Camera *camera, const char *folder, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1168
Definition: gphoto2-camera.h:107
void * reserved4
reserved for future use
Definition: gphoto2-camera.h:245
CameraPrePostFunc post_func
Function called after each camera operation.
Definition: gphoto2-camera.h:221
Definition: gphoto2-camera.h:108
int gp_camera_folder_list_files(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1084
int gp_camera_file_delete(Camera *camera, const char *folder, const char *file, GPContext *context)
Definition: gphoto2-camera.c:1335
int gp_camera_wait_for_event(Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context)
Definition: gphoto2-camera.c:1055
Definition: gphoto2-camera.h:258
void * reserved3
reserved for future use
Definition: gphoto2-camera.h:244
Definition: gphoto2-widget.c:40
CameraCapturePreviewFunc capture_preview
Preview viewfinder content.
Definition: gphoto2-camera.h:231
int gp_camera_set_abilities(Camera *camera, CameraAbilities abilities)
Sets the camera abilities.
Definition: gphoto2-camera.c:383
int gp_camera_folder_list_folders(Camera *camera, const char *folder, CameraList *list, GPContext *context)
Definition: gphoto2-camera.c:1113
Definition: gphoto2-camera.c:225
File structure.
struct _CameraFunctions CameraFunctions
Various camera specific functions.
void * reserved1
reserved for future use
Definition: gphoto2-camera.h:242
int gp_camera_folder_delete_all(Camera *camera, const char *folder, GPContext *context)
Definition: gphoto2-camera.c:1141
int gp_camera_file_get(Camera *camera, const char *folder, const char *file, CameraFileType type, CameraFile *camera_file, GPContext *context)
Definition: gphoto2-camera.c:1295
Capture audio.
Definition: gphoto2-camera.h:93
CameraAboutFunc about
A little About text, including authors and credits.
Definition: gphoto2-camera.h:236
Various camera specific functions.
Definition: gphoto2-camera.h:219
The GPhoto port structure.
Definition: gphoto2-port.h:151
int gp_camera_file_set_info(Camera *camera, const char *folder, const char *file, CameraFileInfo info, GPContext *context)
Definition: gphoto2-camera.c:1268
void gp_camera_set_timeout_funcs(Camera *camera, CameraTimeoutStartFunc start_func, CameraTimeoutStopFunc stop_func, void *data)
Definition: gphoto2-camera.c:1451
void * reserved2
reserved for future use
Definition: gphoto2-camera.h:243
int gp_camera_folder_remove_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1386
int gp_camera_ref(Camera *camera)
Definition: gphoto2-camera.c:528
void * reserved6
reserved for future use
Definition: gphoto2-camera.h:247
int gp_camera_get_manual(Camera *camera, CameraText *manual, GPContext *context)
Definition: gphoto2-camera.c:916
File information structure.
Definition: gphoto2-filesys.h:142
Filesystem related operations and declarations.
CameraGetConfigFunc get_config
Called for requesting the configuration widgets.
Definition: gphoto2-camera.h:226
int gp_camera_get_storageinfo(Camera *camera, CameraStorageInformation **sifs, int *nrofsifs, GPContext *context)
Gets information on the camera attached storage.
Definition: gphoto2-camera.c:1421
int gp_camera_get_config(Camera *camera, CameraWidget **window, GPContext *context)
Definition: gphoto2-camera.c:820
CameraEventType
Specify what event we received from the camera.
Definition: gphoto2-camera.h:104
Definition: gphoto2-camera.h:109
CameraCaptureFunc capture
Remote control the camera to capture.
Definition: gphoto2-camera.h:230
int gp_camera_capture(Camera *camera, CameraCaptureType type, CameraFilePath *path, GPContext *context)
Definition: gphoto2-camera.c:981
The internal camera filesystem structure.
Definition: gphoto2-filesys.c:241
CameraPrivateLibrary * pl
Definition: gphoto2-camera.h:267
void * reserved5
reserved for future use
Definition: gphoto2-camera.h:246
int gp_camera_set_config(Camera *camera, CameraWidget *window, GPContext *context)
Definition: gphoto2-camera.c:853
int gp_camera_new(Camera **camera)
Definition: gphoto2-camera.c:322
List of supported camera models including their abilities.
CameraSummaryFunc summary
Give a summary about the current camera status, translated.
Definition: gphoto2-camera.h:234
int gp_camera_capture_preview(Camera *camera, CameraFile *file, GPContext *context)
Definition: gphoto2-camera.c:1014
int gp_camera_get_port_speed(Camera *camera)
Definition: gphoto2-camera.c:512
int gp_camera_folder_make_dir(Camera *camera, const char *folder, const char *name, GPContext *context)
Definition: gphoto2-camera.c:1362
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:227
CameraWaitForEvent wait_for_event
Wait for a specific event from the camera.
Definition: gphoto2-camera.h:239
int gp_camera_set_port_speed(Camera *camera, int speed)
Definition: gphoto2-camera.c:470
CameraText structure used in various functions.
Definition: gphoto2-camera.h:68
int gp_camera_get_abilities(Camera *camera, CameraAbilities *abilities)
Definition: gphoto2-camera.c:412
Information about the current port.
Definition: gphoto2-port-info-list.h:53
int gp_camera_free(Camera *camera)
Definition: gphoto2-camera.c:584
CameraFileType
The type of view on the specified file.
Definition: gphoto2-file.h:66
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:215
int(* CameraPrePostFunc)(Camera *camera, GPContext *context)
Definition: gphoto2-camera.h:205
CameraPrePostFunc pre_func
Function called before each camera operation.
Definition: gphoto2-camera.h:220
Describes the properties of a specific camera.
Definition: gphoto2-abilities-list.h:119
Definition: gphoto2-context.c:35
Capture a movie.
Definition: gphoto2-camera.h:92
void * reserved7
reserved for future use
Definition: gphoto2-camera.h:248
Capture an image.
Definition: gphoto2-camera.h:91
int gp_camera_unref(Camera *camera)
Definition: gphoto2-camera.c:549
CameraExitFunc exit
Function called on closing the camera.
Definition: gphoto2-camera.h:223
CameraManualFunc manual
Give a brief manual about any specific items a user has to know, translated.
Definition: gphoto2-camera.h:235