*****************************************************************************/
extern "C"
{
-#include <errno.h>
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
static void Close ( vlc_object_t * );
static void Play ( aout_instance_t * );
-static int Thread ( aout_instance_t * );
+static void* Thread ( vlc_object_t * );
static void InterleaveS16( int16_t *, int16_t * );
/*****************************************************************************
* Module descriptor
*****************************************************************************/
-vlc_module_begin();
- set_shortname( "Roku HD1000" );
- set_description( N_("Roku HD1000 audio output") );
- set_capability( "audio output", 100 );
- set_category( CAT_AUDIO );
- set_subcategory( SUBCAT_AUDIO_AOUT );
- set_callbacks( Open, Close );
-vlc_module_end();
+vlc_module_begin ()
+ set_shortname( "Roku HD1000" )
+ set_description( N_("Roku HD1000 audio output") )
+ set_capability( "audio output", 100 )
+ set_category( CAT_AUDIO )
+ set_subcategory( SUBCAT_AUDIO_AOUT )
+ set_callbacks( Open, Close )
+vlc_module_end ()
/*****************************************************************************
* Open: open a dummy audio device
}
}
- p_aout->output.output.i_format = AOUT_FMT_S16_NE;
+ p_aout->output.output.i_format = VLC_CODEC_S16N;
p_aout->output.i_nb_samples = FRAME_SIZE;
p_aout->output.output.i_physical_channels
= AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
/* Create thread and wait for its readiness. */
if( vlc_thread_create( p_aout, "aout", Thread,
- VLC_THREAD_PRIORITY_OUTPUT, false ) )
+ VLC_THREAD_PRIORITY_OUTPUT ) )
{
msg_Err( p_aout, "cannot create OSS thread (%m)" );
pPlayer->Close();
delete pPlayer;
free( p_sys->ppBuffers );
free( p_sys );
- return VLC_ETHREAD;
+ return VLC_ENOMEM;
}
return VLC_SUCCESS;
/*****************************************************************************
* Thread: thread used to DMA the data to the device
*****************************************************************************/
-static int Thread( aout_instance_t * p_aout )
+static void* Thread( vlc_object_t *p_this )
{
+ aout_instance_t * p_aout = (aout_instance_t*)p_this;
aout_buffer_t * p_buffer;
struct aout_sys_t * p_sys = p_aout->output.p_sys;
PCMAudioPlayer * pPlayer = p_sys->pPlayer;
+ int canc = vlc_savecancel ();
- while( !p_aout->b_die )
+ while( vlc_object_alive (p_aout) )
{
pPlayer->WaitForBuffer();
#undef i
}
- return VLC_SUCCESS;
+ vlc_restorecancel (canc);
+ return NULL;
}
/*****************************************************************************