void MovieNode::HandleMessage(Message* message) { switch (message->mType) { case MessageType::SLOT_CONNECTION_CHANGED: case MessageType::VALUE_CHANGED: if (message->mSlot == &mClips) { SortClips(); NotifyWatchers(&Watcher::OnRedraw); } break; case MessageType::SCENE_TIME_EDITED: { auto& clipNode = PointerCast<ClipNode>(message->mSource); auto& scene = clipNode->mSceneSlot.GetNode(); if (!scene) return; float time = clipNode->mStartTime.Get() + scene->GetSceneTime(); NotifyWatchers(&Watcher::OnTimeEdited, time); break; } default: break; } }
void NTTIMER::SignalTimeout() { Expired = TRUE; NotifyWatchers(); }