Riferimento alla struttura camera_module

Riferimento alla struttura camera_module

#include < camera_common.h >

Campi dati

hw_module_t   comuni
 
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 *  riservato [5]
 

Descrizione dettagliata

Definizione nella riga 646 del file camera_common.h .

Documentazione dei campi

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

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

0: dopo l'apertura corretta del dispositivo della 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 e/o il modulo non sono validi.

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

-EUSERS: il numero massimo di dispositivi videocamera 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 nella 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 della videocamera per un determinato dispositivo. Queste informazioni potrebbero non cambiare per un dispositivo con videocamera.

Valori restituiti:

0: in caso di 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 e/o il modulo non sono validi.

Informazioni sulla versione (in base a camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 o versioni successive:

Quando una videocamera è scollegata, il relativo ID videocamera non è valido. Se chiami questo metodo con questo ID videocamera non valido, verranno restituiti -EINVAL e metadati statici della videocamera NULL ( camera_info.static_camera_characteristics ).

Definizione nella riga 727 del file camera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras:

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

Informazioni sulla versione (in base a camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 o versioni precedenti:

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

CAMERA_MODULE_API_VERSION_2_4 o versioni successive:

Il valore qui deve essere statico e deve conteggiare 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 fotocamere 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 videocamere 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 dei tag dei metadati delle estensioni del fornitore. L'HAL deve compilare tutti i metodi di operazione dei tag del fornitore o lasciare invariate le operazioni 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 (in base a 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: può essere chiamato dal framework.

Definizione nella riga 778 del file camera_common.h .

int(* init)()

init:

Questo metodo viene chiamato dal servizio della videocamera prima dell'invocazione di altri metodi, subito dopo il caricamento della libreria HAL della videocamera. Può essere lasciato 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 (in base a 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 non è NULL, verrà sempre chiamato dal framework una volta caricato il modulo HAL, prima che venga chiamato qualsiasi altro metodo del modulo HAL.

Valori restituiti:

0: in caso di operazione riuscita.

-ENODEV: l'inizializzazione non può essere completata a causa di un errore interno. Si deve presumere che l'HAL sia in uno stato non funzionale.

Definizione nella 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:

Apri un dispositivo HAL della fotocamera legacy specifico se questo modulo HAL della fotocamera supporta più versioni dell'API HAL del dispositivo. Ad esempio, se il modulo della fotocamera supporta sia l'API di dispositivo CAMERA_DEVICE_API_VERSION_1_0 sia l'API di dispositivo 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. Un modulo HAL della fotocamera non deve supportare più di una versione HAL del dispositivo per dispositivo e questi moduli possono restituire -ENOSYS per tutte le chiamate a questo metodo. Per tutte le versioni precedenti dell'API HAL del dispositivo non supportate, potrebbe essere restituito -EOPNOTSUPP. Quando si verificano i casi precedenti, il framework utilizzerà il normale metodo open() (common.methods->open).

Informazioni sulla versione (in base a 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: può essere chiamato dal framework.

Valori restituiti:

0: dopo l'apertura corretta del dispositivo della 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 e/o il modulo non sono validi.

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

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

Definizione nella riga 824 del file camera_common.h .

void* reserved[5]

Definizione nella riga 912 del file camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Fornisci i puntatori alle funzioni di callback al modulo HAL per informare il framework degli eventi asincroni del modulo della videocamera. Il framework chiamerà questa funzione una volta dopo il caricamento iniziale del modulo HAL della fotocamera, dopo la chiamata del metodo get_number_of_cameras() per la prima volta e prima di qualsiasi altra chiamata al modulo.

Informazioni sulla versione (in base a 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:

Può 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 null

Definizione nella riga 758 del file camera_common.h .

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

set_torch_mode:

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

Il dispositivo della fotocamera ha una priorità più alta per l'accesso all'unità flash. In caso di conflitti di risorse, ad esempio se viene chiamata open() per aprire un dispositivo della fotocamera, il modulo HAL deve informare il framework tramite camera_module_callbacks.torch_mode_status_change() che la modalità torcia è stata disattivata e che lo stato della modalità torcia è diventato TORCH_MODE_STATUS_NOT_AVAILABLE. Quando le risorse per attivare la modalità torcia diventano di nuovo disponibili, il modulo HAL deve informare il framework tramite camera_module_callbacks.torch_mode_status_change() che lo stato della modalità torcia è diventato TORCH_MODE_STATUS_AVAILABLE_OFF per set_torch_mode() da chiamare.

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

Informazioni sulla versione (in base a 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: può essere chiamato dal framework.

Valori restituiti:

0: in caso di operazione riuscita.

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

-EBUSY: il dispositivo della videocamera è già in uso.

-EUSERS: le risorse necessarie per attivare la modalità torcia non sono disponibili, in genere perché altri dispositivi con fotocamera occupano le risorse impedendo l'utilizzo del flash.

-EINVAL: camera_id non è valido.

Definizione nella riga 878 del file camera_common.h .


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