diff options
author | Hans Ulrich Niedermann <gp@n-dimensional.de> | 2006-10-14 11:54:47 +0000 |
---|---|---|
committer | Hans Ulrich Niedermann <gp@n-dimensional.de> | 2006-10-14 11:54:47 +0000 |
commit | fd692a071e71409e43ae10828c59f48034564e1c (patch) | |
tree | c7a4f6abfd6f1e33fdd0d3ea4318e245aa34c6a9 /gphoto2/gphoto2-abilities-list.h | |
parent | 77b5ff66241cf0edd021ff97b5bc0ae9113cf5db (diff) | |
download | libgphoto2-fd692a071e71409e43ae10828c59f48034564e1c.tar.gz |
Move header files one last time to reduce file path lengths in tarball.
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@9330 67ed7778-7388-44ab-90cf-0a291f65f57c
Diffstat (limited to 'gphoto2/gphoto2-abilities-list.h')
-rw-r--r-- | gphoto2/gphoto2-abilities-list.h | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/gphoto2/gphoto2-abilities-list.h b/gphoto2/gphoto2-abilities-list.h new file mode 100644 index 000000000..8e1d29639 --- /dev/null +++ b/gphoto2/gphoto2-abilities-list.h @@ -0,0 +1,192 @@ +/** \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., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, 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 */ + +typedef enum { + GP_DRIVER_STATUS_PRODUCTION, + GP_DRIVER_STATUS_TESTING, + GP_DRIVER_STATUS_EXPERIMENTAL, + GP_DRIVER_STATUS_DEPRECATED +} CameraDriverStatus; + +/** + * Type of the device represented. Currently we have Still Cameras + * and MTP Audio Players. + */ +typedef enum { + GP_DEVICE_STILL_CAMERA = 0, + GP_DEVICE_AUDIO_PLAYER = 1 << 0 +} GphotoDeviceType; + +typedef enum { + GP_OPERATION_NONE = 0, + GP_OPERATION_CAPTURE_IMAGE = 1 << 0, + GP_OPERATION_CAPTURE_VIDEO = 1 << 1, + GP_OPERATION_CAPTURE_AUDIO = 1 << 2, + GP_OPERATION_CAPTURE_PREVIEW = 1 << 3, + GP_OPERATION_CONFIG = 1 << 4 +} CameraOperation; + +typedef enum { + GP_FILE_OPERATION_NONE = 0, + GP_FILE_OPERATION_DELETE = 1 << 1, + GP_FILE_OPERATION_PREVIEW = 1 << 3, + GP_FILE_OPERATION_RAW = 1 << 4, + GP_FILE_OPERATION_AUDIO = 1 << 5, + GP_FILE_OPERATION_EXIF = 1 << 6 +} CameraFileOperation; + +typedef enum { + GP_FOLDER_OPERATION_NONE = 0, + GP_FOLDER_OPERATION_DELETE_ALL = 1 << 0, + GP_FOLDER_OPERATION_PUT_FILE = 1 << 1, + GP_FOLDER_OPERATION_MAKE_DIR = 1 << 2, + GP_FOLDER_OPERATION_REMOVE_DIR = 1 << 3 +} 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]; /**< name of camera model */ + CameraDriverStatus status; /**< driver quality */ + + /** Supported port. */ + GPPortType port; + /** Supported port speeds (terminated with a value of 0). */ + int speed [64]; + + /* Supported operations */ + CameraOperation operations; /**< camera operation funcs */ + CameraFileOperation file_operations; /**< camera file op funcs */ + CameraFolderOperation folder_operations;/**< camera folder op funcs */ + + int usb_vendor; /**< USB Vendor D */ + int usb_product; /**< USB Product ID */ + int usb_class; /**< USB device class */ + int usb_subclass; /**< USB device subclass */ + int usb_protocol; /**< USB device protocol */ + + /* For core use */ + char library [1024]; /**< \internal */ + char id [1024]; /**< \internal */ + + GphotoDeviceType device_type; /**< 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_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__ */ |