123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- /** \file gphoto2-abilities-list.h
- * \brief List of supported camera models including their abilities.
- *
- * \author Copyright 2000 Scott Fritzinger
- *
- * \par
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * \par
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * \par
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- */
- #ifndef __GPHOTO2_ABILITIES_LIST_H__
- #define __GPHOTO2_ABILITIES_LIST_H__
- #include <gphoto2/gphoto2-context.h>
- #include <gphoto2/gphoto2-list.h>
- #include <gphoto2/gphoto2-port-info-list.h>
- #include <gphoto2/gphoto2-port-log.h>
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- /**
- * Current implementation status of the camera driver.
- */
- typedef enum {
- GP_DRIVER_STATUS_PRODUCTION, /**< Driver is production ready. */
- GP_DRIVER_STATUS_TESTING, /**< Driver is beta quality. */
- GP_DRIVER_STATUS_EXPERIMENTAL, /**< Driver is alpha quality and might even not work. */
- GP_DRIVER_STATUS_DEPRECATED /**< Driver is no longer recommended to use and will be removed. */
- } CameraDriverStatus;
- /**
- * Type of the device represented. Currently we have Still Cameras
- * and MTP Audio Players.
- */
- typedef enum {
- GP_DEVICE_STILL_CAMERA = 0, /**< Traditional still camera */
- GP_DEVICE_AUDIO_PLAYER = 1 << 0 /**< Audio player */
- } GphotoDeviceType;
- /**
- * A bitmask of remote control related operations of the device.
- * Some drivers might support additional dynamic capabilities (like the PTP driver).
- */
- typedef enum {
- GP_OPERATION_NONE = 0, /**< No remote control operation supported. */
- GP_OPERATION_CAPTURE_IMAGE = 1 << 0, /**< Capturing images supported. */
- GP_OPERATION_CAPTURE_VIDEO = 1 << 1, /**< Capturing videos supported. */
- GP_OPERATION_CAPTURE_AUDIO = 1 << 2, /**< Capturing audio supported. */
- GP_OPERATION_CAPTURE_PREVIEW = 1 << 3, /**< Capturing image previews supported. */
- GP_OPERATION_CONFIG = 1 << 4, /**< Camera and Driver configuration supported. */
- GP_OPERATION_TRIGGER_CAPTURE = 1 << 5 /**< Camera can trigger capture and wait for events. */
- } CameraOperation;
- /**
- * A bitmask of image related operations of the device.
- */
- typedef enum {
- GP_FILE_OPERATION_NONE = 0, /**< No special file operations, just download. */
- GP_FILE_OPERATION_DELETE = 1 << 1, /**< Deletion of files is possible. */
- GP_FILE_OPERATION_PREVIEW = 1 << 3, /**< Previewing viewfinder content is possible. */
- GP_FILE_OPERATION_RAW = 1 << 4, /**< Raw retrieval is possible (used by non-JPEG cameras) */
- GP_FILE_OPERATION_AUDIO = 1 << 5, /**< Audio retrieval is possible. */
- GP_FILE_OPERATION_EXIF = 1 << 6 /**< EXIF retrieval is possible. */
- } CameraFileOperation;
- /**
- * A bitmask of filesystem related operations of the device.
- */
- typedef enum {
- GP_FOLDER_OPERATION_NONE = 0, /**< No special filesystem operation. */
- GP_FOLDER_OPERATION_DELETE_ALL = 1 << 0, /**< Deletion of all files on the device. */
- GP_FOLDER_OPERATION_PUT_FILE = 1 << 1, /**< Upload of files to the device possible. */
- GP_FOLDER_OPERATION_MAKE_DIR = 1 << 2, /**< Making directories on the device possible. */
- GP_FOLDER_OPERATION_REMOVE_DIR = 1 << 3 /**< Removing directories from the device possible. */
- } CameraFolderOperation;
- #ifdef _GPHOTO2_INTERNAL_CODE
- /* enum CameraOperation */
- extern const StringFlagItem gpi_camera_operation_map[];
- /* enum CameraFileOperation */
- extern const StringFlagItem gpi_file_operation_map[];
- /* enum CameraFolderOperation */
- extern const StringFlagItem gpi_folder_operation_map[];
- /* enum GphotoDeviceType */
- extern const StringFlagItem gpi_gphoto_device_type_map[];
- /* enum CameraDriverStatus */
- extern const StringFlagItem gpi_camera_driver_status_map[];
- #endif /* _GPHOTO2_INTERNAL_CODE */
- /**
- * \brief Describes the properties of a specific camera.
- *
- * The internals of this structures are used extensively by the
- * camlibs, but the status regarding use by frontends is questionable.
- */
- typedef struct {
- char model [128]; /**< \brief name of camera model */
- CameraDriverStatus status; /**< \brief driver quality */
- /** \brief Supported port types. */
- GPPortType port;
- /** \brief Supported serial port speeds (terminated with a value of 0). */
- int speed [64];
- /* Supported operations */
- CameraOperation operations; /**< \brief Camera operation funcs */
- CameraFileOperation file_operations; /**< \brief Camera file op funcs */
- CameraFolderOperation folder_operations;/**< \brief Camera folder op funcs */
- int usb_vendor; /**< \brief USB Vendor D */
- int usb_product; /**< \brief USB Product ID */
- int usb_class; /**< \brief USB device class */
- int usb_subclass; /**< \brief USB device subclass */
- int usb_protocol; /**< \brief USB device protocol */
- /* For core use */
- char library [1024]; /**< \brief (Internal) library filename */
- char id [1024]; /**< \brief (Internal) camera ID name */
- GphotoDeviceType device_type; /**< \brief Device type. */
- /** Reserved space to use in the future w/out changing the
- * struct size */
- int reserved2; /**< reserved space \internal */
- int reserved3; /**< reserved space \internal */
- int reserved4; /**< reserved space \internal */
- int reserved5; /**< reserved space \internal */
- int reserved6; /**< reserved space \internal */
- int reserved7; /**< reserved space \internal */
- int reserved8; /**< reserved space \internal */
- } CameraAbilities;
- /**
- * \brief List of supported camera models including their abilities
- *
- * The internals of this list are hidden - use the access functions.
- */
- typedef struct _CameraAbilitiesList CameraAbilitiesList;
- int gp_abilities_list_new (CameraAbilitiesList **list);
- int gp_abilities_list_free (CameraAbilitiesList *list);
- int gp_abilities_list_load (CameraAbilitiesList *list, GPContext *context);
- int gp_abilities_list_load_dir (CameraAbilitiesList *list, const char *dir, GPContext *context);
- int gp_abilities_list_reset (CameraAbilitiesList *list);
- int gp_abilities_list_detect (CameraAbilitiesList *list,
- GPPortInfoList *info_list, CameraList *l,
- GPContext *context);
- int gp_abilities_list_append (CameraAbilitiesList *list,
- CameraAbilities abilities);
- int gp_abilities_list_count (CameraAbilitiesList *list);
- int gp_abilities_list_lookup_model (CameraAbilitiesList *list,
- const char *model);
- int gp_abilities_list_get_abilities (CameraAbilitiesList *list, int index,
- CameraAbilities *abilities);
- const char *gp_message_codeset (const char *);
- /**
- * Name of the environment variable which may contain the path where
- * to look for the camlibs. If this environment variable is not defined,
- * use the compiled-in default constant.
- *
- * \internal Internal use only.
- */
- #ifdef _GPHOTO2_INTERNAL_CODE
- #define CAMLIBDIR_ENV "CAMLIBS"
- #endif /* _GPHOTO2_INTERNAL_CODE */
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* __GPHOTO2_ABILITIES_LIST_H__ */
|