Index: mplayer.c =================================================================== --- mplayer.c (revision 19447) +++ mplayer.c (working copy) @@ -3782,6 +3782,7 @@ //==================== START PLAYING ======================= +int as_submited=0; if(loop_times>1) loop_times--; else if(loop_times==1) loop_times = -1; @@ -3871,6 +3872,35 @@ break; } // while(sh_audio) +//----------audioscrobbler + +char as_tmp[512]; +char *as_title, *as_artist, *as_album; +float as_pos=(sh_audio->delay - audio_out->get_delay() * playback_speed); +float as_len=demuxer_get_time_length(demuxer); + +if(as_submited==0) +{ + as_submited=1; + + as_title=demux_info_get(demuxer,"Title"); + as_album=demux_info_get(demuxer,"Album"); + as_artist=demux_info_get(demuxer,"Artist"); + + if(!as_title) + as_title=demux_info_get(demuxer,"name"); + if(!as_artist) + as_artist=demux_info_get(demuxer,"author"); + + if(strlen(as_title) && strlen(as_artist)) + { + sprintf(as_tmp, "lastfmsubmit --artist \"%s\" --title \"%s\" --album \"%s\" --length %.0f &", + as_artist, as_title, as_album, as_len); + system(as_tmp); + } +} +//------------------------- + if(!sh_video) { // handle audio-only case: if(!quiet) { @@ -4343,6 +4373,7 @@ case MP_CMD_SEEK : { float v; int abs; + as_submited=1; if(sh_video) osd_show_percentage = sh_video->fps; v = cmd->args[0].v.f;