camera_module مرجع الهيكل

camera_module مرجع الهيكل

#include < camera_common.h >

حقول البيانات

hw_module_t مشترك
int (* get_number_of_cameras ) (باطل)
int (* get_camera_info ) (int camera_id، Struct camera_info * info)
int (* set_callbacks ) (const camera_module_callbacks_t * callbacks)
فارغ(* 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)
int (* الحرف الأول ) ()
فارغ * محفوظة [5]

وصف مفصل

تعريف في السطر 646 لملف camera_common.h .

التوثيق الميداني

hw_module_t شائع

الطرق الشائعة لوحدة الكاميرا. يجب أن يكون هذا هو أول عضو في camera_module حيث سيقوم مستخدمو هذه البنية بإرسال hw_module_t إلى مؤشر camera_module في السياقات حيث يُعرف hw_module_t بإشارات camera_module .

قيم الإرجاع لـ common.methods-> فتح للوحدة camera_module هي:

0: عند فتح جهاز الكاميرا بنجاح.

-ENODEV: لا يمكن فتح جهاز الكاميرا بسبب خطأ داخلي.

-EINVAL: وسيطات الإدخال غير صالحة ، أي أن المعرف غير صالح و / أو الوحدة غير صالحة.

-EBUSY: تم فتح جهاز الكاميرا بالفعل لمعرف الكاميرا هذا (باستخدام هذه الطريقة أو open_legacy) ، بغض النظر عن إصدار HAL للجهاز الذي تم فتحه باسم.

-المستخدمون: تم فتح العدد الأقصى من أجهزة الكاميرا التي يمكن فتحها بشكل متزامن بالفعل ، إما بهذه الطريقة أو بطريقة open_legacy.

ستتم معاملة جميع قيم الإرجاع الأخرى من common.methods-> open كـ -ENODEV.

تعريف في السطر 674 لملف camera_common.h .

int (* get_camera_info) (int camera_id، Struct camera_info * info)

get_camera_info:

قم بإعادة معلومات الكاميرا الثابتة لجهاز كاميرا معين. قد لا تتغير هذه المعلومات لجهاز الكاميرا.

إرجاع القيم:

0: لعملية ناجحة

-ENODEV: لا يمكن توفير المعلومات بسبب خطأ داخلي.

-EINVAL: وسيطات الإدخال غير صالحة ، أي أن المعرف غير صالح و / أو الوحدة غير صالحة.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 أو أعلى:

عند فصل الكاميرا ، يصبح معرف الكاميرا الخاص بها غير صالح. سيؤدي استدعاء هذه الطريقة باستخدام معرف الكاميرا غير الصالح هذا إلى الحصول على البيانات الوصفية الثابتة للكاميرا EINVAL و NULL ( camera_info.static_camera_characteristics ).

تعريف في السطر 727 لملف camera_common.h .

int (* get_number_of_cameras) (باطل)

get_number_of_cameras:

تُرجع عدد أجهزة الكاميرا التي يمكن الوصول إليها من خلال وحدة الكاميرا. يتم ترقيم أجهزة الكاميرا من 0 إلى N-1 ، حيث N هي القيمة التي يتم إرجاعها بواسطة هذه المكالمة. اسم جهاز الكاميرا لـ open () هو ببساطة الرقم المحول إلى سلسلة. وهذا يعني ، "0" لمعرف الكاميرا 0 ، "1" لمعرف الكاميرا 1.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 أو أقل:

يجب أن تكون القيمة هنا ثابتة ، ولا يمكن تغييرها بعد الاستدعاء الأول لهذه الطريقة.

CAMERA_MODULE_API_VERSION_2_4 أو أعلى:

يجب أن تكون القيمة هنا ثابتة ، ويجب أن تحسب فقط الكاميرات المدمجة ، التي تحتوي على قيم مواجهة للكاميرا CAMERA_FACING_BACK أو CAMERA_FACING_FRONT ( camera_info.facing ). يجب ألا يتضمن HAL الكاميرات الخارجية ( camera_info.facing == CAMERA_FACING_EXTERNAL) في القيمة المرجعة لهذه المكالمة. ستستخدم الأطر رد اتصال camera_device_status_change لإدارة عدد الكاميرات الخارجية.

تعريف في السطر 701 لملف camera_common.h .

باطل (* get_vendor_tag_ops) (vendor_tag_ops_t * ops)

get_vendor_tag_ops:

