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;