|
405 | 405 | <option value="0">96x96</option> |
406 | 406 | </select> |
407 | 407 | </div> |
408 | | - <div class="input-group" id="contrast-group"> |
| 408 | + |
| 409 | + <hr style="width:75%"> |
| 410 | + |
| 411 | + <div class="input-group" id="contrast-group"> |
409 | 412 | <label for="contrast">Contrast</label> |
410 | 413 | <div class="range-min">-2</div> |
411 | 414 | <input type="range" id="contrast" min="0" max="127" value="64" class="default-action"> |
412 | 415 | <div class="range-max">2</div> |
413 | 416 | </div> |
414 | 417 |
|
| 418 | + <div class="input-group" id="saturation-group"> |
| 419 | + <label for="saturation">Saturation</label> |
| 420 | + <div class="range-min">0</div> |
| 421 | + <input type="range" id="saturation" min="0" max="255" value="64" class="default-action"> |
| 422 | + <div class="range-max">255</div> |
| 423 | + </div> |
| 424 | + |
415 | 425 | <div class="input-group" id="special_effect-group"> |
416 | 426 | <label for="special_effect">Special Effect</label> |
417 | 427 | <select id="special_effect" class="default-action"> |
|
464 | 474 | <label class="slider" for="colorbar"></label> |
465 | 475 | </div> |
466 | 476 | </div> |
467 | | - <section id="buttons"> |
| 477 | + |
| 478 | + <hr style="width:75%"> |
| 479 | + |
| 480 | + <section id="buttons"> |
468 | 481 | <button id="get-still">Get Still</button> |
469 | 482 | <button id="toggle-stream">Start Stream</button> |
| 483 | + <button id="toggle-qr">Start Scan QR</button> |
470 | 484 | <!-- <button id="face_enroll" class="disabled" disabled="disabled">Enroll Face</button> --> |
471 | 485 | </section> |
472 | 486 |
|
|
773 | 787 | const viewContainer = document.getElementById('stream-container') |
774 | 788 | const stillButton = document.getElementById('get-still') |
775 | 789 | const streamButton = document.getElementById('toggle-stream') |
| 790 | + const qrButton = document.getElementById('toggle-qr') |
776 | 791 | const closeButton = document.getElementById('close-stream') |
777 | 792 | const saveButton = document.getElementById('save-still') |
778 | 793 | const ledGroup = document.getElementById('led-group') |
|
788 | 803 | streamButton.innerHTML = 'Stop Stream' |
789 | 804 | } |
790 | 805 |
|
| 806 | + const stopQR = () => { |
| 807 | + window.stop(); |
| 808 | + qrButton.innerHTML = 'Start Scan QR' |
| 809 | + } |
| 810 | + |
| 811 | + const startQR = () => { |
| 812 | + view.src = `${streamUrl}/qr` |
| 813 | + show(viewContainer) |
| 814 | + qrButton.innerHTML = 'Stop Scan QR' |
| 815 | + } |
| 816 | + |
| 817 | + |
791 | 818 | // Attach actions to buttons |
792 | 819 | stillButton.onclick = () => { |
793 | 820 | stopStream() |
| 821 | + stopQR(); |
794 | 822 | view.src = `${baseHost}/capture?_cb=${Date.now()}` |
795 | 823 | show(viewContainer) |
796 | 824 | } |
797 | 825 |
|
798 | 826 | closeButton.onclick = () => { |
799 | 827 | stopStream() |
| 828 | + stopQR(); |
800 | 829 | hide(viewContainer) |
801 | 830 | } |
802 | 831 |
|
|
805 | 834 | if (streamEnabled) { |
806 | 835 | stopStream() |
807 | 836 | } else { |
| 837 | + stopQR(); |
808 | 838 | startStream() |
809 | 839 | } |
810 | 840 | } |
811 | 841 |
|
| 842 | + qrButton.onclick = () => { |
| 843 | + const qrEnabled = qrButton.innerHTML === 'Stop Scan QR' |
| 844 | + if (qrEnabled) { |
| 845 | + stopQR() |
| 846 | + } else { |
| 847 | + stopStream() |
| 848 | + startQR() |
| 849 | + } |
| 850 | + } |
| 851 | + |
812 | 852 | saveButton.onclick = () => { |
813 | 853 | var canvas = document.createElement("canvas"); |
814 | 854 | canvas.width = view.width; |
|
0 commit comments