![JAR search and dependency download from the Maven repository](/logo.png)
chrome.desktopCapture.DesktopCapture.scala Maven / Gradle / Ivy
package chrome.desktopCapture
import bindings._
import chrome.tabs.bindings.Tab
import chrome.utils.ErrorHandling._
import scala.concurrent.{Promise, Future}
import scala.scalajs.js
import scala.scalajs.js.JSConverters._
class DesktopMediaRequest(id: DesktopMediaRequestId,
val result: Future[StreamId]) {
def cancel(): Unit = DesktopCapture.cancelChooseDesktopMedia(id)
}
object DesktopCapture {
def chooseDesktopMedia(sources: List[DesktopCaptureSourceType],
targetTab: js.UndefOr[Tab]): DesktopMediaRequest = {
val promise = Promise[StreamId]()
val id = bindings.DesktopCapture.chooseDesktopMedia(
sources.toJSArray,
targetTab,
(streamId: StreamId) => {
promise.complete(lastErrorOrValue(streamId))
})
new DesktopMediaRequest(id, promise.future)
}
def cancelChooseDesktopMedia(
desktopMediaRequestId: DesktopMediaRequestId): Unit =
bindings.DesktopCapture.cancelChooseDesktopMedia(desktopMediaRequestId)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy