camera_module Riferimento struttura

camera_module Riferimento struttura

#include < camera_common.h >

Campi dati

hw_module_t Comune
int(* get_number_of_cameras )(vuoto)
int(* get_camera_info )(int camera_id, struct camera_info *info)
int(* set_callbacks )(const camera_module_callbacks_t *callbacks)
vuoto(* 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 abilitato)
int(* inizia )()
vuoto * riservato [5]

Descrizione dettagliata

Definizione alla riga 646 del file camera_common.h .

Documentazione sul campo

Metodi comuni del modulo fotocamera. Questo deve essere il primo membro di camera_module poiché gli utenti di questa struttura eseguiranno il cast di un puntatore da hw_module_t a camera_module in contesti in cui è noto che hw_module_t fa riferimento a un camera_module .

I valori di ritorno per common.methods->open per camera_module sono:

0: In caso di apertura riuscita del dispositivo fotocamera.

-ENODEV: il dispositivo della fotocamera non può essere aperto a causa di un errore interno.

-EINVAL: gli argomenti di input non sono validi, ovvero l'id non è valido e/o il modulo non è valido.

-EBUSY: il dispositivo della fotocamera era già aperto per questo ID fotocamera (utilizzando questo metodo o open_legacy), indipendentemente dalla versione HAL del dispositivo con cui è stato aperto.

-EUSERS: il numero massimo di dispositivi fotocamera che possono essere aperti contemporaneamente sono già stati aperti, con questo metodo o con il metodo open_legacy.

Tutti gli altri valori restituiti da common.methods->open verranno trattati come -ENODEV.

Definizione alla riga 674 del file camera_common.h .

int(* get_camera_info)(int camera_id, struct camera_info *info)

get_camera_info:

Restituisce le informazioni sulla fotocamera statica per un determinato dispositivo fotocamera. Queste informazioni potrebbero non cambiare per un dispositivo fotocamera.

Valori di ritorno:

0: Su un'operazione riuscita

-ENODEV: le informazioni non possono essere fornite a causa di un errore interno.

-EINVAL: gli argomenti di input non sono validi, ovvero l'id non è valido e/o il modulo non è valido.

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 o superiore:

Quando una telecamera viene disconnessa, il suo ID telecamera diventa non valido. Chiamando questo metodo con questo ID fotocamera non valido verranno visualizzati i metadati statici della fotocamera -EINVAL e NULL ( camera_info.static_camera_characteristics ).

Definizione alla riga 727 del file camera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras:

Restituisce il numero di dispositivi fotocamera accessibili tramite il modulo fotocamera. I dispositivi della fotocamera sono numerati da 0 a N-1, dove N è il valore restituito da questa chiamata. Il nome del dispositivo della fotocamera per open() è semplicemente il numero convertito in una stringa. Cioè, "0" per l'ID telecamera 0, "1" per l'ID telecamera 1.

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 o inferiore:

Il valore qui deve essere statico e non può cambiare dopo la prima chiamata a questo metodo.

CAMERA_MODULE_API_VERSION_2_4 o superiore:

Il valore qui deve essere statico e deve contare solo le telecamere integrate, che hanno i valori di CAMERA_FACING_BACK o CAMERA_FACING_FRONT rivolti verso la telecamera ( camera_info.facing ). L'HAL non deve includere le telecamere esterne ( camera_info.facing == CAMERA_FACING_EXTERNAL) nel valore di ritorno di questa chiamata. I framework utilizzeranno il callback camera_device_status_change per gestire il numero di telecamere esterne.

Definizione alla riga 701 del file camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Ottieni metodi per interrogare le informazioni sui tag dei metadati dell'estensione fornitore. L'HAL dovrebbe compilare tutti i metodi operativi dei tag del fornitore o lasciare le operazioni invariate se non sono definiti tag del fornitore.

La struttura vendor_tag_ops utilizzata qui è definita in: system/media/camera/include/system/vendor_tags.h

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Non fornito dal modulo HAL. Framework potrebbe non chiamare questa funzione.

CAMERA_MODULE_API_VERSION_2_2: valido per essere chiamato dal framework.

Definizione alla riga 778 del file camera_common.h .

int(* init)()

dentro:

Questo metodo viene chiamato dal servizio della fotocamera prima che venga richiamato qualsiasi altro metodo, subito dopo che la libreria HAL della fotocamera è stata caricata correttamente. Può essere lasciato come NULL dal modulo HAL, se non è necessaria l'inizializzazione.

Può essere utilizzato dalle implementazioni HAL per eseguire l'inizializzazione e altre operazioni una tantum.

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Non fornito dal modulo HAL. Framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_4: Se non NULL, verrà sempre chiamato dal framework una volta dopo il caricamento del modulo HAL, prima che venga chiamato qualsiasi altro metodo del modulo HAL.

Valori di ritorno:

0: Su un'operazione riuscita.

-ENODEV: Impossibile completare l'inizializzazione a causa di un errore interno. L'HAL deve essere considerato in uno stato non funzionante.