احصل على طرق للاستعلام عن معلومات علامة بيانات تعريف ملحق المورد. يجب أن تملأ طبقة تجريد الأجهزة جميع أساليب عملية علامة المورد ، أو تترك العمليات دون تغيير إذا لم يتم تحديد علامات البائع.

يتم تحديد بنية vendor_tag_ops المستخدمة هنا في: system / media / camera / include / system / vendor_tags.h

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x / 2_0 / 2_1: لم يتم توفيره بواسطة وحدة HAL. قد لا يستدعي الإطار هذه الوظيفة.

CAMERA_MODULE_API_VERSION_2_2: صالح ليتم استدعاؤه بواسطة إطار العمل.

تعريف في السطر 778 لملف camera_common.h .

int (* init) ()

فيه:

يتم استدعاء هذه الطريقة بواسطة خدمة الكاميرا قبل استدعاء أي طرق أخرى ، مباشرة بعد تحميل مكتبة HAL الخاصة بالكاميرا بنجاح. قد يتم تركه كـ NULL بواسطة الوحدة النمطية HAL ، إذا لم تكن هناك حاجة إلى تهيئة.

يمكن استخدامه بواسطة تطبيقات HAL لإجراء التهيئة وعمليات أخرى لمرة واحدة.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x / 2_0 / 2_1 / 2_2 / 2_3: لم يتم توفيره بواسطة وحدة HAL. الإطار لن يستدعي هذه الوظيفة.

CAMERA_MODULE_API_VERSION_2_4: إذا لم يكن NULL ، فسيتم استدعاؤه دائمًا بواسطة إطار العمل مرة واحدة بعد تحميل الوحدة النمطية HAL ، قبل استدعاء أي طريقة وحدة HAL أخرى.

إرجاع القيم:

0: لعملية ناجحة.

-ENODEV: لا يمكن إكمال التهيئة بسبب خطأ داخلي. يجب افتراض أن HAL في حالة غير وظيفية.

تعريف في السطر 909 لملف camera_common.h .

int (* open_legacy) (const Struct hw_module_t * module ، const char * id ، uint32_t halVersion ، Struct hw_device_t ** device)

فتح_الإرث:

افتح جهاز HAL للكاميرا القديمة المحددة إذا كانت هناك عدة إصدارات من HAL API تدعمها وحدة HAL الخاصة بالكاميرا. على سبيل المثال ، إذا كانت وحدة الكاميرا تدعم كلاً من CAMERA_DEVICE_API_VERSION_1_0 وواجهة برمجة تطبيقات الجهاز CAMERA_DEVICE_API_VERSION_3_2 لمعرّف الكاميرا نفسه ، يمكن لإطار العمل استدعاء هذه الوظيفة لفتح جهاز الكاميرا كجهاز CAMERA_DEVICE_API_VERSION_1_0.

هذه طريقة اختيارية. لا تحتاج وحدة Camera HAL إلى دعم أكثر من إصدار HAL لجهاز واحد لكل جهاز ، وقد ترجع هذه الوحدات النمطية -ENOSYS لجميع المكالمات إلى هذه الطريقة. بالنسبة لجميع إصدارات واجهة برمجة تطبيقات جهاز HAL الأقدم غير المدعومة ، قد ترجع -EOPNOTSUPP. عند حدوث الحالات المذكورة أعلاه ، سيتم استخدام طريقة open () العادية (common.methods-> open) بواسطة إطار العمل بدلاً من ذلك.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x / 2_0 / 2_1 / 2_2: لم يتم توفيره بواسطة وحدة HAL. الإطار لن يستدعي هذه الوظيفة.

CAMERA_MODULE_API_VERSION_2_3: صالح ليتم استدعاؤه بواسطة إطار العمل.

إرجاع القيم:

0: عند فتح جهاز الكاميرا بنجاح.

-ENOSYS هذه الطريقة غير مدعومة.

-EOPNOTSUPP: إصدار HAL المطلوب غير مدعوم بهذه الطريقة.

-EINVAL: وسيطات الإدخال غير صالحة ، أي أن المعرف غير صالح و / أو الوحدة غير صالحة.

-EBUSY: تم فتح جهاز الكاميرا بالفعل لمعرف الكاميرا هذا (باستخدام هذه الطريقة أو الطرق الشائعة-> طريقة الفتح) ، بغض النظر عن إصدار HAL للجهاز الذي تم فتحه به.

