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
* 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>
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();
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)
* 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>
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;
}
/*****************************************************************************
* 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>
*
#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"
VlcApplication(char* );
~VlcApplication();
- void ReadyToRun();
+ virtual void ReadyToRun();
+ virtual void AboutRequested();
};
/*****************************************************************************
}
/*****************************************************************************
- * ~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( )
{