probably need a few fixes to work or even compile.
/*****************************************************************************
- * aout_beos.cpp: beos interface
+ * aout_beos.cpp: BeOS audio output
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: aout_beos.cpp,v 1.8 2001/01/07 16:17:58 sam Exp $
+ * $Id: aout_beos.cpp,v 1.9 2001/01/12 13:15:42 sam Exp $
*
* Authors:
* Samuel Hocevar <sam@via.ecp.fr>
#include "audio_output.h"
#include "intf_msg.h"
-
#include "main.h"
+
+#include "modules.h"
}
/*****************************************************************************
- * aout_sys_t: esd audio output method descriptor
+ * aout_sys_t: BeOS audio output method descriptor
*****************************************************************************
* This structure is part of the audio output thread descriptor.
- * It describes some esd specific variables.
+ * It describes some BeOS specific variables.
*****************************************************************************/
typedef struct aout_sys_s
{
{
/*****************************************************************************
- * aout_BeOpen: opens a BPushGameSound
+ * Local prototypes.
+ *****************************************************************************/
+static int aout_Probe ( probedata_t *p_data );
+static int aout_Open ( aout_thread_t *p_aout );
+static int aout_SetFormat ( aout_thread_t *p_aout );
+static long aout_GetBufInfo ( aout_thread_t *p_aout, long l_buffer_info );
+static void aout_Play ( aout_thread_t *p_aout,
+ byte_t *buffer, int i_size );
+static void aout_Close ( aout_thread_t *p_aout );
+
+/*****************************************************************************
+ * Functions exported as capabilities. They are declared as static so that
+ * we don't pollute the namespace too much.
+ *****************************************************************************/
+void aout_getfunctions( function_list_t * p_function_list )
+{
+ p_function_list->p_probe = aout_Probe;
+ p_function_list->functions.aout.p_open = aout_Open;
+ p_function_list->functions.aout.p_setformat = aout_SetFormat;
+ p_function_list->functions.aout.p_getbufinfo = aout_GetBufInfo;
+ p_function_list->functions.aout.p_play = aout_Play;
+ p_function_list->functions.aout.p_close = aout_Close;
+}
+
+/*****************************************************************************
+ * aout_Probe: probe the audio device and return a score
+ *****************************************************************************/
+int aout_Probe( aout_thread_t *p_aout )
+{
+ /* We don't test anything since I don't know what to test. However
+ * if the module could be loaded it is quite likely to work. */
+ return( 100 );
+}
+
+/*****************************************************************************
+ * aout_Open: opens a BPushGameSound
*****************************************************************************/
-int aout_BeOpen( aout_thread_t *p_aout )
+int aout_Open( aout_thread_t *p_aout )
{
/* Allocate structure */
p_aout->p_sys = (aout_sys_t*) malloc( sizeof( aout_sys_t ) );
}
/*****************************************************************************
- * aout_BeSetFormat: sets the dsp output format
+ * aout_SetFormat: sets the dsp output format
*****************************************************************************/
-int aout_BeSetFormat( aout_thread_t *p_aout )
+int aout_SetFormat( aout_thread_t *p_aout )
{
return( 0 );
}
/*****************************************************************************
- * aout_BeGetBufInfo: buffer status query
+ * aout_GetBufInfo: buffer status query
*****************************************************************************/
-long aout_BeGetBufInfo( aout_thread_t *p_aout, long l_buffer_limit )
+long aout_GetBufInfo( aout_thread_t *p_aout, long l_buffer_limit )
{
/* Each value is 4 bytes long (stereo signed 16 bits) */
long i_hard_pos = 4 * p_aout->p_sys->p_sound->CurrentPosition();
}
/*****************************************************************************
- * aout_BePlay: plays a sound samples buffer
+ * aout_Play: plays a sound samples buffer
*****************************************************************************
* This function writes a buffer of i_length bytes in the dsp
*****************************************************************************/
-void aout_BePlay( aout_thread_t *p_aout, byte_t *buffer, int i_size )
+void aout_Play( aout_thread_t *p_aout, byte_t *buffer, int i_size )
{
long i_newbuf_pos;
}
/*****************************************************************************
- * aout_BeClose: closes the dsp audio device
+ * aout_Close: closes the dsp audio device
*****************************************************************************/
-void aout_BeClose( aout_thread_t *p_aout )
+void aout_Close( aout_thread_t *p_aout )
{
p_aout->p_sys->p_sound->UnlockCyclic();
p_aout->p_sys->p_sound->StopPlaying( );
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
+#define MODULE_NAME beos
+
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "video.h"
#include "video_output.h"
+#include "modules.h"
+#include "modules_inner.h"
+
+/*****************************************************************************
+ * Build configuration tree.
+ *****************************************************************************/
+MODULE_CONFIG_START
+ADD_WINDOW( "Configuration for BeOS module" )
+ ADD_COMMENT( "Ha, ha -- nothing to configure yet" )
+MODULE_CONFIG_END
+
+/*****************************************************************************
+ * Capabilities defined in the other files.
+ *****************************************************************************/
+extern void aout_getfunctions( function_list_t * p_function_list );
+
+/*****************************************************************************
+ * InitModule: get the module structure and configuration.
+ *****************************************************************************
+ * We have to fill psz_name, psz_longname and psz_version. These variables
+ * will be strdup()ed later by the main application because the module can
+ * be unloaded later to save memory, and we want to be able to access this
+ * data even after the module has been unloaded.
+ *****************************************************************************/
+int InitModule( module_t * p_module )
+{
+ p_module->psz_name = MODULE_STRING;
+ p_module->psz_longname = "BeOS standard API module";
+ p_module->psz_version = VERSION;
+
+ p_module->i_capabilities = MODULE_CAPABILITY_NULL
+ | MODULE_CAPABILITY_AOUT;
+
+ return( 0 );
+}
+
+/*****************************************************************************
+ * ActivateModule: set the module to an usable state.
+ *****************************************************************************
+ * This function fills the capability functions and the configuration
+ * structure. Once ActivateModule() has been called, the i_usage can
+ * be set to 0 and calls to NeedModule() be made to increment it. To unload
+ * the module, one has to wait until i_usage == 0 and call DeactivateModule().
+ *****************************************************************************/
+int ActivateModule( module_t * p_module )
+{
+ p_module->p_functions = malloc( sizeof( module_functions_t ) );
+ if( p_module->p_functions == NULL )
+ {
+ return( -1 );
+ }
+
+ aout_getfunctions( &p_module->p_functions->aout );
+
+ p_module->p_config = p_config;
+
+ return( 0 );
+}
+
+/*****************************************************************************
+ * DeactivateModule: make sure the module can be unloaded.
+ *****************************************************************************
+ * This function must only be called when i_usage == 0. If it successfully
+ * returns, i_usage can be set to -1 and the module unloaded. Be careful to
+ * lock usage_lock during the whole process.
+ *****************************************************************************/
+int DeactivateModule( module_t * p_module )
+{
+ free( p_module->p_functions );
+
+ return( 0 );
+}
+
+/* OLD MODULE STRUCTURE -- soon to be removed */
+
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
-static void aout_GetPlugin( p_aout_thread_t p_aout );
static void vout_GetPlugin( p_vout_thread_t p_vout );
static void intf_GetPlugin( p_intf_thread_t p_intf );
-/* Audio output */
-int aout_BeOpen ( aout_thread_t *p_aout );
-int aout_BeReset ( aout_thread_t *p_aout );
-int aout_BeSetFormat ( aout_thread_t *p_aout );
-int aout_BeSetChannels ( aout_thread_t *p_aout );
-int aout_BeSetRate ( aout_thread_t *p_aout );
-long aout_BeGetBufInfo ( aout_thread_t *p_aout, long l_buffer_info );
-void aout_BePlay ( aout_thread_t *p_aout, byte_t *buffer,
- int i_size );
-void aout_BeClose ( aout_thread_t *p_aout );
-
/* Video output */
int vout_BeCreate ( vout_thread_t *p_vout, char *psz_display,
int i_root_window, void *p_data );
p_info->psz_version = VERSION;
p_info->psz_author = "the VideoLAN team <vlc@videolan.org>";
- p_info->aout_GetPlugin = aout_GetPlugin;
+ p_info->aout_GetPlugin = NULL;
p_info->vout_GetPlugin = vout_GetPlugin;
p_info->intf_GetPlugin = intf_GetPlugin;
p_info->yuv_GetPlugin = NULL;
* Following functions are only called through the p_info structure
*****************************************************************************/
-static void aout_GetPlugin( p_aout_thread_t p_aout )
-{
- p_aout->p_open = aout_BeOpen;
- p_aout->p_setformat = aout_BeSetFormat;
- p_aout->p_getbufinfo = aout_BeGetBufInfo;
- p_aout->p_play = aout_BePlay;
- p_aout->p_close = aout_BeClose;
-}
-
static void vout_GetPlugin( p_vout_thread_t p_vout )
{
p_vout->p_sys_create = vout_BeCreate;
}
/*****************************************************************************
- * aout_Probe: probes the audio device and return a score
+ * aout_Probe: probe the audio device and return a score
*****************************************************************************
- * This function tries to open the dps and returns a score to the plugin
- * manager so that it can
+ * This function tries to open the DSP and returns a score to the plugin
+ * manager so that it can choose the most appropriate one.
*****************************************************************************/
static int aout_Probe( probedata_t *p_data )
{