X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Faudio_output%2Fportaudio.c;h=6345a86abf3f87f6d49f612bcff7d0b1c9f5e61e;hb=c0a898e18e7fce541be58980f09ca199b736dc1c;hp=aa62e453c275ace35d352ff4434307983072cbef;hpb=db5fedc62315cfc0f93c0bb1fff76f53627142b8;p=vlc diff --git a/modules/audio_output/portaudio.c b/modules/audio_output/portaudio.c index aa62e453c2..6345a86abf 100644 --- a/modules/audio_output/portaudio.c +++ b/modules/audio_output/portaudio.c @@ -1,7 +1,7 @@ /***************************************************************************** * portaudio.c : portaudio (v19) audio output plugin ***************************************************************************** - * Copyright (C) 2002 VideoLAN + * Copyright (C) 2002, 2006 the VideoLAN team * $Id$ * * Authors: Frederic Ruget @@ -11,7 +11,7 @@ * 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 @@ -19,20 +19,23 @@ * * 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ -#include -#include + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif #include -#include -#include +#include +#include + -#include "aout_internal.h" +#include #define FRAME_SIZE 1024 /* The size is in samples, not in bytes */ @@ -50,10 +53,10 @@ typedef struct pa_thread_t vlc_cond_t wait; vlc_mutex_t lock_wait; - vlc_bool_t b_wait; + bool b_wait; vlc_cond_t signal; vlc_mutex_t lock_signal; - vlc_bool_t b_signal; + bool b_signal; } pa_thread_t; @@ -67,7 +70,7 @@ struct aout_sys_t PaDeviceIndex i_device_id; const PaDeviceInfo *deviceInfo; - vlc_bool_t b_chan_reorder; /* do we need channel reordering */ + bool b_chan_reorder; /* do we need channel reordering */ int pi_chan_table[AOUT_CHAN_MAX]; uint32_t i_channel_mask; uint32_t i_bits_per_sample; @@ -86,7 +89,7 @@ static const uint32_t pi_channels_out[] = AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT, 0 }; #ifdef PORTAUDIO_IS_SERIOUSLY_BROKEN -static vlc_bool_t b_init = 0; +static bool b_init = 0; static pa_thread_t *pa_thread; static void PORTAUDIOThread( pa_thread_t * ); #endif @@ -113,7 +116,7 @@ vlc_module_begin(); set_category( CAT_AUDIO ); set_subcategory( SUBCAT_AUDIO_AOUT ); add_integer( "portaudio-device", 0, NULL, - DEVICE_TEXT, DEVICE_LONGTEXT, VLC_FALSE ); + DEVICE_TEXT, DEVICE_LONGTEXT, false ); set_capability( "audio output", 0 ); set_callbacks( Open, Close ); vlc_module_end(); @@ -134,7 +137,7 @@ static int paCallback( const void *inputBuffer, void *outputBuffer, out_date = mdate() + (mtime_t) ( 1000000 * ( paDate->outputBufferDacTime - paDate->currentTime ) ); - p_buffer = aout_OutputNextBuffer( p_aout, out_date, VLC_TRUE ); + p_buffer = aout_OutputNextBuffer( p_aout, out_date, true ); if ( p_buffer != NULL ) { @@ -145,8 +148,8 @@ static int paCallback( const void *inputBuffer, void *outputBuffer, p_sys->i_channels, p_sys->pi_chan_table, p_sys->i_bits_per_sample ); } - p_aout->p_vlc->pf_memcpy( outputBuffer, p_buffer->p_buffer, - framesPerBuffer * p_sys->i_sample_size ); + vlc_memcpy( outputBuffer, p_buffer->p_buffer, + framesPerBuffer * p_sys->i_sample_size ); /* aout_BufferFree may be dangereous here, but then so is * aout_OutputNextBuffer (calls aout_BufferFree internally). * one solution would be to link the no longer useful buffers @@ -158,8 +161,7 @@ static int paCallback( const void *inputBuffer, void *outputBuffer, else /* Audio output buffer shortage -> stop the fill process and wait */ { - p_aout->p_vlc->pf_memset( outputBuffer, 0, - framesPerBuffer * p_sys->i_sample_size ); + vlc_memset( outputBuffer, 0, framesPerBuffer * p_sys->i_sample_size ); } return 0; } @@ -174,7 +176,7 @@ static int Open( vlc_object_t * p_this ) vlc_value_t val; int i_err; - msg_Dbg( p_aout, "Entering Open()"); + msg_Dbg( p_aout, "entering Open()"); /* Allocate p_sys structure */ p_sys = (aout_sys_t *)malloc( sizeof(aout_sys_t) ); @@ -207,25 +209,25 @@ static int Open( vlc_object_t * p_this ) /* Close device for now. We'll re-open it later on */ if( ( i_err = Pa_Terminate() ) != paNoError ) { - msg_Err( p_aout, "Pa_Terminate returned %d", i_err ); + msg_Err( p_aout, "closing the device returned %d", i_err ); } - b_init = VLC_TRUE; + b_init = true; /* Now we need to setup our DirectSound play notification structure */ pa_thread = vlc_object_create( p_aout, sizeof(pa_thread_t) ); pa_thread->p_aout = p_aout; - pa_thread->b_error = VLC_FALSE; - vlc_mutex_init( p_aout, &pa_thread->lock_wait ); + pa_thread->b_error = false; + vlc_mutex_init( &pa_thread->lock_wait ); vlc_cond_init( p_aout, &pa_thread->wait ); - pa_thread->b_wait = VLC_FALSE; - vlc_mutex_init( p_aout, &pa_thread->lock_signal ); + pa_thread->b_wait = false; + vlc_mutex_init( &pa_thread->lock_signal ); vlc_cond_init( p_aout, &pa_thread->signal ); - pa_thread->b_signal = VLC_FALSE; + pa_thread->b_signal = false; /* Create PORTAUDIOThread */ if( vlc_thread_create( pa_thread, "aout", PORTAUDIOThread, - VLC_THREAD_PRIORITY_OUTPUT, VLC_FALSE ) ) + VLC_THREAD_PRIORITY_OUTPUT, false ) ) { msg_Err( p_aout, "cannot create PORTAUDIO thread" ); return VLC_EGENERIC; @@ -234,14 +236,14 @@ static int Open( vlc_object_t * p_this ) else { pa_thread->p_aout = p_aout; - pa_thread->b_wait = VLC_FALSE; - pa_thread->b_signal = VLC_FALSE; - pa_thread->b_error = VLC_FALSE; + pa_thread->b_wait = false; + pa_thread->b_signal = false; + pa_thread->b_error = false; } /* Signal start of stream */ vlc_mutex_lock( &pa_thread->lock_signal ); - pa_thread->b_signal = VLC_TRUE; + pa_thread->b_signal = true; vlc_cond_signal( &pa_thread->signal ); vlc_mutex_unlock( &pa_thread->lock_signal ); @@ -250,7 +252,7 @@ static int Open( vlc_object_t * p_this ) if( !pa_thread->b_wait ) vlc_cond_wait( &pa_thread->wait, &pa_thread->lock_wait ); vlc_mutex_unlock( &pa_thread->lock_wait ); - pa_thread->b_wait = VLC_FALSE; + pa_thread->b_wait = false; if( pa_thread->b_error ) { @@ -295,7 +297,7 @@ static void Close ( vlc_object_t *p_this ) /* Signal end of stream */ vlc_mutex_lock( &pa_thread->lock_signal ); - pa_thread->b_signal = VLC_TRUE; + pa_thread->b_signal = true; vlc_cond_signal( &pa_thread->signal ); vlc_mutex_unlock( &pa_thread->lock_signal ); @@ -304,7 +306,7 @@ static void Close ( vlc_object_t *p_this ) if( !pa_thread->b_wait ) vlc_cond_wait( &pa_thread->wait, &pa_thread->lock_wait ); vlc_mutex_unlock( &pa_thread->lock_wait ); - pa_thread->b_wait = VLC_FALSE; + pa_thread->b_wait = false; #else @@ -432,7 +434,7 @@ static int PAOpenDevice( aout_instance_t *p_aout ) if( p_sys->deviceInfo->maxOutputChannels >= 6 ) { val.i_int = AOUT_VAR_5_1; - text.psz_string = N_("5.1"); + text.psz_string = "5.1"; var_Change( p_aout, "audio-device", VLC_VAR_ADDCHOICE, &val, &text ); msg_Dbg( p_aout, "device supports 5.1 channels" ); @@ -440,7 +442,7 @@ static int PAOpenDevice( aout_instance_t *p_aout ) var_AddCallback( p_aout, "audio-device", aout_ChannelsRestart, NULL ); - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_aout, "intf-change", val ); } @@ -586,7 +588,7 @@ static void PORTAUDIOThread( pa_thread_t *pa_thread ) if( !pa_thread->b_signal ) vlc_cond_wait( &pa_thread->signal, &pa_thread->lock_signal ); vlc_mutex_unlock( &pa_thread->lock_signal ); - pa_thread->b_signal = VLC_FALSE; + pa_thread->b_signal = false; p_aout = pa_thread->p_aout; p_sys = p_aout->output.p_sys; @@ -594,13 +596,13 @@ static void PORTAUDIOThread( pa_thread_t *pa_thread ) if( PAOpenDevice( p_aout ) != VLC_SUCCESS ) { msg_Err( p_aout, "cannot open portaudio device" ); - pa_thread->b_error = VLC_TRUE; + pa_thread->b_error = true; } if( !pa_thread->b_error && PAOpenStream( p_aout ) != VLC_SUCCESS ) { msg_Err( p_aout, "cannot open portaudio device" ); - pa_thread->b_error = VLC_TRUE; + pa_thread->b_error = true; i_err = Pa_Terminate(); if( i_err != paNoError ) @@ -612,7 +614,7 @@ static void PORTAUDIOThread( pa_thread_t *pa_thread ) /* Tell the main thread that we are ready */ vlc_mutex_lock( &pa_thread->lock_wait ); - pa_thread->b_wait = VLC_TRUE; + pa_thread->b_wait = true; vlc_cond_signal( &pa_thread->wait ); vlc_mutex_unlock( &pa_thread->lock_wait ); @@ -621,7 +623,7 @@ static void PORTAUDIOThread( pa_thread_t *pa_thread ) if( !pa_thread->b_signal ) vlc_cond_wait( &pa_thread->signal, &pa_thread->lock_signal ); vlc_mutex_unlock( &pa_thread->lock_signal ); - pa_thread->b_signal = VLC_FALSE; + pa_thread->b_signal = false; if( pa_thread->b_error ) continue; @@ -646,7 +648,7 @@ static void PORTAUDIOThread( pa_thread_t *pa_thread ) /* Tell the main thread that we are ready */ vlc_mutex_lock( &pa_thread->lock_wait ); - pa_thread->b_wait = VLC_TRUE; + pa_thread->b_wait = true; vlc_cond_signal( &pa_thread->wait ); vlc_mutex_unlock( &pa_thread->lock_wait ); }