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