Definizione alla riga 909 del file camera_common.h .

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

open_eredità:

Aprire un dispositivo HAL della fotocamera legacy specifico se più versioni dell'API HAL del dispositivo sono supportate da questo modulo HAL della fotocamera. Ad esempio, se il modulo telecamera supporta sia CAMERA_DEVICE_API_VERSION_1_0 che CAMERA_DEVICE_API_VERSION_3_2 device API per lo stesso ID telecamera, il framework può chiamare questa funzione per aprire il dispositivo telecamera come dispositivo CAMERA_DEVICE_API_VERSION_1_0.

Questo è un metodo facoltativo. Un modulo Camera HAL non deve supportare più di una versione HAL del dispositivo per dispositivo e tali moduli possono restituire -ENOSYS per tutte le chiamate a questo metodo. Per tutte le versioni precedenti dell'API del dispositivo HAL che non sono supportate, potrebbe restituire -EOPNOTSUPP. Quando si verificano i casi precedenti, il framework utilizzerà invece il normale metodo open() (common.methods->open).

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: Non fornito dal modulo HAL. Framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_3: valido per essere chiamato dal framework.

Valori di ritorno:

0: In caso di apertura riuscita del dispositivo fotocamera.

-ENOSYS Questo metodo non è supportato.

-EOPNOTSUPP: la versione HAL richiesta non è supportata da questo metodo.

-EINVAL: gli argomenti di input non sono validi, ovvero l'id non è valido e/o il modulo non è valido.

-EBUSY: il dispositivo della fotocamera era già aperto per questo ID fotocamera (utilizzando questo metodo o common.methods->metodo aperto), indipendentemente dalla versione HAL del dispositivo con cui è stato aperto.

-EUSERS: il numero massimo di dispositivi fotocamera che possono essere aperti contemporaneamente è già stato aperto, con questo metodo o con il metodo common.methods->open.

Definizione alla riga 824 del file camera_common.h .

nullo* riservato[5]

Definizione alla riga 912 del file camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callback:

Fornire puntatori alla funzione di callback al modulo HAL per informare il framework degli eventi del modulo telecamera asincrona. Il framework chiamerà questa funzione una volta dopo il caricamento iniziale del modulo HAL della telecamera, dopo che il metodo get_number_of_cameras() è stato chiamato per la prima volta e prima di qualsiasi altra chiamata al modulo.

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Non fornito dal modulo HAL. Framework potrebbe non chiamare questa funzione.

CAMERA_MODULE_API_VERSION_2_1:

Valido per essere chiamato dal framework.

Valori di ritorno:

0: Su un'operazione riuscita

-ENODEV: Impossibile completare l'operazione a causa di un errore interno.

-EINVAL: gli argomenti di input non sono validi, ovvero i callback sono nulli

Definizione alla riga 758 del file camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool abilitato)

set_torcia_mode:

Attiva o disattiva la modalità torcia dell'unità flash associata a un determinato ID fotocamera. Se l'operazione ha esito positivo, HAL deve notificare lo stato della torcia del framework richiamando camera_module_callbacks.torch_mode_status_change() con il nuovo stato.

Il dispositivo della fotocamera ha una priorità maggiore per l'accesso all'unità flash. Quando si verificano conflitti di risorse, ad esempio open() viene chiamato per aprire un dispositivo fotocamera, il modulo HAL deve notificare al framework tramite camera_module_callbacks.torch_mode_status_change() che la modalità torcia è stata disattivata e lo stato della modalità torcia è diventato TORCH_MODE_STATUS_NOT_AVAILABLE. Quando le risorse per attivare la modalità torcia diventano nuovamente disponibili, il modulo HAL deve notificare al framework tramite camera_module_callbacks.torch_mode_status_change() che lo stato della modalità torcia è diventato TORCH_MODE_STATUS_AVAILABLE_OFF per la chiamata di set_torch_mode() .

Quando il framework chiama set_torch_mode() per attivare la modalità torcia di un'unità flash, se HAL non può mantenere attivate più modalità torcia contemporaneamente, HAL dovrebbe disattivare la modalità torcia che era stata attivata da una precedente chiamata set_torch_mode() e notificare al framework che lo stato della modalità torcia di quell'unità flash è diventato TORCH_MODE_STATUS_AVAILABLE_OFF.

Informazioni sulla versione (basate su camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Non fornito dal modulo HAL. Framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_4: valido per essere chiamato dal framework.

Valori di ritorno:

0: Su un'operazione riuscita.

-ENOSYS: il dispositivo fotocamera non supporta questa operazione. Viene restituito se e solo se android.flash.info.available è false.

-EBUSY: il dispositivo fotocamera è già in uso.

-EUSERS: le risorse necessarie per attivare la modalità torcia non sono disponibili, in genere perché altri dispositivi della fotocamera stanno trattenendo le risorse per rendere impossibile l'utilizzo dell'unità flash.

-EINVAL: camera_id non è valido.

Definizione alla riga 878 del file camera_common.h .


La documentazione per questa struttura è stata generata dal seguente file: