]> git.sesse.net Git - vlc/blobdiff - plugins/beos/vout_beos.cpp
* Fixed the BeOS compile typo.
[vlc] / plugins / beos / vout_beos.cpp
index 7f646a9ae50a58e82e367708b8f9da8a19f5c584..44fe4b304f9972ea7c2d6395baf6d87a2da577c7 100644 (file)
@@ -2,7 +2,7 @@
  * vout_beos.cpp: beos video output display method
  *****************************************************************************
  * Copyright (C) 2000, 2001 VideoLAN
- * $Id: vout_beos.cpp,v 1.24 2001/04/02 22:40:07 richards Exp $
+ * $Id: vout_beos.cpp,v 1.26 2001/05/30 17:03:11 sam Exp $
  *
  * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
  *          Samuel Hocevar <sam@zoy.org>
@@ -121,29 +121,45 @@ BWindow *beos_GetAppWindow(char *name)
 
 int32 DrawingThread(void *data)
 {
-    VideoWindow *w;
-    w = (VideoWindow*) data;
+  VideoWindow *w;
+  w = (VideoWindow*) data;
     
-    while(!w->teardownwindow)
+  while(!w->teardownwindow)
+  {
+    if (w->Lock())
     {
-    w->Lock();
-       if( w->fDirty )
-            {
-               if(w->fUsingOverlay)
-                               {
-                               rgb_color key;
-                               w->view->SetViewOverlay(w->bitmap[w->i_buffer_index], w->bitmap[w->i_buffer_index]->Bounds(), w->Bounds(), &key, B_FOLLOW_ALL,
-                               B_OVERLAY_FILTER_HORIZONTAL|B_OVERLAY_FILTER_VERTICAL|B_OVERLAY_TRANSFER_CHANNEL);
-                               w->view->SetViewColor(key);
-                               }
-               else
-                       w->view->DrawBitmap(w->bitmap[w->i_buffer_index], w->bitmap[w->i_buffer_index]->Bounds(), w->Bounds());
-            w->fDirty = false;
-            }
-    w->Unlock();
-       snooze(20000);
-    }
-    return B_OK;
+      if( w->fDirty )
+      {
+        if(w->fUsingOverlay)
+        {
+          rgb_color key;
+           w->view->SetViewOverlay( w->bitmap[w->i_buffer_index],
+                                    w->bitmap[w->i_buffer_index]->Bounds(),
+                                    w->Bounds(),
+                                    &key,
+                                    B_FOLLOW_ALL,
+                                                   B_OVERLAY_FILTER_HORIZONTAL | B_OVERLAY_FILTER_VERTICAL
+                                                   | B_OVERLAY_TRANSFER_CHANNEL );
+           w->view->SetViewColor(key);
+         }
+         else
+         {
+           w->view->DrawBitmap( w->bitmap[w->i_buffer_index],
+                                w->bitmap[w->i_buffer_index]->Bounds(),
+                                w->Bounds());
+         }
+         
+         w->fDirty = false;
+       }
+     w->Unlock();
+   }
+   else  // we couldn't lock the window, it probably closed.
+     return B_ERROR;
+     
+   snooze (20000);
+ } // while
+
+  return B_OK;
 }
 
 /*****************************************************************************
@@ -443,7 +459,8 @@ int vout_Init( vout_thread_t *p_vout )
        {
            if(p_win->bitmap[0] != NULL)
                {
-                   vout_SetBuffers( p_vout, (byte_t *)p_win->bitmap[0]->Bits(),
+                   p_vout->pf_setbuffers( p_vout,
+                         (byte_t *)p_win->bitmap[0]->Bits(),
                         (byte_t *)p_win->bitmap[0]->Bits());
                delete p_win->bitmap[0];
                p_win->bitmap[0] = NULL;
@@ -453,13 +470,15 @@ int vout_Init( vout_thread_t *p_vout )
                {
            if((p_win->bitmap[0] != NULL) && (p_win->bitmap[1] != NULL))
                {
-               vout_SetBuffers( p_vout, (byte_t *)p_win->bitmap[0]->Bits(),
+               p_vout->pf_setbuffers( p_vout,
+                         (byte_t *)p_win->bitmap[0]->Bits(),
                         (byte_t *)p_win->bitmap[1]->Bits());
                }
        }*/
            if((p_win->bitmap[0] != NULL) && (p_win->bitmap[1] != NULL))
                {
-               vout_SetBuffers( p_vout, (byte_t *)p_win->bitmap[0]->Bits(),
+               p_vout->pf_setbuffers( p_vout,
+                         (byte_t *)p_win->bitmap[0]->Bits(),
                         (byte_t *)p_win->bitmap[1]->Bits());
                }
     
@@ -524,7 +543,8 @@ if( (p_vout->i_width  != p_vout->p_sys->i_width) ||
                                        B_OVERLAY_FILTER_HORIZONTAL|B_OVERLAY_FILTER_VERTICAL|B_OVERLAY_TRANSFER_CHANNEL);
                        p_win->view->SetViewColor(key);
                        p_win->Unlock();
-                   vout_SetBuffers( p_vout, (byte_t *)p_win->bitmap[0]->Bits(),
+                   p_vout->pf_setbuffers( p_vout,
+                                 (byte_t *)p_win->bitmap[0]->Bits(),
                                 (byte_t *)p_win->bitmap[0]->Bits());
                    delete p_win->bitmap[0];
                    }