Commit 41e5bcda authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Remove unmaintained BeOS support

parent 242b536f
INSTALL file for the VLC media player
More extensive information for *nix, Windows, Mac OS X and BeOS users can be
More extensive information for *nix, Windows and Mac OS X users can be
found here: http://developers.videolan.org/vlc/
Bootstrapping VLC
......@@ -25,8 +25,8 @@ symbols:
We recommend using GCC to build VLC, though some people reported success
with the Intel C compiler (version 8) as well. GCC version 3.3 or higher is
required. On older systems (e.g. FreeBSD 4.x, BeOS), please select a more
recent version manually by setting the CC and CXX environment variables
required. On older systems (e.g. FreeBSD 4.x), please select a more recent
version manually by setting the CC and CXX environment variables
appropriately while running the ./configure shell script.
......
......@@ -352,32 +352,6 @@ doc:
.PHONY: libvlc core doc
if HAVE_BEOS
noinst_DATA = vlc-bundle
vlc-bundle: vlc
rm -Rf $(top_builddir)/vlc-bundle ; mkdir -p $(top_builddir)/vlc-bundle
cp $(top_builddir)/vlc $(top_builddir)/vlc-bundle/
xres -o $(top_builddir)/vlc-bundle/vlc $(srcdir)/share/vlc_beos.rsrc
for i in "" `$(VLC_CONFIG) --target plugin` ; do \
if test -n "$$i" ; then \
mkdir -p $(top_builddir)/vlc-bundle/plugins ; \
cp "$$i$(LIBEXT)" $(top_builddir)/vlc-bundle/plugins/ ; \
fi ; \
done
if test -d $(CONTRIB_DIR)/vlc-lib ; then \
mkdir -p $(top_builddir)/vlc-bundle/lib ; \
for i in $(CONTRIB_DIR)/vlc-lib/*.so ; do \
cp $$i $(top_builddir)/vlc-bundle/lib/ ; \
done ; \
fi
cat $(top_srcdir)/po/LINGUAS | while read i; do \
mkdir -p "$(top_builddir)/vlc-bundle/share/locale/$$i/LC_MESSAGES" ; \
cp "$(top_builddir)/po/$$i.gmo" \
"$(top_builddir)/vlc-bundle/share/locale/$$i/LC_MESSAGES/vlc.mo" || true ; \
done
find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
endif
###############################################################################
# Building aliases
###############################################################################
......
......@@ -41,11 +41,6 @@ if test -d extras/contrib/build/bin; then
DYLD_LIBRARY_PATH=./extras/contrib/build/lib:$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
elif test ".`uname -s`" = ".BeOS"; then
LIBRARY_PATH=./extras/contrib/build/lib:$LIBRARY_PATH
BELIBRARIES=./extras/contrib/build/lib:$BELIBRARIES
export LIBRARY_PATH
export BELIBRARIES
fi
elif test ".`uname -s`" = ".Darwin"; then
set +x
......
......@@ -138,9 +138,6 @@ AS_IF([test "${with_contrib}" != "no"],[
if test "${SYS}" = "darwin"; then
export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
elif test "${SYS}" = "beos"; then
export LIBRARY_PATH="${CONTRIB_DIR}/lib:$LIBRARY_PATH"
export BELIBRARIES="${CONTRIB_DIR}/lib:$BELIBRARIES"
fi
],[
AC_MSG_RESULT([no])
......@@ -362,27 +359,10 @@ case "${host_os}" in
hpux*)
SYS=hpux
;;
beos)
SYS=beos
CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
VLC_ADD_CXXFLAGS([beos],[])
VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
VLC_ADD_LIBS([filesystem],[-lpoll])
LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
dnl Check for BONE
if test -f /boot/beos/system/lib/libbind.so; then
VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lbind -lsocket])
else
VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lnet])
fi
;;
*)
SYS="${host_os}"
;;
esac
AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
......@@ -722,14 +702,6 @@ if test "${ac_cv_have_plugins}" = "no"; then
fi
fi
# BeOS style
if test "${ac_cv_have_plugins}" = "no"; then
AC_CHECK_HEADERS(image.h)
AC_CHECK_FUNCS(load_add_on,
[AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
ac_cv_have_plugins=yes])
fi
# Only test for dlopen() if the others didn't work
LIBDL=""
if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
......@@ -1043,16 +1015,12 @@ if test "${ac_cv_c_fast_math}" != "no"; then
fi
dnl Check for -funroll-loops
dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
if test "${SYS}" != "beos"
then
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
[ac_cv_c_unroll_loops],
[CFLAGS="${CFLAGS_save} -funroll-loops"
AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
if test "${ac_cv_c_unroll_loops}" != "no"; then
CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
fi
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
[ac_cv_c_unroll_loops],
[CFLAGS="${CFLAGS_save} -funroll-loops"
AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
if test "${ac_cv_c_unroll_loops}" != "no"; then
CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
fi
dnl Check for -fomit-frame-pointer
......@@ -1859,7 +1827,7 @@ dnl
dnl dvdread module: check for libdvdread
dnl
dnl prepend -ldvdcss on OS that need it
AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
dnl
......@@ -1870,7 +1838,7 @@ AC_ARG_ENABLE(dvdnav,
if test "${enable_dvdnav}" != "no"
then
dnl prepend -ldvdcss on OS that need it
AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
DVDNAV_PATH="${PATH}"
AC_ARG_WITH(dvdnav-config-path,
......@@ -2295,10 +2263,6 @@ if test "${enable_screen}" != "no"; then
VLC_ADD_LIBS([screen],[-lgdi32])
elif test "${SYS}" = "mingwce"; then
CPPFLAGS="${CPPFLAGS_save}"
elif test "${SYS}" = "beos"; then
VLC_ADD_PLUGIN([screen])
VLC_ADD_CXXFLAGS([screen],[])
VLC_ADD_LIBS([screen],[-lbe])
fi
fi
......@@ -3681,9 +3645,9 @@ dnl Skins2 module
dnl
AC_ARG_ENABLE(skins2,
[AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
enabled except on MacOSX, BeOS and WinCE)])])
enabled except on MacOSX and WinCE)])])
if test "${enable_skins2}" != "no" ||
(test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
(test "${SYS}" != "darwin" &&
test "${SYS}" != "mingwce" && test "${enable_skins2}" == "yes"); then
dnl test for the required libraries
......@@ -3721,7 +3685,7 @@ if test "${enable_skins2}" != "no" ||
fi fi fi
fi
AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
(test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
(test "${SYS}" != "darwin" &&
test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
dnl
......
......@@ -32,14 +32,6 @@
- Put the relevant win32 contrib package
- Update developers.v.o/vlc and www.v.o/vlc/download-sources.html
* BeOS Packages
Information on building: http://developers.videolan.org/vlc/beos-compile.html
Configure with --enable-update-check
Build in the "buildbeos" chroot on altair.
# add the .zip files to /opt/ftp/pub/videolan/testing/vlc-X.X.X/beos/
generate md5 plus SHA1 hashes and gpg signature of these files
(c.f. Tarballs)
* Win32 Packages
make the packages using the nightly builds configure/options/... , don't
forget --enable-update-check
......
This is the contrib build system for VLC Media Player. It has been
primarily developed for Mac, it has been adapted for BeOs and win32.
primarily developed for Mac, it has been adapted for Win32.
It would be not too difficult to extend it to other sytem.
To use it, first in the contrib directory, type :
./bootstrap
You can specify an argument to cross compile, for example:
./bootstrap i586-pc-beos
This will look for a i586-pc-beos-gcc cross compiler. Default is to
./bootstrap i586-mingw32msvc
This will look for a i586-mingw32msvc-gcc cross compiler. Default is to
build natively.
Bootstrap generates your default contrib configuration and puts it in a file
......
......@@ -70,8 +70,6 @@ struct msghdr
# endif
# ifdef HAVE_ARPA_INET_H
# include <arpa/inet.h>
# elif defined( SYS_BEOS )
# include <net/netdb.h>
# endif
# include <netdb.h>
# define net_errno errno
......
if HAVE_WIN32
screen_extra = win32.c
else
if HAVE_BEOS
screen_extra = beos.cpp
else
if HAVE_DARWIN
screen_extra = mac.c
endif
endif
endif
SOURCES_screen = \
screen.c \
screen.h \
......
/*****************************************************************************
* beos.cpp: Screen capture module.
*****************************************************************************
* Copyright (C) 2004 the VideoLAN team
* $Id$
*
* Authors: Eric Petit <titer@m0k.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include <Screen.h>
#include <Bitmap.h>
extern "C"
{
#include "screen.h"
struct screen_data_t
{
BScreen * p_screen;
BBitmap * p_bitmap;
};
int screen_InitCapture( demux_t *p_demux )
{
demux_sys_t *p_sys = p_demux->p_sys;
screen_data_t *p_data;
BRect rect;
int i_chroma;
int i_bits_per_pixel;
p_sys->p_data = p_data =
(screen_data_t *)malloc( sizeof( screen_data_t ) );
p_data->p_screen = new BScreen();
rect = p_data->p_screen->Frame();
p_data->p_bitmap = new BBitmap( rect, p_data->p_screen->ColorSpace() );
switch( p_data->p_screen->ColorSpace() )
{
case B_RGB32:
i_chroma = VLC_CODEC_RGB32;
i_bits_per_pixel = 32;
break;
case B_RGB16:
i_chroma = VLC_CODEC_RGB16;
i_bits_per_pixel = 16;
break;
default:
msg_Err( p_demux, "screen depth %i unsupported",
p_data->p_screen->ColorSpace() );
delete p_data->p_bitmap;
delete p_data->p_screen;
free( p_data );
return VLC_EGENERIC;
}
es_format_Init( &p_sys->fmt, VIDEO_ES, i_chroma );
p_sys->fmt.video.i_width = (int)rect.Width();
p_sys->fmt.video.i_height = (int)rect.Height();
p_sys->fmt.video.i_bits_per_pixel = i_bits_per_pixel;
return VLC_SUCCESS;
}
int screen_CloseCapture( demux_t *p_demux )
{
demux_sys_t *p_sys = p_demux->p_sys;
screen_data_t *p_data = p_sys->p_data;
delete p_data->p_bitmap;
delete p_data->p_screen;
free( p_data );
return VLC_SUCCESS;
}
block_t *screen_Capture( demux_t *p_demux )
{
demux_sys_t *p_sys = p_demux->p_sys;
screen_data_t *p_data = p_sys->p_data;
block_t *p_block;
p_block = block_New( p_demux, p_sys->fmt.video.i_width *
p_sys->fmt.video.i_height *
p_sys->fmt.video.i_bits_per_pixel / 8 );
p_data->p_screen->ReadBitmap( p_data->p_bitmap );
for( unsigned i = 0; i < p_sys->fmt.video.i_height; i++ )
{
memcpy( p_block->p_buffer + i * p_sys->fmt.video.i_width *
p_sys->fmt.video.i_bits_per_pixel / 8,
(uint8_t *) p_data->p_bitmap->Bits() +
i * p_data->p_bitmap->BytesPerRow(),
p_sys->fmt.video.i_width *
p_sys->fmt.video.i_bits_per_pixel / 8 );
}
return p_block;
}
} /* extern "C" */
......@@ -26,7 +26,7 @@
#include <vlc_access.h>
#include <vlc_demux.h>
#if !defined( HAVE_BEOS ) && !defined( HAVE_DARWIN )
#if !defined( HAVE_DARWIN )
# define SCREEN_SUBSCREEN
# define SCREEN_MOUSE
#endif
......
......@@ -57,9 +57,6 @@
#ifdef __APPLE__
#define DEFAULT_FONT "/Library/Fonts/Arial Black.ttf"
#define FC_DEFAULT_FONT "Arial Black"
#elif defined( SYS_BEOS )
#define DEFAULT_FONT "/boot/beos/etc/fonts/ttfonts/Swiss721.ttf"
#define FC_DEFAULT_FONT "Swiss"
#elif defined( WIN32 )
#define DEFAULT_FONT "" /* Default font found at run-time */
#define FC_DEFAULT_FONT "Arial"
......
......@@ -225,7 +225,7 @@ int vlclua_dir_list( vlc_object_t *p_this, const char *luadirname,
i++;
free( datadir );
#if !(defined(__APPLE__) || defined(SYS_BEOS) || defined(WIN32))
#if !(defined(__APPLE__) || defined(WIN32))
if( likely(asprintf( &ppsz_dir_list[i], "%s"DIR_SEP"lua"DIR_SEP"%s",
config_GetLibDir(), luadirname ) != -1) )
i++;
......@@ -238,7 +238,7 @@ int vlclua_dir_list( vlc_object_t *p_this, const char *luadirname,
psz_datapath, luadirname ) != -1) )
i++;
#if defined(__APPLE__) || defined(SYS_BEOS)
#if defined(__APPLE__)
if( likely(asprintf( &ppsz_dir_list[i],
"%s"DIR_SEP"share"DIR_SEP"lua"DIR_SEP"%s",
psz_datapath, luadirname ) != -1) )
......
......@@ -126,7 +126,6 @@ src/libvlc.c
src/libvlc.h
src/libvlc-module.c
src/misc/action.c
src/misc/beos_specific.cpp
src/misc/block.c
src/misc/cpu.c
src/misc/darwin_specific.c
......@@ -265,7 +264,6 @@ modules/access/rtsp/real_sdpplin.c
modules/access/rtsp/real_sdpplin.h
modules/access/rtsp/rtsp.c
modules/access/rtsp/rtsp.h
modules/access/screen/beos.cpp
modules/access/screen/mac.c
modules/access/screen/screen.c
modules/access/screen/screen.h
......
......@@ -59,8 +59,7 @@ endif
DIST_rsrc = \
newres.h \
resource.h \
vlc_wince_rc.rc \
vlc_beos.rsrc
vlc_wince_rc.rc
DIST_skins2 = \
skins2/fonts/FreeSans.ttf \
......
......@@ -7,7 +7,6 @@ SUBDIRS = . test
NULL =
EXTRA_DIST = extras/COPYING \
misc/beos_specific.cpp \
libvlc.pc.in \
vlc-plugin.pc.in \
libvlc.sym \
......@@ -236,7 +235,6 @@ endif
EXTRA_libvlccore_la_SOURCES = \
$(SOURCES_libvlc_beos) \
$(SOURCES_libvlc_darwin) \
$(SOURCES_libvlc_linux) \
$(SOURCES_libvlc_win32) \
......@@ -245,9 +243,6 @@ EXTRA_libvlccore_la_SOURCES = \
$(SOURCES_libvlc_sout) \
$(SOURCES_libvlc_vlm) \
$(NULL)
if HAVE_BEOS
libvlccore_la_SOURCES += $(SOURCES_libvlc_beos)
else
if HAVE_DARWIN
libvlccore_la_SOURCES += $(SOURCES_libvlc_darwin)
else
......@@ -265,7 +260,6 @@ endif
endif
endif
endif
endif
if BUILD_HTTPD
libvlccore_la_SOURCES += $(SOURCES_libvlc_httpd)
endif
......@@ -276,11 +270,6 @@ libvlccore_la_SOURCES += $(SOURCES_libvlc_vlm)
endif
endif
SOURCES_libvlc_beos = \
misc/atomic.c \
misc/pthread.c \
$(NULL)
SOURCES_libvlc_darwin = \
config/dirs_macos.c \
misc/atomic.c \
......@@ -492,7 +481,6 @@ SOURCES_libvlc_vlm = \
SOURCES_libvlc = \
$(SOURCES_libvlc_common) \
$(OPT_SOURCES_libvlc_beos) \
$(OPT_SOURCES_libvlc_darwin) \
$(OPT_SOURCES_libvlc_win32) \
$(NULL)
......
......@@ -84,7 +84,7 @@ static FILE *config_OpenConfigFile( vlc_object_t *p_obj )
psz_filename );
}
#if !( defined(WIN32) || defined(__APPLE__) || defined(SYS_BEOS) )
#if !( defined(WIN32) || defined(__APPLE__) )
else if( p_stream == NULL && errno == ENOENT )
{
/* This is the fallback for pre XDG Base Directory
......
......@@ -2091,13 +2091,12 @@ vlc_module_begin ()
add_obsolete_bool( "auto-adjust-pts-delay" )
#if !defined(__APPLE__) && !defined(SYS_BEOS) && defined(LIBVLC_USE_PTHREAD)
#ifdef LIBVLC_USE_PTHREAD
# ifndef __APPLE__
add_bool( "rt-priority", false, RT_PRIORITY_TEXT,
RT_PRIORITY_LONGTEXT, true )
change_need_restart ()
#endif
#if !defined(SYS_BEOS) && defined(LIBVLC_USE_PTHREAD)
# endif
add_integer( "rt-offset", 0, RT_OFFSET_TEXT,
RT_OFFSET_LONGTEXT, true )
change_need_restart ()
......
/*****************************************************************************
* beos_init.cpp: Initialization for BeOS specific features
*****************************************************************************
* Copyright (C) 1999-2004 the VideoLAN team
* $Id$
*
* Authors: Jean-Marc Dressler <polux@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include <Application.h>
#include <Roster.h>
#include <Path.h>
#include <Alert.h>
#include <Message.h>
#include <Window.h>
#include <stdio.h>
#include <string.h> /* strdup() */
#include <malloc.h> /* free() */
extern "C"
{
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include "../libvlc.h"
}
/*****************************************************************************
* The VlcApplication class
*****************************************************************************/
class VlcApplication : public BApplication
{
public:
vlc_object_t *p_this;
VlcApplication(char* );
~VlcApplication();
virtual void ReadyToRun();
virtual void AboutRequested();
virtual void RefsReceived(BMessage* message);
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
private:
BWindow* fInterfaceWindow;
BMessage* fRefsMessage;
bool fReadyToQuit;
};
/*****************************************************************************
* Static vars
*****************************************************************************/
#include "../../modules/gui/beos/MsgVals.h"
#define REALLY_QUIT 'requ'
static vlc_object_t *p_appthread;
extern "C"
{
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
static void* AppThread( vlc_object_t *p_appthread );
/*****************************************************************************
* system_Init: create a BApplication object and fill in program path.
*****************************************************************************/
void system_Init( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv[] )
{
p_appthread =
(vlc_object_t *)vlc_object_create( p_this, sizeof(vlc_object_t) );
/* Create the BApplication thread and wait for initialization */
vlc_thread_create( p_appthread, "app thread", AppThread,
VLC_THREAD_PRIORITY_LOW, true );
}
/*****************************************************************************
* system_Configure: check for system specific configuration options.
*****************************************************************************/
void system_Configure( libvlc_int_t *, int *pi_argc, const char *ppsz_argv[] )
{
}
/*****************************************************************************
* system_End: destroy the BApplication object.
*****************************************************************************/
void system_End( libvlc_int_t *p_this )
{
/* Tell the BApplication to die */
be_app->PostMessage( REALLY_QUIT );
vlc_thread_join( p_appthread );
vlc_object_release( p_appthread );
free( psz_vlcpath );
}
/* following functions are local */
/*****************************************************************************
* AppThread: the BApplication thread.
*****************************************************************************/
static void* AppThread( vlc_object_t * p_this )
{
int canc = vlc_savecancel ();
VlcApplication * BeApp =
new VlcApplication("application/x-vnd.videolan-vlc");
vlc_object_attach( p_this, p_this->p_libvlc );
BeApp->p_this = p_this;
BeApp->Run();
vlc_object_detach( p_this );
delete BeApp;
vlc_restorecancel (canc);
return NULL;
}
} /* extern "C" */
/*****************************************************************************
* VlcApplication: application constructor
*****************************************************************************/
VlcApplication::VlcApplication( char * psz_mimetype )
:BApplication( psz_mimetype ),
fInterfaceWindow( NULL ),
fRefsMessage( NULL ),
fReadyToQuit( false )
{
/* Nothing to do, we use the default constructor */
}
/*****************************************************************************
* ~VlcApplication: application destructor
*****************************************************************************/
VlcApplication::~VlcApplication( )
{
/* Nothing to do, we use the default destructor */
delete fRefsMessage;
}
/*****************************************************************************
* AboutRequested: called by the system on B_ABOUT_REQUESTED
*****************************************************************************/
void VlcApplication::AboutRequested( )
{
BAlert *alert;
alert = new BAlert( "VLC " PACKAGE_VERSION,
"VLC " PACKAGE_VERSION " for BeOS\n\n"
"<www.videolan.org>", "OK");
alert->Go( NULL );
}
/*****************************************************************************
* ReadyToRun: called when the BApplication is initialized
*****************************************************************************/
void VlcApplication::ReadyToRun( )
{
BPath path;
app_info info;
/* Get the program path */
be_app->GetAppInfo( &info );
BEntry entry( &info.ref );
entry.GetPath( &path );
path.GetParent( &path );
psz_vlcpath = strdup( path.Path() );
/* Tell the main thread we are finished initializing the BApplication */
vlc_thread_ready( p_this );
}
/*****************************************************************************
* RefsReceived: called when files are sent to our application
* (for example when the user drops fils onto our icon)
*****************************************************************************/
void VlcApplication::RefsReceived(BMessage* message)
{
if (fInterfaceWindow)
fInterfaceWindow->PostMessage(message);
else {
delete fRefsMessage;
fRefsMessage = new BMessage(*message);
}
}
/*****************************************************************************
* MessageReceived: a BeOS applications main message loop
* Since VlcApplication and interface are separated
* in the vlc binary and the interface plugin,
* we use this method to "stick" them together.
* The interface will post a message to the global
* "be_app" pointer when the interface is created
* containing a pointer to the interface window.
* In this way, we can keep a B_REFS_RECEIVED message
* in store for the interface window to handle later.
*****************************************************************************/
void VlcApplication::MessageReceived(BMessage* message)
{
switch (message->what) {
case INTERFACE_CREATED: {
BWindow* interfaceWindow;
if (message->FindPointer("window", (void**)&interfaceWindow) == B_OK) {
fInterfaceWindow = interfaceWindow;
if (fRefsMessage) {
fInterfaceWindow->PostMessage(fRefsMessage);
delete fRefsMessage;
fRefsMessage = NULL;
}
}
break;
}
case REALLY_QUIT:
fReadyToQuit = true;
PostMessage( B_QUIT_REQUESTED );
break;
default:
BApplication::MessageReceived(message);
}
}
bool VlcApplication::QuitRequested()
{
if( !fReadyToQuit )
{
libvlc_Quit( p_this->p_libvlc );
return false;