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 */ ...@@ -100,6 +100,7 @@ intf_sys_t *p_sys_global; /* to retrieve p_sys in Run() thread */
static int Open ( vlc_object_t * ); static int Open ( vlc_object_t * );
static void Close ( vlc_object_t * ); static void Close ( vlc_object_t * );
static void Run ( intf_thread_t * ); static void Run ( intf_thread_t * );
static void Main ( intf_thread_t * );
static int ItemChange ( vlc_object_t *, const char *, vlc_value_t, static int ItemChange ( vlc_object_t *, const char *, vlc_value_t,
vlc_value_t, void * ); vlc_value_t, void * );
static int PlayingChange( vlc_object_t *, const char *, vlc_value_t, static int PlayingChange( vlc_object_t *, const char *, vlc_value_t,
...@@ -280,10 +281,19 @@ static void Close( vlc_object_t *p_this ) ...@@ -280,10 +281,19 @@ static void Close( vlc_object_t *p_this )
free( p_sys ); 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 = NULL;
char *psz_submit_song = NULL; char *psz_submit_song = NULL;
...@@ -296,6 +306,8 @@ static void Run( intf_thread_t *p_this ) ...@@ -296,6 +306,8 @@ static void Run( intf_thread_t *p_this )
int i_post_socket; int i_post_socket;
time_t played_time; time_t played_time;
vlc_thread_ready( p_this );
p_this->p_sys = p_sys_global; p_this->p_sys = p_sys_global;
intf_sys_t *p_sys = p_this->p_sys; intf_sys_t *p_sys = p_this->p_sys;
...@@ -327,7 +339,7 @@ static void Run( intf_thread_t *p_this ) ...@@ -327,7 +339,7 @@ static void Run( intf_thread_t *p_this )
if( p_sys->b_handshaked == VLC_FALSE ) if( p_sys->b_handshaked == VLC_FALSE )
{ {
msg_Dbg( p_this, "Handshaking with last.fm ..." ); msg_Dbg( p_this, "Handshaking with last.fm ..." );
switch( Handshake( p_this ) ) switch( Handshake( p_this ) )
{ {
case VLC_ENOMEM: 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