From 3a5d570add9a278e708c79f39e11595f4ce2296b Mon Sep 17 00:00:00 2001 From: DylanSpeiser-BMD Date: Wed, 12 Jun 2024 17:18:19 -0700 Subject: [PATCH] it actually looks good AND works! --- web-ui/BMD-Camera-Control.js | 278 ++++++++++++++++++----- web-ui/Screenshot 2024-06-12 171720.png | Bin 0 -> 123632 bytes web-ui/index.html | 258 ++++++++++++++++++--- web-ui/style.css | 288 +++++++++++++++++++----- web-ui/web-ui.js | 147 +++++++++++- 5 files changed, 826 insertions(+), 145 deletions(-) create mode 100644 web-ui/Screenshot 2024-06-12 171720.png diff --git a/web-ui/BMD-Camera-Control.js b/web-ui/BMD-Camera-Control.js index 2493558..33aabc7 100644 --- a/web-ui/BMD-Camera-Control.js +++ b/web-ui/BMD-Camera-Control.js @@ -19,9 +19,6 @@ class BMDCamera { // Current Transport Mode (string) transportMode; - - // Whether the transport is playing or not (boolean) - isPlaying; // Playback state (JSON object) playbackState; @@ -80,6 +77,9 @@ class BMDCamera { CCcolor; CClumacontribution; + // Keep track of unimplemented functions on the camera (array of strings) + UnimplementedFunctionality = []; + // ============= CONSTRUCTOR ================ constructor(hostname, index) { this.hostname = hostname; @@ -117,7 +117,6 @@ class BMDCamera { this.updateUISupportedCodecFormats(); this.updateUISupportedVideoFormats(); this.updateUITransportMode(); - this.updateUIisPlaying(); this.updateUIPlaybackState(); this.updateUIRecordState(); this.updateUITimecode(); @@ -133,14 +132,15 @@ class BMDCamera { this.updateUIshutter(); this.updateUIAutoExposureMode(); this.updateUIColorCorrection(); + this.updateUILinks(); } updateUIname() { - document.getElementsByClassName("cameraName")[this.index].innerHTML = this.name; + document.getElementById("cameraName").innerHTML = this.name; } updateUIhostname() { - //TBD + document.getElementById("hostnameInput").value = this.hostname; } updateUICodecFormat() { @@ -163,26 +163,25 @@ class BMDCamera { //TBD } - updateUIisPlaying() { - //TBD - } - updateUIPlaybackState() { //TBD } updateUIRecordState() { if (this.recordState.recording) { - document.getElementsByClassName("cameraControlsContainer")[this.index].classList.add("liveCam"); + document.getElementById("cameraControlHeadContainer").classList.add("liveCam"); + document.getElementById("cameraControlExpandedHeadContainer").classList.add("liveCam"); } else { - document.getElementsByClassName("cameraControlsContainer")[this.index].classList.remove("liveCam"); + document.getElementById("cameraControlHeadContainer").classList.remove("liveCam"); + document.getElementById("cameraControlExpandedHeadContainer").classList.remove("liveCam"); } } updateUITimecode() { + // Redo this to work with no leading 0 var tcString = parseInt(this.timecode.timecode.toString(16),10).toString().match(/.{1,2}/g).join(':'); - document.getElementsByClassName("timecodeLabel")[this.index].innerHTML = tcString; + document.getElementById("timecodeLabel").innerHTML = tcString; } updateUIPresets() { @@ -194,21 +193,21 @@ class BMDCamera { } updateUIAperture() { - document.getElementsByClassName("irisRange")[this.index].value = this.apertureNormalised; - document.getElementsByClassName("apertureStopsLabel")[this.index].innerHTML = this.apertureStop.toFixed(1); + document.getElementById("irisRange").value = this.apertureNormalised; + document.getElementById("apertureStopsLabel").innerHTML = this.apertureStop.toFixed(1); } updateUIZoom() { - document.getElementsByClassName("zoomRange")[this.index].value = this.zoomNormalised; - document.getElementsByClassName("zoomMMLabel")[this.index].innerHTML = this.zoomMM; + document.getElementById("zoomRange").value = this.zoomNormalised; + document.getElementById("zoomMMLabel").innerHTML = this.zoomMM; } updateUIFocus() { - document.getElementsByClassName("focusRange")[this.index].value = this.focusNormalised; + document.getElementById("focusRange").value = this.focusNormalised; } updateUIISO() { - // TBD + document.getElementById("ISOInput").value = this.ISO; } updateUIgain() { @@ -220,15 +219,15 @@ class BMDCamera { gainString = this.gain+"db" } - document.getElementsByClassName("gainSpan")[this.index].innerHTML = gainString; + document.getElementById("gainSpan").innerHTML = gainString; } updateUIWhiteBalance() { - document.getElementsByClassName("whiteBalanceSpan")[this.index].innerHTML = this.WhiteBalance+"K"; + document.getElementById("whiteBalanceSpan").innerHTML = this.WhiteBalance+"K"; } updateUINDStop() { - document.getElementsByClassName("ndFilterSpan")[this.index].innerHTML = this.NDStop; + document.getElementById("ndFilterSpan").innerHTML = this.NDStop; } updateUIshutter() { @@ -237,11 +236,15 @@ class BMDCamera { if ('shutterSpeed' in this.shutter) { shutterString = "1/"+this.shutter.shutterSpeed } else { - var shangleString = this.shutter.shutterAngle.toString(); - shutterString = shangleString.slice(0,3)+(shangleString.slice(3,4) == '0' ? '' : "."+shangleString.slice(3,4))+"°" + var shangleString = (this.shutter.shutterAngle / 100).toFixed(1).toString() + if (shangleString.indexOf(".0") > 0) { + shutterString = parseFloat(shangleString).toFixed(0)+"°"; + } else { + shutterString = shangleString+"°"; + } } - document.getElementsByClassName("shutterSpan")[this.index].innerHTML = shutterString; + document.getElementById("shutterSpan").innerHTML = shutterString; } updateUIAutoExposureMode() { @@ -249,7 +252,34 @@ class BMDCamera { } updateUIColorCorrection() { - //TBD + // Lift + document.getElementsByClassName("CClumaLabel")[0].innerHTML = this.CClift.luma.toFixed(2); + document.getElementsByClassName("CCredLabel")[0].innerHTML = this.CClift.red.toFixed(2); + document.getElementsByClassName("CCgreenLabel")[0].innerHTML = this.CClift.green.toFixed(2); + document.getElementsByClassName("CCblueLabel")[0].innerHTML = this.CClift.blue.toFixed(2); + + // Gamma + document.getElementsByClassName("CClumaLabel")[1].innerHTML = this.CCgamma.luma.toFixed(2); + document.getElementsByClassName("CCredLabel")[1].innerHTML = this.CCgamma.red.toFixed(2); + document.getElementsByClassName("CCgreenLabel")[1].innerHTML = this.CCgamma.green.toFixed(2); + document.getElementsByClassName("CCblueLabel")[1].innerHTML = this.CCgamma.blue.toFixed(2); + + // Gain + document.getElementsByClassName("CClumaLabel")[2].innerHTML = this.CCgain.luma.toFixed(2); + document.getElementsByClassName("CCredLabel")[2].innerHTML = this.CCgain.red.toFixed(2); + document.getElementsByClassName("CCgreenLabel")[2].innerHTML = this.CCgain.green.toFixed(2); + document.getElementsByClassName("CCblueLabel")[2].innerHTML = this.CCgain.blue.toFixed(2); + + // Offset + document.getElementsByClassName("CClumaLabel")[3].innerHTML = this.CCoffset.luma.toFixed(2); + document.getElementsByClassName("CCredLabel")[3].innerHTML = this.CCoffset.red.toFixed(2); + document.getElementsByClassName("CCgreenLabel")[3].innerHTML = this.CCoffset.green.toFixed(2); + document.getElementsByClassName("CCblueLabel")[3].innerHTML = this.CCoffset.blue.toFixed(2); + } + + updateUILinks() { + document.getElementById("documentationLink").href = "http://"+this.hostname+"/control/documentation.html"; + document.getElementById("mediaManagerLink").href = "http://"+this.hostname; } // =============== GETTERS ================== @@ -257,86 +287,82 @@ class BMDCamera { // name, hostname, APIaddress, index handled by constructor getCodecFormat() { - this.pullData("/system/codecFormat").then((value) => {this.codecFormat = value}); + this.pullData("/system/codecFormat").then((value) => {this.codecFormat = value; this.updateUICodecFormat()}); } getVideoFormat() { - this.pullData("/system/videoFormat").then((value) => {this.videoFormat = value}); + this.pullData("/system/videoFormat").then((value) => {this.videoFormat = value; this.updateUIVideoFormat()}); } getSupportedCodecFormats() { - this.pullData("/system/supportedCodecFormats").then((value) => {this.supportedCodecFormats = value}); + this.pullData("/system/supportedCodecFormats").then((value) => {this.supportedCodecFormats = value; this.updateUISupportedCodecFormats()}); } getSupportedVideoFormats() { - this.pullData("/system/supportedVideoFormats").then((value) => {this.supportedVideoFormats = value}); + this.pullData("/system/supportedVideoFormats").then((value) => {this.supportedVideoFormats = value; this.updateUISupportedVideoFormats()}); } getTransportMode() { - this.pullData("/transports/0").then((value) => {this.transportMode = value}); - } - - getIsPlaying() { - this.pullData("/transports/0/play").then((value) => {this.isPlaying = value}); + this.pullData("/transports/0").then((value) => {this.transportMode = value; this.updateUITransportMode()}); } getPlaybackState() { - this.pullData("/transports/0/playback").then((value) => {this.playbackState = value}); + this.pullData("/transports/0/playback").then((value) => {this.playbackState = value; this.updateUIPlaybackState()}); } getRecordState() { - this.pullData("/transports/0/record").then((value) => {this.recordState = value}); + this.pullData("/transports/0/record").then((value) => {this.recordState = value; this.updateUIRecordState()}); } getTimecode() { - this.pullData("/transports/0/timecode").then((value) => {this.timecode = value}); + this.pullData("/transports/0/timecode").then((value) => {this.timecode = value; this.updateUITimecode()}); this.pullData("/transports/0/timecode/source").then((value) => {this.timecode.source = value.source}); } getPresets() { - this.pullData("/presets").then((value) => {this.presets = value.presets}); + this.pullData("/presets").then((value) => {this.presets = value.presets; this.updateUIPresets()}); } getActivePreset() { - this.pullData("/presets/active").then((value) => {this.activePreset = value}); + this.pullData("/presets/active").then((value) => {this.activePreset = value; this.updateUIActivePreset()}); } getAperture() { - this.pullData("/lens/iris").then((value) => {this.apertureStop = value.apertureStop; this.apertureNormalised = value.normalised}); + this.pullData("/lens/iris").then((value) => {this.apertureStop = value.apertureStop; this.apertureNormalised = value.normalised; this.updateUIAperture()}); } getZoom() { - this.pullData("/lens/zoom").then((value) => {this.zoomMM = value.focalLength; this.zoomNormalised = value.normalised}); + this.pullData("/lens/zoom").then((value) => {this.zoomMM = value.focalLength; this.zoomNormalised = value.normalised; this.updateUIZoom()}); } getFocus() { - this.pullData("/lens/focus").then((value) => {this.focusNormalised = value.normalised}); + this.pullData("/lens/focus").then((value) => {this.focusNormalised = value.normalised; this.updateUIFocus()}); } getISO() { - this.pullData("/video/iso").then((value) => {this.ISO = value.iso}); + this.pullData("/video/iso").then((value) => {this.ISO = value.iso; this.updateUIISO()}); } getGain() { - this.pullData("/video/gain").then((value) => {this.gain = value.gain}); + this.pullData("/video/gain").then((value) => {this.gain = value.gain; this.updateUIgain()}); } getWhiteBalance() { this.pullData("/video/whiteBalance").then((value) => {this.WhiteBalance = value.whiteBalance}); - this.pullData("/video/whiteBalanceTint").then((value) => {this.WhiteBalanceTint = value.whiteBalanceTint}); + this.pullData("/video/whiteBalanceTint").then((value) => {this.WhiteBalanceTint = value.whiteBalanceTint; this.updateUIWhiteBalance()}); } getND() { - this.pullData("/video/ndFilter").then((value) => {this.NDStop = value.stop}); + this.pullData("/video/ndFilter").then((value) => {this.NDStop = value.stop; this.updateUINDStop()}); this.pullData("/video/ndFilter/displayMode").then((value) => {this.NDMode = value.displayMode}); } getShutter() { - this.pullData("/video/shutter").then((value) => {this.shutter = value}); + this.pullData("/video/shutter").then((value) => {this.shutter = value; this.updateUIshutter()}); } getAutoExposureMode() { - this.pullData("/video/autoExposure").then((value) => {this.AutoExposureMode = value}); + this.pullData("/video/autoExposure").then((value) => {this.AutoExposureMode = value; this.updateUIAutoExposureMode()}); } getColorCorrection() { @@ -346,7 +372,7 @@ class BMDCamera { this.pullData("/colorCorrection/offset").then((value) => {this.CCoffset = value}); this.pullData("/colorCorrection/contrast").then((value) => {this.CCcontrast = value}); this.pullData("/colorCorrection/color").then((value) => {this.CCcolor = value}); - this.pullData("/colorCorrection/lumaContribution").then((value) => {this.CClumacontribution = value}); + this.pullData("/colorCorrection/lumaContribution").then((value) => {this.CClumacontribution = value; this.updateUIColorCorrection()}); } getAllInfo() { @@ -355,7 +381,6 @@ class BMDCamera { this.getSupportedCodecFormats(); this.getSupportedVideoFormats(); this.getTransportMode(); - this.getIsPlaying(); this.getPlaybackState(); this.getRecordState(); this.getTimecode(); @@ -373,14 +398,130 @@ class BMDCamera { this.getColorCorrection(); } - // =============== Other Commands ======================= - doAutoFocus() { - this.pushData("/lens/focus/doAutoFocus") + // =============== SETTERS ================== + + // name, hostname, APIaddress, index should never have to be set + + setCodecFormat(newCodecFormatObject) { + this.pushData("/system/codecFormat",newCodecFormatObject).then(() => sleep(1000).then(() => this.getCodecFormat())); } - /* Timer Stuff */ - everySecond() { - this.refresh(); + setVideoFormat(newVideoFormatObject) { + this.pushData("/system/videoFormat",newVideoFormatObject).then(() => sleep(1000).then(() => this.getCodecFormat())); + } + + setTransportMode(newTransportModeString) { + this.pushData("/transports/0",{"mode": newTransportModeString}).then(() => sleep(1000).then(() => this.getTransportMode())); + } + + setPlaybackState(playbackStateObject) { + this.pushData("/transports/0/playback",playbackStateObject).then(() => sleep(1000).then(() => this.getPlaybackState())); + } + + sendPresetFile(file) { + sendRequest("POST",this.APIAddress+"/presets",file) + } + + setActivePreset(presetString) { + this.pushData("/presets/active",{"preset": presetString}).then(() => sleep(1000).then(() => this.getActivePreset())); + } + + setAperture(apertureNormalisedFloat) { + this.pushData("/lens/iris",{"normalised": apertureNormalisedFloat}).then(() => sleep(1000).then(() => this.getAperture())); + } + + setZoom(zoomNormalisedFloat) { + this.pushData("/lens/zoom",{"normalised": zoomNormalisedFloat}).then(() => sleep(1000).then(() => this.getZoom())); + } + + setFocus(focusNormalisedFloat) { + this.pushData("/lens/focus",{"normalised": focusNormalisedFloat}).then(() => sleep(1000).then(() => this.getFocus())); + } + + setISO(ISOint) { + this.pushData("/video/iso",{"iso":ISOint}).then(() => sleep(1000).then(() => this.getISO())); + } + + setGain(gainInt) { + this.pushData("/video/gain",{"gain":gainInt}).then(() => sleep(1000).then(() => this.getGain())); + } + + setWhiteBalance(whiteBalanceInt, whiteBalanceTintInt) { + this.pushData("/video/whiteBalance",{"whiteBalance": whiteBalanceInt}); + this.pushData("/video/whiteBalanceTint",{"whiteBalanceTint": whiteBalanceTintInt}).then(() => sleep(1000).then(() => this.getWhiteBalance())); + } + + setND(NDstopInt) { + this.pushData("/video/ndFilter",{"stop": NDstopInt}).then(() => sleep(1000).then(() => this.getND())); + } + + setNDDisplayMode(displayModeString) { + this.pushData("/video/ndFilter/displayMode",{"displayMode": displayModeString}).then(() => sleep(1000).then(() => this.getND())); + } + + // Accepts JSON obejcts with either shutterSpeed or shutterAngle properties + // Note that shutterAngle is 100x the displayed value + setShutter(shutterObject) { + this.pushData("/video/shutter",shutterObject).then(() => sleep(1000).then(() => this.getShutter())); + } + + setAutoExposureMode(AEmodeObject) { + this.pushData("/video/autoExposure",AEmodeObject).then(() => sleep(1000).then(() => this.getAutoExposureMode())); + } + + setCCLift(CCliftObject) { + this.pushData("/colorCorrection/lift",CCliftObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCGamma(CCgammaObject) { + this.pushData("/colorCorrection/gamma",CCgammaObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCGain(CCgainObject) { + this.pushData("/colorCorrection/gain",CCgainObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCOffset(CCoffsetObject) { + this.pushData("/colorCorrection/offset",CCoffsetObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCContrast(CCcontrastObject) { + this.pushData("/colorCorrection/contrast",CCcontrastObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCColor(CCcolorObject) { + this.pushData("/colorCorrection/color",CCcolorObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + setCCLumaContribuion(CClumacontributionObject) { + this.pushData("/colorCorrection/lumaContribution",CClumacontributionObject).then(() => sleep(1000).then(() => this.getColorCorrection())); + } + + // =============== Other Commands ======================= + doAutoFocus() { + this.pushData("/lens/focus/doAutoFocus").then(() => sleep(1500).then(() => this.getFocus())); + } + + play() { + this.pushData("/transports/0/play").then(() => sleep(1000).then(() => this.getPlaybackState())); + } + + record() { + this.pushData("/transports/0/record",{"recording": true}).then(() => { + sleep(2000).then(() => this.getRecordState()); + }); + } + + stopTransport() { + this.pushData("/transports/0/stop").then(() => { + sleep(2000).then(() => this.getPlaybackState()); + }); + } + + stopRecord() { + this.pushData("/transports/0/record",{"recording": false}).then(() => { + sleep(2000).then(() => this.getRecordState()); + }); } } @@ -398,8 +539,27 @@ async function sendRequest(method, url, data) { } } - xhttp.open(method, url, false); - xhttp.send(JSON.stringify(data)); + // Don't keep making API calls for unimplemented features + if (cameras[ci]) { + // First check if the camera exists. + if (cameras[ci].UnimplementedFunctionality.indexOf(url) < 0) { + // If everything is honky dory + + xhttp.open(method, url, false); + xhttp.send(JSON.stringify(data)); + } else { + // If everything is not honky dory + // do nothing + } + + if ((!responseObject) || (Object.hasOwn(responseObject,'error') && responseObject.error == "Not implemented for this device")) { + cameras[ci].UnimplementedFunctionality.push(url); + } + + } else { + xhttp.open(method, url, false); + xhttp.send(JSON.stringify(data)); + } return responseObject; } diff --git a/web-ui/Screenshot 2024-06-12 171720.png b/web-ui/Screenshot 2024-06-12 171720.png new file mode 100644 index 0000000000000000000000000000000000000000..27d7cf6633cc876b409f75c2a630e48be38d9152 GIT binary patch literal 123632 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 literal 0 HcmV?d00001 diff --git a/web-ui/index.html b/web-ui/index.html index b443a8b..6b9896e 100644 --- a/web-ui/index.html +++ b/web-ui/index.html @@ -24,71 +24,268 @@
- + CAM1 + | + CAM2 + | + CAM3 + | + CAM4 + | + CAM5 + | + CAM6 + | + CAM7 + | + CAM8
-
-
-

CAM1

+
+
+

CAM1

-
+
+ + Lift +
+ +
+ 0.00 + 0.00 + 0.00 + 0.00 +
+ +
+ Gamma +
+ +
+ 0.00 + 0.00 + 0.00 + 0.00 +
+ +
+ + Gain +
+ +
+ 0.00 + 0.00 + 0.00 + 0.00 +
+ +
+ + + Offset +
+ +
+ 0.00 + 0.00 + 0.00 + 0.00 +
+ +
-
+
FILTER - - 0 +
+ + 0 + +
GAIN - - +0db +
+ + +0db + +
SHUTTER - - 1/50 +
+ + 1/50 + +
BALANCE - - 5600K +
+ + 5600K + +
-
+
FOCUS - - + +
IRIS - - X.X + + X.X
ZOOM - - XXmm + + XXmm
-
-
-

TIMECODE

+
+
+

CAMERA NAME

+
+ + + + + + + + +
+

TIMECODE

-
- Hostname: - - + +
+
+

Connection

+ + + + + + + + + +
Hostname + + +
Send API Call + + + + + + + + + +
+
+ +
+

Presets

+ + + + + + + + + +
Preset Select + +
Upload a preset file
+
+ +
+

Exposure

+ + + + + + + + + + + + + +
ISO
AE Mode + +
AE Type + +
+ +
+ +
+

Contrast

+ + + + + + + + + +
Pivot
Adjust
+
+ +
+

Color

+ + + + + + + + + + + + + +
Hue
Saturation
Luma Contribution
+
@@ -97,6 +294,11 @@ \ No newline at end of file diff --git a/web-ui/style.css b/web-ui/style.css index 0e34d91..45e8201 100644 --- a/web-ui/style.css +++ b/web-ui/style.css @@ -1,3 +1,5 @@ +/* ============= WHOLE PAGE STYLES ================== */ + /* Load NotoSansDisplay Font from resources */ @font-face { font-family: 'NotoSansDisplay'; @@ -7,6 +9,7 @@ body { font-family: 'NotoSansDisplay', sans-serif; + font-weight: 100; margin: 0px; overflow: hidden; background: #181818; @@ -22,6 +25,91 @@ body { display: inline-flex; } +/* Inputs */ + +input[type=text] { + border-radius: 0.5vh; + background: rgb(30, 30, 30); + color: white; + height: 2em; + width: 10vw; + border: 1px solid rgb(20, 20, 20); + text-align: center; + font-family: 'NotoSansDisplay', sans-serif; + outline: none; + margin: 0px 0.5vw; +} + +input[type=text]:focus { + border: 1px solid rgb(150, 58, 0); +} + +input[type=number] { + border-radius: 0.5vh; + background: rgb(30, 30, 30); + color: white; + height: 2em; + width: 4.666vw; + border: 1px solid rgb(20, 20, 20); + text-align: center; + font-family: 'NotoSansDisplay', sans-serif; + outline: none; +} + +input[type=number]:focus { + border: 1px solid rgb(150, 58, 0); +} + +input[type=range][orient=vertical] { + writing-mode: vertical-lr; direction: rtl; + width: 2vw; + height: 80%; +} + +select { + border-radius: 0.5vh; + background: rgb(30, 30, 30); + color: white; + height: 2em; + width: 5vw; + border: 1px solid rgb(20, 20, 20); + text-align: center; + font-family: 'NotoSansDisplay', sans-serif; + outline: none; +} + +select:focus { + border: 1px solid rgb(150, 58, 0); +} + +button { + font-family: 'NotoSansDisplay', sans-serif; + background: #181818; + background: linear-gradient(0deg, #232323 0%, #404040 100%); + border: 0.3vh solid black; + outline: 0.3vh solid #404040; + color: white; + height: fit-content; + width: fit-content; + border-radius: 0.4em; + padding: 0.5vh 1vw; + margin: 1vh; +} + +button:hover { + background: #313131; + background: linear-gradient(0deg, #313131 0%, #4d4d4d 100%); +} + +button:active { + background: #181818; + box-shadow: inset 0 0 1em #090909; +} + +input[type=file]:focus { + border: 1px solid rgb(150, 58, 0); +} + /* Horizontal Container Styles */ #headerContainer { background: #181818; @@ -34,9 +122,9 @@ body { } #headerContainer h1 { - font-weight: 100; color: white; margin-left: 1.3vw; + font-weight: 100; } #cameraSelectContainer { @@ -44,6 +132,27 @@ body { border: 1px solid black; width: 100%; height: 3.53vh; + color: #474747; + font-size: 1em; + align-items: center; + justify-content: center; +} + +#cameraSelectContainer span { + height: fit-content; +} + +#cameraSelectContainer .camSelectSeparator { + margin: 0px 0.5em; +} + +.cameraSwitchLabel a { + text-decoration: none; + color: #474747; +} + +.cameraSwitchLabel.selectedCam a { + color: #e66c01; } #allCamerasContainer { @@ -64,10 +173,26 @@ body { height: 5vh; position: fixed; bottom: 0; + align-items: center; + justify-content: space-between; +} + +#footerContainer button { + padding: 0.4em 0.8em; + font-size: x-small; +} + +#footerLinks span { + margin-right: 1.25vw; +} + +#footerLinks a { + text-decoration: none; + color: #e66c01; } /* Camera Controls Container */ -.cameraControlsContainer { +#cameraControlsContainer { width: 15vw; height: 100%; background: #282828; @@ -76,39 +201,98 @@ body { flex-shrink: 0; } -.cameraControlsContainer.selectedCam { - background: #323232; -} - -.liveCam .cameraControlHeadContainer { +.liveCam { background: rgb(184,3,16); background: linear-gradient(90deg, rgba(184,3,16,1) 0%, rgba(255,0,19,1) 15%, rgba(255,0,19,1) 85%, rgba(184,3,16,1) 100%); } -.cameraControlHeadContainer { +#cameraControlHeadContainer { width: 100%; height: 5vh; border-bottom: 2px solid black; align-items: center; + color: white; } -.cameraName { - font-weight: 100; - color: white; +h2 { margin-inline-start: 0.6em; margin-inline-end: 0.6em; + font-weight: 100; +} + +#cameraName { + } /* Color Correction Section */ -.cameraControlColorCorrectionContainer { +#cameraControlColorCorrectionContainer { width: 100%; height: 33vh; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +#cameraControlLGGTabs { + margin-top: 2vh; + border: 1px solid #101010; + border-radius: 2.5vh; + overflow: hidden; +} + + +#cameraControlLGGTabs a { + background: #181818; + background: linear-gradient(0deg, #181818 0%, #303030 100%); + + padding: 0.1vh 1.25vw 0.25vh 1.25vw; + + border-left: 1px solid #101010; + + text-decoration: none; + color: #474747; +} + +#cameraControlLGGTabs a.selectedTab { + color: #e66c01; +} + +.ccExposureSettingValueContainer .expAdjArr { + text-decoration: none; + color: #60606000; +} + +.ccExposureSettingValueContainer:hover .expAdjArr { + color: #606060ff; +} + +.ccExposureSettingValueContainer:hover .expAdjArr:hover { + color: #474747; +} + +.ccExposureSettingValueContainer:hover .expAdjArr:active { + color: #e66c01; +} + +#cameraControlColorCorrectionBottomContainer { + margin-bottom: 1em; + display: inline-flex; + align-items: center; +} + +#cameraControlColorCorrectionBottomContainer button { + margin: 0px 0.5em; +} + +#cameraControlColorCorrectionNumbersContainer span { + margin: 0px 0.5em; + text-decoration: underline 3px; } /* Exposure Section */ -.cameraControlExposureContainer { +#cameraControlExposureContainer { width: 100%; - height: 4.4vh; + height: 4.7vh; background-color: #171717; border-top: 1px solid #2d2d2d; border-bottom: 1px solid #2d2d2d; @@ -117,11 +301,6 @@ body { overflow: hidden; } -.selectedCam .cameraControlExposureContainer { - border-top: 1px solid #3a3a3a; - border-bottom: 1px solid #3a3a3a; -} - .ccExposureSettingContainer { display: flex; color: white; @@ -141,7 +320,7 @@ body { } /* Lens Stuff */ -.cameraControlLensContainer { +#cameraControlLensContainer { width: 100%; height: 41.9vh; border-bottom: 1px solid black; @@ -159,19 +338,20 @@ body { margin-bottom: 1em; } -.lensSliderContainer button { - margin-top: 1em; - margin-bottom: 1em; +.circleButton { + width: 2em; + height: 2em; + border-radius: 1em; + padding: 0; + margin: 1em 0; } -input[type=range][orient=vertical] { - -webkit-appearance: slider-vertical; - width: 2vw; - height: 80%; +#transportControls .circleButton { + margin: 0 0.5em; } /* Right side (expanded) */ -.cameraControlsContainerExpanded { +#cameraControlsContainerExpanded { width: 84.75vw; height: 100%; background: #282828; @@ -180,39 +360,43 @@ input[type=range][orient=vertical] { flex-shrink: 0; } -.cameraControlExpandedHeadContainer { +#cameraControlExpandedHeadContainer { width: 100%; height: 5vh; border-bottom: 2px solid black; align-items: center; - justify-content: center; + justify-content: space-between; } -.timecodeLabel { +#cameraControlExpandedBodyContainer { + flex-direction: column; + display: inline-flex; + height: inherit; + justify-content: space-around; +} + +#timecodeLabel { + +} + +/* Table Controls */ + +.tableControl { + margin-left: 1.5vw; +} + +.tableControl h3 { font-weight: 100; - color: white; - margin-inline-start: 0.6em; - margin-inline-end: 0.6em; + margin: 0.5vh 0vw; } -/* Connection Settings */ -.connectionContainer { - margin: 1.5vw; +table, td { + margin-left: 0.5vw; + /* border: 1px solid white; */ + border-collapse: collapse; + padding: 0.1vw 1vw; } -input[type=text] { - border-radius: 0.5vh; - background: rgb(30, 30, 30); - color: white; - height: 2em; - width: 10vw; - border: 1px solid rgb(20, 20, 20); - margin-left: 1vw; - text-align: center; - font-family: 'NotoSansDisplay', sans-serif; - outline: none; -} - -input[type=text]:focus { - border: 1px solid rgb(150, 58, 0); +td, tr { + align-items: center; } \ No newline at end of file diff --git a/web-ui/web-ui.js b/web-ui/web-ui.js index 41c1c23..00ac121 100644 --- a/web-ui/web-ui.js +++ b/web-ui/web-ui.js @@ -1,20 +1,38 @@ /* Global variables */ var cameras = []; var ci = 0; +var ccMode = 0; function bodyOnLoad() { - //let intervalID = setInterval(timerCallFunction, 1000); + let intervalIDOne = setInterval(timerCallFunction1, 1000); // Tem second timer for refreshing everything + let intervalIDTen = setInterval(timerCallFunction10, 10000); // Tem second timer for refreshing everything - let newCamHostname = document.getElementsByClassName("hostnameInput")[ci].value; + let newCamHostname = document.getElementById("hostnameInput").value; if (newCamHostname) { cameras[ci] = new BMDCamera(newCamHostname,ci); } } -// function timerCallFunction() { -// cameras.forEach((camera) => camera.everySecond()); -// } +// One Second Timer Call +function timerCallFunction1() { + if (cameras[ci]) { + cameras[ci].getRecordState(); + cameras[ci].getPlaybackState(); + cameras[ci].getTimecode(); + + cameras[ci].updateUIRecordState(); + cameras[ci].updateUIPlaybackState(); + cameras[ci].updateUITimecode(); + } +} + +// Ten Second Timer Call +function timerCallFunction10() { + if (cameras[ci]) { + cameras[ci].refresh(); + } +} function textInputTrigger(element) { if (event.key === 'Enter') { @@ -22,6 +40,124 @@ function textInputTrigger(element) { } } +function switchCamera(index) { + ci = index; + + if (cameras[ci]) { + cameras[ci].refresh(); + } + + for (var i = 0; i < 8; i++) { + if (i == ci) { + document.getElementsByClassName("cameraSwitchLabel")[i].classList.add("selectedCam"); + } else { + document.getElementsByClassName("cameraSwitchLabel")[i].classList.remove("selectedCam"); + } + } + + document.getElementById("cameraNumberLabel").innerHTML = "CAM"+(ci+1); +} + +function setCCMode(mode) { + if (mode == 0) { + // Lift + + } else if (mode == 1) { + // Gamma + + } else { + // Gain + + } + + for (var i = 0; i < 3; i++) { + if (i == mode) { + document.getElementsByClassName("ccTabLabel")[i].classList.add("selectedTab"); + } else { + document.getElementsByClassName("ccTabLabel")[i].classList.remove("selectedTab"); + } + } +} + +/* Control Calling Functions */ + +function decreaseND() { + cameras[ci].setND(cameras[ci].NDStop-2); +} + +function increaseND() { + cameras[ci].setND(cameras[ci].NDStop+2); +} + +function decreaseGain() { + cameras[ci].setGain(cameras[ci].gain-2); +} + +function increaseGain() { + cameras[ci].setGain(cameras[ci].gain+2); +} + +function decreaseShutter() { + let cam = cameras[ci]; + + if ('shutterSpeed' in cam.shutter) { + cam.setShutter({"shutterSpeed":cam.shutter.shutterSpeed+10}); + } else { + cam.setShutter({"shutterAngle": cam.shutter.shutterAngle-1000}); + } +} + +function increaseShutter() { + let cam = cameras[ci]; + + if ('shutterSpeed' in cam.shutter) { + cam.setShutter({"shutterSpeed":cam.shutter.shutterSpeed-10}); + } else { + cam.setShutter({"shutterAngle": cam.shutter.shutterAngle+1000}); + } +} + +function decreaseWhiteBalance() { + cameras[ci].setWhiteBalance(cameras[ci].WhiteBalance-50,cameras[ci].WhiteBalanceTint); +} + +function increaseWhiteBalance() { + cameras[ci].setWhiteBalance(cameras[ci].WhiteBalance+50,cameras[ci].WhiteBalanceTint); +} + +// 0: lift, 1: gamma, 2: gain, 3: offset +function setCCFromUI(which) { + let lumaFloat = parseFloat(document.getElementsByClassName("CClumaLabel")[which].innerHTML); + let redFloat = parseFloat(document.getElementsByClassName("CCredLabel")[which].innerHTML); + let greenFloat = parseFloat(document.getElementsByClassName("CCgreenLabel")[which].innerHTML); + let blueFloat = parseFloat(document.getElementsByClassName("CCblueLabel")[which].innerHTML); + + let ccobject = {"red": redFloat, "green": greenFloat, "blue": blueFloat, "luma": lumaFloat}; + + if (which == 0) { + cameras[ci].setCCLift(ccobject); + } else if (which == 1) { + cameras[ci].setCCGamma(ccobject); + } else if (which == 2) { + cameras[ci].setCCGain(ccobject); + } else { + cameras[ci].setCCOffset(ccobject); + } +} + +// 0: lift, 1: gamma, 2: gain, 3: offset +function resetCC(which) { + if (which == 0) { + cameras[ci].setCCLift({"red": 0.0, "green": 0.0, "blue": 0.0, "luma": 0.0}); + } else if (which == 1) { + cameras[ci].setCCGamma({"red": 0.0, "green": 0.0, "blue": 0.0, "luma": 0.0}); + } else if (which == 2) { + cameras[ci].setCCGain({"red": 1.0, "green": 1.0, "blue": 1.0, "luma": 1.0}); + } else { + cameras[ci].setCCOffset({"red": 0.0, "green": 0.0, "blue": 0.0, "luma": 0.0}); + } +} + function makeFakeCamera() { cam = new BMDCamera("Studio-Camera-6K-Pro.local",0) return Object.assign(cam,{ @@ -32,7 +168,6 @@ function makeFakeCamera() { "transportMode": { "mode": "InputPreview" }, - "isPlaying": false, "playbackState": { "loop": false, "position": 0,