bool csMovieRecorder::Initialize (iObjectRegistry* iobject_reg) { object_reg = iobject_reg; CS_INITIALIZE_EVENT_SHORTCUTS (object_reg); KeyboardEvent = csevKeyboardEvent (object_reg); // We need to receive keyboard events for our hotkeys, and the nothing // event for the actual movie recording. if (!keyEventHandler) { keyEventHandler.AttachNew (new KeyEventHandler (this)); } csRef<iEventQueue> q (csQueryRegistry<iEventQueue> (object_reg)); if (q != 0) { csEventID events[2] = { KeyboardEvent, CS_EVENTLIST_END }; q->RegisterListener (keyEventHandler, events); } if (!logicEventHandler) { logicEventHandler.AttachNew (new LogicEventHandler (this)); } if (q != 0) { csEventID events[2] = { Frame, CS_EVENTLIST_END }; q->RegisterListener (logicEventHandler, events); } if (!frameEventHandler) { frameEventHandler.AttachNew (new FrameEventHandler (this)); } if (q != 0) { csEventID events[2] = { Frame, CS_EVENTLIST_END }; q->RegisterListener (frameEventHandler, events); } // Unregister the normal virtual clock and register our own // replacement, hoping nobody will notice :) // // FIXME: This will work for the application when this plugin is // loaded in initialization, but some modules might see the // real VC. Additionally, this won't work at all if the app // loads us after the app gets a VC reference. if (!virtualClock) { virtualClock.AttachNew (new VirtualClock (this)); } realVirtualClock = csQueryRegistry<iVirtualClock> (object_reg); object_reg->Unregister(realVirtualClock, "iVirtualClock"); object_reg->Register(virtualClock, "iVirtualClock"); return true; }
bool csDecalManager::Initialize (iObjectRegistry * objectReg) { this->objectReg = objectReg; vc = csQueryRegistry<iVirtualClock> (objectReg); CS_INITIALIZE_EVENT_SHORTCUTS (objectReg); csRef<iEventQueue> q(csQueryRegistry<iEventQueue> (objectReg)); if (q) CS::RegisterWeakListener (q, this, Frame, weakEventHandler); return true; }