xref: /haiku/src/apps/mediaplayer/media_node_framework/video/VideoTarget.h (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
1 /*
2  * Copyright 2000-2008 Ingo Weinhold <ingo_weinhold@gmx.de> All rights reserved.
3  * Distributed under the terms of the MIT license.
4  */
5 
6 /*!	Derived classes are video consumer targets. Each time the consumer
7 	has received a frame (that is not late and thus dropped) it calls
8 	SetBitmap(). This method should immediately do whatever has to be done.
9 	Until the next call to SetBitmap() the bitmap can be used -- thereafter
10 	it is not allowed to use it any longer. Therefore the bitmap variable
11 	is protected by a lock. Anytime it is going to be accessed, the object
12 	must be locked.
13 */
14 #ifndef VIDEO_TARGET_H
15 #define VIDEO_TARGET_H
16 
17 
18 #include <Locker.h>
19 
20 
21 class BBitmap;
22 
23 
24 class VideoTarget {
25  public:
26 								VideoTarget();
27 	virtual						~VideoTarget();
28 
29 			bool				LockBitmap();
30 			void				UnlockBitmap();
31 
32 	virtual	void				SetBitmap(const BBitmap* bitmap);
33 			const BBitmap*		GetBitmap() const;
34 
35  protected:
36 			BLocker				fBitmapLock;
37 			const BBitmap* volatile	fBitmap;
38 };
39 
40 #endif	// VIDEO_TARGET_H
41