Commit graph

16 commits

Author SHA1 Message Date
Kegan Dougal
353269370f Wire up the "room" CallView for conferencing
This also separates out concerns better - UI elements just need to poke
getCallForRoom rather than care if the thing they are displaying is a
true 1:1 for this room ID or actually a conf room.
2015-09-15 13:19:07 +01:00
Kegan Dougal
5e3698de64 Actually enforce 1 call semantics. 2015-09-15 11:43:51 +01:00
Kegan Dougal
59986d8b72 Pass the call around different CallViews to keep media flowing
Previously, the CallView was attached to the RoomView, so you would get
a new CallView each time you changed the room and the one you changed
from would be destroyed. This would destroy media capture/playback as
the element was no longer in the DOM.

This is now fixed by having a "global" CallView which is attached at
the MatrixChat "page" level in the DOM hierarchy. This CallView isn't
scoped to a particular room; it will render any "active" call it can
find that *isn't the current room being displayed*. This has the side
effect of enforcing 1 call per app semantics as only the first active
call found is returned.

This fixes https://github.com/vector-im/vector-web/issues/31
This is unfinished (CSS for the global call view isn't done)
2015-09-15 11:05:53 +01:00
Kegan Dougal
fc892b3580 Hide 1:1 conference rooms 2015-09-11 16:55:48 +01:00
Kegan Dougal
77401e215e First working outbound conference calling
This has a number of failings currently: 1) It needs to hide the 1:1 conference
room, 2) Swapping tabs on the outbound call mutes audio (this just seems to be
a vector bug since I can repro this on a normal 1:1 voip call), 3) Needs a big
plinth/etc to say the conf call is in progress.
2015-09-11 15:49:47 +01:00
Kegan Dougal
bcab2f231a Add error dialogs for invites and call timeouts. 2015-07-20 16:40:00 +01:00
Kegan Dougal
6fe842e130 Add ErrorDialog class. Use it for VoIP/command errors. 2015-07-20 16:26:53 +01:00
Kegan Dougal
812eb66ed5 Play ringback/busy/callend audio at the right times. 2015-07-17 17:05:11 +01:00
Kegan Dougal
b6f9ca0f95 When accepting calls, go to the right room. Relink video elements when CallView loads. 2015-07-17 14:25:51 +01:00
Kegan Dougal
c4379e4827 Remove 'status' from payload; unused. 2015-07-16 12:57:59 +01:00
Kegan Dougal
c056bdf104 Only allow calls to be placed if there are 2 joined members. 2015-07-16 11:34:39 +01:00
Kegan Dougal
50f9d34211 Only display video elements in video calls. 2015-07-16 11:30:34 +01:00
Kegan Dougal
7ffd97b5dc Implement call FSM. All works. 2015-07-16 11:05:09 +01:00
Kegan Dougal
ecd1f09095 Glue in video elements. 2015-07-16 10:26:41 +01:00
Kegan Dougal
4f132c418f Fix a couple state bugs. 2015-07-15 17:48:26 +01:00
Kegan Dougal
37c9c8fbb4 Add CallHandler singleton and add CallView.
CallView is the container for either VideoViews or WaveformViews. All UI
elements listen for 'call_state' payloads and then call
CallHandler.getCall(roomId) to extract the current MatrixCall for that room.
We can't do this via stateful dispatches because dispatching does not preserve
ordering empirically (probably due to setTimeout).
2015-07-15 16:52:23 +01:00