Commit 1e803bea authored by Tony Castley's avatar Tony Castley

Fixes for preventing multiple playlist windows

and improvements and corrections in videoout.
parent 4754b3a0
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* InterfaceWindow.cpp: beos interface * InterfaceWindow.cpp: beos interface
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: InterfaceWindow.cpp,v 1.16 2002/05/16 11:38:42 tcastley Exp $ * $Id: InterfaceWindow.cpp,v 1.17 2002/06/01 09:21:59 tcastley Exp $
* *
* Authors: Jean-Marc Dressler <polux@via.ecp.fr> * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -53,8 +53,9 @@ extern "C" ...@@ -53,8 +53,9 @@ extern "C"
/* BeOS interface headers */ /* BeOS interface headers */
#include "MsgVals.h" #include "MsgVals.h"
#include "MediaControlView.h" #include "MediaControlView.h"
#include "InterfaceWindow.h"
#include "PlayListWindow.h" #include "PlayListWindow.h"
#include "InterfaceWindow.h"
/***************************************************************************** /*****************************************************************************
* InterfaceWindow * InterfaceWindow
...@@ -67,6 +68,7 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, ...@@ -67,6 +68,7 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name,
| B_ASYNCHRONOUS_CONTROLS ) | B_ASYNCHRONOUS_CONTROLS )
{ {
file_panel = NULL; file_panel = NULL;
playlist_window = NULL;
p_intf = p_interface; p_intf = p_interface;
BRect controlRect(0,0,0,0); BRect controlRect(0,0,0,0);
b_empty_playlist = (p_main->p_playlist->i_size < 0); b_empty_playlist = (p_main->p_playlist->i_size < 0);
...@@ -149,6 +151,7 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, ...@@ -149,6 +151,7 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name,
InterfaceWindow::~InterfaceWindow() InterfaceWindow::~InterfaceWindow()
{ {
if (playlist_window) playlist_window->ReallyQuit();
} }
/***************************************************************************** /*****************************************************************************
...@@ -208,9 +211,9 @@ void InterfaceWindow::MessageReceived( BMessage * p_message ) ...@@ -208,9 +211,9 @@ void InterfaceWindow::MessageReceived( BMessage * p_message )
case OPEN_PLAYLIST: case OPEN_PLAYLIST:
{ {
BRect rect(20,20,320,420); BRect rect(20,20,320,420);
PlayListWindow* playlist_window = new PlayListWindow(rect, playlist_window = PlayListWindow::getPlayList(rect,
"Playlist", (playlist_t *)p_main->p_playlist); "Playlist", (playlist_t *)p_main->p_playlist);
playlist_window->Show(); playlist_window->Show();
} }
break; break;
case OPEN_DVD: case OPEN_DVD:
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout_beos.cpp: beos video output display method * vout_beos.cpp: beos video output display method
***************************************************************************** *****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN * Copyright (C) 2000, 2001 VideoLAN
* $Id: vout_beos.cpp,v 1.58 2002/05/30 08:17:04 gbazin Exp $ * $Id: vout_beos.cpp,v 1.59 2002/06/01 09:21:59 tcastley Exp $
* *
* Authors: Jean-Marc Dressler <polux@via.ecp.fr> * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -153,6 +153,11 @@ VideoWindow::~VideoWindow() ...@@ -153,6 +153,11 @@ VideoWindow::~VideoWindow()
delete bitmap[2]; delete bitmap[2];
} }
bool VideoWindow::QuitRequested()
{
return true;
}
void VideoWindow::drawBuffer(int bufferIndex) void VideoWindow::drawBuffer(int bufferIndex)
{ {
status_t status; status_t status;
...@@ -178,7 +183,7 @@ void VideoWindow::drawBuffer(int bufferIndex) ...@@ -178,7 +183,7 @@ void VideoWindow::drawBuffer(int bufferIndex)
&key, B_FOLLOW_ALL, &key, B_FOLLOW_ALL,
B_OVERLAY_FILTER_HORIZONTAL|B_OVERLAY_FILTER_VERTICAL| B_OVERLAY_FILTER_HORIZONTAL|B_OVERLAY_FILTER_VERTICAL|
B_OVERLAY_TRANSFER_CHANNEL); B_OVERLAY_TRANSFER_CHANNEL);
view->SetViewColor(key); //view->SetViewColor(key);
} }
else else
{ {
...@@ -284,7 +289,7 @@ int VideoWindow::SelectDrawingMode(int width, int height) ...@@ -284,7 +289,7 @@ int VideoWindow::SelectDrawingMode(int width, int height)
{ {
if (noOverlay) break; if (noOverlay) break;
bitmap[0] = new BBitmap ( BRect( 0, 0, width, height ), bitmap[0] = new BBitmap ( BRect( 0, 0, width, height ),
B_BITMAP_WILL_OVERLAY|B_BITMAP_RESERVE_OVERLAY_CHANNEL, B_BITMAP_WILL_OVERLAY,
colspace[i].colspace); colspace[i].colspace);
if(bitmap[0] && bitmap[0]->InitCheck() == B_OK) if(bitmap[0] && bitmap[0]->InitCheck() == B_OK)
...@@ -573,8 +578,8 @@ static int BeosOpenDisplay( vout_thread_t *p_vout ) ...@@ -573,8 +578,8 @@ static int BeosOpenDisplay( vout_thread_t *p_vout )
p_vout->p_sys->p_window = new VideoWindow( p_vout->p_sys->i_width - 1, p_vout->p_sys->p_window = new VideoWindow( p_vout->p_sys->i_width - 1,
p_vout->p_sys->i_height - 1, p_vout->p_sys->i_height - 1,
BRect( 20, 50, BRect( 20, 50,
20 + p_vout->i_window_width -1, 20 + p_vout->i_window_width - 1,
50 + p_vout->i_window_height )); 50 + p_vout->i_window_height - 1 ));
if( p_vout->p_sys->p_window == NULL ) if( p_vout->p_sys->p_window == NULL )
{ {
...@@ -602,6 +607,7 @@ static void BeosCloseDisplay( vout_thread_t *p_vout ) ...@@ -602,6 +607,7 @@ static void BeosCloseDisplay( vout_thread_t *p_vout )
p_win->Hide(); p_win->Hide();
p_win->Quit(); p_win->Quit();
} }
p_win = NULL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment