libgphoto2 photo camera library (libgphoto2) API  2.5.2
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         GP_OPERATION_TRIGGER_CAPTURE    = 1 << 5  
00069 } CameraOperation;
00070 
00074 typedef enum {
00075         GP_FILE_OPERATION_NONE          = 0,      
00076         GP_FILE_OPERATION_DELETE        = 1 << 1, 
00077         GP_FILE_OPERATION_PREVIEW       = 1 << 3, 
00078         GP_FILE_OPERATION_RAW           = 1 << 4, 
00079         GP_FILE_OPERATION_AUDIO         = 1 << 5, 
00080         GP_FILE_OPERATION_EXIF          = 1 << 6  
00081 } CameraFileOperation;
00082 
00086 typedef enum {
00087         GP_FOLDER_OPERATION_NONE        = 0,      
00088         GP_FOLDER_OPERATION_DELETE_ALL  = 1 << 0, 
00089         GP_FOLDER_OPERATION_PUT_FILE    = 1 << 1, 
00090         GP_FOLDER_OPERATION_MAKE_DIR    = 1 << 2, 
00091         GP_FOLDER_OPERATION_REMOVE_DIR  = 1 << 3  
00092 } CameraFolderOperation;
00093 
00094 #ifdef _GPHOTO2_INTERNAL_CODE
00095 
00096   /* enum CameraOperation */
00097   extern const StringFlagItem gpi_camera_operation_map[];
00098 
00099   /* enum CameraFileOperation */
00100   extern const StringFlagItem gpi_file_operation_map[];
00101 
00102   /* enum CameraFolderOperation */
00103   extern const StringFlagItem gpi_folder_operation_map[];
00104 
00105   /* enum GphotoDeviceType */
00106   extern const StringFlagItem gpi_gphoto_device_type_map[];
00107 
00108   /* enum CameraDriverStatus */
00109   extern const StringFlagItem gpi_camera_driver_status_map[];
00110 
00111 #endif /* _GPHOTO2_INTERNAL_CODE */
00112 
00113 
00120 typedef struct {
00121         char model [128];                       
00122         CameraDriverStatus status;              
00125         GPPortType port;
00127         int speed [64];
00128 
00129         /* Supported operations */
00130         CameraOperation       operations;       
00131         CameraFileOperation   file_operations;  
00132         CameraFolderOperation folder_operations;
00134         int usb_vendor;         
00135         int usb_product;        
00136         int usb_class;          
00137         int usb_subclass;       
00138         int usb_protocol;       
00140         /* For core use */
00141         char library [1024];    
00142         char id [1024];         
00144         GphotoDeviceType        device_type;    
00147         int reserved2;          
00148         int reserved3;          
00149         int reserved4;          
00150         int reserved5;          
00151         int reserved6;          
00152         int reserved7;          
00153         int reserved8;          
00154 } CameraAbilities;
00155 
00156 
00162 typedef struct _CameraAbilitiesList CameraAbilitiesList;
00163 
00164 
00165 int gp_abilities_list_new    (CameraAbilitiesList **list);
00166 int gp_abilities_list_free   (CameraAbilitiesList *list);
00167 
00168 int gp_abilities_list_load   (CameraAbilitiesList *list, GPContext *context);
00169 int gp_abilities_list_load_dir   (CameraAbilitiesList *list, const char *dir, GPContext *context);
00170 int gp_abilities_list_reset  (CameraAbilitiesList *list);
00171 
00172 int gp_abilities_list_detect (CameraAbilitiesList *list,
00173                               GPPortInfoList *info_list, CameraList *l,
00174                               GPContext *context);
00175 
00176 int gp_abilities_list_append (CameraAbilitiesList *list,
00177                               CameraAbilities abilities);
00178 
00179 int gp_abilities_list_count  (CameraAbilitiesList *list);
00180 
00181 int gp_abilities_list_lookup_model (CameraAbilitiesList *list,
00182                                     const char *model);
00183 
00184 int gp_abilities_list_get_abilities (CameraAbilitiesList *list, int index,
00185                                      CameraAbilities *abilities);
00186 
00187 const char *gp_message_codeset (const char *);
00188 
00189 
00197 #ifdef _GPHOTO2_INTERNAL_CODE
00198 #define CAMLIBDIR_ENV "CAMLIBS"
00199 #endif /* _GPHOTO2_INTERNAL_CODE */
00200 
00201 
00202 #ifdef __cplusplus
00203 }
00204 #endif /* __cplusplus */
00205 
00206 #endif /* __GPHOTO2_ABILITIES_LIST_H__ */