Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
b3b71030
Commit
b3b71030
authored
Sep 30, 2006
by
Rafaël Carré
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cosmetics, add some comments
Remove unneeded strlwr
parent
7f779f6a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
94 deletions
+66
-94
modules/misc/audioscrobbler.c
modules/misc/audioscrobbler.c
+66
-94
No files found.
modules/misc/audioscrobbler.c
View file @
b3b71030
...
@@ -29,10 +29,6 @@
...
@@ -29,10 +29,6 @@
#define _GNU_SOURCE
#define _GNU_SOURCE
#include <string.h>
#include <string.h>
#if !defined( strlwr ) && !defined( WIN32 )
#include <ctype.h>
#endif
#if defined( WIN32 )
#if defined( WIN32 )
#include <time.h>
#include <time.h>
#endif
#endif
...
@@ -104,7 +100,7 @@ struct intf_sys_t
...
@@ -104,7 +100,7 @@ struct intf_sys_t
vlc_bool_t
b_waiting_meta
;
/* we need fetched data? */
vlc_bool_t
b_waiting_meta
;
/* we need fetched data? */
};
};
intf_sys_t
*
p_sys_global
;
/*
for use same p_sys in all threads
*/
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
*
);
...
@@ -119,10 +115,6 @@ static int ReadMetaData ( intf_thread_t *p_this );
...
@@ -119,10 +115,6 @@ static int ReadMetaData ( intf_thread_t *p_this );
static
int
ReadLocalMetaData
(
intf_thread_t
*
p_this
,
input_thread_t
*
p_input
);
static
int
ReadLocalMetaData
(
intf_thread_t
*
p_this
,
input_thread_t
*
p_input
);
void
DeleteQueue
(
audioscrobbler_queue_t
*
p_queue
);
void
DeleteQueue
(
audioscrobbler_queue_t
*
p_queue
);
#if !defined(strlwr) && !defined( WIN32 )
char
*
strlwr
(
char
*
psz_string
);
#endif
/*****************************************************************************
/*****************************************************************************
* Module descriptor
* Module descriptor
****************************************************************************/
****************************************************************************/
...
@@ -133,8 +125,10 @@ char* strlwr(char *psz_string);
...
@@ -133,8 +125,10 @@ char* strlwr(char *psz_string);
#define USERNAME_LONGTEXT N_("The username of your last.fm account")
#define USERNAME_LONGTEXT N_("The username of your last.fm account")
#define PASSWORD_TEXT N_("Password")
#define PASSWORD_TEXT N_("Password")
#define PASSWORD_LONGTEXT N_("The password of your last.fm account")
#define PASSWORD_LONGTEXT N_("The password of your last.fm account")
/* if something goes wrong, we wait at least one minute before trying again */
/* if something goes wrong, we wait at least one minute before trying again */
#define DEFAULT_INTERVAL 60
#define DEFAULT_INTERVAL 60
/* last.fm client identifier */
#define CLIENT_NAME PACKAGE
#define CLIENT_NAME PACKAGE
#define CLIENT_VERSION VERSION
#define CLIENT_VERSION VERSION
...
@@ -287,11 +281,7 @@ static void Close( vlc_object_t *p_this )
...
@@ -287,11 +281,7 @@ static void Close( vlc_object_t *p_this )
free
(
p_current_queue
);
free
(
p_current_queue
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
if
(
p_sys
->
psz_username
)
free
(
p_sys
->
psz_username
);
{
free
(
p_sys
->
psz_username
);
}
free
(
p_sys
->
p_current_song
);
free
(
p_sys
->
p_current_song
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_destroy
(
&
p_sys
->
lock
);
vlc_mutex_destroy
(
&
p_sys
->
lock
);
...
@@ -304,8 +294,7 @@ static void Close( vlc_object_t *p_this )
...
@@ -304,8 +294,7 @@ static void Close( vlc_object_t *p_this )
static
void
Run
(
intf_thread_t
*
p_this
)
static
void
Run
(
intf_thread_t
*
p_this
)
{
{
char
*
psz_submit_string
=
NULL
;
char
*
psz_submit_string
=
NULL
;
int
i_handshake
;
int
i_net_ret
;
int
i_netprintf
;
int
i_song
;
int
i_song
;
playlist_t
*
p_playlist
;
playlist_t
*
p_playlist
;
uint8_t
*
p_buffer
=
NULL
;
uint8_t
*
p_buffer
=
NULL
;
...
@@ -317,31 +306,29 @@ static void Run( intf_thread_t *p_this )
...
@@ -317,31 +306,29 @@ static void Run( intf_thread_t *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
;
/* main loop */
while
(
!
p_this
->
b_die
)
while
(
!
p_this
->
b_die
)
{
{
/* verify if there is data to submit
* and if waiting interval is finished */
if
(
(
p_sys
->
p_first_queue
->
i_songs_nb
>
0
)
&&
if
(
(
p_sys
->
p_first_queue
->
i_songs_nb
>
0
)
&&
(
time
(
NULL
)
>=
(
time
(
NULL
)
>=
(
p_sys
->
time_last_interval
+
p_sys
->
i_interval
)
)
)
(
p_sys
->
time_last_interval
+
p_sys
->
i_interval
)
)
)
{
{
/* handshake if needed */
if
(
p_sys
->
b_handshaked
==
VLC_FALSE
)
if
(
p_sys
->
b_handshaked
==
VLC_FALSE
)
{
{
if
(
time
(
NULL
)
>=
msg_Dbg
(
p_this
,
"Handshaking with last.fm ..."
);
(
p_sys
->
time_last_interval
+
p_sys
->
i_interval
)
)
switch
(
Handshake
(
p_this
)
)
{
{
msg_Dbg
(
p_this
,
"Handshaking with last.fm ..."
);
case
VLC_ENOMEM
:
i_handshake
=
Handshake
(
p_this
);
if
(
i_handshake
==
VLC_ENOMEM
)
{
msg_Err
(
p_this
,
"Out of memory"
);
msg_Err
(
p_this
,
"Out of memory"
);
return
;
return
;
}
break
;
else
if
(
i_handshake
==
VLC_ENOVAR
)
case
VLC_ENOVAR
:
/* username not set */
/* username not set */
{
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
intf_UserFatal
(
p_this
,
VLC_FALSE
,
intf_UserFatal
(
p_this
,
VLC_FALSE
,
_
(
"last.fm username not set"
),
_
(
"last.fm username not set"
),
...
@@ -351,28 +338,26 @@ static void Run( intf_thread_t *p_this )
...
@@ -351,28 +338,26 @@ static void Run( intf_thread_t *p_this )
" if you don't have one."
)
" if you don't have one."
)
);
);
return
;
return
;
}
break
;
else
if
(
i_handshake
==
VLC_SUCCESS
)
case
VLC_SUCCESS
:
{
msg_Dbg
(
p_this
,
"Handshake successfull :)"
);
msg_Dbg
(
p_this
,
"Handshake successfull :)"
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
p_sys
->
b_handshaked
=
VLC_TRUE
;
p_sys
->
b_handshaked
=
VLC_TRUE
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
}
break
;
else
case
VLC_EGENERIC
:
/* VLC_GENERIC : we'll try later */
default:
{
/* VLC_EGENERIC : we'll try later */
vlc_mutex_lock
(
&
p_sys
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
p_sys
->
i_interval
=
DEFAULT_INTERVAL
;
p_sys
->
i_interval
=
DEFAULT_INTERVAL
;
time
(
&
p_sys
->
time_last_interval
);
time
(
&
p_sys
->
time_last_interval
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
}
break
;
}
}
}
}
msg_Dbg
(
p_this
,
"Going to submit some data..."
);
msg_Dbg
(
p_this
,
"Going to submit some data..."
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
psz_submit_string
=
malloc
(
2048
*
sizeof
(
char
)
);
psz_submit_string
=
malloc
(
2048
*
sizeof
(
char
)
);
...
@@ -384,6 +369,7 @@ static void Run( intf_thread_t *p_this )
...
@@ -384,6 +369,7 @@ static void Run( intf_thread_t *p_this )
return
;
return
;
}
}
/* forge the HTTP POST request */
for
(
i_song
=
0
;
i_song
<
p_sys
->
p_first_queue
->
i_songs_nb
;
for
(
i_song
=
0
;
i_song
<
p_sys
->
p_first_queue
->
i_songs_nb
;
i_song
++
)
i_song
++
)
{
{
...
@@ -401,20 +387,21 @@ static void Run( intf_thread_t *p_this )
...
@@ -401,20 +387,21 @@ static void Run( intf_thread_t *p_this )
p_sys
->
i_post_socket
=
net_ConnectTCP
(
p_this
,
p_sys
->
i_post_socket
=
net_ConnectTCP
(
p_this
,
p_sys
->
psz_submit_host
,
p_sys
->
i_submit_port
);
p_sys
->
psz_submit_host
,
p_sys
->
i_submit_port
);
i_netprintf
=
net_Printf
(
/* we transmit the data */
i_net_ret
=
net_Printf
(
VLC_OBJECT
(
p_this
),
p_sys
->
i_post_socket
,
NULL
,
VLC_OBJECT
(
p_this
),
p_sys
->
i_post_socket
,
NULL
,
POST_REQUEST
,
p_sys
->
psz_submit_file
,
POST_REQUEST
,
p_sys
->
psz_submit_file
,
strlen
(
psz_submit_string
),
p_sys
->
psz_submit_file
,
strlen
(
psz_submit_string
),
p_sys
->
psz_submit_file
,
VERSION
,
psz_submit_string
VERSION
,
psz_submit_string
);
);
if
(
i_net
printf
==
-
1
)
if
(
i_net
_ret
==
-
1
)
{
{
/* If connection fails, we assume we must handshake again */
/* If connection fails, we assume we must handshake again */
p_sys
->
i_interval
=
DEFAULT_INTERVAL
;
p_sys
->
i_interval
=
DEFAULT_INTERVAL
;
time
(
&
p_sys
->
time_last_interval
);
time
(
&
p_sys
->
time_last_interval
);
p_sys
->
b_handshaked
=
VLC_FALSE
;
p_sys
->
b_handshaked
=
VLC_FALSE
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
continue
;
continue
;
}
}
...
@@ -426,12 +413,19 @@ static void Run( intf_thread_t *p_this )
...
@@ -426,12 +413,19 @@ static void Run( intf_thread_t *p_this )
return
;
return
;
}
}
net_Read
(
p_this
,
p_sys
->
i_post_socket
,
NULL
,
i_net_ret
=
net_Read
(
p_this
,
p_sys
->
i_post_socket
,
NULL
,
p_buffer
,
1024
,
VLC_FALSE
);
p_buffer
,
1024
,
VLC_FALSE
);
if
(
i_net_ret
<=
0
)
{
/* if we get no answer, something went wrong : try again */
vlc_mutex_unlock
(
&
p_sys
->
lock
);
continue
;
}
net_Close
(
p_sys
->
i_post_socket
);
net_Close
(
p_sys
->
i_post_socket
);
/* record interval */
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"INTERVAL"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"INTERVAL"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
p_sys
->
i_interval
=
atoi
(
p_buffer_pos
+
p_sys
->
i_interval
=
atoi
(
p_buffer_pos
+
...
@@ -440,18 +434,18 @@ static void Run( intf_thread_t *p_this )
...
@@ -440,18 +434,18 @@ static void Run( intf_thread_t *p_this )
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"FAILED"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"FAILED"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
/* woops, something failed */
msg_Dbg
(
p_this
,
p_buffer_pos
);
msg_Dbg
(
p_this
,
p_buffer_pos
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
continue
;
continue
;
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"BADAUTH"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"BADAUTH"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
/* too much time elapsed after last handshake? */
msg_Dbg
(
p_this
,
"Authentification failed, handshaking again"
);
msg_Dbg
(
p_this
,
"Authentification failed, handshaking again"
);
p_sys
->
b_handshaked
=
VLC_FALSE
;
p_sys
->
b_handshaked
=
VLC_FALSE
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
...
@@ -459,11 +453,11 @@ static void Run( intf_thread_t *p_this )
...
@@ -459,11 +453,11 @@ static void Run( intf_thread_t *p_this )
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"OK"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"OK"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
if
(
p_sys
->
p_first_queue
->
i_songs_nb
==
10
)
if
(
p_sys
->
p_first_queue
->
i_songs_nb
==
10
)
{
{
/* if there are more than one queue, delete the 1st */
p_first_queue
=
p_sys
->
p_first_queue
->
p_next_queue
;
p_first_queue
=
p_sys
->
p_first_queue
->
p_next_queue
;
DeleteQueue
(
p_sys
->
p_first_queue
);
DeleteQueue
(
p_sys
->
p_first_queue
);
free
(
p_sys
->
p_first_queue
);
free
(
p_sys
->
p_first_queue
);
...
@@ -477,7 +471,7 @@ static void Run( intf_thread_t *p_this )
...
@@ -477,7 +471,7 @@ static void Run( intf_thread_t *p_this )
msg_Dbg
(
p_this
,
"Submission successfull!"
);
msg_Dbg
(
p_this
,
"Submission successfull!"
);
}
}
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
}
}
/* data transmission finished or skipped */
msleep
(
INTF_IDLE_SLEEP
);
msleep
(
INTF_IDLE_SLEEP
);
...
@@ -502,6 +496,7 @@ static void Run( intf_thread_t *p_this )
...
@@ -502,6 +496,7 @@ static void Run( intf_thread_t *p_this )
vlc_mutex_lock
(
&
p_sys
->
lock
);
vlc_mutex_lock
(
&
p_sys
->
lock
);
if
(
p_sys
->
b_metadata_read
==
VLC_FALSE
)
if
(
p_sys
->
b_metadata_read
==
VLC_FALSE
)
{
{
/* we read the metadata of the playing song */
/* TODO: remove when meta_engine works */
/* TODO: remove when meta_engine works */
time
(
&
played_time
);
time
(
&
played_time
);
played_time
-=
p_sys
->
p_current_song
->
time_playing
;
played_time
-=
p_sys
->
p_current_song
->
time_playing
;
...
@@ -521,6 +516,7 @@ static void Run( intf_thread_t *p_this )
...
@@ -521,6 +516,7 @@ static void Run( intf_thread_t *p_this )
}
}
else
else
{
{
/* we add the playing song into the queue */
if
(
(
p_sys
->
b_queued
==
VLC_FALSE
)
if
(
(
p_sys
->
b_queued
==
VLC_FALSE
)
&&
(
p_sys
->
b_paused
==
VLC_FALSE
)
)
&&
(
p_sys
->
b_paused
==
VLC_FALSE
)
)
{
{
...
@@ -618,7 +614,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
...
@@ -618,7 +614,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
/* we'll read metadata when it's present */
/* we'll read metadata when it's present */
p_sys
->
b_metadata_read
=
VLC_FALSE
;
p_sys
->
b_metadata_read
=
VLC_FALSE
;
p_sys
->
b_waiting_meta
=
VLC_FALSE
;
p_sys
->
b_waiting_meta
=
VLC_FALSE
;
p_sys
->
b_queued
=
VLC_TRUE
;
time
(
&
epoch
);
time
(
&
epoch
);
epoch_tm
=
gmtime
(
&
epoch
);
epoch_tm
=
gmtime
(
&
epoch
);
...
@@ -757,7 +752,6 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -757,7 +752,6 @@ static int Handshake( intf_thread_t *p_this )
goto
memerror
;
goto
memerror
;
}
}
if
(
!*
p_sys
->
psz_username
)
if
(
!*
p_sys
->
psz_username
)
{
{
return
VLC_ENOVAR
;
return
VLC_ENOVAR
;
...
@@ -773,6 +767,7 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -773,6 +767,7 @@ static int Handshake( intf_thread_t *p_this )
"http://post.audioscrobbler.com/?hs=true&p=1.1&c=%s&v=%s&u=%s"
,
"http://post.audioscrobbler.com/?hs=true&p=1.1&c=%s&v=%s&u=%s"
,
CLIENT_NAME
,
CLIENT_VERSION
,
p_sys
->
psz_username
);
CLIENT_NAME
,
CLIENT_VERSION
,
p_sys
->
psz_username
);
/* send the http handshake request */
p_stream
=
stream_UrlNew
(
p_intf
,
psz_handshake_url
);
p_stream
=
stream_UrlNew
(
p_intf
,
psz_handshake_url
);
free
(
psz_handshake_url
);
free
(
psz_handshake_url
);
...
@@ -790,18 +785,17 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -790,18 +785,17 @@ static int Handshake( intf_thread_t *p_this )
goto
memerror
;
goto
memerror
;
}
}
/* read answer */
if
(
stream_Read
(
p_stream
,
p_buffer
,
1024
)
==
0
)
if
(
stream_Read
(
p_stream
,
p_buffer
,
1024
)
==
0
)
{
{
stream_Delete
(
p_stream
);
stream_Delete
(
p_stream
);
free
(
p_buffer
);
goto
generic_error
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_EGENERIC
;
}
}
stream_Delete
(
p_stream
);
stream_Delete
(
p_stream
);
/* record interval before next submission */
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"INTERVAL"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"INTERVAL"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
p_sys
->
i_interval
=
atoi
(
p_buffer_pos
+
strlen
(
"INTERVAL "
)
);
p_sys
->
i_interval
=
atoi
(
p_buffer_pos
+
strlen
(
"INTERVAL "
)
);
...
@@ -809,31 +803,27 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -809,31 +803,27 @@ static int Handshake( intf_thread_t *p_this )
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"FAILED"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"FAILED"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
/* handshake request failed */
msg_Dbg
(
p_this
,
p_buffer_pos
);
msg_Dbg
(
p_this
,
p_buffer_pos
);
free
(
p_buffer
);
goto
generic_error
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_EGENERIC
;
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"BADUSER"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"BADUSER"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
/* username does not exist */
intf_UserFatal
(
p_this
,
VLC_FALSE
,
_
(
"Bad last.fm Username"
),
intf_UserFatal
(
p_this
,
VLC_FALSE
,
_
(
"Bad last.fm Username"
),
_
(
"last.fm username is incorrect, please verify your settings"
)
_
(
"last.fm username is incorrect, please verify your settings"
)
);
);
free
(
p_buffer
);
goto
generic_error
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_EGENERIC
;
}
}
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"UPDATE"
);
p_buffer_pos
=
strstr
(
(
char
*
)
p_buffer
,
"UPDATE"
);
if
(
p_buffer_pos
)
if
(
p_buffer_pos
)
{
{
/* protocol has been updated, developers need to work :) */
msg_Dbg
(
p_intf
,
"Protocol updated"
);
msg_Dbg
(
p_intf
,
"Protocol updated"
);
msg_Dbg
(
p_intf
,
p_buffer_pos
);
msg_Dbg
(
p_intf
,
p_buffer_pos
);
}
}
...
@@ -844,9 +834,7 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -844,9 +834,7 @@ static int Handshake( intf_thread_t *p_this )
if
(
!
p_buffer_pos
)
if
(
!
p_buffer_pos
)
{
{
msg_Dbg
(
p_intf
,
"Protocol error"
);
msg_Dbg
(
p_intf
,
"Protocol error"
);
free
(
p_buffer
);
goto
generic_error
;
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_EGENERIC
;
}
}
}
}
...
@@ -868,15 +856,8 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -868,15 +856,8 @@ static int Handshake( intf_thread_t *p_this )
p_buffer_pos
=
(
void
*
)
strstr
(
(
char
*
)
p_buffer
,
"http://"
);
p_buffer_pos
=
(
void
*
)
strstr
(
(
char
*
)
p_buffer
,
"http://"
);
if
(
p_sys
->
psz_submit_host
!=
NULL
)
free
(
p_sys
->
psz_submit_host
);
{
free
(
p_sys
->
psz_submit_file
);
free
(
p_sys
->
psz_submit_host
);
}
if
(
p_sys
->
psz_submit_file
!=
NULL
)
{
free
(
p_sys
->
psz_submit_file
);
}
psz_url_parser
=
p_buffer_pos
+
strlen
(
"http://"
);
psz_url_parser
=
p_buffer_pos
+
strlen
(
"http://"
);
...
@@ -903,6 +884,7 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -903,6 +884,7 @@ static int Handshake( intf_thread_t *p_this )
goto
memerror
;
goto
memerror
;
}
}
/* generates a md5 hash of the password */
InitMD5
(
p_struct_md5
);
InitMD5
(
p_struct_md5
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
psz_password
,
strlen
(
psz_password
)
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
psz_password
,
strlen
(
psz_password
)
);
EndMD5
(
p_struct_md5
);
EndMD5
(
p_struct_md5
);
...
@@ -925,8 +907,10 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -925,8 +907,10 @@ static int Handshake( intf_thread_t *p_this )
);
);
}
}
strlwr
(
psz_password_md5
);
/* generates a md5 hash of :
* - md5 hash of the password
* - md5 challenge sent by last.fm server
*/
InitMD5
(
p_struct_md5
);
InitMD5
(
p_struct_md5
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
psz_password_md5
,
32
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
psz_password_md5
,
32
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
ps_challenge_md5
,
32
);
AddMD5
(
p_struct_md5
,
(
uint8_t
*
)
ps_challenge_md5
,
32
);
...
@@ -947,35 +931,24 @@ static int Handshake( intf_thread_t *p_this )
...
@@ -947,35 +931,24 @@ static int Handshake( intf_thread_t *p_this )
p_sys
->
psz_response_md5
[
32
]
=
0
;
p_sys
->
psz_response_md5
[
32
]
=
0
;
strlwr
(
p_sys
->
psz_response_md5
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
generic_error:
free
(
p_buffer
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_EGENERIC
;
memerror:
memerror:
free
(
p_buffer
);
free
(
p_buffer
);
free
(
p_struct_md5
);
free
(
p_struct_md5
);
free
(
psz_buffer_substring
);
free
(
psz_buffer_substring
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
return
VLC_ENOMEM
;
return
VLC_ENOMEM
;
}
}
/*****************************************************************************
* strlwr : Converts a string to lower case
*****************************************************************************/
#if !defined(strlwr) && !defined( WIN32 )
char
*
strlwr
(
char
*
psz_string
)
{
while
(
*
psz_string
)
{
*
psz_string
++
=
tolower
(
*
psz_string
);
}
return
psz_string
;
}
#endif
/*****************************************************************************
/*****************************************************************************
* DeleteQueue : Free all songs from an audioscrobbler_queue_t
* DeleteQueue : Free all songs from an audioscrobbler_queue_t
*****************************************************************************/
*****************************************************************************/
...
@@ -1083,7 +1056,6 @@ static int ReadLocalMetaData( intf_thread_t *p_this, input_thread_t *p_input )
...
@@ -1083,7 +1056,6 @@ static int ReadLocalMetaData( intf_thread_t *p_this, input_thread_t *p_input )
goto
waiting_meta_data_fetching
;
goto
waiting_meta_data_fetching
;
}
}
}
}
if
(
p_input
->
input
.
p_item
->
psz_name
)
if
(
p_input
->
input
.
p_item
->
psz_name
)
{
{
psz_title
=
encode_URI_component
(
p_input
->
input
.
p_item
->
psz_name
);
psz_title
=
encode_URI_component
(
p_input
->
input
.
p_item
->
psz_name
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment