]> git.sesse.net Git - vlc/blobdiff - modules/gui/beos/VideoWindow.h
+ configure.ac:
[vlc] / modules / gui / beos / VideoWindow.h
index 775c04fddf1368123827d965ca74447c7f238221..b371b606e0f07b0c903375e189ceb7932e75b305 100644 (file)
@@ -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 <polux@via.ecp.fr>
  *          Tony Castley <tcastley@mail.powerup.com.au>
@@ -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
+