1/*
2 * Copyright (c) 2004-2007 Marcus Overhagen <marcus@overhagen.de>
3 *
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify,
8 * merge, publish, distribute, sublicense, and/or sell copies of
9 * the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 * OTHER DEALINGS IN THE SOFTWARE.
23 */
24#ifndef __VIDEO_VIEW_H
25#define __VIDEO_VIEW_H
26
27
28#include <View.h>
29
30class BMessageRunner;
31class VideoNode;
32
33
34class VideoView : public BView {
35public:
36					VideoView(BRect frame, const char *name, uint32 resizeMask,
37						uint32 flags);
38					~VideoView();
39
40	void			RemoveVideoDisplay();
41	void			RemoveOverlay();
42
43	VideoNode *		Node();
44
45	bool			IsOverlaySupported();
46
47	void			OverlayLockAcquire();
48	void			OverlayLockRelease();
49
50	void			OverlayScreenshotPrepare();
51	void			OverlayScreenshotCleanup();
52
53	void			DrawFrame();
54
55private:
56	void			AttachedToWindow();
57	void			MessageReceived(BMessage *msg);
58	void			Draw(BRect updateRect);
59
60	void			DrawTestImage();
61	void			CheckActivity();
62
63private:
64	VideoNode *		fVideoNode;
65	bool			fVideoActive;
66	bool			fOverlayActive;
67	rgb_color		fOverlayKeyColor;
68	BMessageRunner *fActivityCheckMsgRunner;
69	bigtime_t		fLastFrame;
70};
71
72#endif	// __VIDEO_VIEW_H
73