4chan-x/src/Images/Volume.coffee
2015-01-31 21:03:01 -08:00

43 lines
1.4 KiB
CoffeeScript

Volume =
init: ->
return unless g.BOARD.ID in ['gif', 'wsg'] and
g.VIEW in ['index', 'thread'] and
(Conf['Image Expansion'] or Conf['Image Hover'] or Conf['Image Hover in Catalog'] or Conf['Gallery'])
unmuteEntry = UI.checkbox 'Allow Sound', ' Allow Sound'
unmuteEntry.title = Config.main['Images and Videos']['Allow Sound'][1]
volumeEntry = $.el 'label',
title: 'Default volume for videos.'
$.extend volumeEntry,
<%= html('<input name="Default Volume" type="range" min="0" max="1" step="0.01" value="${Conf["Default Volume"]}"> Volume') %>
@inputs =
unmute: unmuteEntry.firstElementChild
volume: volumeEntry.firstElementChild
$.on @inputs.unmute, 'change', $.cb.checked
$.on @inputs.volume, 'change', $.cb.value
$.sync 'Allow Sound', (x) -> Volume.inputs.unmute.checked = x
$.sync 'Default Volume', (x) -> Volume.inputs.volume.value = x
Header.menu.addEntry {el: unmuteEntry, order: 200}
Header.menu.addEntry {el: volumeEntry, order: 201}
setup: (video, isNew=true) ->
video.muted = !Conf['Allow Sound']
video.volume = Conf['Default Volume']
$.on video, 'volumechange', Volume.change if isNew
change: ->
{muted, volume} = @
items =
'Allow Sound': !muted
'Default Volume': volume
$.set items
$.extend Conf, items
if Volume.inputs
Volume.inputs.unmute.checked = !muted
Volume.inputs.volume.value = volume