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