xref: /haiku/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.h (revision 37c7d5d83a2372a6971e383411d5bacbeef0ebdc)
1 /*
2  * Copyright 2009, Ithamar Adema, <ithamar.adema@team-embedded.nl>.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 #ifndef _UVC_CAM_DEVICE_H
7 #define _UVC_CAM_DEVICE_H
8 
9 #include "CamDevice.h"
10 
11 class UVCCamDevice : public CamDevice {
12 public:
13 				UVCCamDevice(CamDeviceAddon &_addon, BUSBDevice* _device);
14 				~UVCCamDevice();
15 
16 	virtual bool		SupportsIsochronous();
17 	virtual status_t	StartTransfer();
18 	virtual status_t	StopTransfer();
19 private:
20 	void ParseVideoControl(const uint8* buf, size_t len);
21 	void ParseVideoStreaming(const uint8* buf, size_t len);
22 };
23 
24 class UVCCamDeviceAddon : public CamDeviceAddon {
25 	public:
26 				UVCCamDeviceAddon(WebCamMediaAddOn* webcam);
27 	virtual 		~UVCCamDeviceAddon();
28 
29 	virtual const char		*BrandName();
30 	virtual UVCCamDevice	*Instantiate(CamRoster &roster, BUSBDevice *from);
31 };
32 
33 #endif /* _UVC_CAM_DEVICE_H */
34