Commit 2cc08ef1 authored by Sam Hocevar's avatar Sam Hocevar

  * BeOS crash fix by Wade Majors <guru@startrek.com>.

    Please, try no to forget the ChangeLog when commiting!
parent dcca341b
......@@ -4,7 +4,14 @@
HEAD
* Nothing yet
* BeOS crash fix by Wade Majors <guru@startrek.com>.
* Slight modification in ClockManageRef: after a synchro reinit, we still
do the mwait and re-init last-cr.
* New audio output using direct AC3 pass-thru.
* Fix for a buffer overflow in the Gnome interface by Shane Harper
<shanegh@optusnet.com.au>.
* DVD chapter change fixed.
* Fixed a bug in TS input, which should be much smoother now.
0.2.73
Sat, 28 Apr 2001 07:02:35 +0200
......
......@@ -2,7 +2,7 @@
* intf_beos.cpp: beos interface
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: intf_beos.cpp,v 1.25 2001/04/15 04:19:57 sam Exp $
* $Id: intf_beos.cpp,v 1.26 2001/04/29 17:03:20 sam Exp $
*
* Authors: Jean-Marc Dressler <polux@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
......@@ -119,23 +119,26 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name , intf_thread_t
menu_bar = new BMenuBar(rect, "main menu");
AddChild( menu_bar );
BMenu *m;
BMenu *am;
BMenu *mFile;
BMenu *mAudio;
CDMenu *cd_menu;
BMenuItem *mItem;
menu_bar->AddItem( m = new BMenu("File") );
menu_bar->AddItem( mFile = new BMenu("File") );
menu_bar->ResizeToPreferred();
m->AddItem( new BMenuItem("Open File" B_UTF8_ELLIPSIS, new BMessage(OPEN_FILE), 'O'));
mFile->AddItem(mItem = new BMenuItem("Open File" B_UTF8_ELLIPSIS, new BMessage(OPEN_FILE), 'O'));
cd_menu = new CDMenu("Open Disc");
m->AddItem(cd_menu);
m->AddSeparatorItem();
m->AddItem( new BMenuItem("About" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED), 'A'));
m->AddItem( new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q'));
mFile->AddItem(cd_menu);
mFile->AddSeparatorItem();
mFile->AddItem(mItem = new BMenuItem("About" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED), 'A'));
mItem->SetTarget( be_app );
mFile->AddItem(mItem = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q'));
menu_bar->AddItem (am = new BMenu("Audio") );
menu_bar->AddItem ( mAudio = new BMenu("Audio") );
menu_bar->ResizeToPreferred();
am->AddItem( new LanguageMenu("Language", AUDIO_ES, p_intf) );
am->AddItem( new LanguageMenu("Subtitles", SPU_ES, p_intf) );
mAudio->AddItem( new LanguageMenu("Language", AUDIO_ES, p_intf) );
mAudio->AddItem( new LanguageMenu("Subtitles", SPU_ES, p_intf) );
rect = Bounds();
......@@ -245,10 +248,10 @@ void InterfaceWindow::MessageReceived( BMessage * p_message )
Activate();
switch( p_message->what )
{
case B_ABOUT_REQUESTED:
alert = new BAlert(VOUT_TITLE, "BeOS " VOUT_TITLE "\n\n<www.videolan.org>", "Ok");
alert->Go();
break;
// case B_ABOUT_REQUESTED:
// alert = new BAlert(VOUT_TITLE, "BeOS " VOUT_TITLE "\n\n<www.videolan.org>", "Ok");
// alert->Go();
// break;
case OPEN_FILE:
if(file_panel)
......
......@@ -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.25 2001/04/29 17:03:20 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;
}
/*****************************************************************************
......
......@@ -2,7 +2,7 @@
* beos_init.cpp: Initialization for BeOS specific features
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: beos_specific.cpp,v 1.9 2001/04/14 07:41:20 sam Exp $
* $Id: beos_specific.cpp,v 1.10 2001/04/29 17:03:20 sam Exp $
*
* Authors: Jean-Marc Dressler <polux@via.ecp.fr>
*
......@@ -25,12 +25,14 @@
#include <Application.h>
#include <Roster.h>
#include <Path.h>
#include <Alert.h>
#include <stdio.h>
#include <string.h> /* strdup() */
#include <malloc.h> /* free() */
extern "C"
{
#include "config.h"
#include "common.h"
#include "threads.h"
#include "mtime.h"
......@@ -46,7 +48,8 @@ public:
VlcApplication(char* );
~VlcApplication();
void ReadyToRun();
virtual void ReadyToRun();
virtual void AboutRequested();
};
/*****************************************************************************
......@@ -140,7 +143,17 @@ VlcApplication::~VlcApplication( )
}
/*****************************************************************************
* ~ReadyToRun: called when the BApplication is initialized
* AboutRequested: called by the system on B_ABOUT_REQUESTED
*****************************************************************************/
void VlcApplication::AboutRequested( )
{
BAlert *alert;
alert = new BAlert( VOUT_TITLE, "BeOS " VOUT_TITLE "\n\n<www.videolan.org>", "Ok" );
alert->Go( NULL );
}
/*****************************************************************************
* ReadyToRun: called when the BApplication is initialized
*****************************************************************************/
void VlcApplication::ReadyToRun( )
{
......
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