aboutsummaryrefslogtreecommitdiffstats
path: root/htdocs
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs')
-rw-r--r--htdocs/AudioBinding.js75
-rw-r--r--htdocs/alsa-hal.html29
2 files changed, 74 insertions, 30 deletions
diff --git a/htdocs/AudioBinding.js b/htdocs/AudioBinding.js
index 9771726..7105b20 100644
--- a/htdocs/AudioBinding.js
+++ b/htdocs/AudioBinding.js
@@ -1,5 +1,6 @@
var afb = new AFB("api", "mysecret");
var ws;
+ var halapi="HALNotSelected";
var evtidx=0;
function getParameterByName(name, url) {
@@ -26,25 +27,31 @@
var quiet=getParameterByName("quiet");
if (!quiet) quiet="99";
-
- function init() {
- ws = new afb.ws(onopen, onabort);
- }
- function onopen() {
- document.getElementById("main").style.visibility = "visible";
- document.getElementById("connected").innerHTML = "Binder WS Active";
- document.getElementById("connected").style.background = "lightgreen";
- ws.onevent("*", gotevent);
- }
+
- function onabort() {
- document.getElementById("main").style.visibility = "hidden";
- document.getElementById("connected").innerHTML = "Connected Closed";
- document.getElementById("connected").style.background = "red";
+ function init(elemid, api, verb, query) {
+
+ function onopen() {
+ // check for active HALs
+ probeActiveHal (elemid, api, verb, query);
+
+ document.getElementById("main").style.visibility = "visible";
+ document.getElementById("connected").innerHTML = "Binder WS Active";
+ document.getElementById("connected").style.background = "lightgreen";
+ ws.onevent("*", gotevent);
+ }
+ function onabort() {
+ document.getElementById("main").style.visibility = "hidden";
+ document.getElementById("connected").innerHTML = "Connected Closed";
+ document.getElementById("connected").style.background = "red";
+
+ }
+
+ ws = new afb.ws(onopen, onabort);
}
-
+
function replyok(obj) {
console.log("replyok:" + JSON.stringify(obj));
document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj);
@@ -67,9 +74,43 @@
ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr);
}
-
+
+ // On button click from HTML page
function callbinder(api, verb, query) {
console.log ("subscribe api="+api+" verb="+verb+" query=" +query);
document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")";
ws.call(api+"/"+verb, query).then(replyok, replyerr);
- } \ No newline at end of file
+ }
+
+
+ // Retrieve the list of active HAL
+ function probeActiveHal (elemid, api, verb, query) {
+ var selectobj = document.getElementById(elemid);
+
+ // onlick update selected HAL api
+ selectobj.onclick=function(){
+ halapi= this.value;
+ console.log ("New Default HAL=" + halapi);
+ };
+
+ function gotit (result) {
+
+ // display response as for normal onclick action
+ replyok(result);
+ var response=result.response;
+
+ // fulfill select with avaliable active HAL
+ for (idx=0; idx<response.length; idx++) {
+ console.log ("probeActiveHal =" + response[idx].shortname);
+ var opt = document.createElement('option');
+ opt.value = response[idx].api;
+ opt.text = response[idx].shortname;
+ selectobj.appendChild(opt);
+ }
+
+ halapi= selectobj.value;
+ }
+
+ // request lowlevel ALSA to get API list
+ ws.call(api+"/"+verb, query).then(gotit, replyerr);
+ }
diff --git a/htdocs/alsa-hal.html b/htdocs/alsa-hal.html
index 15c1661..ce48ff3 100644
--- a/htdocs/alsa-hal.html
+++ b/htdocs/alsa-hal.html
@@ -4,24 +4,27 @@
<script type="text/javascript" src="AFB-websock.js"></script>
<script type="text/javascript" src="AudioBinding.js"></script>
+</head>
+
+<body onload="init('hal_registry','alsacore', 'hallist')">
+
<b> references</b>
- <ol>
- <li>http://localhost:1234/alsa-core.html?haldev=scarlett-usb</li>
- </ol>
+
+ <h1>Simple AlsaHAL tests</h1>
+ <button id="connected" onclick="init('hal_registry','alsacore', 'hallist')">Binder WS Fail</button>
+ <br><br>
+ <b>Selected HAL </b>
+ <select id='hal_registry'></select>
+ <br>
-<body onload="init();">
- <h1>Hello world test</h1>
- <button id="connected" onclick="init()">Binder WS Fail</button></li>
<br>
<ol>
- <li><button onclick="callbinder('alsacore','hallist')">List Existing HAL</button></li>
-
- <li><button onclick="callbinder(haldev,'listctls')">List Active HAL Controls </button></li>
- <br>
- <li><button onclick="callbinder(haldev,'getctls', {label:'Master_Playback_Volume'})">Get {label:'Master_Playback_Volume'}</button></li>
- <li><button onclick="callbinder(haldev,'getctls', [{tag:4},{tag:5}])">Get[{tag:4},{tag:5}]</button></li>
- <li><button onclick="callbinder(haldev,'getctls', [4,5])">Get [4,5]</button></li>
+
+ <li><button onclick="callbinder(halapi,'listctls')">List Selected HAL Controls </button></li>
+ <li><button onclick="callbinder(halapi,'getctls', {label:'Master_Playback_Volume'})">Get {label:'Master_Playback_Volume'}</button></li>
+ <li><button onclick="callbinder(halapi,'getctls', [{tag:4},{tag:5}])">Get[{tag:4},{tag:5}]</button></li>
+ <li><button onclick="callbinder(halapi,'getctls', [4,5])">Get [4,5]</button></li>
<br>
</ol>