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 .
تم إنشاء وثائق هذه البنية من الملف التالي:
- Hardware / libhardware / include / hardware / camera_common.h