public function notifyScrobble(SSLTrack $track) { $length = $track->getLengthInSeconds(SSLTrack::TRY_HARD); if ($length == 0) { // Perhaps this entry was added manually. L::level(L::WARNING) && L::log(L::WARNING, __CLASS__, 'Could not guess length. Last.fm will silently ignore the scrobble.', array()); } try { $this->scrobbler->add($track->getArtist(), $track->getTitle(), $track->getAlbum(), $length, $track->getStartTime()); L::level(L::DEBUG) && L::log(L::DEBUG, __CLASS__, 'Sending %d scrobble(s) to Last.fm', array($this->scrobbler->getQueueSize())); $this->scrobbler->submit(); // TODO: caching if scrobbling's down whilst playing. } catch (Exception $e) { L::level(L::WARNING) && L::log(L::WARNING, __CLASS__, 'Could not send %d scrobble(s) to Last.fm: %s', array($this->scrobbler->getQueueSize(), $e->getMessage())); } }