Commit 80566b68 authored by Rafaël Carré's avatar Rafaël Carré

audioscrobbler: runs in a separate thread because of blocking network calls

parent 0f2c7eb3
......@@ -100,6 +100,7 @@ intf_sys_t *p_sys_global; /* to retrieve p_sys in Run() thread */
static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * );
static void Run ( intf_thread_t * );
static void Main ( intf_thread_t * );
static int ItemChange ( vlc_object_t *, const char *, vlc_value_t,
vlc_value_t, void * );
static int PlayingChange( vlc_object_t *, const char *, vlc_value_t,
......@@ -280,10 +281,19 @@ static void Close( vlc_object_t *p_this )
free( p_sys );
}
/****************************************************************************
* Run : create Main() thread
* **************************************************************************/
static void Run( intf_thread_t *p_intf )
{
if( vlc_thread_create( p_intf, "Audioscrobbler", Main, 0, VLC_TRUE ) )
msg_Err( p_intf, "failed to create Audioscrobbler thread" );
}
/*****************************************************************************
* Run : call Handshake() then submit songs
* Main : call Handshake() then submit songs
*****************************************************************************/
static void Run( intf_thread_t *p_this )
static void Main( intf_thread_t *p_this )
{
char *psz_submit = NULL;
char *psz_submit_song = NULL;
......@@ -296,6 +306,8 @@ static void Run( intf_thread_t *p_this )
int i_post_socket;
time_t played_time;
vlc_thread_ready( p_this );
p_this->p_sys = p_sys_global;
intf_sys_t *p_sys = p_this->p_sys;
......@@ -327,7 +339,7 @@ static void Run( intf_thread_t *p_this )
if( p_sys->b_handshaked == VLC_FALSE )
{
msg_Dbg( p_this, "Handshaking with last.fm ..." );
switch( Handshake( p_this ) )
{
case VLC_ENOMEM:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment