X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fbeos%2FVideoWindow.h;h=b371b606e0f07b0c903375e189ceb7932e75b305;hb=9498c61e75ec90ba9893894089b77d43097ce638;hp=775c04fddf1368123827d965ca74447c7f238221;hpb=490a596129c5fa1633c3d2f79a924c39df53894c;p=vlc diff --git a/modules/gui/beos/VideoWindow.h b/modules/gui/beos/VideoWindow.h index 775c04fddf..b371b606e0 100644 --- a/modules/gui/beos/VideoWindow.h +++ b/modules/gui/beos/VideoWindow.h @@ -2,7 +2,7 @@ * VideoWindow.h: BeOS video window class prototype ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: VideoWindow.h,v 1.5 2002/12/07 22:00:36 titer Exp $ + * $Id: VideoWindow.h,v 1.8 2003/11/04 11:11:30 titer Exp $ * * Authors: Jean-Marc Dressler * Tony Castley @@ -13,7 +13,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -38,7 +38,7 @@ typedef struct colorcombo { color_space colspace; const char *name; - u32 chroma; + uint32_t chroma; int planes; int pixel_bytes; } colorcombo; @@ -55,6 +55,54 @@ colorcombo colspace[]= #define COLOR_COUNT 5 #define DEFAULT_COL 3 +class VideoSettings +{ + public: + VideoSettings( const VideoSettings& clone ); + virtual ~VideoSettings(); + + static VideoSettings* DefaultSettings(); + + enum + { + SIZE_OTHER = 0, + SIZE_50 = 1, + SIZE_100 = 2, + SIZE_200 = 3, + }; + + void SetVideoSize( uint32_t mode ); + inline uint32_t VideoSize() const + { return fVideoSize; } + enum + { + FLAG_CORRECT_RATIO = 0x0001, + FLAG_SYNC_RETRACE = 0x0002, + FLAG_ON_TOP_ALL = 0x0004, + FLAG_FULL_SCREEN = 0x0008, + }; + + inline void SetFlags( uint32_t flags ) + { fFlags = flags; } + inline void AddFlags( uint32_t flags ) + { fFlags |= flags; } + inline void ClearFlags( uint32_t flags ) + { fFlags &= ~flags; } + inline bool HasFlags( uint32_t flags ) const + { return fFlags & flags; } + inline uint32_t Flags() const + { return fFlags; } + + private: + VideoSettings(); // reserved for default settings + + static VideoSettings fDefaultSettings; + + uint32_t fVideoSize; + uint32_t fFlags; + BMessage* fSettings; +}; + class VLCView : public BView { @@ -65,15 +113,15 @@ class VLCView : public BView virtual void AttachedToWindow(); virtual void MouseDown(BPoint where); virtual void MouseUp(BPoint where); - virtual void MouseMoved(BPoint where, uint32 transit, + virtual void MouseMoved(BPoint where, uint32_t transit, const BMessage* dragMessage); virtual void Pulse(); virtual void Draw(BRect updateRect); - virtual void KeyDown(const char* bytes, int32 numBytes); + virtual void KeyDown(const char* bytes, int32_t numBytes); private: vout_thread_t *p_vout; - + bigtime_t fLastMouseMovedTime; bool fCursorHidden; bool fCursorInside; @@ -84,13 +132,13 @@ class VLCView : public BView class VideoWindow : public BWindow { public: - VideoWindow(int v_width, + VideoWindow(int v_width, int v_height, BRect frame, - vout_thread_t *p_vout); + vout_thread_t *p_vout); virtual ~VideoWindow(); - // BWindow + // BWindow virtual void MessageReceived(BMessage* message); virtual void Zoom(BPoint origin, float width, float height); @@ -107,19 +155,24 @@ public: void SetInterfaceShowing(bool showIt); void SetCorrectAspectRatio(bool doIt); - inline bool CorrectAspectRatio() const - { return fCorrectAspect; } + bool CorrectAspectRatio() const; + void ToggleFullScreen(); + void SetFullScreen(bool doIt); + bool IsFullScreen() const; + void SetOnTop(bool doIt); + bool IsOnTop() const; + void SetSyncToRetrace(bool doIt); + bool IsSyncedToRetrace() const; inline status_t InitCheck() const { return fInitStatus; } // this is the hook controling direct screen connection - int32 i_width; // aspect corrected bitmap size - int32 i_height; + int32_t i_width; // aspect corrected bitmap size + int32_t i_height; BRect winSize; // current window size - bool is_zoomed, vsync; BBitmap *bitmap[3]; - BBitmap *overlaybitmap; +// BBitmap *overlaybitmap; VLCView *view; int i_buffer; volatile bool teardownwindow; @@ -133,31 +186,32 @@ private: int* mode); void _FreeBuffers(); void _BlankBitmap(BBitmap* bitmap) const; - void _SetVideoSize(uint32 mode); + void _SetVideoSize(uint32_t mode); + void _SetToSettings(); void _SaveScreenShot( BBitmap* bitmap, char* path, - uint32 translatorID ) const; + uint32_t translatorID ) const; static int32 _save_screen_shot( void* cookie ); struct screen_shot_info { BBitmap* bitmap; char* path; - uint32 translatorID; - int32 width; - int32 height; + uint32_t translatorID; + int32_t width; + int32_t height; }; vout_thread_t *p_vout; - int32 fTrueWidth; // incomming bitmap size - int32 fTrueHeight; - bool fCorrectAspect; + int32_t fTrueWidth; // incomming bitmap size + int32_t fTrueHeight; window_feel fCachedFeel; bool fInterfaceShowing; status_t fInitStatus; + VideoSettings* fSettings; }; #endif // BEOS_VIDEO_WINDOW_H - +