'Retrieve the latest data from the Clementine Player.'

def update(self):

    try:
        client = self._client
        if (client.state == 'Playing'):
            self._state = STATE_PLAYING
        elif (client.state == 'Paused'):
            self._state = STATE_PAUSED
        elif (client.state == 'Disconnected'):
            self._state = STATE_OFF
        else:
            self._state = STATE_PAUSED
        if (client.last_update and ((time.time() - client.last_update) > 40)):
            self._state = STATE_OFF
        self._volume = (float(client.volume) if client.volume else 0.0)
        if client.current_track:
            self._track_id = client.current_track['track_id']
            self._track_name = client.current_track['title']
            self._track_artist = client.current_track['track_artist']
            self._track_album_name = client.current_track['track_album']
    except:
        self._state = STATE_OFF
        raise
