void Timer::notifyObservers(Status oldStatus, Status newStatus) { CHECK(oldStatus != newStatus, "Timer::notifyObservers() - inconsistency: no change happened"); std::set<Observer*>::iterator it; for (it = m_observers.begin(); it != m_observers.end(); it++) { Observer* obs = *it; switch(newStatus) { case Playing: obs->didPlay(*this, oldStatus); break; case Paused: obs->didPause(*this, oldStatus); break; case Stopped: obs->didStop(*this, oldStatus); break; default: break; } } }