/* * Copyright 2000-2008 Ingo Weinhold All rights reserved. * Distributed under the terms of the MIT license. */ /*! Derived classes are video consumer targets. Each time the consumer has received a frame (that is not late and thus dropped) it calls SetBitmap(). This method should immediately do whatever has to be done. Until the next call to SetBitmap() the bitmap can be used -- thereafter it is not allowed to use it any longer. Therefore the bitmap variable is protected by a lock. Anytime it is going to be accessed, the object must be locked. */ #ifndef VIDEO_TARGET_H #define VIDEO_TARGET_H #include class BBitmap; class VideoTarget { public: VideoTarget(); virtual ~VideoTarget(); bool LockBitmap(); void UnlockBitmap(); virtual void SetBitmap(const BBitmap* bitmap); const BBitmap* GetBitmap() const; protected: BLocker fBitmapLock; const BBitmap* volatile fBitmap; }; #endif // VIDEO_TARGET_H