File tree 4 files changed +17
-1
lines changed
backend/src/main/scala/de/knutwalker/wdcm
common/src/main/scala/de/knutwalker/wdcm
frontend/src/main/scala/de/knutwalker/wdcm
4 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -59,7 +59,10 @@ object HandoutSystem {
59
59
case m@ BespokeMessage .Deactivate (n) ⇒
60
60
sequence :+= m
61
61
viewers.foreach(_ ! m)
62
- case BespokeMessage .Disconnect ⇒
62
+ case BespokeMessage .Connect ⇒
63
+ sequence = Vector (BespokeMessage .Connect )
64
+ viewers.foreach(_ ! BespokeMessage .Connect )
65
+ case BespokeMessage .Disconnect ⇒
63
66
sequence = Vector ()
64
67
viewers.foreach(_ ! BespokeMessage .Disconnect )
65
68
}
Original file line number Diff line number Diff line change @@ -9,13 +9,15 @@ object BespokeMessage {
9
9
def slide (slide : Int ): BespokeMessage = Slide (slide)
10
10
def next (slide : Int ): BespokeMessage = Next (slide)
11
11
def prev (slide : Int ): BespokeMessage = Prev (slide)
12
+ def connect : BespokeMessage = Connect
12
13
def disconnect : BespokeMessage = Disconnect
13
14
14
15
case class Deactivate (slide : Int ) extends BespokeMessage
15
16
case class Activate (slide : Int ) extends BespokeMessage
16
17
case class Slide (slide : Int ) extends BespokeMessage
17
18
case class Next (slide : Int ) extends BespokeMessage
18
19
case class Prev (slide : Int ) extends BespokeMessage
20
+ case object Connect extends BespokeMessage
19
21
case object Disconnect extends BespokeMessage
20
22
21
23
implicit val picklerBespokeMessage : Pickler [BespokeMessage ] =
Original file line number Diff line number Diff line change @@ -38,6 +38,10 @@ case object Handout extends Plugin with Websockets {
38
38
case BespokeMessage .Activate (n) if n != active ⇒
39
39
max = js.Math .max(n, max)
40
40
deck.slide(n)
41
+ case BespokeMessage .Connect ⇒
42
+ max = 0
43
+ active = 0
44
+ deck.slide(0 )
41
45
case otherwise ⇒
42
46
}
43
47
}
Original file line number Diff line number Diff line change @@ -7,10 +7,17 @@ import boopickle.Default.Pickle
7
7
8
8
case object Presenter extends Plugin with Websockets {
9
9
10
+ override protected def onOpen (ws : WebSocket , event : Event ): Unit =
11
+ sendEvent(BespokeMessage .connect)
12
+
10
13
override protected def onClose (ws : WebSocket , event : Event ): Unit =
11
14
sendEvent(BespokeMessage .disconnect)
12
15
13
16
override def apply (deck : Deck ): Unit = {
17
+ // Need to register before opening, otherwise we lose the race for handling
18
+ // 'next' and 'prev' against the bullet plugin, which swallows next events
19
+ // in order to open its bullets, but we could not inform the handout clients
20
+ // to jump to their next bullet item as well.
14
21
registerUnbind(deck.on(" activate" , (e : BespokeEvent ) ⇒ {
15
22
sendEvent(BespokeMessage .activate(e.index))
16
23
}))
You can’t perform that action at this time.
0 commit comments