X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=plugins%2Farts%2Faout_arts.c;h=4e02122aaaa1cd2105deb294f5f2da5e4b16bf27;hb=4b6d903ac0960d0f35f986a6682a4cb76b97905a;hp=7da751d13853eea04b6c9253699460369c29d132;hpb=d04d186e343ee397c133feb8ae150dc96d0a100b;p=vlc diff --git a/plugins/arts/aout_arts.c b/plugins/arts/aout_arts.c index 7da751d138..4e02122aaa 100644 --- a/plugins/arts/aout_arts.c +++ b/plugins/arts/aout_arts.c @@ -1,7 +1,7 @@ /***************************************************************************** * aout_arts.c : aRts functions library ***************************************************************************** - * Copyright (C) 2000 VideoLAN + * Copyright (C) 2001 VideoLAN * * Authors: Blindauer Emmanuel * @@ -20,15 +20,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ -#define MODULE_NAME arts -#include "modules_inner.h" - - /***************************************************************************** * Preamble *****************************************************************************/ -#include "defs.h" - #include /* ENOMEM */ #include /* open(), O_WRONLY */ #include /* strerror() */ @@ -38,20 +32,10 @@ #include -#include "config.h" -#include "common.h" /* boolean_t, byte_t */ -#include "threads.h" -#include "mtime.h" -#include "tests.h" +#include #include "audio_output.h" /* aout_thread_t */ -#include "intf_msg.h" /* intf_DbgMsg(), intf_ErrMsg() */ -#include "main.h" - -#include "modules.h" -#include "modules_export.h" - /***************************************************************************** * aout_sys_t: arts audio output method descriptor ***************************************************************************** @@ -67,10 +51,9 @@ typedef struct aout_sys_s /***************************************************************************** * 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 int aout_GetBufInfo ( aout_thread_t *p_aout, int i_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 ); @@ -81,7 +64,6 @@ static void aout_Close ( aout_thread_t *p_aout ); *****************************************************************************/ void _M( aout_getfunctions )( function_list_t * p_function_list ) { - p_function_list->pf_probe = aout_Probe; p_function_list->functions.aout.pf_open = aout_Open; p_function_list->functions.aout.pf_setformat = aout_SetFormat; p_function_list->functions.aout.pf_getbufinfo = aout_GetBufInfo; @@ -89,45 +71,32 @@ void _M( aout_getfunctions )( function_list_t * p_function_list ) p_function_list->functions.aout.pf_close = aout_Close; } -/***************************************************************************** - * aout_Probe: probes 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 - *****************************************************************************/ -static int aout_Probe( probedata_t *p_data ) -{ - if( TestMethod( AOUT_METHOD_VAR, "arts" ) ) - { - return( 999 ); - } - - /* We don't have to test anything -- if we managed to open this plugin, - * it means we have the appropriate libs. */ - return( 50 ); -} - /***************************************************************************** * aout_Open: initialize arts connection to server *****************************************************************************/ static int aout_Open( aout_thread_t *p_aout ) { int i_err = 0; - p_aout->i_format = AOUT_FORMAT_DEFAULT; - p_aout->i_channels = 1 + main_GetIntVariable( AOUT_STEREO_VAR, AOUT_STEREO_DEFAULT ); - p_aout->l_rate = AOUT_RATE_DEFAULT; + /* Allocate structure */ + p_aout->p_sys = malloc( sizeof( aout_sys_t ) ); + if( p_aout->p_sys == NULL ) + { + intf_ErrMsg("error: %s", strerror(ENOMEM) ); + return( 1 ); + } i_err = arts_init(); if (i_err < 0) { - fprintf(stderr, "arts_init error: %s\n", arts_error_text(i_err)); + intf_ErrMsg( "aout error: arts_init (%s)", arts_error_text(i_err) ); + free( p_aout->p_sys ); return(-1); } p_aout->p_sys->stream = - arts_play_stream( p_aout->l_rate, 16, p_aout->i_channels, "vlc" ); + arts_play_stream( p_aout->i_rate, 16, p_aout->i_channels, "vlc" ); return( 0 ); } @@ -141,7 +110,7 @@ static int aout_SetFormat( aout_thread_t *p_aout ) /* p_aout->i_latency = esd_get_latency(i_fd);*/ p_aout->i_latency = 0; - intf_WarnMsg(2, "aout_arts_latency: %d",p_aout->i_latency); + //intf_WarnMsg( 5, "aout_arts_latency: %d",p_aout->i_latency); return( 0 ); } @@ -149,10 +118,10 @@ static int aout_SetFormat( aout_thread_t *p_aout ) /***************************************************************************** * aout_GetBufInfo: buffer status query *****************************************************************************/ -static long aout_GetBufInfo( aout_thread_t *p_aout, long l_buffer_limit ) +static int aout_GetBufInfo( aout_thread_t *p_aout, int i_buffer_limit ) { /* arbitrary value that should be changed */ - return( l_buffer_limit ); + return( i_buffer_limit ); } /***************************************************************************** @@ -165,9 +134,9 @@ static void aout_Play( aout_thread_t *p_aout, byte_t *buffer, int i_size ) int i_err = arts_write( p_aout->p_sys->stream, buffer, i_size ); - if(i_err < 0) + if( i_err < 0 ) { - fprintf(stderr, "arts_write error: %s\n", arts_error_text(i_err)); + intf_ErrMsg( "aout error: arts_write (%s)", arts_error_text(i_err) ); } } @@ -178,5 +147,6 @@ static void aout_Play( aout_thread_t *p_aout, byte_t *buffer, int i_size ) static void aout_Close( aout_thread_t *p_aout ) { arts_close_stream( p_aout->p_sys->stream ); + free( p_aout->p_sys ); }