-المستخدمون: تم فتح العدد الأقصى من أجهزة الكاميرا التي يمكن فتحها بشكل متزامن بالفعل ، إما بهذه الطريقة أو بالطرق الشائعة-> طريقة الفتح.

تعريف في السطر 824 لملف camera_common.h .

* باطل محجوز [5]

تعريف في السطر 912 لملف camera_common.h .

int (* set_callbacks) (const camera_module_callbacks_t * callbacks)

set_callbacks:

قم بتوفير مؤشرات وظيفة رد الاتصال لوحدة HAL لإبلاغ إطار أحداث وحدة الكاميرا غير المتزامنة. سيستدعي إطار العمل هذه الوظيفة مرة واحدة بعد تحميل وحدة HAL للكاميرا الأولية ، بعد استدعاء طريقة get_number_of_cameras () للمرة الأولى ، وقبل أي مكالمات أخرى للوحدة.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0 ، CAMERA_MODULE_API_VERSION_2_0:

لم يتم توفيره بواسطة وحدة HAL. قد لا يستدعي الإطار هذه الوظيفة.

CAMERA_MODULE_API_VERSION_2_1:

صالحة ليتم استدعاؤها من قبل إطار العمل.

إرجاع القيم:

0: لعملية ناجحة

-ENODEV: لا يمكن إتمام العملية بسبب خطأ داخلي.

-EINVAL: وسيطات الإدخال غير صالحة ، أي أن عمليات الاسترجاعات خالية

تعريف في السطر 758 ​​لملف camera_common.h .

int (* set_torch_mode) (const char * camera_id ، تم تمكين bool)

set_torch_mode:

قم بتشغيل أو إيقاف تشغيل وضع الشعلة لوحدة الفلاش المرتبطة بمعرف الكاميرا المحدد. إذا نجحت العملية ، يجب على HAL إخطار حالة شعلة إطار العمل عن طريق استدعاء camera_module_callbacks.torch_mode_status_change () بالحالة الجديدة.

جهاز الكاميرا له أولوية أعلى في الوصول إلى وحدة الفلاش. عند وجود أي تعارضات في الموارد ، مثل استدعاء open () لفتح جهاز الكاميرا ، يجب على وحدة HAL إخطار إطار العمل من خلال camera_module_callbacks.torch_mode_status_change () بإيقاف وضع الشعلة وأصبحت حالة وضع الشعلة TORCH_MODE_STATUS_NOT_AVAILABLE. عندما تصبح الموارد لتشغيل وضع الشعلة متاحة مرة أخرى ، يجب على وحدة HAL إخطار إطار العمل من خلال camera_module_callbacks.torch_mode_status_change () بأن حالة وضع الشعلة أصبحت TORCH_MODE_STATUS_AVAILABLE_OFF لكي يتم استدعاء set_torch_mode () .

عندما يستدعي إطار العمل set_torch_mode () لتشغيل وضع الشعلة لوحدة الفلاش ، إذا لم تستطع HAL الاحتفاظ بأوضاع الشعلة المتعددة في وقت واحد ، فيجب على HAL إيقاف تشغيل وضع الشعلة الذي تم تشغيله بواسطة استدعاء set_torch_mode () سابق وإخطار إطار العمل أن حالة وضع الشعلة لوحدة الفلاش تلك أصبحت TORCH_MODE_STATUS_AVAILABLE_OFF.

معلومات الإصدار (بناءً على camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x / 2_0 / 2_1 / 2_2 / 2_3: لم يتم توفيره بواسطة وحدة HAL. الإطار لن يستدعي هذه الوظيفة.

CAMERA_MODULE_API_VERSION_2_4: صالح ليتم استدعاؤه بواسطة إطار العمل.

إرجاع القيم:

0: لعملية ناجحة.

-ENOSYS: جهاز الكاميرا لا يدعم هذه العملية. يتم إعادته إذا وفقط إذا كان android.flash.info.available خاطئًا.

-EBUSY: جهاز الكاميرا قيد الاستخدام بالفعل.

-المستخدمون: الموارد اللازمة لتشغيل وضع المصباح غير متوفرة ، عادةً لأن أجهزة الكاميرا الأخرى تحتفظ بالموارد اللازمة لاستخدام وحدة الفلاش.

-EINVAL: camera_id غير صالحة.

تعريف في السطر 878 لملف camera_common.h .


تم إنشاء وثائق هذه البنية من الملف التالي: