Merge branch 'master' into UCS_Interface_Cleanup
[apps/agl-service-unicens.git] / htdocs / AudioBinding.js
1     var afb = new AFB("api", "mysecret");
2     var ws;
3     var evtidx=0;
4
5     function getParameterByName(name, url) {
6         if (!url) {
7           url = window.location.href;
8         }
9         name = name.replace(/[\[\]]/g, "\\$&");
10         var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
11             results = regex.exec(url);
12         if (!results) return null;
13         if (!results[2]) return '';
14         return decodeURIComponent(results[2].replace(/\+/g, " "));
15     }
16
17     // default soundcard is "PCH"
18     var devid=getParameterByName("devid");
19     if (!devid) devid="hw:0";
20
21     var sndname=getParameterByName("sndname");
22     if (!sndname) sndname="PCH";
23
24     var quiet=getParameterByName("quiet");
25     if (!quiet) quiet="99";
26
27     function init() {
28             ws = new afb.ws(onopen, onabort);
29     }
30
31     function onopen() {
32             document.getElementById("main").style.visibility = "visible";
33             document.getElementById("connected").innerHTML = "Binder WS Active";
34             document.getElementById("connected").style.background  = "lightgreen";
35             ws.onevent("*", gotevent);
36     }
37
38     function onabort() {
39             document.getElementById("main").style.visibility = "hidden";
40             document.getElementById("connected").innerHTML = "Connected Closed";
41             document.getElementById("connected").style.background  = "red";
42
43     }
44
45     function replyok(obj) {
46             console.log("replyok:" + JSON.stringify(obj));
47             document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj);
48     }
49
50     function replyerr(obj) {
51             console.log("replyerr:" + JSON.stringify(obj));
52             document.getElementById("output").innerHTML = "ERROR: "+JSON.stringify(obj);
53     }
54
55     function gotevent(obj) {
56             console.log("gotevent:" + JSON.stringify(obj));
57             document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj);
58     }
59
60     function send(message) {
61             var api = document.getElementById("api").value;
62             var verb = document.getElementById("verb").value;
63             document.getElementById("question").innerHTML = "subscribe: "+api+"/"+verb + " (" + JSON.stringify(message) +")";
64             ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr);
65     }
66
67
68     function callbinder(api, verb, query) {
69             console.log ("subscribe api="+api+" verb="+verb+" query=" +query);
70             document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")";
71             ws.call(api+"/"+verb, query).then(replyok, replyerr);
72     }