/* viewport.js */ function cjax(object){ let csrf_token = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); $.ajax({ url: object.url, type: object.type || 'POST', data: object.data || {}, headers: { 'X-CSRF-Token': csrf_token }, success: object.success, error: object.error }); } // Add cjax as a jQuery method $.cjax = cjax; function switchMassStorageToRemote(){ $.cjax({ url: '/aux/switchusbremote', type: 'GET', success: function(response) { //alert('Mass Storage switched to Remote successfully.'); }, error: function(xhr, status, error) { alert('Error switching Mass Storage to Remote: ' + error); } }); } function switchMassStorageToKvm(){ $.cjax({ url: '/aux/switchusbkvm', type: 'GET', success: function(response) { //alert('Mass Storage switched to KVM successfully.'); }, error: function(xhr, status, error) { alert('Error switching Mass Storage to KVM: ' + error); } }); } function toggleFullScreen(){ let elem = document.documentElement; if (!document.fullscreenElement) { if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.mozRequestFullScreen) { // Firefox elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { // Chrome, Safari, Opera elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { // IE/Edge elem.msRequestFullscreen(); } } else { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } } } function measureMJPEGfps(imgId, callback, intervalMs = 1000) { let frameCount = 0; let lastSrc = ''; const img = document.getElementById(imgId); if (!img) { console.error('Image element not found'); return; } // Listen for src changes (for MJPEG, the src stays the same, but the image data updates) img.addEventListener('load', () => { frameCount++; }); // Periodically report FPS setInterval(() => { callback(frameCount); frameCount = 0; }, intervalMs); } // Example usage: measureMJPEGfps('remoteCapture', function(fps) { document.title = `${fps} fps| DezuKVM`; });