vfs: check userland buffers before reading them.
[haiku.git] / src / apps / tv / VideoView.h
blob28b4dcb7c7d82f7b51b8c24a48a753225467eef6
1 /*
2 * Copyright (c) 2004-2007 Marcus Overhagen <marcus@overhagen.de>
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:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
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.
24 #ifndef __VIDEO_VIEW_H
25 #define __VIDEO_VIEW_H
28 #include <View.h>
30 class BMessageRunner;
31 class VideoNode;
34 class VideoView : public BView {
35 public:
36 VideoView(BRect frame, const char *name, uint32 resizeMask,
37 uint32 flags);
38 ~VideoView();
40 void RemoveVideoDisplay();
41 void RemoveOverlay();
43 VideoNode * Node();
45 bool IsOverlaySupported();
47 void OverlayLockAcquire();
48 void OverlayLockRelease();
50 void OverlayScreenshotPrepare();
51 void OverlayScreenshotCleanup();
53 void DrawFrame();
55 private:
56 void AttachedToWindow();
57 void MessageReceived(BMessage *msg);
58 void Draw(BRect updateRect);
60 void DrawTestImage();
61 void CheckActivity();
63 private:
64 VideoNode * fVideoNode;
65 bool fVideoActive;
66 bool fOverlayActive;
67 rgb_color fOverlayKeyColor;
68 BMessageRunner *fActivityCheckMsgRunner;
69 bigtime_t fLastFrame;
72 #endif // __VIDEO_VIEW_H