if (daemon != null) {
try {
MPDPlayer player = daemon.getMPDPlayer();
// get the song object here
MPDSong curSong = player.getCurrentSong();
MPDSong curSongCache = songInfoCache.get(playerId);
if (curSongCache != null) {
// we have some info
if (curSong.getId() != curSongCache.getId()) {
songInfoCache.put(playerId, curSong);
songChanged(playerId, curSong);
} else {
// nothing, same song
// detect play state