1/*
2 * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "CamSensor.h"
7#include "CamDebug.h"
8
9#define HDCS_ADDR_QC	0xaa
10
11#define HDCS_IDENT	0x00
12
13class HDCS1000Sensor : public CamSensor {
14public:
15	HDCS1000Sensor(CamDevice *_camera);
16	~HDCS1000Sensor();
17
18	virtual status_t	Probe();
19
20	virtual uint8		IICReadAddress() const { return HDCS_ADDR_QC; };
21	virtual uint8		IICWriteAddress() const { return HDCS_ADDR_QC; };
22};
23
24
25HDCS1000Sensor::HDCS1000Sensor(CamDevice *_camera)
26	: CamSensor(_camera)
27{
28}
29
30
31HDCS1000Sensor::~HDCS1000Sensor()
32{
33}
34
35
36status_t
37HDCS1000Sensor::Probe()
38{
39	status_t err;
40	uint8 data;
41	PRINT((CH "()" CT));
42	Device()->SetIICBitsMode(8);
43	// QuickCam only ?
44	err = Device()->ReadIIC8(HDCS_IDENT+1, &data);
45	if (err < B_OK)
46		return ENODEV;
47	if (data == 8) {
48		PRINT((CH ": found %s sensor!" CT, Name()));
49		return B_OK;
50	}
51	return ENODEV;
52}
53
54
55B_WEBCAM_DECLARE_SENSOR(HDCS1000Sensor, hdcs1000)
56
57