11590Srgrimes/* 250477Speter * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>. 31590Srgrimes * Distributed under the terms of the MIT License. 41590Srgrimes */ 51590Srgrimes#ifndef _CAM_ROSTER_H 6201386Sed#define _CAM_ROSTER_H 7201386Sed 81590Srgrimes#include <image.h> 9#include <List.h> 10#include <Locker.h> 11 12#include "CamDevice.h" 13 14class WebCamMediaAddOn; 15class CamDeviceAddon; 16 17class CamRoster : public BUSBRoster { 18public: 19 CamRoster(WebCamMediaAddOn* _addon); 20 virtual ~CamRoster(); 21 virtual status_t DeviceAdded(BUSBDevice* _device); 22 virtual void DeviceRemoved(BUSBDevice* _device); 23 24 uint32 CountCameras(); 25 bool Lock(); 26 void Unlock(); 27 // those must be called with Lock() 28 CamDevice* CameraAt(int32 index); 29 30 31 32private: 33 status_t LoadInternalAddons(); 34 status_t LoadExternalAddons(); 35 36 BLocker fLocker; 37 WebCamMediaAddOn* fAddon; 38 BList fCamerasAddons; 39 BList fCameras; 40}; 41 42#endif 43