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
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
00096 extern const StringFlagItem gpi_camera_operation_map[];
00097
00098
00099 extern const StringFlagItem gpi_file_operation_map[];
00100
00101
00102 extern const StringFlagItem gpi_folder_operation_map[];
00103
00104
00105 extern const StringFlagItem gpi_gphoto_device_type_map[];
00106
00107
00108 extern const StringFlagItem gpi_camera_driver_status_map[];
00109
00110 #endif
00111
00112
00119 typedef struct {
00120 char model [128];
00121 CameraDriverStatus status;
00124 GPPortType port;
00126 int speed [64];
00127
00128
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
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
00198
00199
00200 #ifdef __cplusplus
00201 }
00202 #endif
00203
00204 #endif