From 586b09a499dee4a44898560cf193ec10dc6c3579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sat, 18 Jul 2009 14:52:45 +0000 Subject: [PATCH] Add method ProbeByIICSignature(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31625 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../media-add-ons/usb_webcam/CamSensor.cpp | 20 +++++++++++++++++++ .../media-add-ons/usb_webcam/CamSensor.h | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp b/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp index 6578c594da..e96a8d793c 100644 --- a/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp +++ b/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp @@ -124,3 +124,23 @@ CamSensor::Device() { return fCamDevice; } + + +status_t +CamSensor::ProbeByIICSignature(const uint8 *regList, const uint8 *matchList, + size_t count) +{ + int i; + + for (i = 0; i < count; i++) { + uint8 value = 0; + ssize_t len; + len = Device()->ReadIIC8(regList[i], &value); + PRINT((CH ": ReadIIC8 = %d val = %d" CT, len, value)); + if (len < 1) + return ENODEV; + if (value != matchList[i]) + return ENODEV; + } + return B_OK; +} diff --git a/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h b/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h index b51ca2b183..79cc7a9f17 100644 --- a/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h +++ b/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h @@ -59,6 +59,11 @@ class CamSensor virtual status_t ReadIIC(uint8 address, uint8 *data); #endif protected: + + status_t ProbeByIICSignature(const uint8 *regList, + const uint8 *matchList, + size_t count); + status_t fInitStatus; bool fIsBigEndian; bool fTransferEnabled;