From 372bb66a4b865ccc477329a610424eea6cc51261 Mon Sep 17 00:00:00 2001 From: Eric Petit Date: Wed, 30 Oct 2002 06:12:27 +0000 Subject: [PATCH 1/1] - Fixes. Most of the interface features now work again. --- modules/gui/beos/AudioOutput.cpp | 6 +-- modules/gui/beos/Interface.cpp | 37 ++++++++++--- modules/gui/beos/InterfaceWindow.cpp | 23 +++----- modules/gui/beos/VlcWrapper.cpp | 80 ++++++---------------------- 4 files changed, 57 insertions(+), 89 deletions(-) diff --git a/modules/gui/beos/AudioOutput.cpp b/modules/gui/beos/AudioOutput.cpp index 25d095b632..d69c12e5f6 100644 --- a/modules/gui/beos/AudioOutput.cpp +++ b/modules/gui/beos/AudioOutput.cpp @@ -2,7 +2,7 @@ * aout.cpp: BeOS audio output ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: AudioOutput.cpp,v 1.13 2002/10/21 20:00:09 massiot Exp $ + * $Id: AudioOutput.cpp,v 1.14 2002/10/30 06:12:27 titer Exp $ * * Authors: Jean-Marc Dressler * Samuel Hocevar @@ -36,7 +36,7 @@ #include #include -#include "aout_internal.h" +#include #define FRAME_SIZE 2048 @@ -79,7 +79,7 @@ int E_(OpenAudio) ( vlc_object_t * p_this ) i_nb_channels = aout_FormatNbChannels( &p_aout->output.output ); if ( i_nb_channels > 2 ) { - /* I don't know if BeOS supports more than two channels. --Meuuh */ + /* BSoundPlayer does not support more than 2 channels AFAIK */ i_nb_channels = 2; p_aout->output.output.i_channels = AOUT_CHAN_STEREO; } diff --git a/modules/gui/beos/Interface.cpp b/modules/gui/beos/Interface.cpp index 7b31b98c1d..35901ed3eb 100644 --- a/modules/gui/beos/Interface.cpp +++ b/modules/gui/beos/Interface.cpp @@ -2,7 +2,7 @@ * intf_beos.cpp: beos interface ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: Interface.cpp,v 1.3 2002/10/10 23:11:52 titer Exp $ + * $Id: Interface.cpp,v 1.4 2002/10/30 06:12:27 titer Exp $ * * Authors: Jean-Marc Dressler * Samuel Hocevar @@ -37,6 +37,8 @@ #include #include +#include +#include #include "VlcWrapper.h" #include "InterfaceWindow.h" @@ -71,10 +73,11 @@ int E_(OpenIntf) ( vlc_object_t *p_this ) } p_intf->p_sys->p_input = NULL; - p_intf->p_sys->p_vlc_wrapper = new Intf_VLCWrapper( p_intf ); + p_intf->p_sys->p_aout = NULL; p_intf->p_sys->p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, + FIND_ANYWHERE ); + p_intf->p_sys->p_vlc_wrapper = new Intf_VLCWrapper( p_intf ); p_intf->pf_run = Run; @@ -112,6 +115,16 @@ void E_(CloseIntf) ( vlc_object_t *p_this ) vlc_object_release( p_intf->p_sys->p_input ); } + if( p_intf->p_sys->p_playlist ) + { + vlc_object_release( p_intf->p_sys->p_playlist ); + } + + if( p_intf->p_sys->p_aout ) + { + vlc_object_release( p_intf->p_sys->p_aout ); + } + /* Destroy the interface window */ p_intf->p_sys->p_window->Lock(); p_intf->p_sys->p_window->Quit(); @@ -132,7 +145,13 @@ static void Run( intf_thread_t *p_intf ) { p_intf->p_sys->p_input = (input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT, - FIND_ANYWHERE ); + FIND_ANYWHERE ); + } + if( p_intf->p_sys->p_aout == NULL ) + { + p_intf->p_sys->p_aout = + (aout_instance_t*)vlc_object_find( p_intf, VLC_OBJECT_AOUT, + FIND_ANYWHERE ); } /* Update the input */ @@ -142,8 +161,14 @@ static void Run( intf_thread_t *p_intf ) { vlc_object_release( p_intf->p_sys->p_input ); p_intf->p_sys->p_input = NULL; + + if( p_intf->p_sys->p_aout ) + { + vlc_object_release( p_intf->p_sys->p_aout ); + p_intf->p_sys->p_aout = NULL; + } } - /* Manage the slider */ + /* Manage the slider */ p_intf->p_sys->p_window->updateInterface(); } diff --git a/modules/gui/beos/InterfaceWindow.cpp b/modules/gui/beos/InterfaceWindow.cpp index e3a8022ca9..586024b7ec 100644 --- a/modules/gui/beos/InterfaceWindow.cpp +++ b/modules/gui/beos/InterfaceWindow.cpp @@ -2,7 +2,7 @@ * InterfaceWindow.cpp: beos interface ***************************************************************************** * Copyright (C) 1999, 2000, 2001 VideoLAN - * $Id: InterfaceWindow.cpp,v 1.6 2002/10/29 17:33:11 titer Exp $ + * $Id: InterfaceWindow.cpp,v 1.7 2002/10/30 06:12:27 titer Exp $ * * Authors: Jean-Marc Dressler * Samuel Hocevar @@ -68,8 +68,8 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, fSettings( new BMessage( 'sett' ) ) { p_intf = p_interface; - playlist_t *p_playlist = (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; + fPlaylistIsEmpty = (p_playlist->i_size < 0); fPlaylistWindow = new PlayListWindow( BRect( 100.0, 100.0, 400.0, 350.0 ), @@ -169,15 +169,7 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name, fSettingsMenu = new BMenu( "Settings" ); fSettingsMenu->AddItem( fPreferencesMI = new BMenuItem( "Preferences", new BMessage( OPEN_PREFERENCES ) ) ); - fMenuBar->AddItem( fSettingsMenu ); - - /* Add the Config menu */ -// BMenu* configMenu = new BMenu( "Config" ); -// menu_bar->AddItem( configMenu ); -// fOnTopMI = new BMenuItem( "Always on Top", -// new BMessage( TOGGLE_ON_TOP ) ) -// configMenu->AddItem( ); -// fOnTopMI->SetMarked(false); + fMenuBar->AddItem( fSettingsMenu ); // prepare fow showing _SetMenusEnabled(false); @@ -571,8 +563,8 @@ void InterfaceWindow::updateInterface() else _SetMenusEnabled(false); - playlist_t *p_playlist = (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; + if ( fPlaylistIsEmpty != ( p_playlist->i_size < 0) ) { if ( Lock() ) @@ -607,8 +599,7 @@ InterfaceWindow::_UpdatePlaylist() { fPlaylistWindow->UpdatePlaylist( true ); fPlaylistWindow->Unlock(); - playlist_t *p_playlist = (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; fPlaylistIsEmpty = p_playlist->i_size < 1; p_mediaControl->SetEnabled( !fPlaylistIsEmpty ); } diff --git a/modules/gui/beos/VlcWrapper.cpp b/modules/gui/beos/VlcWrapper.cpp index 9d18dfe2a5..927e5ad638 100644 --- a/modules/gui/beos/VlcWrapper.cpp +++ b/modules/gui/beos/VlcWrapper.cpp @@ -2,7 +2,7 @@ * intf_vlc_wrapper.h: BeOS plugin for vlc (derived from MacOS X port ) ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: VlcWrapper.cpp,v 1.9 2002/10/30 00:59:22 titer Exp $ + * $Id: VlcWrapper.cpp,v 1.10 2002/10/30 06:12:27 titer Exp $ * * Authors: Florian G. Pflug * Jon Lech Johansen @@ -46,21 +46,17 @@ Intf_VLCWrapper::~Intf_VLCWrapper() /* playlist control */ bool Intf_VLCWrapper::playlistPlay() { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; vlc_mutex_lock( &p_playlist->object_lock ); if( p_playlist->i_size ) { vlc_mutex_unlock( &p_playlist->object_lock ); playlist_Play( p_playlist ); - vlc_object_release( p_playlist ); } else { vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); } return( true ); @@ -68,61 +64,46 @@ bool Intf_VLCWrapper::playlistPlay() void Intf_VLCWrapper::playlistPause() { - toggle_mute( ); - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - playlist_Pause( p_playlist ); - vlc_object_release( p_playlist ); + toggle_mute(); + if( p_intf->p_sys->p_input ) + { + input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_PAUSE ); + } } void Intf_VLCWrapper::playlistStop() { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; + playlist_Stop( p_playlist ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::playlistNext() { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; playlist_Next( p_playlist ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::playlistPrev() { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; playlist_Prev( p_playlist ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::playlistSkip(int i) { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; playlist_Skip( p_playlist, i ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::playlistGoto(int i) { - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; playlist_Goto( p_playlist, i ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::playlistJumpTo( int pos ) @@ -416,9 +397,6 @@ void Intf_VLCWrapper::playFaster() void Intf_VLCWrapper::volume_mute() { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { if( !p_intf->p_sys->b_mute ) @@ -433,9 +411,6 @@ void Intf_VLCWrapper::volume_mute() void Intf_VLCWrapper::volume_restore() { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { p_intf->p_sys->p_aout->output.i_volume = p_intf->p_sys->i_saved_volume; @@ -447,9 +422,6 @@ void Intf_VLCWrapper::volume_restore() void Intf_VLCWrapper::set_volume(int value) { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { // make sure value is within bounds @@ -470,9 +442,6 @@ void Intf_VLCWrapper::set_volume(int value) void Intf_VLCWrapper::toggle_mute() { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { if ( p_intf->p_sys->b_mute ) @@ -490,9 +459,6 @@ bool Intf_VLCWrapper::is_muted() { bool muted = true; - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { vlc_mutex_lock( &p_intf->p_sys->p_aout->mixer_lock ); @@ -534,9 +500,6 @@ bool Intf_VLCWrapper::is_playing() void Intf_VLCWrapper::maxvolume() { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); if( p_intf->p_sys->p_aout != NULL ) { if( p_intf->p_sys->b_mute ) @@ -552,9 +515,6 @@ void Intf_VLCWrapper::maxvolume() bool Intf_VLCWrapper::has_audio() { - p_intf->p_sys->p_aout = - (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); return( p_intf->p_sys->p_aout != NULL ); } @@ -611,9 +571,7 @@ void Intf_VLCWrapper::setTimeAsFloat(float f_position) BList *Intf_VLCWrapper::playlistAsArray() { int i; - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; BList* p_list = new BList(p_playlist->i_size); @@ -625,7 +583,6 @@ BList *Intf_VLCWrapper::playlistAsArray() } vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); return( p_list ); } @@ -698,8 +655,6 @@ void Intf_VLCWrapper::openFiles( BList* o_files, bool replace ) PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); delete o_file; } - - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::openDisc(BString o_type, BString o_device, int i_title, int i_chapter) @@ -707,12 +662,9 @@ void Intf_VLCWrapper::openDisc(BString o_type, BString o_device, int i_title, in BString o_source(""); o_source << o_type << ":" << o_device ; - playlist_t *p_playlist = - (playlist_t *)vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); + playlist_t *p_playlist = p_intf->p_sys->p_playlist; playlist_Add( p_playlist, o_source.String(), PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - vlc_object_release( p_playlist ); } void Intf_VLCWrapper::openNet(BString o_addr, int i_port) @@ -824,5 +776,5 @@ void Intf_VLCWrapper::toggleSubtitle(int i_subtitle) int Intf_VLCWrapper::inputGetStatus() { - return 0; + return p_intf->p_sys->p_playlist->i_status; } -- 2.39.2