diff options
Diffstat (limited to 'htdocs')
-rw-r--r-- | htdocs/AudioBinding.js | 75 | ||||
-rw-r--r-- | htdocs/alsa-hal.html | 29 |
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> |