gphoto2-abilities-list.h

Go to the documentation of this file.
00001 
00025 #ifndef __GPHOTO2_ABILITIES_LIST_H__
00026 #define __GPHOTO2_ABILITIES_LIST_H__
00027 
00028 #include <gphoto2/gphoto2-context.h>
00029 #include <gphoto2/gphoto2-list.h>
00030 #include <gphoto2/gphoto2-port-info-list.h>
00031 
00032 #include <gphoto2/gphoto2-port-log.h>
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif /* __cplusplus */
00037 
00041 typedef enum {
00042         GP_DRIVER_STATUS_PRODUCTION,    
00043         GP_DRIVER_STATUS_TESTING,       
00044         GP_DRIVER_STATUS_EXPERIMENTAL,  
00045         GP_DRIVER_STATUS_DEPRECATED     
00046 } CameraDriverStatus;
00047 
00052 typedef enum {
00053         GP_DEVICE_STILL_CAMERA          = 0,     
00054         GP_DEVICE_AUDIO_PLAYER          = 1 << 0 
00055 } GphotoDeviceType;
00056 
00061 typedef enum {
00062         GP_OPERATION_NONE               = 0,      
00063         GP_OPERATION_CAPTURE_IMAGE      = 1 << 0, 
00064         GP_OPERATION_CAPTURE_VIDEO      = 1 << 1, 
00065         GP_OPERATION_CAPTURE_AUDIO      = 1 << 2, 
00066         GP_OPERATION_CAPTURE_PREVIEW    = 1 << 3, 
00067         GP_OPERATION_CONFIG             = 1 << 4  
00068 } CameraOperation;
00069 
00073 typedef enum {
00074         GP_FILE_OPERATION_NONE          = 0,      
00075         GP_FILE_OPERATION_DELETE        = 1 << 1, 
00076         GP_FILE_OPERATION_PREVIEW       = 1 << 3, 
00077         GP_FILE_OPERATION_RAW           = 1 << 4, 
00078         GP_FILE_OPERATION_AUDIO         = 1 << 5, 
00079         GP_FILE_OPERATION_EXIF          = 1 << 6  
00080 } CameraFileOperation;
00081 
00085 typedef enum {
00086         GP_FOLDER_OPERATION_NONE        = 0,      
00087         GP_FOLDER_OPERATION_DELETE_ALL  = 1 << 0, 
00088         GP_FOLDER_OPERATION_PUT_FILE    = 1 << 1, 
00089         GP_FOLDER_OPERATION_MAKE_DIR    = 1 << 2, 
00090         GP_FOLDER_OPERATION_REMOVE_DIR  = 1 << 3  
00091 } CameraFolderOperation;
00092 
00093 #ifdef _GPHOTO2_INTERNAL_CODE
00094 
00095   /* enum CameraOperation */
00096   extern const StringFlagItem gpi_camera_operation_map[];
00097 
00098   /* enum CameraFileOperation */
00099   extern const StringFlagItem gpi_file_operation_map[];
00100 
00101   /* enum CameraFolderOperation */
00102   extern const StringFlagItem gpi_folder_operation_map[];
00103 
00104   /* enum GphotoDeviceType */
00105   extern const StringFlagItem gpi_gphoto_device_type_map[];
00106 
00107   /* enum CameraDriverStatus */
00108   extern const StringFlagItem gpi_camera_driver_status_map[];
00109 
00110 #endif /* _GPHOTO2_INTERNAL_CODE */
00111 
00112 
00119 typedef struct {
00120         char model [128];                       
00121         CameraDriverStatus status;              
00124         GPPortType port;
00126         int speed [64];
00127 
00128         /* Supported operations */
00129         CameraOperation       operations;       
00130         CameraFileOperation   file_operations;  
00131         CameraFolderOperation folder_operations;
00133         int usb_vendor;         
00134         int usb_product;        
00135         int usb_class;          
00136         int usb_subclass;       
00137         int usb_protocol;       
00139         /* For core use */
00140         char library [1024];    
00141         char id [1024];         
00143         GphotoDeviceType        device_type;    
00146         int reserved2;          
00147         int reserved3;          
00148         int reserved4;          
00149         int reserved5;          
00150         int reserved6;          
00151         int reserved7;          
00152         int reserved8;          
00153 } CameraAbilities;
00154 
00155 
00161 typedef struct _CameraAbilitiesList CameraAbilitiesList;
00162 
00163 
00164 int gp_abilities_list_new    (CameraAbilitiesList **list);
00165 int gp_abilities_list_free   (CameraAbilitiesList *list);
00166 
00167 int gp_abilities_list_load   (CameraAbilitiesList *list, GPContext *context);
00168 int gp_abilities_list_reset  (CameraAbilitiesList *list);
00169 
00170 int gp_abilities_list_detect (CameraAbilitiesList *list,
00171                               GPPortInfoList *info_list, CameraList *l,
00172                               GPContext *context);
00173 
00174 int gp_abilities_list_append (CameraAbilitiesList *list,
00175                               CameraAbilities abilities);
00176 
00177 int gp_abilities_list_count  (CameraAbilitiesList *list);
00178 
00179 int gp_abilities_list_lookup_model (CameraAbilitiesList *list,
00180                                     const char *model);
00181 
00182 int gp_abilities_list_get_abilities (CameraAbilitiesList *list, int index,
00183                                      CameraAbilities *abilities);
00184 
00185 const char *gp_message_codeset (const char *);
00186 
00187 
00195 #ifdef _GPHOTO2_INTERNAL_CODE
00196 #define CAMLIBDIR_ENV "CAMLIBS"
00197 #endif /* _GPHOTO2_INTERNAL_CODE */
00198 
00199 
00200 #ifdef __cplusplus
00201 }
00202 #endif /* __cplusplus */
00203 
00204 #endif /* __GPHOTO2_ABILITIES_LIST_H__ */

Generated on Sun Jul 22 19:29:31 2007 for libgphoto2 photo camera library (libgphoto2) by  doxygen 1.5.0