gphoto2-camera.h

Go to the documentation of this file.
00001 
00022 #ifndef __GPHOTO2_CAMERA_H__
00023 #define __GPHOTO2_CAMERA_H__
00024 
00025 #include <gphoto2-context.h>
00026 
00027 
00039 typedef struct _Camera Camera;
00040 
00041 
00042 #include <gphoto2-port.h>
00043 #include <gphoto2-port-info-list.h>
00044 
00045 #include <gphoto2-widget.h>
00046 #include <gphoto2-list.h>
00047 #include <gphoto2-file.h>
00048 #include <gphoto2-filesys.h>
00049 #include <gphoto2-abilities-list.h>
00050 #include <gphoto2-result.h>
00051 #include <gphoto2-context.h>
00052 
00053 typedef struct {
00054         char text [32 * 1024];
00055 } CameraText;
00056 
00057 typedef struct {
00058         char name [128];
00059         char folder [1024];
00060 } CameraFilePath;
00061 
00062 typedef enum {
00063         GP_CAPTURE_IMAGE,
00064         GP_CAPTURE_MOVIE,
00065         GP_CAPTURE_SOUND
00066 } CameraCaptureType;
00067 
00076 typedef int (*CameraExitFunc)      (Camera *camera, GPContext *context);
00077 typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
00078                                     GPContext *context);
00079 typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget  *widget,
00080                                     GPContext *context);
00081 typedef int (*CameraCaptureFunc)   (Camera *camera, CameraCaptureType type,
00082                                     CameraFilePath *path, GPContext *context);
00083 typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
00084                                          GPContext *context);
00085 typedef int (*CameraSummaryFunc)   (Camera *camera, CameraText *text,
00086                                     GPContext *context);
00087 typedef int (*CameraManualFunc)    (Camera *camera, CameraText *text,
00088                                     GPContext *context);
00089 typedef int (*CameraAboutFunc)     (Camera *camera, CameraText *text,
00090                                     GPContext *context);
00091 
00109 typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
00110 
00111 
00112 typedef struct _CameraFunctions CameraFunctions;
00113 struct _CameraFunctions {
00114 
00115         /* Those will be called before and after each operation */
00116         CameraPrePostFunc pre_func;
00117         CameraPrePostFunc post_func;
00118 
00119         CameraExitFunc exit;
00120 
00121         /* Configuration */
00122         CameraGetConfigFunc       get_config;
00123         CameraSetConfigFunc       set_config;
00124 
00125         /* Capturing */
00126         CameraCaptureFunc        capture;
00127         CameraCapturePreviewFunc capture_preview;
00128 
00129         /* Textual information */
00130         CameraSummaryFunc summary;
00131         CameraManualFunc  manual;
00132         CameraAboutFunc   about;
00133 
00134         /* Reserved space to use in the future without changing the struct size */
00135         void *reserved1;
00136         void *reserved2;
00137         void *reserved3;
00138         void *reserved4;
00139         void *reserved5;
00140         void *reserved6;
00141         void *reserved7;
00142         void *reserved8;
00143 };
00144 
00145 /* Those are DEPRECATED */
00146 typedef GPPort     CameraPort;
00147 typedef GPPortInfo CameraPortInfo;
00148 
00149 typedef struct _CameraPrivateLibrary  CameraPrivateLibrary;
00150 typedef struct _CameraPrivateCore     CameraPrivateCore;
00151 
00152 struct _Camera {
00153 
00156         GPPort           *port;
00157         CameraFilesystem *fs;
00158         CameraFunctions  *functions;
00161         CameraPrivateLibrary  *pl; 
00162         CameraPrivateCore     *pc; 
00163 };
00164 
00165 
00167 int gp_camera_new               (Camera **camera);
00168 
00169 
00173 int gp_camera_set_abilities     (Camera *camera, CameraAbilities  abilities);
00174 int gp_camera_get_abilities     (Camera *camera, CameraAbilities *abilities);
00175 int gp_camera_set_port_info     (Camera *camera, GPPortInfo  info);
00176 int gp_camera_get_port_info     (Camera *camera, GPPortInfo *info);
00177 
00189 int gp_camera_set_port_speed    (Camera *camera, int speed);
00190 int gp_camera_get_port_speed    (Camera *camera);
00191 
00198 int gp_camera_init               (Camera *camera, GPContext *context);
00199 int gp_camera_exit               (Camera *camera, GPContext *context);
00200 
00207 int gp_camera_ref                (Camera *camera);
00208 int gp_camera_unref              (Camera *camera);
00209 int gp_camera_free               (Camera *camera);
00210 
00211 int gp_camera_get_config         (Camera *camera, CameraWidget **window,
00212                                   GPContext *context);
00213 int gp_camera_set_config         (Camera *camera, CameraWidget  *window,
00214                                   GPContext *context);
00215 int gp_camera_get_summary        (Camera *camera, CameraText *summary,
00216                                   GPContext *context);
00217 int gp_camera_get_manual         (Camera *camera, CameraText *manual,
00218                                   GPContext *context);
00219 int gp_camera_get_about          (Camera *camera, CameraText *about,
00220                                   GPContext *context);
00221 int gp_camera_capture            (Camera *camera, CameraCaptureType type,
00222                                   CameraFilePath *path, GPContext *context);
00223 int gp_camera_capture_preview    (Camera *camera, CameraFile *file,
00224                                   GPContext *context);
00225 
00232 int gp_camera_folder_list_files   (Camera *camera, const char *folder, 
00233                                    CameraList *list, GPContext *context);
00234 int gp_camera_folder_list_folders (Camera *camera, const char *folder, 
00235                                    CameraList *list, GPContext *context);
00236 int gp_camera_folder_delete_all   (Camera *camera, const char *folder,
00237                                    GPContext *context);
00238 int gp_camera_folder_put_file     (Camera *camera, const char *folder,
00239                                    CameraFile *file, GPContext *context);
00240 int gp_camera_folder_make_dir     (Camera *camera, const char *folder,
00241                                    const char *name, GPContext *context);
00242 int gp_camera_folder_remove_dir   (Camera *camera, const char *folder,
00243                                    const char *name, GPContext *context);
00244 
00251 int gp_camera_file_get_info     (Camera *camera, const char *folder, 
00252                                  const char *file, CameraFileInfo *info,
00253                                  GPContext *context);
00254 int gp_camera_file_set_info     (Camera *camera, const char *folder, 
00255                                  const char *file, CameraFileInfo info,
00256                                  GPContext *context);
00257 int gp_camera_file_get          (Camera *camera, const char *folder, 
00258                                  const char *file, CameraFileType type,
00259                                  CameraFile *camera_file, GPContext *context);
00260 int gp_camera_file_delete       (Camera *camera, const char *folder, 
00261                                  const char *file, GPContext *context);
00269 typedef int          (* CameraTimeoutFunc)      (Camera *camera,
00270                                                  GPContext *context);
00271 typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
00272                                                  unsigned int timeout,
00273                                                  CameraTimeoutFunc func,
00274                                                  void *data);
00275 typedef void         (* CameraTimeoutStopFunc)  (Camera *camera,
00276                                                  unsigned int id, void *data);
00277 void         gp_camera_set_timeout_funcs (Camera *camera,
00278                                           CameraTimeoutStartFunc start_func,
00279                                           CameraTimeoutStopFunc  stop_func,
00280                                           void *data);
00281 int          gp_camera_start_timeout     (Camera *camera, unsigned int timeout,
00282                                           CameraTimeoutFunc func);
00283 void         gp_camera_stop_timeout      (Camera *camera, unsigned int id);
00284 
00287 #endif /* __GPHOTO2_CAMERA_H__ */

Generated on Mon Apr 3 01:13:29 2006 for libgphoto2 (libgphoto2) by  doxygen 1.4.6