From ecbce8201b1f11ddcb914205dd7e78b7a0a22c0e Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 5 Jun 2019 18:17:24 -0700 Subject: [PATCH 01/13] Dissectors: Limit message number & position values --- tools/dissectors/1-hfudt.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index 70831416b9..484ae6f897 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -307,7 +307,7 @@ function p_hfudt.dissector(buf, pinfo, tree) -- check if we have part of a message that we need to re-assemble -- before it can be dissected - if message_bit == 1 and message_position ~= 0 then + if message_bit == 1 and message_position ~= 0 and message_number < 50 and message_part_number < 10 then if fragments[message_number] == nil then fragments[message_number] = {} end From 2592784814bf4dcbaeb942e24d9ad8d1f2847072 Mon Sep 17 00:00:00 2001 From: Preston Bezos Date: Thu, 6 Jun 2019 09:19:32 -0700 Subject: [PATCH 02/13] Changed InputDeviceButton to unmute on push and hold while in push to talk mode --- .../inputDeviceButton/InputDeviceButton.qml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/interface/resources/qml/hifi/simplifiedUI/inputDeviceButton/InputDeviceButton.qml b/interface/resources/qml/hifi/simplifiedUI/inputDeviceButton/InputDeviceButton.qml index cb10cc5eef..c546af218b 100644 --- a/interface/resources/qml/hifi/simplifiedUI/inputDeviceButton/InputDeviceButton.qml +++ b/interface/resources/qml/hifi/simplifiedUI/inputDeviceButton/InputDeviceButton.qml @@ -77,6 +77,21 @@ Rectangle { Tablet.playSound(TabletEnums.ButtonClick); muted = Qt.binding(function() { return AudioScriptingInterface.muted; }); // restore binding } + + onPressed: { + if (pushToTalk) { + AudioScriptingInterface.pushingToTalk = true; + Tablet.playSound(TabletEnums.ButtonClick); + } + } + + onReleased: { + if (pushToTalk) { + AudioScriptingInterface.pushingToTalk = false; + Tablet.playSound(TabletEnums.ButtonClick); + } + } + onContainsMouseChanged: { if (containsMouse) { Tablet.playSound(TabletEnums.ButtonHover); From a5c2ce472e659d476de796a15625cfc98b4f13db Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 6 Jun 2019 11:08:16 -0700 Subject: [PATCH 03/13] unsourced additions from Howard --- tools/dissectors/1-hfudt.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index 484ae6f897..eeda0c4d7e 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -158,7 +158,13 @@ local packet_types = { } local unsourced_packet_types = { - ["DomainList"] = true + ["DomainList"] = true, + ["DomainConnectRequest"] = true, + ["ICEPing"] = true, + ["ICEPingReply"] = true, + ["DomainServerConnectionToken"] = true, + ["DomainSettingsRequest"] = true, + ["ICEServerHeartbeatACK"] = true } local fragments = {} From f7333e90d85b60fe4f217e0dac50082c8b53f7b2 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Thu, 6 Jun 2019 11:58:39 -0700 Subject: [PATCH 04/13] fixing bugs --- launchers/darwin/src/CredentialsRequest.m | 3 +-- launchers/darwin/src/DownloadInterface.m | 1 + launchers/darwin/src/OrganizationRequest.m | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/launchers/darwin/src/CredentialsRequest.m b/launchers/darwin/src/CredentialsRequest.m index 966bb8cb31..d2e7e51573 100644 --- a/launchers/darwin/src/CredentialsRequest.m +++ b/launchers/darwin/src/CredentialsRequest.m @@ -7,7 +7,7 @@ - (void) confirmCredentials:(NSString*)username :(NSString*)password { NSLog(@"web request started"); - NSString *post = [NSString stringWithFormat:@"grant_type=password&username=%@&password=%@&scope=owner", username, password]; + NSString *post = [NSString stringWithFormat:@"grant_type=password&username=%@&password=%@&scope=owner", username, [password stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet symbolCharacterSet]]]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding]; NSString *postLength = [NSString stringWithFormat:@"%ld", (unsigned long)[postData length]]; @@ -18,7 +18,6 @@ [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:postData]; - //NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; NSURLSession* session = [NSURLSession sharedSession]; NSURLSessionDataTask* dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { diff --git a/launchers/darwin/src/DownloadInterface.m b/launchers/darwin/src/DownloadInterface.m index 00e132a91d..b957197567 100644 --- a/launchers/darwin/src/DownloadInterface.m +++ b/launchers/darwin/src/DownloadInterface.m @@ -41,6 +41,7 @@ [fileManager moveItemAtURL:location toURL:destinationURL error:&error]; Launcher* sharedLauncher = [Launcher sharedLauncher]; + [sharedLauncher setDownloadFilename:destinationFileName]; NSString* appPath = [sharedLauncher getAppPath]; NSString* downloadFileName = [sharedLauncher getDownloadFilename]; diff --git a/launchers/darwin/src/OrganizationRequest.m b/launchers/darwin/src/OrganizationRequest.m index 23d3c2e1cf..36a4228c96 100644 --- a/launchers/darwin/src/OrganizationRequest.m +++ b/launchers/darwin/src/OrganizationRequest.m @@ -12,7 +12,7 @@ static NSString* const organizationURL = @"https://s3.amazonaws.com/hifi-public/ self.username = aUsername; const char *cKey = LAUNCHER_HMAC_SECRET; - const char *cData = [aOrganization cStringUsingEncoding:NSASCIIStringEncoding]; + const char *cData = [[aOrganization lowercaseString] cStringUsingEncoding:NSASCIIStringEncoding]; unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH]; CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC); NSData *HMACData = [NSData dataWithBytes:cHMAC length:sizeof(cHMAC)]; @@ -33,7 +33,6 @@ static NSString* const organizationURL = @"https://s3.amazonaws.com/hifi-public/ [sharedLauncher setLoginErrorState: NONE]; return [sharedLauncher organizationRequestFinished:TRUE]; } - NSLog(@"FAAAAILLLLLLLEEEEEEEDDDDDD"); [sharedLauncher setLoginErrorState: ORGANIZATION]; return [sharedLauncher organizationRequestFinished:FALSE]; /*NSLog(@"URL: %@", [organizationURL stringByAppendingString:jsonFile]); From 558719364062963e16bf2956638c71c38feae9ea Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Tue, 4 Jun 2019 09:06:31 -0700 Subject: [PATCH 05/13] Add more transition icon debugging --- libraries/render/src/render/DrawStatus.cpp | 36 +++++++++++++++++-- libraries/render/src/render/TransitionStage.h | 2 +- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/libraries/render/src/render/DrawStatus.cpp b/libraries/render/src/render/DrawStatus.cpp index 0484c0c125..35e482483d 100644 --- a/libraries/render/src/render/DrawStatus.cpp +++ b/libraries/render/src/render/DrawStatus.cpp @@ -17,6 +17,8 @@ #include #include +#include "TransitionStage.h" + #include #include @@ -142,11 +144,39 @@ void DrawStatus::run(const RenderContextPointer& renderContext, const Input& inp auto& value = (vec4Num == 0 ? itemStatus[nbItems].first : itemStatus[nbItems].second); Item::Status::Value status; - status.setColor(Item::Status::Value::CYAN); - status.setIcon((unsigned char)Item::Status::Icon::SIMULATION_OWNER); - if (itemScene.getTransitionId() != INVALID_INDEX) { + auto transitionID = itemScene.getTransitionId(); + if (transitionID != INVALID_INDEX) { // We have a transition. Show this icon. status.setScale(1.0f); + // Is this a valid transition ID according to FadeJob? + auto& transitionStage = scene->getStage(TransitionStage::getName()); + if (transitionStage) { + if (transitionStage->isTransitionUsed(transitionID)) { + // Valid, active transition + status.setColor(Item::Status::Value::CYAN); + } else { + // Render item has a defined transition ID, but it's unallocated and isn't being processed + status.setColor(Item::Status::Value::RED); + } + // Set icon based on transition type + auto& transition = transitionStage->getTransition(transitionID); + switch (transition.eventType) { + case Transition::Type::USER_ENTER_DOMAIN: + case Transition::ELEMENT_ENTER_DOMAIN: + status.setIcon((unsigned char)Item::Status::Icon::PACKET_RECEIVED); + break; + case Transition::Type::USER_LEAVE_DOMAIN: + case Transition::ELEMENT_LEAVE_DOMAIN: + status.setIcon((unsigned char)Item::Status::Icon::PACKET_SENT); + break; + default: + status.setIcon((unsigned char)Item::Status::Icon::HAS_ACTIONS); + break; + } + } else { + // No way to determine transition + status.setScale(0.0f); + } } else { status.setScale(0.0f); } diff --git a/libraries/render/src/render/TransitionStage.h b/libraries/render/src/render/TransitionStage.h index 1d10a5dedb..abfdca9a06 100644 --- a/libraries/render/src/render/TransitionStage.h +++ b/libraries/render/src/render/TransitionStage.h @@ -30,7 +30,7 @@ namespace render { static bool isIndexInvalid(Index index) { return index == INVALID_INDEX; } - bool checkTransitionId(Index index) const { return _transitions.checkIndex(index); } + bool isTransitionUsed(Index index) const { return _transitions.checkIndex(index) && !_transitions.isElementFreed(index); } const Transition& getTransition(Index TransitionId) const { return _transitions.get(TransitionId); } From 833946ceb381319059e4a4f44d2a63697480217d Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Tue, 4 Jun 2019 17:46:07 -0700 Subject: [PATCH 06/13] Clean up transition naming --- interface/src/avatar/AvatarManager.cpp | 2 +- .../src/avatars-renderer/Avatar.cpp | 4 +- .../src/EntityTreeRenderer.cpp | 2 +- .../src/RenderablePolyVoxEntityItem.cpp | 2 +- libraries/render-utils/src/FadeEffectJobs.cpp | 2 +- libraries/render/src/render/Scene.cpp | 46 ++++++------------- libraries/render/src/render/Scene.h | 46 +++++++++++-------- 7 files changed, 46 insertions(+), 58 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index f153f66799..bb8b7ba7f4 100755 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -597,7 +597,7 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar avatar->fadeOut(transaction, removalReason); workload::SpacePointer space = _space; - transaction.transitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() { + transaction.setTransitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() { if (avatar->getLastFadeRequested() != render::Transition::Type::USER_LEAVE_DOMAIN) { // The avatar is using another transition besides the fade-out transition, which means it is still in use. // Deleting the avatar now could cause state issues, so abort deletion and show message. diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 78481fdc2e..fb7eddd582 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -684,10 +684,10 @@ void Avatar::fadeOut(render::Transaction& transaction, KillAvatarReason reason) } void Avatar::fade(render::Transaction& transaction, render::Transition::Type type) { - transaction.addTransitionToItem(_renderItemID, type); + transaction.resetTransitionOnItem(_renderItemID, type); for (auto& attachmentModel : _attachmentModels) { for (auto itemId : attachmentModel->fetchRenderItemIDs()) { - transaction.addTransitionToItem(itemId, type, _renderItemID); + transaction.resetTransitionOnItem(itemId, type, _renderItemID); } } _lastFadeRequested = type; diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index ae8473e544..1ecbcb0c8b 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -1056,7 +1056,7 @@ void EntityTreeRenderer::fadeOutRenderable(const EntityRendererPointer& renderab render::Transaction transaction; auto scene = _viewState->getMain3DScene(); - transaction.transitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() { + transaction.setTransitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() { render::Transaction transaction; renderable->removeFromScene(scene, transaction); scene->enqueueTransaction(transaction); diff --git a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp index 183d2881f3..adf0a2d162 100644 --- a/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyVoxEntityItem.cpp @@ -1653,7 +1653,7 @@ void PolyVoxEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& s #ifdef POLYVOX_ENTITY_USE_FADE_EFFECT if (!_hasTransitioned) { - transaction.addTransitionToItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN); + transaction.resetTransitionOnItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN); _hasTransitioned = true; } #endif diff --git a/libraries/render-utils/src/FadeEffectJobs.cpp b/libraries/render-utils/src/FadeEffectJobs.cpp index 1e2ea2bc15..43206e77fa 100644 --- a/libraries/render-utils/src/FadeEffectJobs.cpp +++ b/libraries/render-utils/src/FadeEffectJobs.cpp @@ -69,7 +69,7 @@ void FadeEditJob::run(const render::RenderContextPointer& renderContext, const F if (transition == nullptr || transition->isFinished || transition->eventType != transitionType) { // Relaunch transition render::Transaction transaction; - transaction.addTransitionToItem(id, transitionType); + transaction.resetTransitionOnItem(id, transitionType); scene->enqueueTransaction(transaction); } }); diff --git a/libraries/render/src/render/Scene.cpp b/libraries/render/src/render/Scene.cpp index 3fd52d5fa2..bb43dcd2f5 100644 --- a/libraries/render/src/render/Scene.cpp +++ b/libraries/render/src/render/Scene.cpp @@ -31,23 +31,19 @@ void Transaction::removeItem(ItemID id) { _removedItems.emplace_back(id); } -void Transaction::addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId) { - _addedTransitions.emplace_back(id, transition, boundId); +void Transaction::resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId) { + _resetTransitions.emplace_back(id, transition, boundId); } void Transaction::removeTransitionFromItem(ItemID id) { - _addedTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID); -} - -void Transaction::reApplyTransitionToItem(ItemID id) { - _reAppliedTransitions.emplace_back(id); + _resetTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID); } void Transaction::queryTransitionOnItem(ItemID id, TransitionQueryFunc func) { _queriedTransitions.emplace_back(id, func); } -void Transaction::transitionFinishedOperator(ItemID id, TransitionFinishedFunc func) { +void Transaction::setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func) { _transitionFinishedOperators.emplace_back(id, func); } @@ -76,9 +72,8 @@ void Transaction::reserve(const std::vector& transactionContainer) size_t removedItemsCount = 0; size_t updatedItemsCount = 0; size_t resetSelectionsCount = 0; - size_t addedTransitionsCount = 0; + size_t resetTransitionsCount = 0; size_t queriedTransitionsCount = 0; - size_t reAppliedTransitionsCount = 0; size_t transitionFinishedOperatorsCount = 0; size_t highlightResetsCount = 0; size_t highlightRemovesCount = 0; @@ -89,10 +84,9 @@ void Transaction::reserve(const std::vector& transactionContainer) removedItemsCount += transaction._removedItems.size(); updatedItemsCount += transaction._updatedItems.size(); resetSelectionsCount += transaction._resetSelections.size(); - addedTransitionsCount += transaction._addedTransitions.size(); - transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size(); + resetTransitionsCount += transaction._resetTransitions.size(); queriedTransitionsCount += transaction._queriedTransitions.size(); - reAppliedTransitionsCount += transaction._reAppliedTransitions.size(); + transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size(); highlightResetsCount += transaction._highlightResets.size(); highlightRemovesCount += transaction._highlightRemoves.size(); highlightQueriesCount += transaction._highlightQueries.size(); @@ -102,9 +96,8 @@ void Transaction::reserve(const std::vector& transactionContainer) _removedItems.reserve(removedItemsCount); _updatedItems.reserve(updatedItemsCount); _resetSelections.reserve(resetSelectionsCount); - _addedTransitions.reserve(addedTransitionsCount); + _resetTransitions.reserve(resetTransitionsCount); _queriedTransitions.reserve(queriedTransitionsCount); - _reAppliedTransitions.reserve(reAppliedTransitionsCount); _transitionFinishedOperators.reserve(transitionFinishedOperatorsCount); _highlightResets.reserve(highlightResetsCount); _highlightRemoves.reserve(highlightRemovesCount); @@ -147,10 +140,9 @@ void Transaction::merge(Transaction&& transaction) { moveElements(_removedItems, transaction._removedItems); moveElements(_updatedItems, transaction._updatedItems); moveElements(_resetSelections, transaction._resetSelections); - moveElements(_addedTransitions, transaction._addedTransitions); + moveElements(_resetTransitions, transaction._resetTransitions); moveElements(_queriedTransitions, transaction._queriedTransitions); moveElements(_transitionFinishedOperators, transaction._transitionFinishedOperators); - moveElements(_reAppliedTransitions, transaction._reAppliedTransitions); moveElements(_highlightResets, transaction._highlightResets); moveElements(_highlightRemoves, transaction._highlightRemoves); moveElements(_highlightQueries, transaction._highlightQueries); @@ -161,9 +153,8 @@ void Transaction::merge(const Transaction& transaction) { copyElements(_removedItems, transaction._removedItems); copyElements(_updatedItems, transaction._updatedItems); copyElements(_resetSelections, transaction._resetSelections); - copyElements(_addedTransitions, transaction._addedTransitions); + copyElements(_resetTransitions, transaction._resetTransitions); copyElements(_queriedTransitions, transaction._queriedTransitions); - copyElements(_reAppliedTransitions, transaction._reAppliedTransitions); copyElements(_transitionFinishedOperators, transaction._transitionFinishedOperators); copyElements(_highlightResets, transaction._highlightResets); copyElements(_highlightRemoves, transaction._highlightRemoves); @@ -175,10 +166,9 @@ void Transaction::clear() { _removedItems.clear(); _updatedItems.clear(); _resetSelections.clear(); - _addedTransitions.clear(); + _resetTransitions.clear(); _queriedTransitions.clear(); _transitionFinishedOperators.clear(); - _reAppliedTransitions.clear(); _highlightResets.clear(); _highlightRemoves.clear(); _highlightQueries.clear(); @@ -278,8 +268,7 @@ void Scene::processTransactionFrame(const Transaction& transaction) { removeItems(transaction._removedItems); // add transitions - transitionItems(transaction._addedTransitions); - reApplyTransitions(transaction._reAppliedTransitions); + resetTransitionItems(transaction._resetTransitions); queryTransitionItems(transaction._queriedTransitions); resetTransitionFinishedOperator(transaction._transitionFinishedOperators); @@ -384,7 +373,7 @@ void Scene::updateItems(const Transaction::Updates& transactions) { } } -void Scene::transitionItems(const Transaction::TransitionAdds& transactions) { +void Scene::resetTransitionItems(const Transaction::TransitionResets& transactions) { auto transitionStage = getStage(TransitionStage::getName()); if (!transitionStage) { @@ -420,15 +409,6 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) { } } -void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) { - for (auto itemId : transactions) { - // Access the true item - const auto& item = _items[itemId]; - auto transitionId = item.getTransitionId(); - setItemTransition(itemId, transitionId); - } -} - void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) { auto transitionStage = getStage(TransitionStage::getName()); diff --git a/libraries/render/src/render/Scene.h b/libraries/render/src/render/Scene.h index 5f4a209b66..3cf59bbbcc 100644 --- a/libraries/render/src/render/Scene.h +++ b/libraries/render/src/render/Scene.h @@ -50,20 +50,18 @@ public: void resetItem(ItemID id, const PayloadPointer& payload); void removeItem(ItemID id); bool hasRemovedItems() const { return !_removedItems.empty(); } - - void addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID); - void removeTransitionFromItem(ItemID id); - void reApplyTransitionToItem(ItemID id); - void queryTransitionOnItem(ItemID id, TransitionQueryFunc func); - void transitionFinishedOperator(ItemID id, TransitionFinishedFunc func); - template void updateItem(ItemID id, std::function func) { updateItem(id, std::make_shared>(func)); } - void updateItem(ItemID id, const UpdateFunctorPointer& functor); void updateItem(ItemID id) { updateItem(id, nullptr); } + // Transition (applied to an item) transactions + void resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID); + void removeTransitionFromItem(ItemID id); + void setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func); + void queryTransitionOnItem(ItemID id, TransitionQueryFunc func); + // Selection transactions void resetSelection(const Selection& selection); @@ -83,11 +81,14 @@ protected: using Reset = std::tuple; using Remove = ItemID; using Update = std::tuple; - using TransitionAdd = std::tuple; - using TransitionQuery = std::tuple; + + using TransitionReset = std::tuple; + using TransitionRemove = ItemID; using TransitionFinishedOperator = std::tuple; - using TransitionReApply = ItemID; + using TransitionQuery = std::tuple; + using SelectionReset = Selection; + using HighlightReset = std::tuple; using HighlightRemove = std::string; using HighlightQuery = std::tuple; @@ -95,11 +96,14 @@ protected: using Resets = std::vector; using Removes = std::vector; using Updates = std::vector; - using TransitionAdds = std::vector; - using TransitionQueries = std::vector; + + using TransitionResets = std::vector; + using TransitionRemoves = std::vector; using TransitionFinishedOperators = std::vector; - using TransitionReApplies = std::vector; + using TransitionQueries = std::vector; + using SelectionResets = std::vector; + using HighlightResets = std::vector; using HighlightRemoves = std::vector; using HighlightQueries = std::vector; @@ -107,11 +111,14 @@ protected: Resets _resetItems; Removes _removedItems; Updates _updatedItems; - TransitionAdds _addedTransitions; - TransitionQueries _queriedTransitions; - TransitionReApplies _reAppliedTransitions; + + TransitionResets _resetTransitions; + TransitionRemoves _removeTransitions; TransitionFinishedOperators _transitionFinishedOperators; + TransitionQueries _queriedTransitions; + SelectionResets _resetSelections; + HighlightResets _highlightResets; HighlightRemoves _highlightRemoves; HighlightQueries _highlightQueries; @@ -215,9 +222,10 @@ protected: void resetTransitionFinishedOperator(const Transaction::TransitionFinishedOperators& transactions); void removeItems(const Transaction::Removes& transactions); void updateItems(const Transaction::Updates& transactions); - void transitionItems(const Transaction::TransitionAdds& transactions); - void reApplyTransitions(const Transaction::TransitionReApplies& transactions); + + void resetTransitionItems(const Transaction::TransitionResets& transactions); void queryTransitionItems(const Transaction::TransitionQueries& transactions); + void resetHighlights(const Transaction::HighlightResets& transactions); void removeHighlights(const Transaction::HighlightRemoves& transactions); void queryHighlights(const Transaction::HighlightQueries& transactions); From faf5db54768882d9eb4ef6cfcdaf9e884e5f5b23 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Thu, 6 Jun 2019 10:32:28 -0700 Subject: [PATCH 07/13] Change semantic for removing transitions --- libraries/render/src/render/Scene.cpp | 32 +++++++++++++++++++-------- libraries/render/src/render/Scene.h | 3 ++- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/libraries/render/src/render/Scene.cpp b/libraries/render/src/render/Scene.cpp index bb43dcd2f5..c516a833de 100644 --- a/libraries/render/src/render/Scene.cpp +++ b/libraries/render/src/render/Scene.cpp @@ -36,7 +36,7 @@ void Transaction::resetTransitionOnItem(ItemID id, Transition::Type transition, } void Transaction::removeTransitionFromItem(ItemID id) { - _resetTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID); + _removeTransitions.emplace_back(id); } void Transaction::queryTransitionOnItem(ItemID id, TransitionQueryFunc func) { @@ -73,6 +73,7 @@ void Transaction::reserve(const std::vector& transactionContainer) size_t updatedItemsCount = 0; size_t resetSelectionsCount = 0; size_t resetTransitionsCount = 0; + size_t removeTransitionsCount = 0; size_t queriedTransitionsCount = 0; size_t transitionFinishedOperatorsCount = 0; size_t highlightResetsCount = 0; @@ -85,6 +86,7 @@ void Transaction::reserve(const std::vector& transactionContainer) updatedItemsCount += transaction._updatedItems.size(); resetSelectionsCount += transaction._resetSelections.size(); resetTransitionsCount += transaction._resetTransitions.size(); + removeTransitionsCount += transaction._removeTransitions.size(); queriedTransitionsCount += transaction._queriedTransitions.size(); transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size(); highlightResetsCount += transaction._highlightResets.size(); @@ -97,6 +99,7 @@ void Transaction::reserve(const std::vector& transactionContainer) _updatedItems.reserve(updatedItemsCount); _resetSelections.reserve(resetSelectionsCount); _resetTransitions.reserve(resetTransitionsCount); + _removeTransitions.reserve(removeTransitionsCount); _queriedTransitions.reserve(queriedTransitionsCount); _transitionFinishedOperators.reserve(transitionFinishedOperatorsCount); _highlightResets.reserve(highlightResetsCount); @@ -141,6 +144,7 @@ void Transaction::merge(Transaction&& transaction) { moveElements(_updatedItems, transaction._updatedItems); moveElements(_resetSelections, transaction._resetSelections); moveElements(_resetTransitions, transaction._resetTransitions); + moveElements(_removeTransitions, transaction._removeTransitions); moveElements(_queriedTransitions, transaction._queriedTransitions); moveElements(_transitionFinishedOperators, transaction._transitionFinishedOperators); moveElements(_highlightResets, transaction._highlightResets); @@ -154,6 +158,7 @@ void Transaction::merge(const Transaction& transaction) { copyElements(_updatedItems, transaction._updatedItems); copyElements(_resetSelections, transaction._resetSelections); copyElements(_resetTransitions, transaction._resetTransitions); + copyElements(_removeTransitions, transaction._removeTransitions); copyElements(_queriedTransitions, transaction._queriedTransitions); copyElements(_transitionFinishedOperators, transaction._transitionFinishedOperators); copyElements(_highlightResets, transaction._highlightResets); @@ -167,6 +172,7 @@ void Transaction::clear() { _updatedItems.clear(); _resetSelections.clear(); _resetTransitions.clear(); + _removeTransitions.clear(); _queriedTransitions.clear(); _transitionFinishedOperators.clear(); _highlightResets.clear(); @@ -269,6 +275,7 @@ void Scene::processTransactionFrame(const Transaction& transaction) { // add transitions resetTransitionItems(transaction._resetTransitions); + removeTransitionItems(transaction._removeTransitions); queryTransitionItems(transaction._queriedTransitions); resetTransitionFinishedOperator(transaction._transitionFinishedOperators); @@ -321,7 +328,7 @@ void Scene::removeItems(const Transaction::Removes& transactions) { } // Remove the transition to prevent updating it for nothing - resetItemTransition(removedID); + removeItemTransition(removedID); // Kill it item.kill(); @@ -390,12 +397,7 @@ void Scene::resetTransitionItems(const Transaction::TransitionResets& transactio // Remove pre-existing transition, if need be if (!TransitionStage::isIndexInvalid(transitionId)) { - // Only remove if: - // transitioning to something other than none or we're transitioning to none from ELEMENT_LEAVE_DOMAIN or USER_LEAVE_DOMAIN - const auto& oldTransitionType = transitionStage->getTransition(transitionId).eventType; - if (transitionType != oldTransitionType) { - resetItemTransition(itemId); - } + removeItemTransition(itemId); } // Add a new one. @@ -409,6 +411,18 @@ void Scene::resetTransitionItems(const Transaction::TransitionResets& transactio } } +void Scene::removeTransitionItems(const Transaction::TransitionRemoves& transactions) { + for (auto& itemId : transactions) { + // Access the true item + const auto& item = _items[itemId]; + auto transitionId = item.getTransitionId(); + + if (!TransitionStage::isIndexInvalid(transitionId)) { + removeItemTransition(itemId); + } + } +} + void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) { auto transitionStage = getStage(TransitionStage::getName()); @@ -535,7 +549,7 @@ void Scene::setItemTransition(ItemID itemId, Index transitionId) { } } -void Scene::resetItemTransition(ItemID itemId) { +void Scene::removeItemTransition(ItemID itemId) { auto transitionStage = getStage(TransitionStage::getName()); if (!transitionStage) { return; diff --git a/libraries/render/src/render/Scene.h b/libraries/render/src/render/Scene.h index 3cf59bbbcc..1bc282646b 100644 --- a/libraries/render/src/render/Scene.h +++ b/libraries/render/src/render/Scene.h @@ -192,7 +192,7 @@ public: void resetStage(const Stage::Name& name, const StagePointer& stage); void setItemTransition(ItemID id, Index transitionId); - void resetItemTransition(ItemID id); + void removeItemTransition(ItemID id); protected: @@ -224,6 +224,7 @@ protected: void updateItems(const Transaction::Updates& transactions); void resetTransitionItems(const Transaction::TransitionResets& transactions); + void removeTransitionItems(const Transaction::TransitionRemoves& transactions); void queryTransitionItems(const Transaction::TransitionQueries& transactions); void resetHighlights(const Transaction::HighlightResets& transactions); From 971d563f498d2702a0ecf7f8ce8d1afa4b5a89fa Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Thu, 6 Jun 2019 13:23:35 -0700 Subject: [PATCH 08/13] Add debug icons for transitions --- interface/resources/icons/statusIconAtlas.svg | 219 ++++++++++++++---- libraries/render/src/render/DrawStatus.cpp | 12 +- libraries/render/src/render/Item.h | 5 + 3 files changed, 182 insertions(+), 54 deletions(-) diff --git a/interface/resources/icons/statusIconAtlas.svg b/interface/resources/icons/statusIconAtlas.svg index 027102cc69..1ad83aa3b8 100644 --- a/interface/resources/icons/statusIconAtlas.svg +++ b/interface/resources/icons/statusIconAtlas.svg @@ -1,52 +1,171 @@ - - - - \ No newline at end of file diff --git a/libraries/render/src/render/DrawStatus.cpp b/libraries/render/src/render/DrawStatus.cpp index 35e482483d..bdc27bd857 100644 --- a/libraries/render/src/render/DrawStatus.cpp +++ b/libraries/render/src/render/DrawStatus.cpp @@ -162,15 +162,19 @@ void DrawStatus::run(const RenderContextPointer& renderContext, const Input& inp auto& transition = transitionStage->getTransition(transitionID); switch (transition.eventType) { case Transition::Type::USER_ENTER_DOMAIN: - case Transition::ELEMENT_ENTER_DOMAIN: - status.setIcon((unsigned char)Item::Status::Icon::PACKET_RECEIVED); + status.setIcon((unsigned char)Item::Status::Icon::USER_TRANSITION_IN); break; case Transition::Type::USER_LEAVE_DOMAIN: + status.setIcon((unsigned char)Item::Status::Icon::USER_TRANSITION_OUT); + break; + case Transition::ELEMENT_ENTER_DOMAIN: + status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION_IN); + break; case Transition::ELEMENT_LEAVE_DOMAIN: - status.setIcon((unsigned char)Item::Status::Icon::PACKET_SENT); + status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION_OUT); break; default: - status.setIcon((unsigned char)Item::Status::Icon::HAS_ACTIONS); + status.setIcon((unsigned char)Item::Status::Icon::GENERIC_TRANSITION); break; } } else { diff --git a/libraries/render/src/render/Item.h b/libraries/render/src/render/Item.h index d5d3e6942a..4736359832 100644 --- a/libraries/render/src/render/Item.h +++ b/libraries/render/src/render/Item.h @@ -363,6 +363,11 @@ public: HAS_ACTIONS = 4, OTHER_SIMULATION_OWNER = 5, ENTITY_HOST_TYPE = 6, + GENERIC_TRANSITION = 7, + GENERIC_TRANSITION_OUT = 8, + GENERIC_TRANSITION_IN = 9, + USER_TRANSITION_OUT = 10, + USER_TRANSITION_IN = 11, NONE = 255 }; From a7ad087bd06654034924c1b139f40af4e5a88e6d Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Thu, 6 Jun 2019 14:23:18 -0700 Subject: [PATCH 09/13] Fix BUGZ-201: Prevent MUTED banner from being cut off when muted on startup --- interface/src/ui/InteractiveWindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/InteractiveWindow.cpp b/interface/src/ui/InteractiveWindow.cpp index 7e8c176424..2fbb665c48 100644 --- a/interface/src/ui/InteractiveWindow.cpp +++ b/interface/src/ui/InteractiveWindow.cpp @@ -150,7 +150,9 @@ InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap if (status == QQuickView::Ready) { QQuickItem* rootItem = _dockWidget->getRootItem(); _dockWidget->getQuickView()->rootContext()->setContextProperty(EVENT_BRIDGE_PROPERTY, this); - QObject::connect(rootItem, SIGNAL(sendToScript(QVariant)), this, SLOT(qmlToScript(const QVariant&)), Qt::QueuedConnection); + QObject::connect(rootItem, SIGNAL(sendToScript(QVariant)), this, SLOT(qmlToScript(const QVariant&)), + Qt::QueuedConnection); + emit mainWindow->windowGeometryChanged(qApp->getWindow()->geometry()); } }); _dockWidget->setSource(QUrl(sourceUrl)); From 5fe4f35139645d15051405bdafb469361d532ca0 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Thu, 6 Jun 2019 14:35:45 -0700 Subject: [PATCH 10/13] propertly encode --- launchers/darwin/src/CredentialsRequest.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/launchers/darwin/src/CredentialsRequest.m b/launchers/darwin/src/CredentialsRequest.m index d2e7e51573..fd651bd98a 100644 --- a/launchers/darwin/src/CredentialsRequest.m +++ b/launchers/darwin/src/CredentialsRequest.m @@ -7,7 +7,9 @@ - (void) confirmCredentials:(NSString*)username :(NSString*)password { NSLog(@"web request started"); - NSString *post = [NSString stringWithFormat:@"grant_type=password&username=%@&password=%@&scope=owner", username, [password stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet symbolCharacterSet]]]; + NSString *post = [NSString stringWithFormat:@"grant_type=password&username=%@&password=%@&scope=owner", + [username stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]], + [password stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]]]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding]; NSString *postLength = [NSString stringWithFormat:@"%ld", (unsigned long)[postData length]]; From 9a75feecde35b4551bf53bb8fbe76326f187c085 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Thu, 6 Jun 2019 14:52:42 -0700 Subject: [PATCH 11/13] Fix binding to temporary transitionStage pointer --- libraries/render/src/render/DrawStatus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/render/src/render/DrawStatus.cpp b/libraries/render/src/render/DrawStatus.cpp index bdc27bd857..d010929e7a 100644 --- a/libraries/render/src/render/DrawStatus.cpp +++ b/libraries/render/src/render/DrawStatus.cpp @@ -149,7 +149,7 @@ void DrawStatus::run(const RenderContextPointer& renderContext, const Input& inp // We have a transition. Show this icon. status.setScale(1.0f); // Is this a valid transition ID according to FadeJob? - auto& transitionStage = scene->getStage(TransitionStage::getName()); + auto transitionStage = scene->getStage(TransitionStage::getName()); if (transitionStage) { if (transitionStage->isTransitionUsed(transitionID)) { // Valid, active transition From d2e9abd72c6cc270535f3f5e717ffaa93a912859 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 6 Jun 2019 15:01:54 -0700 Subject: [PATCH 12/13] Tweak limits; add comment --- tools/dissectors/1-hfudt.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index eeda0c4d7e..00b71a341a 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -313,7 +313,10 @@ function p_hfudt.dissector(buf, pinfo, tree) -- check if we have part of a message that we need to re-assemble -- before it can be dissected - if message_bit == 1 and message_position ~= 0 and message_number < 50 and message_part_number < 10 then + -- limit array indices to prevent lock-up with arbitrary data + if message_bit == 1 and message_position ~= 0 and message_number < 100 + and message_part_number < 100 then + if fragments[message_number] == nil then fragments[message_number] = {} end From 11b505f59fccc59aa536ee964bbf1ce3f246cc97 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Thu, 6 Jun 2019 16:40:39 -0700 Subject: [PATCH 13/13] Fix spurious error from prebuilt script --- prebuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebuild.py b/prebuild.py index 1fb96290b3..bd4c74bd64 100644 --- a/prebuild.py +++ b/prebuild.py @@ -114,7 +114,7 @@ def main(): args = parse_args() if args.ci_build: - logging.basicConfig(datefmt='%s', format='%(asctime)s %(guid)s %(message)s', level=logging.INFO) + logging.basicConfig(datefmt='%H:%M:%S', format='%(asctime)s %(guid)s %(message)s', level=logging.INFO) logger.info('sha=%s' % headSha()) logger.info('start')