# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_aout.h>
uint32_t i_channels;
};
-static const uint32_t pi_channels_in[] =
- { AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT,
- AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT,
- AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT,
- AOUT_CHAN_CENTER, AOUT_CHAN_LFE, 0 };
static const uint32_t pi_channels_out[] =
{ AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT,
AOUT_CHAN_CENTER, AOUT_CHAN_LFE,
- AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT,
+ AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT, AOUT_CHAN_REARCENTER,
AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT, 0 };
#ifdef PORTAUDIO_IS_SERIOUSLY_BROKEN
static bool b_init = 0;
static pa_thread_t *pa_thread;
-static void PORTAUDIOThread( pa_thread_t * );
+static void* PORTAUDIOThread( vlc_object_t * );
#endif
/*****************************************************************************
vlc_module_begin();
set_shortname( "PortAudio" );
- set_description( _("PORTAUDIO audio output") );
+ set_description( N_("PORTAUDIO audio output") );
set_category( CAT_AUDIO );
set_subcategory( SUBCAT_AUDIO_AOUT );
- add_integer( "portaudio-device", 0, NULL,
+ add_integer( "portaudio-audio-device", 0, NULL,
DEVICE_TEXT, DEVICE_LONGTEXT, false );
+ add_deprecated_alias( "portaudio-device" ); /* deprecated since 0.9.3 */
set_capability( "audio output", 0 );
set_callbacks( Open, Close );
vlc_module_end();
/* Allocate p_sys structure */
p_sys = (aout_sys_t *)malloc( sizeof(aout_sys_t) );
if( p_sys == NULL )
- {
- msg_Err( p_aout, "out of memory" );
return VLC_ENOMEM;
- }
p_sys->p_aout = p_aout;
p_sys->p_stream = 0;
p_aout->output.p_sys = p_sys;
p_aout->output.pf_play = Play;
/* Retrieve output device id from config */
- var_Create( p_aout, "portaudio-device", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT);
- var_Get( p_aout, "portaudio-device", &val );
+ var_Create( p_aout, "portaudio-audio-device", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT);
+ var_Get( p_aout, "portaudio-audio-device", &val );
p_sys->i_device_id = val.i_int;
#ifdef PORTAUDIO_IS_SERIOUSLY_BROKEN
pa_thread->p_aout = p_aout;
pa_thread->b_error = false;
vlc_mutex_init( &pa_thread->lock_wait );
- vlc_cond_init( p_aout, &pa_thread->wait );
+ vlc_cond_init( &pa_thread->wait );
pa_thread->b_wait = false;
vlc_mutex_init( &pa_thread->lock_signal );
- vlc_cond_init( p_aout, &pa_thread->signal );
+ vlc_cond_init( &pa_thread->signal );
pa_thread->b_signal = false;
/* Create PORTAUDIOThread */
p_aout->output.p_sys->i_channels = i_channels;
p_aout->output.p_sys->b_chan_reorder =
- aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
+ aout_CheckChannelReorder( NULL, pi_channels_out,
i_channel_mask, i_channels,
p_aout->output.p_sys->pi_chan_table );
* PORTAUDIOThread: all interactions with libportaudio.a are handled
* in this single thread. Otherwise libportaudio.a is _not_ happy :-(
*****************************************************************************/
-static void PORTAUDIOThread( pa_thread_t *pa_thread )
+static void* PORTAUDIOThread( vlc_object_t *p_this )
{
+ pa_thread_t *pa_thread = (pa_thread_t*)p_this;
aout_instance_t *p_aout;
aout_sys_t *p_sys;
int i_err;
+ int canc = vlc_savecancel ();
- while( !pa_thread->b_die )
+ while( vlc_object_alive (pa_thread) )
{
/* Wait for start of stream */
vlc_mutex_lock( &pa_thread->lock_signal );
vlc_cond_signal( &pa_thread->wait );
vlc_mutex_unlock( &pa_thread->lock_wait );
}
+ vlc_restorecancel (canc);
+ return NULL;
}
#endif