gphoto2-camera.h
Go to the documentation of this file.
#ifndef __GPHOTO2_CAMERA_H__
#define __GPHOTO2_CAMERA_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct _Camera Camera;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#include <gphoto2/gphoto2-abilities-list.h>
#include <gphoto2/gphoto2-port.h>
#include <gphoto2/gphoto2-widget.h>
#include <gphoto2/gphoto2-filesys.h>
#include <gphoto2/gphoto2-result.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct {
char text [32 * 1024];
} CameraText;
typedef struct {
char name [128];
char folder [1024];
} CameraFilePath;
typedef enum {
GP_CAPTURE_IMAGE,
GP_CAPTURE_MOVIE,
GP_CAPTURE_SOUND
} CameraCaptureType;
typedef enum {
GP_EVENT_UNKNOWN,
GP_EVENT_TIMEOUT,
GP_EVENT_FILE_ADDED,
GP_EVENT_FOLDER_ADDED,
GP_EVENT_CAPTURE_COMPLETE
} CameraEventType;
typedef int (*CameraExitFunc) (Camera *camera, GPContext *context);
typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
GPContext *context);
typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget *widget,
GPContext *context);
typedef int (*CameraCaptureFunc) (Camera *camera, CameraCaptureType type,
CameraFilePath *path, GPContext *context);
typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
GPContext *context);
typedef int (*CameraSummaryFunc) (Camera *camera, CameraText *text,
GPContext *context);
typedef int (*CameraManualFunc) (Camera *camera, CameraText *text,
GPContext *context);
typedef int (*CameraAboutFunc) (Camera *camera, CameraText *text,
GPContext *context);
typedef int (*CameraWaitForEvent) (Camera *camera, int timeout,
CameraEventType *eventtype, void **eventdata,
GPContext *context);
typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
typedef struct _CameraFunctions {
CameraPrePostFunc pre_func;
CameraPrePostFunc post_func;
CameraExitFunc exit;
/* Configuration */
CameraGetConfigFunc get_config;
CameraSetConfigFunc set_config;
/* Capturing */
CameraCaptureFunc capture;
CameraCapturePreviewFunc capture_preview;
/* Textual information */
CameraSummaryFunc summary;
CameraManualFunc manual;
CameraAboutFunc about;
/* Event Interface */
CameraWaitForEvent wait_for_event;
/* Reserved space to use in the future without changing the struct size */
void *reserved1;
void *reserved2;
void *reserved3;
void *reserved4;
void *reserved5;
void *reserved6;
void *reserved7;
} CameraFunctions;
/* Those are DEPRECATED */
typedef GPPort CameraPort;
typedef GPPortInfo CameraPortInfo;
typedef struct _CameraPrivateLibrary CameraPrivateLibrary;
typedef struct _CameraPrivateCore CameraPrivateCore;
struct _Camera {
GPPort *port;
CameraFilesystem *fs;
CameraFunctions *functions;
CameraPrivateLibrary *pl;
CameraPrivateCore *pc;
};
int gp_camera_new (Camera **camera);
int gp_camera_set_abilities (Camera *camera, CameraAbilities abilities);
int gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities);
int gp_camera_set_port_info (Camera *camera, GPPortInfo info);
int gp_camera_get_port_info (Camera *camera, GPPortInfo *info);
int gp_camera_set_port_speed (Camera *camera, int speed);
int gp_camera_get_port_speed (Camera *camera);
int gp_camera_init (Camera *camera, GPContext *context);
int gp_camera_exit (Camera *camera, GPContext *context);
int gp_camera_ref (Camera *camera);
int gp_camera_unref (Camera *camera);
int gp_camera_free (Camera *camera);
int gp_camera_get_config (Camera *camera, CameraWidget **window,
GPContext *context);
int gp_camera_set_config (Camera *camera, CameraWidget *window,
GPContext *context);
int gp_camera_get_summary (Camera *camera, CameraText *summary,
GPContext *context);
int gp_camera_get_manual (Camera *camera, CameraText *manual,
GPContext *context);
int gp_camera_get_about (Camera *camera, CameraText *about,
GPContext *context);
int gp_camera_capture (Camera *camera, CameraCaptureType type,
CameraFilePath *path, GPContext *context);
int gp_camera_capture_preview (Camera *camera, CameraFile *file,
GPContext *context);
int gp_camera_wait_for_event (Camera *camera, int timeout,
CameraEventType *eventtype, void **eventdata,
GPContext *context);
int gp_camera_get_storageinfo (Camera *camera, CameraStorageInformation**,
int *, GPContext *context);
int gp_camera_folder_list_files (Camera *camera, const char *folder,
CameraList *list, GPContext *context);
int gp_camera_folder_list_folders (Camera *camera, const char *folder,
CameraList *list, GPContext *context);
int gp_camera_folder_delete_all (Camera *camera, const char *folder,
GPContext *context);
int gp_camera_folder_put_file (Camera *camera, const char *folder,
CameraFile *file, GPContext *context);
int gp_camera_folder_make_dir (Camera *camera, const char *folder,
const char *name, GPContext *context);
int gp_camera_folder_remove_dir (Camera *camera, const char *folder,
const char *name, GPContext *context);
int gp_camera_file_get_info (Camera *camera, const char *folder,
const char *file, CameraFileInfo *info,
GPContext *context);
int gp_camera_file_set_info (Camera *camera, const char *folder,
const char *file, CameraFileInfo info,
GPContext *context);
int gp_camera_file_get (Camera *camera, const char *folder,
const char *file, CameraFileType type,
CameraFile *camera_file, GPContext *context);
int gp_camera_file_delete (Camera *camera, const char *folder,
const char *file, GPContext *context);
typedef int (* CameraTimeoutFunc) (Camera *camera,
GPContext *context);
typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
unsigned int timeout,
CameraTimeoutFunc func,
void *data);
typedef void (* CameraTimeoutStopFunc) (Camera *camera,
unsigned int id, void *data);
void gp_camera_set_timeout_funcs (Camera *camera,
CameraTimeoutStartFunc start_func,
CameraTimeoutStopFunc stop_func,
void *data);
int gp_camera_start_timeout (Camera *camera, unsigned int timeout,
CameraTimeoutFunc func);
void gp_camera_stop_timeout (Camera *camera, unsigned int id);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GPHOTO2_CAMERA_H__ */