]> jfr.im git - irc/quakenet/qwebirc.git/blob - js/sound.js
Merge.
[irc/quakenet/qwebirc.git] / js / sound.js
1 qwebirc.sound.domReady = false;
2 window.addEvent("domready", function() {
3 qwebirc.sound.domReady = true;
4 });
5
6 qwebirc.sound.SoundPlayer = new Class({
7 Implements: [Events],
8 initialize: function() {
9 this.loadingSWF = false;
10 this.loadedSWF = false;
11 },
12 go: function() {
13 if(qwebirc.sound.domReady) {
14 this.loadSoundManager();
15 } else {
16 window.addEvent("domready", function() {
17 this.loadSoundManager();
18 }.bind(this));
19 }
20 },
21 loadSoundManager: function() {
22 if(this.loadingSWF)
23 return;
24 this.loadingSWF = true;
25 if(eval("typeof soundManager") != "undefined") {
26 this.loadedSWF = true;
27 this.fireEvent("ready");
28 return;
29 }
30
31 qwebirc.util.importJS(qwebirc.global.staticBaseURL + "js/" + (QWEBIRC_DEBUG?"soundmanager2":"soundmanager2-nodebug-jsmin") + ".js", "soundManager", function() {
32 soundManager.url = qwebirc.global.staticBaseURL + "sound/";
33
34 var debugMode = false;
35 soundManager.debugMode = debugMode;
36 soundManager.useConsole = debugMode;
37 soundManager.onload = function() {
38 this.loadedSWF = true;
39 this.fireEvent("ready");
40 }.bind(this);
41 soundManager.beginDelayedInit();
42 }.bind(this));
43 },
44 createSound: function(name, src) {
45 try {
46 soundManager.createSound(name, src);
47 } catch(e) {
48 /* ignore... flashblock triggers this */
49 }
50 },
51 playSound: function(name) {
52 try {
53 soundManager.play(name);
54 } catch(e) {
55 /* ignore... */
56 }
57 },
58 beep: function() {
59 if(!this.beepLoaded) {
60 this.createSound("beep", qwebirc.global.staticBaseURL + "sound/beep3.mp3");
61 this.beepLoaded = true;
62 }
63 this.playSound("beep");
64 }
65 });