Documentation de référence sur la struct camera_module
#include <
camera_common.h
>
Champs de données |
|
hw_module_t | commun |
int(* | get_number_of_cameras )(void) |
int(* | get_camera_info )(int camera_id, struct camera_info *info) |
int(* | set_callbacks )(const camera_module_callbacks_t *callbacks) |
void(* | get_vendor_tag_ops )(vendor_tag_ops_t *ops) |
int(* | open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device) |
int(* | set_torch_mode )(const char *camera_id, bool enabled) |
int(* | init )() |
void * | réservé [5] |
Description détaillée
Définition à la ligne 646 du fichier camera_common.h .
Documentation des champs
hw_module_t commun |
Méthodes courantes du module de caméra. Cet élément doit être le premier membre de camera_module , car les utilisateurs de cette structure casteront un hw_module_t en pointeur camera_module dans les contextes où il est connu que hw_module_t fait référence à un camera_module .
Les valeurs renvoyées par common.methods->open for Camera_module sont les suivantes:
0: lorsque l'appareil photo s'ouvre correctement.
-ENODEV: l'appareil photo ne peut pas être ouvert en raison d'une erreur interne.
-EINVAL: les arguments d'entrée ne sont pas valides, c'est-à-dire que l'ID et/ou le module ne sont pas valides.
-EBUSY: l'appareil photo était déjà ouvert pour cet ID de caméra (à l'aide de cette méthode ou d'open_legacy), quelle que soit la version HAL de l'appareil avec laquelle il a été ouvert.
-EUSERS: le nombre maximal d'appareils photo pouvant être ouverts simultanément a déjà été ouvert, soit par cette méthode, soit par la méthode open_legacy.
Toutes les autres valeurs renvoyées par common.methods->open seront traitées comme -ENODEV.
Définition à la ligne 674 du fichier camera_common.h .
int(* get_camera_info)(int camera_id, struct camera_info *info) |
get_camera_info:
Renvoie les informations statiques de la caméra pour un appareil photo donné. Ces informations peuvent ne pas changer pour un appareil photo.
Valeurs renvoyées:
0: en cas d'opération réussie
-ENODEV: les informations ne peuvent pas être fournies en raison d'une erreur interne.
-EINVAL: les arguments d'entrée ne sont pas valides, c'est-à-dire que l'ID et/ou le module ne sont pas valides.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_2_4 ou version ultérieure:
Lorsqu'une caméra est déconnectée, son ID devient non valide. L'appel de cette méthode avec cet ID d'appareil photo non valide renvoie -EINVAL et des métadonnées statiques de l'appareil photo NULL ( Camera_info.static_camera_characteristics ).
Définition à la ligne 727 du fichier camera_common.h .
int(* get_number_of_cameras)(void) |
get_number_of_cameras:
Renvoie le nombre d'appareils photo accessibles via le module de caméra. Les appareils photo sont numérotés de 0 à N-1, où N est la valeur renvoyée par cet appel. Le nom de l'appareil photo pour open() est simplement le nombre converti en chaîne. Par exemple, "0" pour l'ID de l'appareil photo 0, "1" pour l'ID de l'appareil photo 1.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_2_3 ou version antérieure:
La valeur ici doit être statique et ne peut pas changer après le premier appel de cette méthode.
CAMERA_MODULE_API_VERSION_2_4 ou version ultérieure:
La valeur ici doit être statique et ne doit compter que les caméras intégrées, qui ont des valeurs de face de caméra CAMERA_FACING_BACK ou CAMERA_FACING_FRONT ( camera_info.facing ). Le HAL ne doit pas inclure les caméras externes ( camera_info.facing == CAMERA_FACING_EXTERNAL) dans la valeur renvoyée par cet appel. Les frameworks utiliseront le rappel camera_device_status_change pour gérer le nombre d'appareils photo externes.
Définition à la ligne 701 du fichier camera_common.h .
void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops) |
get_vendor_tag_ops:
Obtenez des méthodes pour interroger les informations de la balise de métadonnées de l'extension du fournisseur. Le HAL doit renseigner toutes les méthodes d'opération des tags du fournisseur ou laisser les opérations inchangées si aucun tag de fournisseur n'est défini.
La structure vendor_tag_ops utilisée ici est définie dans: system/media/camera/include/system/vendor_tags.h
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: non fourni par le module HAL. Le framework peut ne pas appeler cette fonction.
CAMERA_MODULE_API_VERSION_2_2: peut être appelé par le framework.
Définition à la ligne 778 du fichier camera_common.h .
int(* init)() |
init:
Cette méthode est appelée par le service de l'appareil photo avant toute autre méthode, juste après le chargement de la bibliothèque HAL de l'appareil photo. Il peut être laissé NULL par le module HAL, si aucune initialisation n'est nécessaire.
Il peut être utilisé par les implémentations HAL pour effectuer l'initialisation et d'autres opérations ponctuelles.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: non fourni par le module HAL. Le framework n'appellera pas cette fonction.
CAMERA_MODULE_API_VERSION_2_4: si la valeur n'est pas NULL, elle sera toujours appelée par le framework une fois le module HAL chargé, avant toute autre méthode du module HAL.
Valeurs renvoyées:
0: en cas d'opération réussie.
-ENODEV: l'initialisation ne peut pas être terminée en raison d'une erreur interne. Le HAL doit être considéré comme non fonctionnel.
Définition à la ligne 909 du fichier camera_common.h .
int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device) |
open_legacy:
Ouvrez un ancien appareil HAL d'appareil photo spécifique si plusieurs versions d'API HAL d'appareil sont compatibles avec ce module HAL d'appareil photo. Par exemple, si le module de l'appareil photo est compatible avec les API d'appareil CAMERA_DEVICE_API_VERSION_1_0 et CAMERA_DEVICE_API_VERSION_3_2 pour le même ID d'appareil photo, le framework peut appeler cette fonction pour ouvrir l'appareil photo en tant qu'appareil CAMERA_DEVICE_API_VERSION_1_0.
Cette méthode est facultative. Un module HAL de l'appareil photo n'a pas besoin de prendre en charge plusieurs versions HAL de l'appareil par appareil. De tels modules peuvent renvoyer -ENOSYS pour tous les appels à cette méthode. Pour toutes les anciennes versions d'API d'appareil HAL non compatibles, -EOPNOTSUPP peut être renvoyé. Dans les cas ci-dessus, la méthode open() normale (common.methods->open) est utilisée par le framework.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: non fourni par le module HAL. Le framework n'appellera pas cette fonction.
CAMERA_MODULE_API_VERSION_2_3: peut être appelé par le framework.
Valeurs renvoyées:
0: lorsque l'appareil photo s'ouvre correctement.
-ENOSYS Cette méthode n'est pas compatible.
-EOPNOTSUPP: la version HAL demandée n'est pas prise en charge par cette méthode.
-EINVAL: les arguments d'entrée ne sont pas valides, c'est-à-dire que l'ID et/ou le module ne sont pas valides.
-EBUSY: l'appareil photo était déjà ouvert pour cet ID d'appareil photo (à l'aide de cette méthode ou de la méthode common.methods->open), quelle que soit la version HAL de l'appareil avec laquelle il a été ouvert.
-EUSERS: le nombre maximal d'appareils photo pouvant être ouverts simultanément a déjà été ouvert, soit par cette méthode, soit par la méthode common.methods->open.
Définition à la ligne 824 du fichier camera_common.h .
void* reserved[5] |
Définition à la ligne 912 du fichier camera_common.h .
int(* set_callbacks)(const camera_module_callbacks_t *callbacks) |
set_callbacks:
Fournissez des pointeurs de fonction de rappel au module HAL pour informer le framework des événements asynchrones du module de caméra. Le framework appelle cette fonction une fois après le chargement initial du module HAL de l'appareil photo, après l'appel de la méthode get_number_of_cameras() pour la première fois et avant tout autre appel du module.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:
Non fourni par le module HAL. Le framework peut ne pas appeler cette fonction.
CAMERA_MODULE_API_VERSION_2_1:
Peut être appelé par le framework.
Valeurs renvoyées:
0: en cas d'opération réussie
-ENODEV: l'opération ne peut pas être effectuée en raison d'une erreur interne.
-EINVAL: les arguments d'entrée ne sont pas valides, c'est-à-dire que les rappels sont nuls.
Définition à la ligne 758 du fichier camera_common.h .
int(* set_torch_mode)(const char *camera_id, bool enabled) |
set_torch_mode:
Activez ou désactivez le mode lampe de poche du flash associé à un ID de caméra donné. Si l'opération aboutit, HAL doit informer l'état de la lampe de poche du framework en appelant camera_module_callbacks.torch_mode_status_change() avec le nouvel état.
L'appareil photo a une priorité plus élevée pour accéder au flash. En cas de conflit de ressources, par exemple si open() est appelé pour ouvrir un appareil photo, le module HAL doit avertir le framework via camera_module_callbacks.torch_mode_status_change() que le mode lampe de poche a été désactivé et que son état est devenu TORCH_MODE_STATUS_NOT_AVAILABLE. Lorsque les ressources permettant d'activer le mode lampe de poche sont à nouveau disponibles, le module HAL doit avertir le framework via camera_module_callbacks.torch_mode_status_change() que l'état du mode lampe de poche est devenu TORCH_MODE_STATUS_AVAILABLE_OFF pour que set_torch_mode() puisse être appelé.
Lorsque le framework appelle set_torch_mode() pour activer le mode lampe de poche d'un flash, si HAL ne peut pas activer plusieurs modes lampe de poche simultanément, HAL doit désactiver le mode lampe de poche activé par un appel set_torch_mode() précédent et avertir le framework que l'état du mode lampe de poche de cet appareil photo est devenu TORCH_MODE_STATUS_AVAILABLE_OFF.
Informations sur la version (basées sur camera_module_t.common.module_api_version):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: non fourni par le module HAL. Le framework n'appellera pas cette fonction.
CAMERA_MODULE_API_VERSION_2_4: peut être appelé par le framework.
Valeurs renvoyées:
0: en cas d'opération réussie.
-ENOSYS: l'appareil photo n'est pas compatible avec cette opération. Il est renvoyé si et seulement si android.flash.info.available est défini sur "false".
-EBUSY: l'appareil photo est déjà utilisé.
-UTILISATEURS: les ressources nécessaires pour activer le mode lampe de poche ne sont pas disponibles, généralement parce que d'autres appareils photo utilisent les ressources pour empêcher l'utilisation du flash.
-EINVAL: camera_id n'est pas valide.
Définition à la ligne 878 du fichier camera_common.h .
La documentation de ce struct a été générée à partir du fichier suivant :
- hardware/libhardware/include/hardware/ camera_common.h