Riferimento alla struttura camera_module

Riferimento alla struttura camera_module

#include < camera_common.h >

Campi dati

hw_modulo_t comune
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)
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(* dentro )()
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 trasmetteranno un hw_module_t al puntatore camera_module in contesti in cui è noto che hw_module_t fa riferimento a camera_module .

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

0: In caso di apertura riuscita del dispositivo fotocamera.

-ENODEV: Impossibile aprire il dispositivo della fotocamera 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.

-EUTENTI: il numero massimo di dispositivi fotocamera che possono essere aperti contemporaneamente è già stato aperto, 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 statiche sulla fotocamera per un determinato dispositivo fotocamera. Queste informazioni potrebbero non cambiare per un dispositivo con fotocamera.

Valori restituiti:

0: In caso di operazione riuscita

-ENODEV: Impossibile fornire le informazioni 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 successiva:

Quando una fotocamera viene disconnessa, il relativo ID diventa non valido. Chiamando questo metodo con questo ID fotocamera non valido verranno ottenuti 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 fotocamera sono numerati da 0 a N-1, dove N è il valore restituito da questa chiamata. Il nome del dispositivo 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 precedente:

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

CAMERA_MODULE_API_VERSION_2_4 o successiva:

Il valore qui deve essere statico e deve contare solo le fotocamere integrate, che hanno valori di orientamento della fotocamera CAMERA_FACING_BACK o CAMERA_FACING_FRONT ( camera_info.facing ). L'HAL non deve includere le telecamere esterne ( camera_info.facing == CAMERA_FACING_EXTERNAL) nel valore restituito di questa chiamata. I framework utilizzeranno il callback camera_device_status_change per gestire il numero di fotocamere 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 eseguire query sulle informazioni sui tag dei metadati dell'estensione del fornitore. L'HAL deve compilare tutti i metodi operativi dei tag del fornitore o lasciare le operazioni invariate se non sono definiti i 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. Il 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 il caricamento corretto della libreria HAL della fotocamera. Può essere lasciato come NULL dal modulo HAL, se non è necessaria alcuna 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. Il framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_4: se diverso da 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 restituiti:

0: In caso di operazione riuscita.

-ENODEV: Impossibile completare l'inizializzazione a causa di un errore interno. Si deve presupporre che l'HAL sia 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_legacy:

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 della fotocamera supporta sia l'API del dispositivo CAMERA_DEVICE_API_VERSION_1_0 che CAMERA_DEVICE_API_VERSION_3_2 per lo stesso ID fotocamera, il framework può chiamare questa funzione per aprire il dispositivo della fotocamera come dispositivo CAMERA_DEVICE_API_VERSION_1_0.

Questo è un metodo facoltativo. Non è necessario che un modulo HAL della fotocamera supporti più di una versione HAL del dispositivo per dispositivo e tali moduli potrebbero 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 sopra indicati, 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. Il framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_3: valido per essere chiamato dal framework.

Valori restituiti:

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 il metodo common.methods->open), indipendentemente dalla versione HAL del dispositivo con cui è stato aperto.

-EUTENTI: 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 .

vuoto* 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 asincroni del modulo telecamera. Il framework chiamerà questa funzione una volta dopo il caricamento iniziale del modulo HAL della fotocamera, 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. Il framework potrebbe non chiamare questa funzione.

CAMERA_MODULE_API_VERSION_2_1:

Valido per essere chiamato dal framework.

Valori restituiti:

0: In caso di operazione riuscita

-ENODEV: l'operazione non può essere completata 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_modalità:

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

Il dispositivo fotocamera ha una priorità più alta nell'accesso al 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 affinché set_torch_mode() possa essere chiamato.

Quando il framework chiama set_torch_mode() per attivare la modalità torcia di un'unità flash, se HAL non riesce a mantenere attive più modalità torcia contemporaneamente, HAL dovrebbe disattivare la modalità torcia attivata da una precedente chiamata set_torch_mode() e avvisare il 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. Il framework non chiamerà questa funzione.

CAMERA_MODULE_API_VERSION_2_4: valido per essere chiamato dal framework.

Valori restituiti:

0: In caso di 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.

-UTENTI: le risorse necessarie per attivare la modalità torcia non sono disponibili, in genere perché altri dispositivi della fotocamera dispongono delle 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: