From 36bc6d75d201045163a08abfd7a9c0f86ad7e275 Mon Sep 17 00:00:00 2001 From: Alezia Kurdis <60075796+AleziaKurdis@users.noreply.github.com> Date: Mon, 22 Aug 2022 22:54:39 -0400 Subject: [PATCH] Add the "Camera Snap-Pro" (tabletCam) application. Add the "Camera Snap-Pro" (tabletCam) application. --- applications/metadata.js | 9 + applications/tabletCam/README.md | 77 ++ .../tabletCam/appIcons/snap-pro-a.svg | 226 +++++ .../tabletCam/appIcons/snap-pro-i.svg | 226 +++++ applications/tabletCam/models/camera.fbx | Bin 0 -> 201852 bytes applications/tabletCam/modules/appUi.js | 388 ++++++++ applications/tabletCam/sounds/flashOff.wav | Bin 0 -> 17764 bytes applications/tabletCam/sounds/flashOn.wav | Bin 0 -> 14220 bytes applications/tabletCam/sounds/snap.wav | Bin 0 -> 18260 bytes applications/tabletCam/tabletCam_app.js | 646 +++++++++++++ applications/tabletCam/ui/TabletCam.qml | 907 ++++++++++++++++++ .../tabletCam/ui/images/orientation.svg | 3 + .../tabletCam/ui/images/switchCams.svg | 9 + 13 files changed, 2491 insertions(+) create mode 100644 applications/tabletCam/README.md create mode 100644 applications/tabletCam/appIcons/snap-pro-a.svg create mode 100644 applications/tabletCam/appIcons/snap-pro-i.svg create mode 100644 applications/tabletCam/models/camera.fbx create mode 100644 applications/tabletCam/modules/appUi.js create mode 100644 applications/tabletCam/sounds/flashOff.wav create mode 100644 applications/tabletCam/sounds/flashOn.wav create mode 100644 applications/tabletCam/sounds/snap.wav create mode 100644 applications/tabletCam/tabletCam_app.js create mode 100644 applications/tabletCam/ui/TabletCam.qml create mode 100644 applications/tabletCam/ui/images/orientation.svg create mode 100644 applications/tabletCam/ui/images/switchCams.svg diff --git a/applications/metadata.js b/applications/metadata.js index 055103a..cb14853 100644 --- a/applications/metadata.js +++ b/applications/metadata.js @@ -152,6 +152,15 @@ var metadata = { "applications": "jsfile": "home/app_home.js", "icon": "home/appicon_i.png", "caption": "HOME" + }, + { + "isActive": true, + "directory": "tabletCam", + "name": "Camera Snap-Pro", + "description": "The Camera 'Snap-Pro' allows you to take high quality in-world photos and selfies (Low, Normal, 4K, and 'EXTREME' resolution). It has two cameras on the tablet, front-facing/rear-facing, and one detachable to allow more flexibility. It supports different aspect ratio formats: 8x10, 2x3, 9x16 and 'Square'. It comes with an Optical Zoom, a trigger on the VR hand controller and other features.", + "jsfile": "tabletCam/tabletCam_app.js", + "icon": "tabletCam/appIcons/snap-pro-i.svg", + "caption": "SNAP-PRO" } ] }; diff --git a/applications/tabletCam/README.md b/applications/tabletCam/README.md new file mode 100644 index 0000000..97a1601 --- /dev/null +++ b/applications/tabletCam/README.md @@ -0,0 +1,77 @@ +# Tablet Cam + +## Note + +This was a personal project by [Zach Fox](https://github.com/zfox23/), a member of the High Fidelity Experiences Team. It has not undergone the same code review or QA process as the rest of the projects in this repository. + +## Description + +The Tablet Cam app allows you to **easily take selfies and regular photos in High Fidelity/Overte** using your Tablet or hand controllers! + +## Features + +- **Front-facing and rear-facing** cameras and flashes with optional **custom positioning** +- Works in **Desktop Mode and in VR Mode** +- **Persistent "Camera Roll"** for reviewing photos that you recently took +- Optical **zoom** +- Photo **quality settings**: Low, Normal, 4k, and _EXTREME_! +- **Aspect ratio settings**: 8x10, 2x3, 9x16, Square +- Editable photo directory + +## Changelog + +### v2.4 (2022-08-22) by Alezia Kurdis + +- Fixed a but in HMD where the rear-facing camera was pointed to the tablet instead of the scene. +- Replaced the camera model by a new one (nicer and less heavy, 198k instead of 576k, less but more optimal polygons, 1 PBR material.) +- Renamed the tool: Camera Snap-Pro +- Replaced the icons for something more easy to identify as a device to take picture ("camera"), as an advance version of the "Snap" app. +- Add a notice in the settings page to informe the user about the trigger on the thumbstick of the right VR hand controller. + +### v2.3 (2019-10-15) + +- Removed unnecessary tone curve correction present in captured Tablet Cam output image. +- Adjusted y-offset of Desktop-mode selfie cam to better serve Virtual You avatars. +- Added `"Head"` as a backup joint to `"HeadTop_End"` for certain operations. + +### v2.2 (2019-07-09) + +- Fixed a hack in which the secondary camera feed was darkened to compensate for it being rendered too light. +- If your camera looks too light, it means you have an older version of Interface (pre PR #15862) and should go back to the previous version of this script. +- If your camera looks too dark, it means you have a newer version of Interface (post PR #15682) and should update to the current version of this script. + +### v2.1 (2019-06-27) + +- We've moved the code for this project into a new remote folder, which necessitated a version bump. There are no changes to functionality. + +### v2.0 (2019-04) + +**I've made some huge changes in v2.0!** + +- In Desktop mode, when using the rear-facing camera and while you're using Third Person Camera, Tablet Cam will now be parented to Interface's Third Person Camera! +- The camera's viewpoint can now be detached from its default position! Snap a photo from a unique viewpoint. +- Fixed a bug that caused zoom settings to be saved incorrectly between restarts. +- Fixed a bug that caused the camera preview to show up as a corrupted image in HMD mode. +- Fixed a bug that caused the position of the rear-facing camera to be incorrect in HMD mode. +- Switched Overlay usage to Local Entities. +- Now you can use Tablet Cam in Desktop mode while "Desktop Tablet becomes Toolbar" is unchecked - although I'm not sure why you'd want to do that. :) +- Fixed some interface bugs. + +### v1.1 (2019-02) + +- Fixed a bug that caused Tablet Cam to erroneously appear on the Tablet after switching domains when it was previously active. + +### Tablet Cam v1.0 (2019-01) + +- Tablet Cam v1.0 is an update to Selfie Cam v1.0. It is a complete overhaul of the app. All of its features are new! + +### Selfie Cam v1.0 (2018-12) + +- Initial Release! + +## Attributions +- "snap.wav" from "Camera Shutter, Fast, A.wav" by InspectorJ (www.jshaw.co.uk) of Freesound.org +- "switchCams.svg" from "rotate camera" by Diego Naive from the Noun Project +- "orientation.svg" from "orientation" by Atif Arshad from the Noun Project +- "camera.fbx" from "Digital camera" by Nick Ladd: https://poly.google.com/view/4A3SYVh_smq +- "camera-a.svg" and "camera-i.svg" from "Selfie" by Path Lord from the Noun Project \ No newline at end of file diff --git a/applications/tabletCam/appIcons/snap-pro-a.svg b/applications/tabletCam/appIcons/snap-pro-a.svg new file mode 100644 index 0000000..69f9dd8 --- /dev/null +++ b/applications/tabletCam/appIcons/snap-pro-a.svg @@ -0,0 +1,226 @@ + + + + + snap-pro-a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + snap-pro-a + + + + diff --git a/applications/tabletCam/appIcons/snap-pro-i.svg b/applications/tabletCam/appIcons/snap-pro-i.svg new file mode 100644 index 0000000..9559317 --- /dev/null +++ b/applications/tabletCam/appIcons/snap-pro-i.svg @@ -0,0 +1,226 @@ + + + + + snap-pro-i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + snap-pro-i + + + + diff --git a/applications/tabletCam/models/camera.fbx b/applications/tabletCam/models/camera.fbx new file mode 100644 index 0000000000000000000000000000000000000000..5c63092e01e86f517d63dfd0303ad7f5f748511c GIT binary patch literal 201852 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

Vz8jvd#32628MuEfvdGA$l<5(YV*Rm7osCXEa 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 0) ? base : (that.graphicsDirectory + base); // poor man's merge + } + + // Defaults: + that.tabletName = "com.highfidelity.interface.tablet.system"; + that.inject = ""; + that.graphicsDirectory = "icons/tablet-icons/"; // Where to look for button svgs. See below. + that.additionalAppScreens = []; + that.checkIsOpen = function checkIsOpen(type, tabletUrl) { // Are we active? Value used to set isOpen. + // Actual url may have prefix or suffix. + return that.currentVisibleUrl && + ((that.home.indexOf(that.currentVisibleUrl) > -1) || + (that.additionalAppScreens.indexOf(that.currentVisibleUrl) > -1)); + }; + that.setCurrentVisibleScreenMetadata = function setCurrentVisibleScreenMetadata(type, url) { + that.currentVisibleScreenType = type; + that.currentVisibleUrl = url; + }; + that.open = function open(optionalUrl, optionalInject) { // How to open the app. + var url = optionalUrl || that.home; + var inject = optionalInject || that.inject; + + if (that.isQMLUrl(url)) { + that.tablet.loadQMLSource(url); + } else { + that.tablet.gotoWebScreen(url, inject); + } + }; + // Opens some app on top of the current app (on desktop, opens new window) + that.openNewAppOnTop = function openNewAppOnTop(url, optionalInject) { + var inject = optionalInject || ""; + if (that.isQMLUrl(url)) { + that.tablet.loadQMLOnTop(url); + } else { + that.tablet.loadWebScreenOnTop(url, inject); + } + }; + that.close = function close() { // How to close the app. + that.currentVisibleUrl = ""; + // for toolbar-mode: go back to home screen, this will close the window. + that.tablet.gotoHomeScreen(); + }; + that.buttonActive = function buttonActive(isActive) { // How to make the button active (white). + that.button.editProperties({isActive: isActive}); + }; + that.isQMLUrl = function isQMLUrl(url) { + var type = /.qml$/.test(url) ? 'QML' : 'Web'; + return type === 'QML'; + }; + that.isCurrentlyOnQMLScreen = function isCurrentlyOnQMLScreen() { + return that.currentVisibleScreenType === 'QML'; + }; + + // + // START Notification Handling Defaults + // + that.messagesWaiting = function messagesWaiting(isWaiting) { // How to indicate a message light on button. + // Note that waitingButton doesn't have to exist unless someone explicitly calls this with isWaiting true. + that.button.editProperties({ + icon: isWaiting ? that.normalMessagesButton : that.normalButton, + activeIcon: isWaiting ? that.activeMessagesButton : that.activeButton + }); + }; + that.notificationPollTimeout = [false]; + that.notificationPollTimeoutMs = [60000]; + that.notificationPollEndpoint = [false]; + that.notificationPollStopPaginatingConditionMet = [false]; + that.notificationDataProcessPage = function (data) { + return data; + }; + that.notificationPollCallback = [that.ignore]; + that.notificationPollCaresAboutSince = [false]; + that.notificationInitialCallbackMade = [false]; + that.notificationDisplayBanner = function (message) { + if (!that.isOpen) { + Window.displayAnnouncement(message); + } + }; + // + // END Notification Handling Defaults + // + + // Handlers + that.onScreenChanged = function onScreenChanged(type, url) { + // Set isOpen, wireEventBridge, set buttonActive as appropriate, + // and finally call onOpened() or onClosed() IFF defined. + that.setCurrentVisibleScreenMetadata(type, url); + + if (that.checkIsOpen(type, url)) { + that.wireEventBridge(true); + if (!that.isOpen) { + if (that.onOpened) { + that.onOpened(); + } + that.buttonActive(true); + that.isOpen = true; + } + } else { + // A different screen is now visible, or the tablet has been closed. + // Tablet visibility is controlled separately by `tabletShownChanged()` + that.wireEventBridge(false); + if (that.isOpen) { + if (that.onClosed) { + that.onClosed(); + } + that.buttonActive(false); + that.isOpen = false; + } + } + }; + + // Overwrite with the given properties: + Object.keys(properties).forEach(function (key) { + that[key] = properties[key]; + }); + + // + // START Notification Handling + // + + var currentDataPageToRetrieve = []; + var concatenatedServerResponse = []; + for (var i = 0; i < that.notificationPollEndpoint.length; i++) { + currentDataPageToRetrieve[i] = 1; + concatenatedServerResponse[i] = new Array(); + } + + var MAX_LOG_LENGTH_CHARACTERS = 300; + function requestCallback(error, response, optionalParams) { + var indexOfRequest = optionalParams.indexOfRequest; + var urlOfRequest = optionalParams.urlOfRequest; + + if (error || (response.status !== 'success')) { + print("Error: unable to complete request from URL. Error:", error || response.status); + startNotificationTimer(indexOfRequest); + return; + } + + if (!that.notificationPollStopPaginatingConditionMet[indexOfRequest] || + that.notificationPollStopPaginatingConditionMet[indexOfRequest](response)) { + startNotificationTimer(indexOfRequest); + + var notificationData; + if (concatenatedServerResponse[indexOfRequest].length) { + notificationData = concatenatedServerResponse[indexOfRequest]; + } else { + notificationData = that.notificationDataProcessPage[indexOfRequest](response); + } + console.debug(that.buttonName, + 'truncated notification data for processing:', + JSON.stringify(notificationData).substring(0, MAX_LOG_LENGTH_CHARACTERS)); + that.notificationPollCallback[indexOfRequest](notificationData); + that.notificationInitialCallbackMade[indexOfRequest] = true; + currentDataPageToRetrieve[indexOfRequest] = 1; + concatenatedServerResponse[indexOfRequest] = new Array(); + } else { + concatenatedServerResponse[indexOfRequest] = + concatenatedServerResponse[indexOfRequest].concat(that.notificationDataProcessPage[indexOfRequest](response)); + currentDataPageToRetrieve[indexOfRequest]++; + request({ + json: true, + uri: (urlOfRequest + "&page=" + currentDataPageToRetrieve[indexOfRequest]) + }, requestCallback, optionalParams); + } + } + + + var METAVERSE_BASE = Account.metaverseServerURL; + var MS_IN_SEC = 1000; + that.notificationPoll = function (i) { + if (!that.notificationPollEndpoint[i]) { + return; + } + + // User is "appearing offline" or is not logged in + if (GlobalServices.findableBy === "none" || Account.username === "Unknown user") { + // The notification polling will restart when the user changes their availability + // or when they log in, so it's not necessary to restart a timer here. + console.debug(that.buttonName + " Notifications: User is appearing offline or not logged in. " + + that.buttonName + " will poll for notifications when user logs in and has their availability " + + "set to not appear offline."); + return; + } + + var url = METAVERSE_BASE + that.notificationPollEndpoint[i]; + + var settingsKey = "notifications/" + that.notificationPollEndpoint[i] + "/lastPoll"; + var currentTimestamp = new Date().getTime(); + var lastPollTimestamp = Settings.getValue(settingsKey, currentTimestamp); + if (that.notificationPollCaresAboutSince[i]) { + url = url + "&since=" + lastPollTimestamp / MS_IN_SEC; + } + Settings.setValue(settingsKey, currentTimestamp); + + request({ + json: true, + uri: url + }, + requestCallback, + { + indexOfRequest: i, + urlOfRequest: url + }); + }; + + // This won't do anything if there isn't a notification endpoint set + for (i = 0; i < that.notificationPollEndpoint.length; i++) { + that.notificationPoll(i); + } + + function startNotificationTimer(indexOfRequest) { + that.notificationPollTimeout[indexOfRequest] = Script.setTimeout(function () { + that.notificationPoll(indexOfRequest); + }, that.notificationPollTimeoutMs[indexOfRequest]); + } + + function restartNotificationPoll() { + for (var j = 0; j < that.notificationPollEndpoint.length; j++) { + that.notificationInitialCallbackMade[j] = false; + if (that.notificationPollTimeout[j]) { + Script.clearTimeout(that.notificationPollTimeout[j]); + that.notificationPollTimeout[j] = false; + } + that.notificationPoll(j); + } + } + // + // END Notification Handling + // + + // Properties: + that.tablet = Tablet.getTablet(that.tabletName); + // Must be after we gather properties. + that.buttonPrefix = that.buttonPrefix || that.buttonName.toLowerCase() + "-"; + defaultButton('normalButton', 'i.svg'); + defaultButton('activeButton', 'a.svg'); + defaultButton('normalMessagesButton', 'i-msg.svg'); + defaultButton('activeMessagesButton', 'a-msg.svg'); + var buttonOptions = { + icon: that.normalButton, + activeIcon: that.activeButton, + text: that.buttonName + }; + // `TabletScriptingInterface` looks for the presence of a `sortOrder` key. + // What it SHOULD do is look to see if the value inside that key is defined. + // To get around the current code, we do this instead. + if (that.sortOrder) { + buttonOptions.sortOrder = that.sortOrder; + } + that.button = that.tablet.addButton(buttonOptions); + that.ignore = function ignore() { }; + that.hasOutboundEventBridge = false; + that.hasInboundQmlEventBridge = false; + that.hasInboundHtmlEventBridge = false; + // HTML event bridge uses strings, not objects. Here we abstract over that. + // (Although injected javascript still has to use JSON.stringify/JSON.parse.) + that.sendToHtml = function (messageObject) { + that.tablet.emitScriptEvent(JSON.stringify(messageObject)); + }; + that.fromHtml = function (messageString) { + var parsedMessage = JSON.parse(messageString); + parsedMessage.messageSrc = "HTML"; + that.onMessage(parsedMessage); + }; + that.sendMessage = that.ignore; + that.wireEventBridge = function wireEventBridge(on) { + // Uniquivocally sets that.sendMessage(messageObject) to do the right thing. + // Sets has*EventBridge and wires onMessage to the proper event bridge as appropriate, IFF onMessage defined. + var isCurrentlyOnQMLScreen = that.isCurrentlyOnQMLScreen(); + // Outbound (always, regardless of whether there is an inbound handler). + if (on) { + that.sendMessage = isCurrentlyOnQMLScreen ? that.tablet.sendToQml : that.sendToHtml; + that.hasOutboundEventBridge = true; + } else { + that.sendMessage = that.ignore; + that.hasOutboundEventBridge = false; + } + + if (!that.onMessage) { + return; + } + + // Inbound + if (on) { + if (isCurrentlyOnQMLScreen && !that.hasInboundQmlEventBridge) { + console.debug(that.buttonName, 'connecting', that.tablet.fromQml); + that.tablet.fromQml.connect(that.onMessage); + that.hasInboundQmlEventBridge = true; + } else if (!isCurrentlyOnQMLScreen && !that.hasInboundHtmlEventBridge) { + console.debug(that.buttonName, 'connecting', that.tablet.webEventReceived); + that.tablet.webEventReceived.connect(that.fromHtml); + that.hasInboundHtmlEventBridge = true; + } + } else { + if (that.hasInboundQmlEventBridge) { + console.debug(that.buttonName, 'disconnecting', that.tablet.fromQml); + that.tablet.fromQml.disconnect(that.onMessage); + that.hasInboundQmlEventBridge = false; + } + if (that.hasInboundHtmlEventBridge) { + console.debug(that.buttonName, 'disconnecting', that.tablet.webEventReceived); + that.tablet.webEventReceived.disconnect(that.fromHtml); + that.hasInboundHtmlEventBridge = false; + } + } + }; + that.isOpen = false; + // To facilitate incremental development, only wire onClicked to do something when "home" is defined in properties. + that.onClicked = that.home + ? function onClicked() { + // Call open() or close(), and reset type based on current home property. + if (that.isOpen) { + that.close(); + } else { + that.open(); + } + } : that.ignore; + that.onScriptEnding = function onScriptEnding() { + // Close if necessary, clean up any remaining handlers, and remove the button. + GlobalServices.myUsernameChanged.disconnect(restartNotificationPoll); + GlobalServices.findableByChanged.disconnect(restartNotificationPoll); + that.tablet.screenChanged.disconnect(that.onScreenChanged); + if (that.isOpen) { + that.close(); + that.onScreenChanged("", ""); + } + if (that.button) { + if (that.onClicked) { + that.button.clicked.disconnect(that.onClicked); + } + that.tablet.removeButton(that.button); + } + for (var i = 0; i < that.notificationPollTimeout.length; i++) { + if (that.notificationPollTimeout[i]) { + Script.clearInterval(that.notificationPollTimeout[i]); + that.notificationPollTimeout[i] = false; + } + } + }; + // Set up the handlers. + that.tablet.screenChanged.connect(that.onScreenChanged); + that.button.clicked.connect(that.onClicked); + Script.scriptEnding.connect(that.onScriptEnding); + GlobalServices.findableByChanged.connect(restartNotificationPoll); + GlobalServices.myUsernameChanged.connect(restartNotificationPoll); + if (that.buttonName === Settings.getValue("startUpApp")) { + Settings.setValue("startUpApp", ""); + Script.setTimeout(function () { + that.open(); + }, 1000); + } +} +module.exports = AppUi; diff --git a/applications/tabletCam/sounds/flashOff.wav b/applications/tabletCam/sounds/flashOff.wav new file mode 100644 index 0000000000000000000000000000000000000000..fef7668de866e75ad4e9fb7c5a3a91dcd5f53d0e GIT binary patch literal 17764 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 literal 0 HcmV?d00001 diff --git a/applications/tabletCam/sounds/snap.wav b/applications/tabletCam/sounds/snap.wav new file mode 100644 index 0000000000000000000000000000000000000000..d0143f1a0c7f501d103121dc2823ddb451fe250d GIT binary patch literal 18260 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 15) { + cameraRollPaths.paths.pop(); + } + Settings.setValue("tabletCam/cameraRollPaths", JSON.stringify(cameraRollPaths)); + + secondaryCameraConfig.resetSizeSpectatorCamera(secondaryCameraResolutionPreviewWidth, secondaryCameraResolutionPreviewHeight); + ui.sendMessage({ + method: 'stillSnapshotTaken', + lastStillSnapshotPath: tempObject.imagePath + }); + } + + var signalsWired = false; + function wireSignals(shouldWire) { + if (signalsWired === shouldWire) { + return; + } + + signalsWired = shouldWire; + + if (shouldWire) { + Window.stillSnapshotTaken.connect(onStillSnapshotTaken); + } else { + Window.stillSnapshotTaken.disconnect(onStillSnapshotTaken); + } + } + + function inFrontOf(distance, position, orientation) { + return Vec3.sum(position || MyAvatar.position, + Vec3.multiply(distance, Quat.getForward(orientation || MyAvatar.orientation))); + } + + var detached = false; + Settings.setValue("tabletCam/detached", detached); + function getDynamicTabletCamAvatarEntityProperties() { + var dynamicProps = { + dimensions: {"x":0.1600, "y":0.1021, "z":0.1137} + }; + + if (detached) { + //print("DETACHED MODE"); + dynamicProps.collisionless = false; + dynamicProps.ignoreForCollisions = false; + dynamicProps.grab = { + "grabbable": true, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }; + dynamicProps.visible = true; + dynamicProps.parentID = Uuid.NULL; + dynamicProps.parentJointIndex = 65535; + dynamicProps.triggerable = true; + if (tabletCamAvatarEntity) { + var currentProps = Entities.getEntityProperties(tabletCamAvatarEntity, ["position", "rotation"]); + if (!!HMD.tabletID) { + dynamicProps.position = inFrontOf(0.2, currentProps.position, currentProps.rotation); + } else { + dynamicProps.position = currentProps.position; + } + dynamicProps.rotation = currentProps.rotation; + } else { + dynamicProps.position = inFrontOf(0.5); + dynamicProps.rotation = MyAvatar.orientation; + } + dynamicProps.velocity = [0, 0, 0]; + dynamicProps.angularVelocity = [0, 0, 0]; + } else { + dynamicProps.triggerable = false; + dynamicProps.collisionless = true; + dynamicProps.ignoreForCollisions = true; + dynamicProps.grab = { + "grabbable": false + }; + dynamicProps.visible = false; + + if (!!HMD.tabletID) { + //print("TABLET MODE"); + dynamicProps.parentID = HMD.tabletID; + dynamicProps.parentJointIndex = 65535; + dynamicProps.dimensions = [0.01, 0.01, 0.01]; + } else { + //print("DESKTOP USER CAMERA MODE"); + var cameraMode = Camera.mode; + // If: + // - User is in third person mode + // - User is using the rear-facing camera + if (cameraMode !== "first person" && !frontCamInUse) { + dynamicProps.parentID = MyAvatar.sessionUUID; + dynamicProps.parentJointIndex = MyAvatar.getJointIndex("_CAMERA_MATRIX"); + } else { + dynamicProps.parentID = MyAvatar.sessionUUID; + var jointIndex = MyAvatar.getJointIndex("HeadTop_End"); + if (jointIndex === -1) { + jointIndex = MyAvatar.getJointIndex("Head"); + } + dynamicProps.parentJointIndex = jointIndex; + } + } + + dynamicProps.localPosition = { + "x": 0, + "y": !!HMD.tabletID ? 0.215 : (frontCamInUse ? -0.03 : (Camera.mode !== "first person" ? 0 : -0.02)), + "z": !!HMD.tabletID ? (frontCamInUse ? -0.02 : 0.1) : (frontCamInUse ? 1 : (Camera.mode !== "first person" ? 0 : 0.05)) + }; + + if (!!HMD.tabletID) { + dynamicProps.localRotation = { + "x": 0, + "y": frontCamInUse ? 0 : 1, + "z": 0, + "w": frontCamInUse ? 1 : 0 + }; + } else { + dynamicProps.localRotation = { + "x": 0, + "y": frontCamInUse || (!frontCamInUse && Camera.mode !== "first person") ? 0 : 1, + "z": 0, + "w": frontCamInUse || (!frontCamInUse && Camera.mode !== "first person") ? 1 : 0 + }; + } + } + + return dynamicProps; + } + + function onModeUpdated(newMode) { + if (tabletCamAvatarEntity) { + var newTabletCamAvatarEntityProps = getDynamicTabletCamAvatarEntityProperties(); + Entities.editEntity(tabletCamAvatarEntity, newTabletCamAvatarEntityProps); + } + } + + function onClosed() { + if (!detached) { + disableTabletCam(); + } + + if (tabletCamLocalEntity) { + Entities.deleteEntity(tabletCamLocalEntity); + tabletCamLocalEntity = false; + } + } + + function buttonActive(isActive) { + ui.button.editProperties({isActive: isActive || tabletCamRunning}); + } + + var ui; + function startup() { + ui = new AppUi({ + buttonName: APPLICATION_CAPTION, + home: Script.resolvePath("./ui/TabletCam.qml"), + // Selfie by Path Lord from the Noun Project + graphicsDirectory: Script.resolvePath("appIcons/"), + onOpened: enableTabletCam, + onClosed: onClosed, + onMessage: fromQml, + buttonActive: buttonActive + }); + + Window.domainChanged.connect(onDomainChanged); + ui.tablet.tabletShownChanged.connect(tabletVisibilityChanged); + HMD.displayModeChanged.connect(onHMDChanged); + Camera.modeUpdated.connect(onModeUpdated); + + registerButtonMappings(); + } + startup(); + + function shutdown() { + disableTabletCam(); + Window.domainChanged.disconnect(onDomainChanged); + ui.tablet.tabletShownChanged.disconnect(tabletVisibilityChanged); + HMD.displayModeChanged.disconnect(onHMDChanged); + Camera.modeUpdated.disconnect(onModeUpdated); + if (takePhotoControllerMapping) { + takePhotoControllerMapping.disable(); + } + wireSignals(false); + } + Script.scriptEnding.connect(shutdown); + + // "Camera Shutter, Fast, A.wav" by InspectorJ (www.jshaw.co.uk) of Freesound.org + var SOUND_SNAPSHOT = SoundCache.getSound(Script.resolvePath("sounds/snap.wav")); + var SOUND_FLASH_ON = SoundCache.getSound(Script.resolvePath("sounds/flashOn.wav")); + var SOUND_FLASH_OFF = SoundCache.getSound(Script.resolvePath("sounds/flashOff.wav")); +}()); // END LOCAL_SCOPE diff --git a/applications/tabletCam/ui/TabletCam.qml b/applications/tabletCam/ui/TabletCam.qml new file mode 100644 index 0000000..40103a7 --- /dev/null +++ b/applications/tabletCam/ui/TabletCam.qml @@ -0,0 +1,907 @@ +// +// TabletCam.qml +// qml/hifi +// +// Tablet Cam v2.2 +// +// Created by Zach Fox on 2019-04-14 +// Copyright 2022 Overte e.V. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import Hifi 1.0 as Hifi +import QtQuick 2.7 +import QtQuick.Controls 2.3 +import stylesUit 1.0 as HifiStylesUit +import controlsUit 1.0 as HifiControlsUit + +Rectangle { + id: root; + property bool flashEnabled: Settings.getValue("tabletCam/flashEnabled", false); + property string snapshotQuality: Settings.getValue("tabletCam/quality", "normal"); + property real aspectRatio: Settings.getValue("tabletCam/aspectRatio", (8 / 10)); + property bool detached: Settings.getValue("tabletCam/detached", false); + property bool frontCamInUse: Settings.getValue("tabletCam/frontCamInUse", true); + property string activeView: "mainView"; + + HifiStylesUit.HifiConstants { id: hifi; } + color: hifi.colors.black; + + onFlashEnabledChanged: { + sendToScript({method: 'setFlashStatus', enabled: root.flashEnabled}); + } + + onDetachedChanged: { + sendToScript({method: 'setDetached', detached: root.detached}); + } + + onFrontCamInUseChanged: { + sendToScript({method: 'switchCams', frontCamInUse: root.frontCamInUse}); + } + + onActiveViewChanged: { + root.flashEnabled = false; + sendToScript({method: 'activeViewChanged', activeView: root.activeView}); + + if (root.activeView === "settingsView") { + photoDirectoryTextField.text = Settings.getValue("snapshotsLocation", ""); + } + } + + Item { + id: mainView; + visible: root.activeView === "mainView"; + anchors.fill: parent; + + Rectangle { + id: helpTextContainer; + visible: !!Settings.getValue('tabletCam/firstRun', true) && HMD.active; + width: parent.width; + height: topBarContainer_main.height; + anchors.left: parent.left; + anchors.top: parent.top; + color: "#121212"; + + HifiStylesUit.RalewaySemiBold { + text: "Try clicking right thumbstick for photos!"; + // Anchors + anchors.left: parent.left; + anchors.leftMargin: 8; + anchors.verticalCenter: parent.verticalCenter; + size: 22; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignLeft; + verticalAlignment: Text.AlignVCenter; + wrapMode: Text.Wrap; + } + + HifiControlsUit.Button { + text: "OK"; + colorScheme: hifi.colorSchemes.dark; + color: hifi.buttons.blue; + anchors.verticalCenter: parent.verticalCenter; + anchors.right: parent.right; + anchors.rightMargin: 8; + width: 50; + height: 35; + onClicked: { + helpTextContainer.visible = false; + Settings.setValue('tabletCam/firstRun', false); + } + } + } + + Rectangle { + id: topBarContainer_main; + visible: !helpTextContainer.visible; + width: parent.width; + height: 42; + anchors.left: parent.left; + anchors.top: parent.top; + color: "#121212"; + + HifiControlsUit.CheckBox { + id: detachCheckbox; + text: "Detach" + checked: root.detached; + boxSize: 24; + height: 32; + anchors.verticalCenter: parent.verticalCenter; + anchors.left: parent.left; + anchors.leftMargin: 8; + onClicked: { + root.detached = checked; + } + } + + HifiControlsUit.GlyphButton { + id: flashButton; + height: 26; + width: height; + anchors.verticalCenter: parent.verticalCenter; + anchors.right: fakeFlash.left; + anchors.rightMargin: 8; + glyph: hifi.glyphs.lightning; + color: root.flashEnabled ? hifi.buttons.blue : hifi.buttons.none; + onClicked: { + root.flashEnabled = !root.flashEnabled; + } + } + + Rectangle { + id: fakeCamera; + width: 34; + height: width; + radius: width; + anchors.centerIn: parent; + color: hifi.colors.black; + + Rectangle { + visible: root.frontCamInUse && !root.detached; + width: parent.width - 12; + height: width; + radius: width; + anchors.centerIn: parent; + color: "#230000"; + } + } + + Rectangle { + id: fakeFlash; + width: 12; + height: width; + radius: width; + anchors.verticalCenter: fakeCamera.verticalCenter; + anchors.right: fakeCamera.left; + anchors.rightMargin: 4; + color: root.flashEnabled && root.frontCamInUse ? "#fffcad" : "#000000"; + } + + Image { + id: switchCams; + height: 26; + width: height; + anchors.verticalCenter: parent.verticalCenter; + anchors.left: fakeCamera.right; + anchors.leftMargin: 8; + source: "./images/switchCams.svg"; // rotate camera by Diego Naive from the Noun Project + mipmap: true; + MouseArea { + anchors.fill: parent; + enabled: !root.detached; + + onClicked: { + root.frontCamInUse = !root.frontCamInUse; + } + } + } + + HifiControlsUit.GlyphButton { + id: settingsButton; + height: 26; + width: height; + anchors.verticalCenter: parent.verticalCenter; + anchors.right: parent.right; + anchors.rightMargin: 8; + glyph: hifi.glyphs.settings; + color: hifi.buttons.none; + onClicked: { + root.activeView = "settingsView"; + } + } + } + + Rectangle { + visible: !secondaryCameraPreview.visible && HMD.tabletID !== "{00000000-0000-0000-0000-000000000000}"; + anchors.fill: secondaryCameraPreview; + color: hifi.colors.white; + } + + // Secondary Camera Preview + Hifi.ResourceImageItem { + id: secondaryCameraPreview; + visible: HMD.tabletID !== "{00000000-0000-0000-0000-000000000000}"; + url: "resource://spectatorCameraFrame"; + ready: visible; + mirrorVertically: true; + anchors.top: topBarContainer_main.bottom; + anchors.bottom: bottomBarContainer_main.top; + anchors.left: parent.left; + anchors.right: parent.right; + onVisibleChanged: { + update(); + } + } + + Rectangle { + id: bottomBarContainer_main; + height: 88; + anchors.left: parent.left; + anchors.bottom: parent.bottom; + anchors.right: parent.right; + color: "#121212"; + + Item { + id: fieldOfView; + anchors.left: parent.left; + anchors.leftMargin: 12; + anchors.verticalCenter: parent.verticalCenter; + anchors.right: takeSnapshotButton.left; + anchors.rightMargin: 12; + height: 35; + + HifiControlsUit.GlyphButton { + id: resetvFoV; + anchors.verticalCenter: parent.verticalCenter; + anchors.left: parent.left; + height: parent.height - 8; + width: height; + glyph: hifi.glyphs.reload; + onClicked: { + fieldOfViewSlider.value = 60.0; + } + } + + HifiControlsUit.Slider { + id: fieldOfViewSlider; + anchors.top: parent.top; + anchors.bottom: parent.bottom; + anchors.right: parent.right; + anchors.left: resetvFoV.right; + anchors.leftMargin: 8; + colorScheme: hifi.colorSchemes.dark; + from: 8.0; + to: 120.0; + value: (to - Settings.getValue("tabletCam/vFoV", 60.0) + from); + stepSize: 1; + + onValueChanged: { + sendToScript({method: 'updateCameravFoV', vFoV: to - value + from}); + } + onPressedChanged: { + if (!pressed) { + sendToScript({method: 'updateCameravFoV', vFoV: to - value + from}); + } + } + } + } + + Rectangle { + id: takeSnapshotButton; + color: "#EA4C5F"; + anchors.horizontalCenter: parent.horizontalCenter; + anchors.verticalCenter: parent.verticalCenter; + height: 72; + width: height; + radius: height; + border.width: 3; + border.color: hifi.colors.white; + + MouseArea { + anchors.fill: parent; + hoverEnabled: true; + onEntered: { + parent.color = "#C62147"; + } + onExited: { + parent.color = "#EA4C5F"; + } + onClicked: { + if (HMD.tabletID !== "{00000000-0000-0000-0000-000000000000}") { + secondaryCameraPreview.visible = false; + } + sendToScript({method: 'takePhoto'}); + } + } + } + + Image { + visible: !HMD.active; + source: "./images/orientation.svg"; // orientation by Atif Arshad from the Noun Project + height: 24; + width: height; + anchors.left: takeSnapshotButton.right; + anchors.leftMargin: 24; + anchors.verticalCenter: parent.verticalCenter; + + MouseArea { + anchors.fill: parent; + onClicked: { + sendToScript({method: 'switchOrientation'}); + } + } + } + + Rectangle { + id: galleryButton; + anchors.right: parent.right; + anchors.rightMargin: 12; + anchors.verticalCenter: parent.verticalCenter; + height: 72; + width: height; + color: hifi.colors.black; + + Image { + id: galleryButtonImage; + source: JSON.parse(Settings.getValue("tabletCam/cameraRollPaths", '{"paths": ["imagePath": ""]}')).paths[0].imagePath; + fillMode: Image.PreserveAspectCrop; + anchors.fill: parent; + mipmap: true; + } + + MouseArea { + enabled: galleryButtonImage.source !== ""; + anchors.fill: parent; + onClicked: { + cameraRollSwipeView.setCurrentIndex(0); + cameraRollModel.clear(); + + var settingsString = Settings.getValue("tabletCam/cameraRollPaths", '{"paths": []}'); + cameraRollModel.append(JSON.parse(settingsString).paths); + + root.activeView = "reviewView"; + } + } + } + } + } + + Item { + id: reviewView; + visible: root.activeView === "reviewView"; + anchors.fill: parent; + + Rectangle { + id: topBarContainer_review; + width: parent.width; + height: 42; + anchors.left: parent.left; + anchors.top: parent.top; + color: "#121212"; + + HifiControlsUit.Button { + text: "BACK"; + colorScheme: hifi.colorSchemes.dark; + color: hifi.buttons.noneBorderlessWhite; + anchors.verticalCenter: parent.verticalCenter; + anchors.left: parent.left; + anchors.leftMargin: 8; + width: 50; + height: 30; + onClicked: { + root.activeView = "mainView"; + } + } + + HifiStylesUit.RalewaySemiBold { + text: "CAMERA ROLL"; + // Anchors + anchors.horizontalCenter: parent.horizontalCenter; + anchors.verticalCenter: parent.verticalCenter; + size: 22; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignHCenter; + verticalAlignment: Text.AlignVCenter; + wrapMode: Text.Wrap; + } + } + + ListModel { + id: cameraRollModel; + } + + SwipeView { + id: cameraRollSwipeView; + + anchors.top: topBarContainer_review.bottom; + anchors.left: parent.left; + anchors.right: parent.right; + anchors.bottom: bottomBarContainer_review.top; + + Repeater { + model: cameraRollModel; + + Image { + source: imagePath; + fillMode: Image.PreserveAspectFit; + mipmap: true; + } + } + } + + PageIndicator { + id: indicator; + interactive: true; + count: cameraRollSwipeView.count; + currentIndex: cameraRollSwipeView.currentIndex + + anchors.bottom: cameraRollSwipeView.bottom; + anchors.horizontalCenter: cameraRollSwipeView.horizontalCenter; + + delegate: Rectangle { + implicitWidth: 15; + implicitHeight: 15; + radius: width; + color: "#00b4ef"; + opacity: index === cameraRollSwipeView.currentIndex ? 0.95 : 0.45; + + border.color: "#FFFFFF"; + border.width: index === cameraRollSwipeView.currentIndex ? 2 : 0; + + Behavior on opacity { + OpacityAnimator { + duration: 100; + } + } + } + } + + Rectangle { + id: bottomBarContainer_review; + height: 88; + anchors.left: parent.left; + anchors.bottom: parent.bottom; + anchors.right: parent.right; + color: "#121212"; + + HifiControlsUit.Button { + text: "SHOW IN DESKTOP FILE BROWSER"; + colorScheme: hifi.colorSchemes.dark; + color: hifi.buttons.blue; + anchors.verticalCenter: parent.verticalCenter; + anchors.horizontalCenter: parent.horizontalCenter; + width: 240; + height: 30; + onClicked: { + var currentImagePath = cameraRollModel.get(cameraRollSwipeView.index).imagePath; + Qt.openUrlExternally(currentImagePath.substring(0, currentImagePath.lastIndexOf('/'))); + } + } + } + } + + Rectangle { + id: settingsView; + visible: root.activeView === "settingsView"; + anchors.fill: parent; + color: hifi.colors.black; + + Rectangle { + id: topBarContainer_settings; + width: parent.width; + height: 42; + anchors.left: parent.left; + anchors.top: parent.top; + color: "#121212"; + + HifiControlsUit.Button { + text: "BACK"; + colorScheme: hifi.colorSchemes.dark; + color: hifi.buttons.noneBorderlessWhite; + anchors.verticalCenter: parent.verticalCenter; + anchors.left: parent.left; + anchors.leftMargin: 8; + width: 50; + height: 30; + onClicked: { + root.activeView = "mainView"; + } + } + + HifiStylesUit.RalewaySemiBold { + text: "SETTINGS"; + // Anchors + anchors.horizontalCenter: parent.horizontalCenter; + anchors.verticalCenter: parent.verticalCenter; + size: 22; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignHCenter; + verticalAlignment: Text.AlignVCenter; + wrapMode: Text.Wrap; + } + } + + Item { + id: settingsContainer; + anchors.top: topBarContainer_settings.bottom; + anchors.topMargin: 16; + anchors.left: parent.left; + anchors.leftMargin: 16; + anchors.right: parent.right; + anchors.rightMargin: 16; + anchors.bottom: parent.bottom; + anchors.bottomMargin: 8; + + Item { + id: qualityContainer; + anchors.top: parent.top; + anchors.left: parent.left; + anchors.right: parent.right; + height: childrenRect.height; + + HifiStylesUit.RalewaySemiBold { + id: qualityHeaderText; + text: "Photo Quality"; + // Anchors + anchors.left: parent.left; + anchors.top: parent.top; + height: 22; + size: 18; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignLeft; + verticalAlignment: Text.AlignTop; + } + + HifiControlsUit.RadioButton { + id: lowRadioButton; + checked: root.snapshotQuality === "low"; + text: "Low"; + width: 70; + height: 35; + anchors.left: parent.left; + anchors.top: qualityHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (!lowRadioButton.checked) { + lowRadioButton.checked = true; + } + if (normalRadioButton.checked) { + normalRadioButton.checked = false; + } + if (highRadioButton.checked) { + highRadioButton.checked = false; + } + if (extremeRadioButton.checked) { + extremeRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setSnapshotQuality', quality: "low"}); + } + } + } + + HifiControlsUit.RadioButton { + id: normalRadioButton; + checked: root.snapshotQuality === "normal"; + text: "Normal"; + width: 100; + height: 35; + anchors.left: lowRadioButton.right; + anchors.leftMargin: 16; + anchors.top: qualityHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (lowRadioButton.checked) { + lowRadioButton.checked = false; + } + if (!normalRadioButton.checked) { + normalRadioButton.checked = true; + } + if (highRadioButton.checked) { + highRadioButton.checked = false; + } + if (extremeRadioButton.checked) { + extremeRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setSnapshotQuality', quality: "normal"}); + } + } + } + + HifiControlsUit.RadioButton { + id: highRadioButton; + checked: root.snapshotQuality === "high"; + text: "4k"; + width: 75; + height: 35; + anchors.left: normalRadioButton.right; + anchors.leftMargin: 16; + anchors.top: qualityHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (lowRadioButton.checked) { + lowRadioButton.checked = false; + } + if (normalRadioButton.checked) { + normalRadioButton.checked = false; + } + if (!highRadioButton.checked) { + highRadioButton.checked = true; + } + if (extremeRadioButton.checked) { + extremeRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setSnapshotQuality', quality: "high"}); + } + } + } + + HifiControlsUit.RadioButton { + id: extremeRadioButton; + checked: root.snapshotQuality === "extreme"; + text: "EXTREME"; + width: 120; + height: 35; + anchors.left: highRadioButton.right; + anchors.leftMargin: 16; + anchors.top: qualityHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (lowRadioButton.checked) { + lowRadioButton.checked = false; + } + if (normalRadioButton.checked) { + normalRadioButton.checked = false; + } + if (highRadioButton.checked) { + highRadioButton.checked = false; + } + if (!extremeRadioButton.checked) { + extremeRadioButton.checked = true; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setSnapshotQuality', quality: "extreme"}); + } + } + } + } + + Item { + id: aspectRatioContainer; + anchors.top: qualityContainer.bottom; + anchors.topMargin: 16; + anchors.left: parent.left; + anchors.right: parent.right; + height: childrenRect.height; + + HifiStylesUit.RalewaySemiBold { + id: aspectRatioHeaderText; + text: "Aspect Ratio"; + // Anchors + anchors.left: parent.left; + anchors.top: parent.top; + height: 22; + size: 18; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignLeft; + verticalAlignment: Text.AlignTop; + } + + HifiControlsUit.RadioButton { + id: eightByTenRadioButton; + checked: parseFloat(root.aspectRatio) === (8 / 10); + text: "8x10"; + width: 70; + height: 35; + anchors.left: parent.left; + anchors.top: aspectRatioHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (!eightByTenRadioButton.checked) { + eightByTenRadioButton.checked = true; + } + if (twoByThreeRadioButton.checked) { + twoByThreeRadioButton.checked = false; + } + if (nineBySixteenRadioButton.checked) { + nineBySixteenRadioButton.checked = false; + } + if (oneByOneRadioButton.checked) { + oneByOneRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setAspectRatio', aspectRatio: (8 / 10)}); + } + } + } + + HifiControlsUit.RadioButton { + id: twoByThreeRadioButton; + checked: parseFloat(root.aspectRatio) === (2 / 3); + text: "2x3"; + width: 100; + height: 35; + anchors.left: eightByTenRadioButton.right; + anchors.leftMargin: 16; + anchors.top: aspectRatioHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (eightByTenRadioButton.checked) { + eightByTenRadioButton.checked = false; + } + if (!twoByThreeRadioButton.checked) { + twoByThreeRadioButton.checked = true; + } + if (nineBySixteenRadioButton.checked) { + nineBySixteenRadioButton.checked = false; + } + if (oneByOneRadioButton.checked) { + oneByOneRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setAspectRatio', aspectRatio: (2 / 3)}); + } + } + } + + HifiControlsUit.RadioButton { + id: nineBySixteenRadioButton; + checked: parseFloat(root.aspectRatio) === 9 / 16; + text: "9x16"; + width: 75; + height: 35; + anchors.left: twoByThreeRadioButton.right; + anchors.leftMargin: 16; + anchors.top: aspectRatioHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (eightByTenRadioButton.checked) { + eightByTenRadioButton.checked = false; + } + if (twoByThreeRadioButton.checked) { + twoByThreeRadioButton.checked = false; + } + if (!nineBySixteenRadioButton.checked) { + nineBySixteenRadioButton.checked = true; + } + if (oneByOneRadioButton.checked) { + oneByOneRadioButton.checked = false; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setAspectRatio', aspectRatio: (9 / 16)}); + } + } + } + + HifiControlsUit.RadioButton { + id: oneByOneRadioButton; + checked: parseFloat(root.aspectRatio) === 1 / 1; + text: "Square"; + width: 83; + height: 35; + anchors.left: nineBySixteenRadioButton.right; + anchors.leftMargin: 16; + anchors.top: aspectRatioHeaderText.bottom; + colorScheme: hifi.colorSchemes.dark; + onClicked: { + if (eightByTenRadioButton.checked) { + eightByTenRadioButton.checked = false; + } + if (twoByThreeRadioButton.checked) { + twoByThreeRadioButton.checked = false; + } + if (nineBySixteenRadioButton.checked) { + nineBySixteenRadioButton.checked = false; + } + if (!oneByOneRadioButton.checked) { + oneByOneRadioButton.checked = true; + } + } + onCheckedChanged: { + if (checked) { + sendToScript({method: 'setAspectRatio', aspectRatio: 1}); + } + } + } + } + + Item { + id: photoDirectoryContainer; + anchors.top: aspectRatioContainer.bottom; + anchors.topMargin: 16; + anchors.left: parent.left; + anchors.right: parent.right; + height: childrenRect.height; + + HifiStylesUit.RalewaySemiBold { + id: photoDirectoryHeaderText; + text: "Photo Directory"; + // Anchors + anchors.left: parent.left; + anchors.top: parent.top; + height: 22; + size: 18; + // Style + color: hifi.colors.white; + // Alignment + horizontalAlignment: Text.AlignLeft; + verticalAlignment: Text.AlignTop; + } + + HifiControlsUit.TextField { + id: photoDirectoryTextField; + readOnly: true; + text: Settings.getValue("snapshotsDirectory", ""); + colorScheme: hifi.colorSchemes.dark; + // Anchors + anchors.top: photoDirectoryHeaderText.bottom; + anchors.topMargin: 8; + anchors.left: parent.left; + anchors.right: parent.right; + height: 50; + + MouseArea { + anchors.fill: parent; + + onClicked: { + sendToScript({method: 'setPhotoDirectory'}); + } + } + } + + HifiControlsUit.Button { + text: "CHANGE"; + colorScheme: hifi.colorSchemes.dark; + color: hifi.buttons.blue; + anchors.top: photoDirectoryTextField.bottom; + anchors.topMargin: 4; + anchors.right: parent.right; + width: 100; + height: 35; + onClicked: { + sendToScript({method: 'setPhotoDirectory'}); + } + } + } + + HifiStylesUit.FiraSansRegular { + text: "Hint:\nIn HMD, using the detached camera, you can press on the\nthumbsticks of your right controller to take a photo.\n\n\nv2.4"; + // Anchors + anchors.bottom: parent.bottom; + anchors.left: parent.left; + size: 16; + // Style + color: hifi.colors.lightGrayText; + } + } + } + + function fromScript(message) { + switch (message.method) { + case 'stillSnapshotTaken': + Settings.setValue('tabletCam/firstRun', false); + helpTextContainer.visible = false; + galleryButtonImage.source = message.lastStillSnapshotPath; + if (HMD.tabletID !== "{00000000-0000-0000-0000-000000000000}") { + secondaryCameraPreview.visible = true; + } + break; + case 'photoDirectoryChanged': + photoDirectoryTextField.text = message.photoDirectory; + break; + case 'inspectionCertificate_resetCert': + break; + default: + console.log('Unrecognized message from TabletCam.js.'); + } + } + signal sendToScript(var message); +} diff --git a/applications/tabletCam/ui/images/orientation.svg b/applications/tabletCam/ui/images/orientation.svg new file mode 100644 index 0000000..9bf7520 --- /dev/null +++ b/applications/tabletCam/ui/images/orientation.svg @@ -0,0 +1,3 @@ +Created by Atif Arshad +from the Noun Project + diff --git a/applications/tabletCam/ui/images/switchCams.svg b/applications/tabletCam/ui/images/switchCams.svg new file mode 100644 index 0000000..28c752e --- /dev/null +++ b/applications/tabletCam/ui/images/switchCams.svg @@ -0,0 +1,9 @@ + + rotate-cam-3 + Created with Sketch. + + + + Created by Diego Naive + from the Noun Project +