@@ -133,7 +133,7 @@ class MeshBackend extends CallBackend {
133133  Future <void > _addCall (GroupCallSession  groupCall, CallSession  call) async  {
134134    _callSessions.add (call);
135135    _initCall (groupCall, call);
136-     groupCall.onGroupCallEvent .add (GroupCallStateChange .callsChanged );
136+     groupCall.matrixRTCEventStream .add (GroupCallAddedEvent () );
137137  }
138138
139139  /// init a peer call from group calls. 
@@ -183,7 +183,7 @@ class MeshBackend extends CallBackend {
183183    _registerListenersBeforeCallAdd (replacementCall);
184184    _initCall (groupCall, replacementCall);
185185
186-     groupCall.onGroupCallEvent .add (GroupCallStateChange .callsChanged );
186+     groupCall.matrixRTCEventStream .add (GroupCallReplacedEvent () );
187187  }
188188
189189  /// Removes a peer call from group calls. 
@@ -196,7 +196,7 @@ class MeshBackend extends CallBackend {
196196
197197    _callSessions.removeWhere ((element) =>  call.callId ==  element.callId);
198198
199-     groupCall.onGroupCallEvent .add (GroupCallStateChange .callsChanged );
199+     groupCall.matrixRTCEventStream .add (GroupCallRemovedEvent () );
200200  }
201201
202202  Future <void > _disposeCall (
@@ -375,7 +375,7 @@ class MeshBackend extends CallBackend {
375375
376376    if  (nextActiveSpeaker !=  null  &&  _activeSpeaker !=  nextActiveSpeaker) {
377377      _activeSpeaker =  nextActiveSpeaker;
378-       groupCall.onGroupCallEvent .add (GroupCallStateChange .activeSpeakerChanged );
378+       groupCall.matrixRTCEventStream .add (GroupCallActiveSpeakerChanged () );
379379    }
380380    _activeSpeakerLoopTimeout? .cancel ();
381381    _activeSpeakerLoopTimeout =  Timer (
@@ -401,8 +401,8 @@ class MeshBackend extends CallBackend {
401401  ) {
402402    _screenshareStreams.add (stream);
403403    onStreamAdd.add (stream);
404-     groupCall.onGroupCallEvent 
405-         .add (GroupCallStateChange .screenshareStreamsChanged );
404+     groupCall.matrixRTCEventStream 
405+         .add (GroupCallScreenShareStreamsChanged ( GroupCallStreamsChange .added) );
406406  }
407407
408408  Future <void > _replaceScreenshareStream (
@@ -423,8 +423,9 @@ class MeshBackend extends CallBackend {
423423    _screenshareStreams.replaceRange (streamIndex, 1 , [replacementStream]);
424424
425425    await  existingStream.dispose ();
426-     groupCall.onGroupCallEvent
427-         .add (GroupCallStateChange .screenshareStreamsChanged);
426+     groupCall.matrixRTCEventStream.add (
427+       GroupCallScreenShareStreamsChanged (GroupCallStreamsChange .replaced),
428+     );
428429  }
429430
430431  Future <void > _removeScreenshareStream (
@@ -450,8 +451,9 @@ class MeshBackend extends CallBackend {
450451      await  stopMediaStream (stream.stream);
451452    }
452453
453-     groupCall.onGroupCallEvent
454-         .add (GroupCallStateChange .screenshareStreamsChanged);
454+     groupCall.matrixRTCEventStream.add (
455+       GroupCallScreenShareStreamsChanged (GroupCallStreamsChange .removed),
456+     );
455457  }
456458
457459  Future <void > _onCallStateChanged (CallSession  call, CallState  state) async  {
@@ -486,8 +488,8 @@ class MeshBackend extends CallBackend {
486488  ) async  {
487489    _userMediaStreams.add (stream);
488490    onStreamAdd.add (stream);
489-     groupCall.onGroupCallEvent 
490-         .add (GroupCallStateChange .userMediaStreamsChanged );
491+     groupCall.matrixRTCEventStream 
492+         .add (GroupCallUserMediaStreamsChanged ( GroupCallStreamsChange .added) );
491493  }
492494
493495  Future <void > _replaceUserMediaStream (
@@ -508,8 +510,8 @@ class MeshBackend extends CallBackend {
508510    _userMediaStreams.replaceRange (streamIndex, 1 , [replacementStream]);
509511
510512    await  existingStream.dispose ();
511-     groupCall.onGroupCallEvent 
512-         .add (GroupCallStateChange .userMediaStreamsChanged );
513+     groupCall.matrixRTCEventStream 
514+         .add (GroupCallUserMediaStreamsChanged ( GroupCallStreamsChange .replaced) );
513515  }
514516
515517  Future <void > _removeUserMediaStream (
@@ -536,12 +538,12 @@ class MeshBackend extends CallBackend {
536538      await  stopMediaStream (stream.stream);
537539    }
538540
539-     groupCall.onGroupCallEvent 
540-         .add (GroupCallStateChange .userMediaStreamsChanged );
541+     groupCall.matrixRTCEventStream 
542+         .add (GroupCallUserMediaStreamsChanged ( GroupCallStreamsChange .removed) );
541543
542544    if  (_activeSpeaker ==  stream.participant &&  _userMediaStreams.isNotEmpty) {
543545      _activeSpeaker =  _userMediaStreams[0 ].participant;
544-       groupCall.onGroupCallEvent .add (GroupCallStateChange .activeSpeakerChanged );
546+       groupCall.matrixRTCEventStream .add (GroupCallActiveSpeakerChanged () );
545547    }
546548  }
547549
@@ -663,7 +665,7 @@ class MeshBackend extends CallBackend {
663665      }
664666    }
665667
666-     groupCall.onGroupCallEvent .add (GroupCallStateChange .localMuteStateChanged );
668+     groupCall.matrixRTCEventStream .add (GroupCallLocalMutedChanged (muted, kind) );
667669    return ;
668670  }
669671
@@ -799,8 +801,8 @@ class MeshBackend extends CallBackend {
799801
800802        _addScreenshareStream (groupCall, localScreenshareStream! );
801803
802-         groupCall.onGroupCallEvent 
803-             .add (GroupCallStateChange .localScreenshareStateChanged );
804+         groupCall.matrixRTCEventStream 
805+             .add (GroupCallLocalScreenshareStateChanged ( true ) );
804806        for  (final  call in  _callSessions) {
805807          await  call.addLocalStream (
806808            await  localScreenshareStream! .stream! .clone (),
@@ -813,7 +815,8 @@ class MeshBackend extends CallBackend {
813815        return ;
814816      } catch  (e, s) {
815817        Logs ().e ('[VOIP] Enabling screensharing error' , e, s);
816-         groupCall.onGroupCallEvent.add (GroupCallStateChange .error);
818+         groupCall.matrixRTCEventStream
819+             .add (GroupCallStateError (e.toString (), s));
817820        return ;
818821      }
819822    } else  {
@@ -826,8 +829,8 @@ class MeshBackend extends CallBackend {
826829
827830      await  groupCall.sendMemberStateEvent ();
828831
829-       groupCall.onGroupCallEvent 
830-           .add (GroupCallStateChange .localMuteStateChanged );
832+       groupCall.matrixRTCEventStream 
833+           .add (GroupCallLocalScreenshareStateChanged ( false ) );
831834      return ;
832835    }
833836  }
0 commit comments