From caa2e16fd809706fc0a216e15eefa67224f9c204 Mon Sep 17 00:00:00 2001 From: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Date: Thu, 2 Dec 2021 07:44:02 +0700 Subject: [PATCH] return publication for TrackSource apis --- lib/src/participant/local_participant.dart | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/src/participant/local_participant.dart b/lib/src/participant/local_participant.dart index 1741b39..36d0901 100644 --- a/lib/src/participant/local_participant.dart +++ b/lib/src/participant/local_participant.dart @@ -253,41 +253,48 @@ class LocalParticipant extends Participant { } extension LocalParticipantTrackSourceExt on LocalParticipant { - Future setCameraEnabled(bool enabled) async { + /// Shortcut for publishing a [TrackSource.camera] + Future setCameraEnabled(bool enabled) async { return setSourceEnabled(TrackSource.camera, enabled); } - Future setMicrophoneEnabled(bool enabled) async { + /// Shortcut for publishing a [TrackSource.microphone] + Future setMicrophoneEnabled(bool enabled) async { return setSourceEnabled(TrackSource.microphone, enabled); } - Future setScreenShareEnabled(bool enabled) async { + /// Shortcut for publishing a [TrackSource.screenShareVideo] + Future setScreenShareEnabled(bool enabled) async { return setSourceEnabled(TrackSource.screenShareVideo, enabled); } - Future setSourceEnabled(TrackSource source, bool enabled) async { + /// A convenience method to publish a track for a specific [TrackSource]. + Future setSourceEnabled( + TrackSource source, bool enabled) async { logger.fine('setSourceEnabled(source: $source, enabled: $enabled)'); - final pub = getTrackPublicationBySource(source) as LocalTrackPublication?; - if (pub != null) { + final publication = + getTrackPublicationBySource(source) as LocalTrackPublication?; + if (publication != null) { if (enabled) { - await pub.unmute(); + await publication.unmute(); } else { if (source == TrackSource.screenShareVideo) { - await unpublishTrack(pub.sid); + await unpublishTrack(publication.sid); } else { - await pub.mute(); + await publication.mute(); } } + return publication; } else if (enabled) { if (source == TrackSource.camera) { final track = await LocalVideoTrack.createCameraTrack(); - await publishVideoTrack(track); + return await publishVideoTrack(track); } else if (source == TrackSource.microphone) { final track = await LocalAudioTrack.create(); - await publishAudioTrack(track); + return await publishAudioTrack(track); } else if (source == TrackSource.screenShareVideo) { final track = await LocalVideoTrack.createScreenShareTrack(); - await publishVideoTrack(track); + return await publishVideoTrack(track); } } }