Factory token for the room's controller. Each LiveKitRoomComponent resolves this factory and invokes it to obtain
its own controller instance (the room is stateful per-instance, so this is a factory, not a shared singleton).
The default factory returns new LiveKitRoomController(). A host can return any ILiveKitRoomController
instead, and tests inject a fake one to drive the container's DOM, e.g.
{ provide: LIVEKIT_ROOM_CONTROLLER_FACTORY, useValue: () => fakeController }.
Factory token for the room's controller. Each
LiveKitRoomComponentresolves this factory and invokes it to obtain its own controller instance (the room is stateful per-instance, so this is a factory, not a shared singleton). The default factory returnsnew LiveKitRoomController(). A host can return any ILiveKitRoomController instead, and tests inject a fake one to drive the container's DOM, e.g.{ provide: LIVEKIT_ROOM_CONTROLLER_FACTORY, useValue: () => fakeController }.