File: src/video_element.coffee
Stream = require('./stream').Stream
Peer = require('./peer').Peer
###*
# @module rtc
###
###*
# @class rtc.MediaDomElement
###
class exports.MediaDomElement
constructor: (@dom, data) ->
if @dom.jquery?
# TODO: warn if less/more than one element
@dom = @dom[0]
@attach(data)
attach: (data) ->
# TODO: handle conflict between multiple calls
if not data?
delete @stream
@dom.pause()
@dom.src = null
else if data instanceof Stream
@stream = data
if mozGetUserMedia?
@dom.mozSrcObject = data.stream
else
@dom.src = URL.createObjectURL(data.stream)
@dom.play()
else if data instanceof Peer
if data.isLocal()
@mute()
@attach(data.stream())
else if data?.then?
data.then (res) =>
@attach(res)
.catch (err) =>
@error(err)
else
@error("Tried to attach invalid data")
error: (err) ->
# TODO: do more with dom
console.log(err)
clear: () ->
@attach()
mute: (muted=true) ->
@dom.muted = muted
toggleMute: () ->
@dom.muted = !@dom.muted