aboutsummaryrefslogtreecommitdiffstats
path: root/twaudio.js
blob: 218a36586b657dd8a0a0e1f2ad59aa96babc3238 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// INFO //
var INFO = 
<plugin name="twaudio.js" version="0.1"
        summary="twaud.io player controller"
        href="http://github.com/vimpr/vimperator-plugins/blob/master/twaudio.js"
        xmlns="http://vimperator.org/namespaces/liberator">
  <author email="mitsugu.oyama@gmail.com">Mitsugu Oyama</author>
  <license href="http://opensource.org/licenses/mit-license.php">MIT</license>
  <project name="Vimperator" minVersion="2.3"/>
  <p>twaud.io player controller.</p>
  <item>
    <tags>'twaudio'</tags>
    <spec>:twp<oa>lay</oa></spec>
<!--
    実装するか未定jQueryが許さないかも
    <spec>:twv<oa>olume</oa> <oa>level</oa></spec>
-->
    <description>
      <p>twaud.io player controller.</p>
    </description>
  </item>
</plugin>;

commands.addUserCommand(
  ['twp[lay]'],
  'toggle to play button',
  function(){
    let contents=gBrowser.selectedBrowser.contentDocument;
    // twaud.ioのjQueryの使い方によりマウス・イベントをエミュレート
    // するしかないっぽい。
    let evt=contents.createEvent("MouseEvents");
    evt.initMouseEvent(
      'click',
      true, // canBubble
      true, // cancelable
      window, // view
      0, // detail
      0, // screenX
      0, // screenY
      0, // clientX
      0, // clientY
      false, // ctrlKey
      false, // altKey
      false, // shiftKey
      false, // metaKey
      0, // button
      null //relatedTarget
    ); 
    let btnPlay=contents.getElementById('play0');
    if(null==btnPlay.getAttribute('style')){ // for twaud.io's bug
      contents.location.reload();
    }else if('display: block;'==btnPlay.getAttribute('style')){
      btnPlay.dispatchEvent(evt);
    }else{
      let btnPause=contents.getElementById('pause0');
      btnPause.dispatchEvent(evt);
    }
  },
  {
    literal: false
  },
  true
);

/*
実装するか未定。jQueryが許さないかも。
commands.addUserCommand(
  ['twv[olume]'],
  'set volume of twaud.io player.',
  function(args){
    if(1!=args.length){
      liberator.echoerr('argument error');
      return false;
    }
  },
  {
    literal: false
  },
  true
);
*/