libgphoto2 photo camera library (libgphoto2) API 2.4.13
|
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__ */