gphoto2-camera.h

Go to the documentation of this file.
00001 
00026 #ifndef __GPHOTO2_CAMERA_H__
00027 #define __GPHOTO2_CAMERA_H__
00028 
00040 typedef struct _Camera Camera;
00041 
00042 
00043 #include <gphoto2/gphoto2-abilities-list.h>
00044 #include <gphoto2/gphoto2-port.h>
00045 
00046 #include <gphoto2/gphoto2-widget.h>
00047 #include <gphoto2/gphoto2-filesys.h>
00048 #include <gphoto2/gphoto2-result.h>
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif /* __cplusplus */
00053 
00061 typedef struct {
00062         char text [32 * 1024]; 
00063 } CameraText;
00064 
00072 typedef struct {
00073         char name [128];        
00074         char folder [1024];     
00075 } CameraFilePath;
00076 
00083 typedef enum {
00084         GP_CAPTURE_IMAGE,       
00085         GP_CAPTURE_MOVIE,       
00086         GP_CAPTURE_SOUND        
00087 } CameraCaptureType;
00088 
00097 typedef enum {
00098         GP_EVENT_UNKNOWN,       
00099         GP_EVENT_TIMEOUT,       
00100         GP_EVENT_FILE_ADDED,    
00101         GP_EVENT_FOLDER_ADDED   
00102 } CameraEventType;
00103 
00130 typedef int (*CameraExitFunc)      (Camera *camera, GPContext *context);
00150 typedef int (*CameraGetConfigFunc) (Camera *camera, CameraWidget **widget,
00151                                     GPContext *context);
00165 typedef int (*CameraSetConfigFunc) (Camera *camera, CameraWidget  *widget,
00166                                     GPContext *context);
00167 typedef int (*CameraCaptureFunc)   (Camera *camera, CameraCaptureType type,
00168                                     CameraFilePath *path, GPContext *context);
00169 typedef int (*CameraCapturePreviewFunc) (Camera *camera, CameraFile *file,
00170                                          GPContext *context);
00171 typedef int (*CameraSummaryFunc)   (Camera *camera, CameraText *text,
00172                                     GPContext *context);
00173 typedef int (*CameraManualFunc)    (Camera *camera, CameraText *text,
00174                                     GPContext *context);
00175 typedef int (*CameraAboutFunc)     (Camera *camera, CameraText *text,
00176                                     GPContext *context);
00177 typedef int (*CameraWaitForEvent)  (Camera *camera, int timeout,
00178                                     CameraEventType *eventtype, void **eventdata,
00179                                     GPContext *context);
00197 typedef int (*CameraPrePostFunc) (Camera *camera, GPContext *context);
00198 
00211 typedef struct _CameraFunctions {
00212         CameraPrePostFunc pre_func;     
00213         CameraPrePostFunc post_func;    
00215         CameraExitFunc exit;            
00217         /* Configuration */
00218         CameraGetConfigFunc       get_config;   
00219         CameraSetConfigFunc       set_config;   
00221         /* Capturing */
00222         CameraCaptureFunc        capture;       
00223         CameraCapturePreviewFunc capture_preview;
00225         /* Textual information */
00226         CameraSummaryFunc summary;              
00227         CameraManualFunc  manual;               
00228         CameraAboutFunc   about;                
00230         /* Event Interface */
00231         CameraWaitForEvent wait_for_event;      
00233         /* Reserved space to use in the future without changing the struct size */
00234         void *reserved1;                        
00235         void *reserved2;                        
00236         void *reserved3;                        
00237         void *reserved4;                        
00238         void *reserved5;                        
00239         void *reserved6;                        
00240         void *reserved7;                        
00241 } CameraFunctions;
00242 
00243 /* Those are DEPRECATED */
00244 typedef GPPort     CameraPort;
00245 typedef GPPortInfo CameraPortInfo;
00246 
00247 typedef struct _CameraPrivateLibrary  CameraPrivateLibrary;
00248 typedef struct _CameraPrivateCore     CameraPrivateCore;
00249 
00250 struct _Camera {
00251 
00254         GPPort           *port;
00255         CameraFilesystem *fs;
00256         CameraFunctions  *functions;
00259         CameraPrivateLibrary  *pl; 
00260         CameraPrivateCore     *pc; 
00261 };
00262 
00263 
00265 int gp_camera_new               (Camera **camera);
00266 
00267 
00271 int gp_camera_set_abilities     (Camera *camera, CameraAbilities  abilities);
00272 int gp_camera_get_abilities     (Camera *camera, CameraAbilities *abilities);
00273 int gp_camera_set_port_info     (Camera *camera, GPPortInfo  info);
00274 int gp_camera_get_port_info     (Camera *camera, GPPortInfo *info);
00275 
00287 int gp_camera_set_port_speed    (Camera *camera, int speed);
00288 int gp_camera_get_port_speed    (Camera *camera);
00289 
00296 int gp_camera_init               (Camera *camera, GPContext *context);
00297 int gp_camera_exit               (Camera *camera, GPContext *context);
00298 
00305 int gp_camera_ref                (Camera *camera);
00306 int gp_camera_unref              (Camera *camera);
00307 int gp_camera_free               (Camera *camera);
00308 
00309 int gp_camera_get_config         (Camera *camera, CameraWidget **window,
00310                                   GPContext *context);
00311 int gp_camera_set_config         (Camera *camera, CameraWidget  *window,
00312                                   GPContext *context);
00313 int gp_camera_get_summary        (Camera *camera, CameraText *summary,
00314                                   GPContext *context);
00315 int gp_camera_get_manual         (Camera *camera, CameraText *manual,
00316                                   GPContext *context);
00317 int gp_camera_get_about          (Camera *camera, CameraText *about,
00318                                   GPContext *context);
00319 int gp_camera_capture            (Camera *camera, CameraCaptureType type,
00320                                   CameraFilePath *path, GPContext *context);
00321 int gp_camera_capture_preview    (Camera *camera, CameraFile *file,
00322                                   GPContext *context);
00323 int gp_camera_wait_for_event     (Camera *camera, int timeout,
00324                                   CameraEventType *eventtype, void **eventdata,
00325                                   GPContext *context);
00326 
00327 int gp_camera_get_storageinfo    (Camera *camera, CameraStorageInformation**,
00328                                    int *, GPContext *context);
00329 
00336 int gp_camera_folder_list_files   (Camera *camera, const char *folder, 
00337                                    CameraList *list, GPContext *context);
00338 int gp_camera_folder_list_folders (Camera *camera, const char *folder, 
00339                                    CameraList *list, GPContext *context);
00340 int gp_camera_folder_delete_all   (Camera *camera, const char *folder,
00341                                    GPContext *context);
00342 int gp_camera_folder_put_file     (Camera *camera, const char *folder,
00343                                    CameraFile *file, GPContext *context);
00344 int gp_camera_folder_make_dir     (Camera *camera, const char *folder,
00345                                    const char *name, GPContext *context);
00346 int gp_camera_folder_remove_dir   (Camera *camera, const char *folder,
00347                                    const char *name, GPContext *context);
00354 int gp_camera_file_get_info     (Camera *camera, const char *folder, 
00355                                  const char *file, CameraFileInfo *info,
00356                                  GPContext *context);
00357 int gp_camera_file_set_info     (Camera *camera, const char *folder, 
00358                                  const char *file, CameraFileInfo info,
00359                                  GPContext *context);
00360 int gp_camera_file_get          (Camera *camera, const char *folder, 
00361                                  const char *file, CameraFileType type,
00362                                  CameraFile *camera_file, GPContext *context);
00363 int gp_camera_file_delete       (Camera *camera, const char *folder, 
00364                                  const char *file, GPContext *context);
00372 typedef int          (* CameraTimeoutFunc)      (Camera *camera,
00373                                                  GPContext *context);
00374 typedef unsigned int (* CameraTimeoutStartFunc) (Camera *camera,
00375                                                  unsigned int timeout,
00376                                                  CameraTimeoutFunc func,
00377                                                  void *data);
00378 typedef void         (* CameraTimeoutStopFunc)  (Camera *camera,
00379                                                  unsigned int id, void *data);
00380 void         gp_camera_set_timeout_funcs (Camera *camera,
00381                                           CameraTimeoutStartFunc start_func,
00382                                           CameraTimeoutStopFunc  stop_func,
00383                                           void *data);
00384 int          gp_camera_start_timeout     (Camera *camera, unsigned int timeout,
00385                                           CameraTimeoutFunc func);
00386 void         gp_camera_stop_timeout      (Camera *camera, unsigned int id);
00387 
00389 #ifdef __cplusplus
00390 }
00391 #endif /* __cplusplus */
00392 
00393 #endif /* __GPHOTO2_CAMERA_H__ */

Generated on Mon Oct 12 14:28:18 2009 for libgphoto2 photo camera library (libgphoto2) by  doxygen 1.6.1