merge with master
|
@ -453,6 +453,13 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
|||
// or that somehow we haven't sent
|
||||
if (lastSeqToReceiver == lastSeqFromSender && lastSeqToReceiver != 0) {
|
||||
++numAvatarsHeldBack;
|
||||
|
||||
// BUGZ-781 verbose debugging:
|
||||
auto usecLastTimeSent = destinationNodeData->getLastOtherAvatarEncodeTime(sourceAvatarNodeData->getNodeLocalID());
|
||||
if (usecLastTimeSent != 0 && startIgnoreCalculation - usecLastTimeSent > 10 * USECS_PER_SECOND) {
|
||||
qCDebug(avatars) << "Not sent avatar" << *sourceAvatarNode << "to Node" << *destinationNode << "in > 10 s";
|
||||
}
|
||||
|
||||
sendAvatar = false;
|
||||
} else if (lastSeqFromSender == 0) {
|
||||
// We have have not yet received any data about this avatar. Ignore it for now
|
||||
|
|
|
@ -66,6 +66,9 @@ macro(AUTOSCRIBE_PLATFORM_SHADER)
|
|||
list(APPEND SHADER_GEN_LINE ${TEMP_PATH})
|
||||
file(RELATIVE_PATH TEMP_PATH ${CMAKE_SOURCE_DIR} ${AUTOSCRIBE_OUTPUT_FILE})
|
||||
list(APPEND SHADER_GEN_LINE ${TEMP_PATH})
|
||||
if (NOT("${DEFINES}" STREQUAL ""))
|
||||
list(APPEND SHADER_GEN_LINE "defines:${DEFINES}")
|
||||
endif()
|
||||
list(APPEND SHADER_GEN_LINE ${AUTOSCRIBE_SHADER_SEEN_LIBS})
|
||||
string(CONCAT AUTOSCRIBE_SHADERGEN_COMMANDS "${AUTOSCRIBE_SHADERGEN_COMMANDS}" "${SHADER_GEN_LINE}\n")
|
||||
endmacro()
|
||||
|
@ -108,6 +111,10 @@ macro(AUTOSCRIBE_SHADER)
|
|||
set(SHADER_TYPE geom)
|
||||
endif()
|
||||
|
||||
if (NOT("${DEFINES}" STREQUAL ""))
|
||||
string(CONCAT SHADER_NAME "${SHADER_NAME}" "_${DEFINES}")
|
||||
endif()
|
||||
|
||||
set(SCRIBE_ARGS -D GLPROFILE ${GLPROFILE} -T ${SHADER_TYPE} ${SCRIBE_INCLUDES} )
|
||||
|
||||
# SHADER_SCRIBED -> the output of scribe
|
||||
|
@ -135,11 +142,78 @@ macro(AUTOSCRIBE_SHADER)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${SHADER_NAME} = ${SHADER_COUNT},\n")
|
||||
string(CONCAT SHADER_LIST "${SHADER_LIST}" "${SHADER_NAME} = ${SHADER_COUNT},\n")
|
||||
string(CONCAT SHADER_SHADERS_ARRAY "${SHADER_SHADERS_ARRAY}" "${SHADER_COUNT},\n")
|
||||
MATH(EXPR SHADER_COUNT "${SHADER_COUNT}+1")
|
||||
endmacro()
|
||||
|
||||
# This function takes in the list of defines, which would look like:
|
||||
# (normalmap;translucent:f)/shadow;deformed:v
|
||||
# and handles parentheses and slashes, producing the semicolon-separated final list of all combinations, which in that case will look like:
|
||||
# normalmap;translucent:f;normalmap_translucent:f;shadow;normalmap_deformed:v;translucent:f_deformed:v;normalmap_translucent:f_deformed:v;shadow_deformed:v
|
||||
function(GENERATE_DEFINES_LIST_HELPER INPUT_LIST RETURN_LIST)
|
||||
# This while loop handles parentheses, looking for matching ( and ) and then calling GENERATE_DEFINES_LIST_HELPER recursively on the text in between
|
||||
string(LENGTH "${INPUT_LIST}" STR_LENGTH)
|
||||
set(OPEN_INDEX -1)
|
||||
set(STR_INDEX 0)
|
||||
set(NESTED_DEPTH 0)
|
||||
while ("${STR_INDEX}" LESS "${STR_LENGTH}")
|
||||
string(SUBSTRING "${INPUT_LIST}" ${STR_INDEX} 1 CURRENT_CHAR)
|
||||
|
||||
if (("${CURRENT_CHAR}" STREQUAL "(") AND (OPEN_INDEX EQUAL -1))
|
||||
set(OPEN_INDEX ${STR_INDEX})
|
||||
MATH(EXPR STR_INDEX "${STR_INDEX}+1")
|
||||
continue()
|
||||
elseif (("${CURRENT_CHAR}" STREQUAL "(") AND NOT(OPEN_INDEX EQUAL -1))
|
||||
MATH(EXPR NESTED_DEPTH "${NESTED_DEPTH}+1")
|
||||
MATH(EXPR STR_INDEX "${STR_INDEX}+1")
|
||||
continue()
|
||||
elseif (("${CURRENT_CHAR}" STREQUAL ")") AND NOT(OPEN_INDEX EQUAL -1) AND (NESTED_DEPTH GREATER 0))
|
||||
MATH(EXPR NESTED_DEPTH "${NESTED_DEPTH}-1")
|
||||
MATH(EXPR STR_INDEX "${STR_INDEX}+1")
|
||||
continue()
|
||||
elseif (("${CURRENT_CHAR}" STREQUAL ")") AND NOT(OPEN_INDEX EQUAL -1) AND (NESTED_DEPTH EQUAL 0))
|
||||
MATH(EXPR OPEN_INDEX "${OPEN_INDEX}+1")
|
||||
MATH(EXPR SUBSTR_LENGTH "${STR_INDEX}-${OPEN_INDEX}")
|
||||
string(SUBSTRING "${INPUT_LIST}" ${OPEN_INDEX} ${SUBSTR_LENGTH} GROUP_STR)
|
||||
GENERATE_DEFINES_LIST_HELPER("${GROUP_STR}" EXPANDED_GROUP_LIST)
|
||||
string(REPLACE ";" "/" EXPANDED_GROUP_LIST "${EXPANDED_GROUP_LIST}")
|
||||
string(REPLACE "(${GROUP_STR})" "${EXPANDED_GROUP_LIST}" INPUT_LIST "${INPUT_LIST}")
|
||||
MATH(EXPR STR_INDEX "${OPEN_INDEX}-1")
|
||||
set(OPEN_INDEX -1)
|
||||
string(LENGTH "${INPUT_LIST}" STR_LENGTH)
|
||||
continue()
|
||||
endif()
|
||||
|
||||
MATH(EXPR STR_INDEX "${STR_INDEX}+1")
|
||||
endwhile()
|
||||
|
||||
# Here we handle the base case, the recursive case, and slashes
|
||||
list(LENGTH INPUT_LIST NUM_DEFINES)
|
||||
if (NUM_DEFINES EQUAL 1)
|
||||
string(REPLACE "/" ";" INPUT_LIST "${INPUT_LIST}")
|
||||
set(${RETURN_LIST} ${INPUT_LIST} PARENT_SCOPE)
|
||||
elseif (NUM_DEFINES GREATER 1)
|
||||
list(GET INPUT_LIST 0 CURRENT_DEFINES)
|
||||
string(REPLACE "/" ";" CURRENT_DEFINES "${CURRENT_DEFINES}")
|
||||
list(REMOVE_AT INPUT_LIST 0)
|
||||
GENERATE_DEFINES_LIST_HELPER("${INPUT_LIST}" REMAINING_DEFINES_LIST)
|
||||
set(TO_RETURN_LIST "${CURRENT_DEFINES}")
|
||||
foreach(REMAINING_DEFINES ${REMAINING_DEFINES_LIST})
|
||||
list(APPEND TO_RETURN_LIST "${REMAINING_DEFINES}")
|
||||
foreach(CURRENT_DEFINE ${CURRENT_DEFINES})
|
||||
list(APPEND TO_RETURN_LIST "${CURRENT_DEFINE}_${REMAINING_DEFINES}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
set(${RETURN_LIST} ${TO_RETURN_LIST} PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
macro(GENERATE_DEFINES_LIST)
|
||||
set(DEFINES_LIST "")
|
||||
GENERATE_DEFINES_LIST_HELPER("${ARGV0}" DEFINES_LIST)
|
||||
endmacro()
|
||||
|
||||
macro(AUTOSCRIBE_SHADER_LIB)
|
||||
if (NOT ("${TARGET_NAME}" STREQUAL "shaders"))
|
||||
message(FATAL_ERROR "AUTOSCRIBE_SHADER_LIB can only be used by the shaders library")
|
||||
|
@ -164,24 +238,24 @@ macro(AUTOSCRIBE_SHADER_LIB)
|
|||
if (SHADER_VERTEX_FILES)
|
||||
source_group("${SHADER_LIB}/Vertex" FILES ${SHADER_VERTEX_FILES})
|
||||
list(APPEND ALL_SCRIBE_SHADERS ${SHADER_VERTEX_FILES})
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace vertex { enum {\n")
|
||||
foreach(SHADER_FILE ${SHADER_VERTEX_FILES})
|
||||
set(SHADER_LIST "namespace vertex { enum {\n")
|
||||
foreach(SHADER_FILE ${SHADER_VERTEX_FILES})
|
||||
AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
|
||||
endforeach()
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // vertex \n")
|
||||
set(VERTEX_ENUMS "${SHADER_LIST}")
|
||||
endif()
|
||||
|
||||
file(GLOB_RECURSE SHADER_FRAGMENT_FILES ${SRC_FOLDER}/*.slf)
|
||||
if (SHADER_FRAGMENT_FILES)
|
||||
source_group("${SHADER_LIB}/Fragment" FILES ${SHADER_FRAGMENT_FILES})
|
||||
list(APPEND ALL_SCRIBE_SHADERS ${SHADER_FRAGMENT_FILES})
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace fragment { enum {\n")
|
||||
foreach(SHADER_FILE ${SHADER_FRAGMENT_FILES})
|
||||
set(SHADER_LIST "namespace fragment { enum {\n")
|
||||
foreach(SHADER_FILE ${SHADER_FRAGMENT_FILES})
|
||||
AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
|
||||
endforeach()
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // fragment \n")
|
||||
set(FRAGMENT_ENUMS "${SHADER_LIST}")
|
||||
endif()
|
||||
|
||||
|
||||
# FIXME add support for geometry, compute and tesselation shaders
|
||||
#file(GLOB_RECURSE SHADER_GEOMETRY_FILES ${SRC_FOLDER}/*.slg)
|
||||
#file(GLOB_RECURSE SHADER_COMPUTE_FILES ${SRC_FOLDER}/*.slc)
|
||||
|
@ -191,13 +265,14 @@ macro(AUTOSCRIBE_SHADER_LIB)
|
|||
if (SHADER_PROGRAM_FILES)
|
||||
source_group("${SHADER_LIB}/Program" FILES ${SHADER_PROGRAM_FILES})
|
||||
list(APPEND ALL_SCRIBE_SHADERS ${SHADER_PROGRAM_FILES})
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "namespace program { enum {\n")
|
||||
set(PROGRAM_ENUMS "namespace program { enum {\n")
|
||||
foreach(PROGRAM_FILE ${SHADER_PROGRAM_FILES})
|
||||
get_filename_component(PROGRAM_NAME ${PROGRAM_FILE} NAME_WE)
|
||||
set(AUTOSCRIBE_PROGRAM_FRAGMENT ${PROGRAM_NAME})
|
||||
get_filename_component(PROGRAM_FOLDER ${PROGRAM_FILE} DIRECTORY)
|
||||
file(READ ${PROGRAM_FILE} PROGRAM_CONFIG)
|
||||
set(AUTOSCRIBE_PROGRAM_VERTEX ${PROGRAM_NAME})
|
||||
set(AUTOSCRIBE_PROGRAM_FRAGMENT ${PROGRAM_NAME})
|
||||
set(AUTOSCRIBE_PROGRAM_DEFINES "")
|
||||
|
||||
if (NOT("${PROGRAM_CONFIG}" STREQUAL ""))
|
||||
string(REGEX MATCH ".*VERTEX +([_\\:A-Z0-9a-z]+)" MVERT ${PROGRAM_CONFIG})
|
||||
|
@ -208,6 +283,12 @@ macro(AUTOSCRIBE_SHADER_LIB)
|
|||
if (CMAKE_MATCH_1)
|
||||
set(AUTOSCRIBE_PROGRAM_FRAGMENT ${CMAKE_MATCH_1})
|
||||
endif()
|
||||
string(REGEX MATCH ".*DEFINES +([a-zA-Z\(\)/: ]+)" MDEF ${PROGRAM_CONFIG})
|
||||
if (CMAKE_MATCH_1)
|
||||
set(AUTOSCRIBE_PROGRAM_DEFINES ${CMAKE_MATCH_1})
|
||||
string(TOLOWER AUTOSCRIBE_PROGRAM_DEFINES "${AUTOSCRIBE_PROGRAM_DEFINES}")
|
||||
string(REGEX REPLACE " +" ";" AUTOSCRIBE_PROGRAM_DEFINES "${AUTOSCRIBE_PROGRAM_DEFINES}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT (${AUTOSCRIBE_PROGRAM_VERTEX} MATCHES ".*::.*"))
|
||||
|
@ -216,12 +297,82 @@ macro(AUTOSCRIBE_SHADER_LIB)
|
|||
if (NOT (${AUTOSCRIBE_PROGRAM_FRAGMENT} MATCHES ".*::.*"))
|
||||
set(AUTOSCRIBE_PROGRAM_FRAGMENT "fragment::${AUTOSCRIBE_PROGRAM_FRAGMENT}")
|
||||
endif()
|
||||
string(REGEX REPLACE ".*::" "" VERTEX_NAME "${AUTOSCRIBE_PROGRAM_VERTEX}")
|
||||
string(REGEX REPLACE ".*::" "" FRAGMENT_NAME "${AUTOSCRIBE_PROGRAM_FRAGMENT}")
|
||||
|
||||
set(PROGRAM_ENTRY "${PROGRAM_NAME} = (${AUTOSCRIBE_PROGRAM_VERTEX} << 16) | ${AUTOSCRIBE_PROGRAM_FRAGMENT},\n")
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${PROGRAM_ENTRY}")
|
||||
GENERATE_DEFINES_LIST("${AUTOSCRIBE_PROGRAM_DEFINES}")
|
||||
|
||||
string(CONCAT PROGRAM_ENUMS "${PROGRAM_ENUMS}" "${PROGRAM_NAME} = (${AUTOSCRIBE_PROGRAM_VERTEX} << 16) | ${AUTOSCRIBE_PROGRAM_FRAGMENT},\n")
|
||||
string(CONCAT SHADER_PROGRAMS_ARRAY "${SHADER_PROGRAMS_ARRAY} ${SHADER_NAMESPACE}::program::${PROGRAM_NAME},\n")
|
||||
|
||||
foreach(DEFINES ${DEFINES_LIST})
|
||||
set(ORIG_DEFINES "${DEFINES}")
|
||||
|
||||
# Below here we handle :v and :f. The program name includes both, but the vertex and fragment names
|
||||
# remove the elements with :f and :v respectively, and only have to call AUTOSCRIBE_SHADER if they don't have those
|
||||
# (because the shaders without them will have already been generated)
|
||||
string(REPLACE ":v" "" VERTEX_DEFINES "${ORIG_DEFINES}")
|
||||
string(FIND "${ORIG_DEFINES}" ":f" HAS_FRAGMENT)
|
||||
if (HAS_FRAGMENT EQUAL -1)
|
||||
set(DEFINES "${VERTEX_DEFINES}")
|
||||
set(SHADER_LIST "")
|
||||
set(SHADER_FILE "${PROGRAM_FOLDER}/${VERTEX_NAME}.slv")
|
||||
if (NOT EXISTS "${SHADER_FILE}")
|
||||
set(SHADER_FILE "${PROGRAM_FOLDER}/../${VERTEX_NAME}.slv")
|
||||
endif()
|
||||
find_file(SHADER_FILE "" PATHS "${PROGRAM_FOLDER}" PATH_SUFFIXES ".." NO_DEFAULT_PATH)
|
||||
AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
|
||||
string(CONCAT VERTEX_ENUMS "${VERTEX_ENUMS}" "${SHADER_LIST}")
|
||||
else()
|
||||
string(REGEX REPLACE "_*[^_]*:f" "" VERTEX_DEFINES "${VERTEX_DEFINES}")
|
||||
endif()
|
||||
|
||||
if (NOT("${VERTEX_DEFINES}" STREQUAL "") AND NOT("${VERTEX_DEFINES}" MATCHES "^_.*"))
|
||||
set(VERTEX_DEFINES "_${VERTEX_DEFINES}")
|
||||
endif()
|
||||
|
||||
string(REPLACE ":f" "" FRAGMENT_DEFINES "${ORIG_DEFINES}")
|
||||
string(FIND "${ORIG_DEFINES}" ":v" HAS_VERTEX)
|
||||
if (HAS_VERTEX EQUAL -1)
|
||||
set(DEFINES "${FRAGMENT_DEFINES}")
|
||||
set(SHADER_LIST "")
|
||||
set(SHADER_FILE "${PROGRAM_FOLDER}/${FRAGMENT_NAME}.slf")
|
||||
if (NOT EXISTS "${SHADER_FILE}")
|
||||
set(SHADER_FILE "${PROGRAM_FOLDER}/../${FRAGMENT_NAME}.slf")
|
||||
endif()
|
||||
AUTOSCRIBE_SHADER(${ALL_SHADER_HEADERS})
|
||||
string(CONCAT FRAGMENT_ENUMS "${FRAGMENT_ENUMS}" "${SHADER_LIST}")
|
||||
else()
|
||||
string(REGEX REPLACE "_*[^_]*:v" "" FRAGMENT_DEFINES "${FRAGMENT_DEFINES}")
|
||||
endif()
|
||||
|
||||
if (NOT("${FRAGMENT_DEFINES}" STREQUAL "") AND NOT("${FRAGMENT_DEFINES}" MATCHES "^_.*"))
|
||||
set(FRAGMENT_DEFINES "_${FRAGMENT_DEFINES}")
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE ":(f|v)" "" PROGRAM_DEFINES "${ORIG_DEFINES}")
|
||||
|
||||
if (NOT("${PROGRAM_DEFINES}" STREQUAL ""))
|
||||
string(CONCAT PROGRAM_ENUMS "${PROGRAM_ENUMS}" "${PROGRAM_NAME}_${PROGRAM_DEFINES} = (${AUTOSCRIBE_PROGRAM_VERTEX}${VERTEX_DEFINES} << 16) | ${AUTOSCRIBE_PROGRAM_FRAGMENT}${FRAGMENT_DEFINES},\n")
|
||||
string(CONCAT SHADER_PROGRAMS_ARRAY "${SHADER_PROGRAMS_ARRAY} ${SHADER_NAMESPACE}::program::${PROGRAM_NAME}_${PROGRAM_DEFINES},\n")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "}; } // program \n")
|
||||
endif()
|
||||
|
||||
if (SHADER_VERTEX_FILES)
|
||||
string(CONCAT VERTEX_ENUMS "${VERTEX_ENUMS}" "}; } // vertex \n")
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${VERTEX_ENUMS}")
|
||||
endif()
|
||||
|
||||
if (SHADER_FRAGMENT_FILES)
|
||||
string(CONCAT FRAGMENT_ENUMS "${FRAGMENT_ENUMS}" "}; } // fragment \n")
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${FRAGMENT_ENUMS}")
|
||||
endif()
|
||||
|
||||
if (SHADER_PROGRAM_FILES)
|
||||
string(CONCAT PROGRAM_ENUMS "${PROGRAM_ENUMS}" "}; } // program \n")
|
||||
string(CONCAT SHADER_ENUMS "${SHADER_ENUMS}" "${PROGRAM_ENUMS}")
|
||||
endif()
|
||||
|
||||
# Finish the shader enums
|
||||
|
|
|
@ -121,12 +121,13 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
|
|||
nodeData->setNodeInterestSet(safeInterestSet);
|
||||
nodeData->setPlaceName(nodeConnection.placeName);
|
||||
|
||||
QMetaEnum metaEnum = QMetaEnum::fromType<LimitedNodeList::ConnectReason>();
|
||||
qDebug() << "Allowed connection from node" << uuidStringWithoutCurlyBraces(node->getUUID())
|
||||
<< "on" << message->getSenderSockAddr()
|
||||
<< "with MAC" << nodeConnection.hardwareAddress
|
||||
<< "and machine fingerprint" << nodeConnection.machineFingerprint
|
||||
<< "user" << username
|
||||
<< "reason" << QString(nodeConnection.connectReason ? "SilentDomainDisconnect" : "Connect")
|
||||
<< "reason" << QString(metaEnum.valueToKey(nodeConnection.connectReason))
|
||||
<< "previous connection uptime" << nodeConnection.previousConnectionUpTime/USECS_PER_MSEC << "msec"
|
||||
<< "sysinfo" << nodeConnection.SystemInfo;
|
||||
|
||||
|
|
|
@ -2498,7 +2498,7 @@ bool DomainServer::handleHTTPRequest(HTTPConnection* connection, const QUrl& url
|
|||
return true;
|
||||
} else if (allNodesDeleteRegex.indexIn(url.path()) != -1) {
|
||||
qDebug() << "Received request to kill all nodes.";
|
||||
nodeList->eraseAllNodes();
|
||||
nodeList->eraseAllNodes(url.path());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
BIN
interface/resources/avatar/animations/idle02.fbx
Normal file
BIN
interface/resources/avatar/animations/idle03.fbx
Normal file
BIN
interface/resources/avatar/animations/idle_once_fidget.fbx
Normal file
BIN
interface/resources/avatar/animations/jog_right.fbx
Normal file
BIN
interface/resources/avatar/animations/jump_standing_apex_all.fbx
Normal file
BIN
interface/resources/avatar/animations/run_fast_fwd.fbx
Normal file
BIN
interface/resources/avatar/animations/run_fast_left.fbx
Normal file
BIN
interface/resources/avatar/animations/run_fast_right.fbx
Normal file
BIN
interface/resources/avatar/animations/settle_to_idle_small.fbx
Normal file
BIN
interface/resources/avatar/animations/talk02.fbx
Normal file
BIN
interface/resources/avatar/animations/talk03.fbx
Normal file
BIN
interface/resources/avatar/animations/talk_armsdown.fbx
Normal file
BIN
interface/resources/avatar/animations/talk_lefthand.fbx
Normal file
BIN
interface/resources/avatar/animations/turn_right.fbx
Normal file
BIN
interface/resources/avatar/animations/walk_right.fbx
Normal file
BIN
interface/resources/avatar/animations/walk_right_fast.fbx
Normal file
|
@ -29,16 +29,6 @@ WebView {
|
|||
|
||||
userScripts: [ createGlobalEventBridge, raiseAndLowerKeyboard ]
|
||||
|
||||
onFeaturePermissionRequested: {
|
||||
if (feature == 2) { // QWebEnginePage::MediaAudioCapture
|
||||
grantFeaturePermission(securityOrigin, feature, true);
|
||||
} else {
|
||||
permissionsBar.securityOrigin = securityOrigin;
|
||||
permissionsBar.feature = feature;
|
||||
parentRoot.showPermissionsBar();
|
||||
}
|
||||
}
|
||||
|
||||
onLoadingChanged: {
|
||||
if (loadRequest.status === WebEngineView.LoadSucceededStatus) {
|
||||
addressBar.text = loadRequest.url
|
||||
|
|
|
@ -84,7 +84,7 @@ Item {
|
|||
}
|
||||
|
||||
onFeaturePermissionRequested: {
|
||||
grantFeaturePermission(securityOrigin, feature, true);
|
||||
grantFeaturePermission(securityOrigin, feature, false);
|
||||
}
|
||||
|
||||
onLoadingChanged: {
|
||||
|
|
|
@ -31,6 +31,8 @@ Windows.Window {
|
|||
signal selfDestruct();
|
||||
|
||||
property var flags: 0;
|
||||
property var additionalFlags: 0;
|
||||
property var overrideFlags: 0;
|
||||
|
||||
property var source;
|
||||
property var dynamicContent;
|
||||
|
@ -153,10 +155,11 @@ Windows.Window {
|
|||
Qt.WindowMaximizeButtonHint |
|
||||
Qt.WindowMinimizeButtonHint;
|
||||
// only use the always on top feature for non Windows OS
|
||||
if (Qt.platform.os !== "windows" && (flags & Desktop.ALWAYS_ON_TOP)) {
|
||||
if (Qt.platform.os !== "windows" && (root.additionalFlags & Desktop.ALWAYS_ON_TOP)) {
|
||||
nativeWindowFlags |= Qt.WindowStaysOnTopHint;
|
||||
}
|
||||
nativeWindow.flags = nativeWindowFlags;
|
||||
root.flags = root.overrideFlags || nativeWindowFlags;
|
||||
nativeWindow.flags = root.flags;
|
||||
|
||||
nativeWindow.x = interactiveWindowPosition.x;
|
||||
nativeWindow.y = interactiveWindowPosition.y;
|
||||
|
@ -225,10 +228,41 @@ Windows.Window {
|
|||
// Handle message traffic from our loaded QML to the script that launched us
|
||||
signal sendToScript(var message);
|
||||
|
||||
// Children of this InteractiveWindow Item are able to request a new width and height
|
||||
// for the parent Item (this one) and its associated C++ InteractiveWindow using these methods.
|
||||
function onRequestNewWidth(newWidth) {
|
||||
interactiveWindowSize.width = newWidth;
|
||||
updateInteractiveWindowSizeForMode();
|
||||
}
|
||||
function onRequestNewHeight(newWidth) {
|
||||
interactiveWindowSize.width = newWidth;
|
||||
updateInteractiveWindowSizeForMode();
|
||||
}
|
||||
|
||||
// These signals are used to forward key-related events from the QML to the C++.
|
||||
signal keyPressEvent(int key, int modifiers);
|
||||
signal keyReleaseEvent(int key, int modifiers);
|
||||
|
||||
onDynamicContentChanged: {
|
||||
if (dynamicContent && dynamicContent.sendToScript) {
|
||||
dynamicContent.sendToScript.connect(sendToScript);
|
||||
}
|
||||
|
||||
if (dynamicContent && dynamicContent.requestNewWidth) {
|
||||
dynamicContent.requestNewWidth.connect(onRequestNewWidth);
|
||||
}
|
||||
|
||||
if (dynamicContent && dynamicContent.requestNewHeight) {
|
||||
dynamicContent.requestNewHeight.connect(onRequestNewHeight);
|
||||
}
|
||||
|
||||
if (dynamicContent && dynamicContent.keyPressEvent) {
|
||||
dynamicContent.keyPressEvent.connect(keyPressEvent);
|
||||
}
|
||||
|
||||
if (dynamicContent && dynamicContent.keyReleaseEvent) {
|
||||
dynamicContent.keyReleaseEvent.connect(keyReleaseEvent);
|
||||
}
|
||||
}
|
||||
|
||||
onInteractiveWindowVisibleChanged: {
|
||||
|
@ -283,7 +317,7 @@ Windows.Window {
|
|||
// set invisible on close, to make it not re-appear unintended after switching PresentationMode
|
||||
interactiveWindowVisible = false;
|
||||
|
||||
if ((flags & Desktop.CLOSE_BUTTON_HIDES) !== Desktop.CLOSE_BUTTON_HIDES) {
|
||||
if ((root.flags & Desktop.CLOSE_BUTTON_HIDES) !== Desktop.CLOSE_BUTTON_HIDES) {
|
||||
selfDestruct();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ Item {
|
|||
}
|
||||
|
||||
onFeaturePermissionRequested: {
|
||||
grantFeaturePermission(securityOrigin, feature, true);
|
||||
grantFeaturePermission(securityOrigin, feature, false);
|
||||
}
|
||||
|
||||
//disable popup
|
||||
|
|
|
@ -35,4 +35,8 @@ WebEngineView {
|
|||
}
|
||||
|
||||
WebSpinner { }
|
||||
|
||||
onFeaturePermissionRequested: {
|
||||
grantFeaturePermission(securityOrigin, feature, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -400,7 +400,8 @@ Item {
|
|||
size: 24;
|
||||
x: 120
|
||||
anchors.verticalCenter: nameCardConnectionInfoImage.verticalCenter
|
||||
anchors.left: has3DHTML ? nameCardConnectionInfoText.right + 10 : avatarImage.right
|
||||
anchors.left: has3DHTML ? nameCardConnectionInfoText.right : avatarImage.right
|
||||
anchors.leftMargin: has3DHTML ? 10 : 0
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill:nameCardRemoveConnectionImage
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
//
|
||||
// EmoteAppBar.qml
|
||||
//
|
||||
// Created by Zach Fox on 2019-07-08
|
||||
// Copyright 2019 High Fidelity, Inc.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
import QtQuick 2.10
|
||||
import QtQuick.Controls 2.3
|
||||
import "../../simplifiedConstants" as SimplifiedConstants
|
||||
import "../../simplifiedControls" as SimplifiedControls
|
||||
import stylesUit 1.0 as HifiStylesUit
|
||||
import TabletScriptingInterface 1.0
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: simplifiedUI.colors.white
|
||||
anchors.fill: parent
|
||||
|
||||
property int originalWidth: 48
|
||||
property int hoveredWidth: 480
|
||||
property int requestedWidth
|
||||
|
||||
onRequestedWidthChanged: {
|
||||
root.requestNewWidth(root.requestedWidth);
|
||||
}
|
||||
|
||||
Behavior on requestedWidth {
|
||||
enabled: true
|
||||
SmoothedAnimation { duration: 220 }
|
||||
}
|
||||
|
||||
SimplifiedConstants.SimplifiedConstants {
|
||||
id: simplifiedUI
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: enabled
|
||||
onEntered: {
|
||||
Tablet.playSound(TabletEnums.ButtonHover);
|
||||
root.requestedWidth = root.hoveredWidth;
|
||||
}
|
||||
onExited: {
|
||||
Tablet.playSound(TabletEnums.ButtonClick);
|
||||
root.requestedWidth = root.originalWidth;
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: mainEmojiContainer
|
||||
z: 2
|
||||
color: simplifiedUI.colors.darkBackground
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
height: parent.height
|
||||
width: root.originalWidth
|
||||
|
||||
HifiStylesUit.GraphikRegular {
|
||||
text: "😊"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenterOffset: -2
|
||||
anchors.verticalCenterOffset: -2
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
size: 26
|
||||
color: simplifiedUI.colors.text.almostWhite
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: drawerContainer
|
||||
z: 1
|
||||
color: simplifiedUI.colors.white
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
height: parent.height
|
||||
width: root.hoveredWidth
|
||||
|
||||
HifiStylesUit.GraphikRegular {
|
||||
text: "Emotes go here."
|
||||
anchors.fill: parent
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
size: 20
|
||||
color: simplifiedUI.colors.text.black
|
||||
}
|
||||
}
|
||||
|
||||
function fromScript(message) {
|
||||
switch (message.method) {
|
||||
default:
|
||||
console.log('EmoteAppBar.qml: Unrecognized message from JS');
|
||||
break;
|
||||
}
|
||||
}
|
||||
signal sendToScript(var message);
|
||||
signal requestNewWidth(int newWidth);
|
||||
}
|
|
@ -33,6 +33,7 @@ Rectangle {
|
|||
readonly property string unmutedIcon: "images/mic-unmute-i.svg"
|
||||
readonly property string mutedIcon: "images/mic-mute-i.svg"
|
||||
readonly property string pushToTalkIcon: "images/mic-ptt-i.svg"
|
||||
readonly property string pushToTalkMutedIcon: "images/mic-ptt-mute-i.svg"
|
||||
readonly property string clippingIcon: "images/mic-clip-i.svg"
|
||||
readonly property string gatedIcon: "images/mic-gate-i.svg"
|
||||
|
||||
|
@ -48,18 +49,6 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
opacity: 0.7
|
||||
|
||||
onLevelChanged: {
|
||||
var rectOpacity = (muted && (level >= userSpeakingLevel)) ? 1.0 : 0.7;
|
||||
if (pushToTalk && !pushingToTalk) {
|
||||
rectOpacity = (mouseArea.containsMouse) ? 1.0 : 0.7;
|
||||
} else if (mouseArea.containsMouse && rectOpacity != 1.0) {
|
||||
rectOpacity = 1.0;
|
||||
}
|
||||
micBar.opacity = rectOpacity;
|
||||
}
|
||||
|
||||
color: "#00000000"
|
||||
|
||||
MouseArea {
|
||||
|
@ -116,82 +105,84 @@ Rectangle {
|
|||
Item {
|
||||
id: icon
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.horizontalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.rightMargin: 2
|
||||
width: 13
|
||||
height: 21
|
||||
width: pushToTalk ? 16 : (muted ? 20 : 16)
|
||||
height: 22
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
opacity: mouseArea.containsMouse ? 1.0 : 0.7
|
||||
Image {
|
||||
id: image
|
||||
visible: false
|
||||
source: (pushToTalk) ? pushToTalkIcon : muted ? mutedIcon :
|
||||
clipping ? clippingIcon : gated ? gatedIcon : unmutedIcon
|
||||
anchors.fill: parent
|
||||
fillMode: Image.PreserveAspectFit
|
||||
}
|
||||
|
||||
ColorOverlay {
|
||||
opacity: mouseArea.containsMouse ? 1.0 : 0.7
|
||||
visible: level === 0 || micBar.muted || micBar.clipping
|
||||
id: imageOverlay
|
||||
anchors { fill: image }
|
||||
source: image
|
||||
color: pushToTalk ? (pushingToTalk ? colors.unmutedColor : colors.mutedColor) : colors.icon
|
||||
color: pushToTalk ? (pushingToTalk ? colors.icon : colors.mutedColor) : colors.icon
|
||||
}
|
||||
|
||||
OpacityMask {
|
||||
id: bar
|
||||
visible: level > 0 && !micBar.muted && !micBar.clipping
|
||||
anchors.fill: meterGradient
|
||||
source: meterGradient
|
||||
maskSource: image
|
||||
}
|
||||
|
||||
LinearGradient {
|
||||
id: meterGradient
|
||||
anchors { fill: parent }
|
||||
visible: false
|
||||
start: Qt.point(0, 0)
|
||||
end: Qt.point(0, parent.height)
|
||||
rotation: 180
|
||||
gradient: Gradient {
|
||||
GradientStop {
|
||||
position: 1.0
|
||||
color: colors.greenStart
|
||||
}
|
||||
GradientStop {
|
||||
position: 0.5
|
||||
color: colors.greenEnd
|
||||
}
|
||||
GradientStop {
|
||||
position: 0.0
|
||||
color: colors.yellow
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: bar
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: parent.horizontalCenter
|
||||
anchors.leftMargin: 2
|
||||
|
||||
width: 4
|
||||
height: 21
|
||||
|
||||
Rectangle { // base
|
||||
id: baseBar
|
||||
radius: 4
|
||||
anchors { fill: parent }
|
||||
color: colors.gutter
|
||||
}
|
||||
|
||||
Rectangle { // mask
|
||||
id: mask
|
||||
height: micBar.muted ? parent.height : parent.height * level
|
||||
color: micBar.muted ? colors.mutedColor : "white"
|
||||
Item {
|
||||
width: parent.width
|
||||
radius: 5
|
||||
anchors {
|
||||
bottom: parent.bottom
|
||||
bottomMargin: 0
|
||||
left: parent.left
|
||||
leftMargin: 0
|
||||
height: parent.height - parent.height * level
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
clip:true
|
||||
Image {
|
||||
id: maskImage
|
||||
visible: false
|
||||
source: (pushToTalk) ? pushToTalkIcon : muted ? mutedIcon :
|
||||
clipping ? clippingIcon : gated ? gatedIcon : unmutedIcon
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
width: parent.width
|
||||
height: parent.parent.height
|
||||
}
|
||||
}
|
||||
|
||||
LinearGradient {
|
||||
anchors { fill: mask }
|
||||
visible: mask.visible && !micBar.muted
|
||||
source: mask
|
||||
start: Qt.point(0, 0)
|
||||
end: Qt.point(0, bar.height)
|
||||
rotation: 180
|
||||
gradient: Gradient {
|
||||
GradientStop {
|
||||
position: 0.0
|
||||
color: colors.greenStart
|
||||
}
|
||||
GradientStop {
|
||||
position: 0.5
|
||||
color: colors.greenEnd
|
||||
}
|
||||
GradientStop {
|
||||
position: 1.0
|
||||
color: colors.yellow
|
||||
}
|
||||
|
||||
ColorOverlay {
|
||||
visible: level > 0 && !micBar.muted && !micBar.clipping
|
||||
anchors { fill: maskImage }
|
||||
source: maskImage
|
||||
color: "#b2b2b2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="18.338" height="32" fill="none" version="1.1" viewBox="0 0 18.338 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="translate(-7)" clip-path="url(#clip0)">
|
||||
<path d="m25.338 4.1345-1.467 1.4671c-1.9339-2.1339-4.668-3.5343-7.8022-3.5343-3.0008 0-5.6682 1.3337-7.602 3.3342l-1.4671-1.4671c2.2673-2.4006 5.5348-3.9344 9.0691-3.9344 3.6677 0 7.0019 1.6004 9.2692 4.1345zm-3.4007 3.4014-1.4671 1.4671c-1.0002-1.3337-2.6007-2.1339-4.4012-2.1339-1.6671 0-3.1342 0.80022-4.2011 1.9339l-1.4671-1.4671c1.4004-1.5338 3.4009-2.534 5.6682-2.534 2.334 0 4.4679 1.067 5.8683 2.7341zm-3.9801 22.621c0 1.0199-0.8268 1.8467-1.8467 1.8467s-1.8466-0.8268-1.8466-1.8467 0.8267-1.8467 1.8466-1.8467 1.8467 0.8268 1.8467 1.8467zm0.4057-19.077h-4.2035l0.8519 14.774h2.4751z" clip-rule="evenodd" fill="#ea4c5f" fill-rule="evenodd"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0">
|
||||
<rect width="32" height="32" fill="#fff"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 22" style="enable-background:new 0 0 16 22;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path d="M8,10.07c0.98,0,1.79-0.8,1.79-1.77V1.77C9.79,0.8,8.98,0,8,0C7.02,0,6.21,0.8,6.21,1.77v6.52
|
||||
C6.21,9.27,7.02,10.07,8,10.07z M8,14.55c0.99,0,1.79-0.79,1.79-1.77S8.99,11,8,11s-1.79,0.79-1.79,1.77S7.01,14.55,8,14.55z
|
||||
M14.8,7.8c-0.66,0-1.2,0.53-1.2,1.19v1.05c0,3.32-2.51,6.03-5.6,6.03s-5.6-2.7-5.6-6.03V8.99c0-0.66-0.54-1.19-1.2-1.19
|
||||
S0,8.33,0,8.99v1.05c0,4.21,2.96,7.71,6.8,8.31v1.27H4.15c-0.66,0-1.2,0.53-1.2,1.19c0,0.66,0.54,1.19,1.2,1.19h7.69
|
||||
c0.66,0,1.2-0.53,1.2-1.19c0-0.66-0.54-1.19-1.2-1.19H9.2v-1.27c3.84-0.61,6.8-4.11,6.8-8.31V8.99C16,8.33,15.46,7.8,14.8,7.8z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 977 B |
|
@ -1,13 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14.666" height="32" fill="none" version="1.1" viewBox="0 0 14.666 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m7.1999 4.7259c1.305 0 2.3629-1.0579 2.3629-2.3629 0-1.305-1.0579-2.3629-2.3629-2.3629-1.3051 0-2.363 1.0579-2.363 2.3629 0 1.305 1.0579 2.3629 2.363 2.3629zm2.4668 7.0745v2.9333h-4.9333v-2.9333c0-1.3334 1.1333-2.4 2.4666-2.4 1.4 0 2.4667 1.0666 2.4667 2.4zm-4.9333 8.3328v-2.8666h4.9333v2.8666c0 1.3333-1.1334 2.4-2.4667 2.4s-2.4666-1.0667-2.4666-2.4zm9.9331 0.4668v-3.5333c0-0.6667-0.6-1.1333-1.2-1.1333-0.6667 0-1.1333 0.5333-1.1333 1.1999v3.4667c0 2.4666-2.2667 4.4666-5 4.4666s-4.9999-2-4.9999-4.4666v-3.5333c0-0.6667-0.4667-1.2-1.0667-1.2-0.66661-0.0667-1.2666 0.4-1.2666 1.0666v3.6667c0 3.3999 2.6666 6.1999 6.1333 6.7332v2.2666h-2.8667c-0.6666 0-1.2 0.5334-1.2 1.2 0 0.6667 0.5334 1.2 1.2 1.2h8.1999c0.6667 0 1.2-0.5333 1.2-1.2 0-0.6666-0.5333-1.2-1.2-1.2h-2.9333v-2.2666c3.4666-0.6 6.1333-3.3333 6.1333-6.7332z" clip-rule="evenodd" fill="#00b4ef" fill-opacity=".7" fill-rule="evenodd"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 22" style="enable-background:new 0 0 16 22;" xml:space="preserve">
|
||||
<path d="M14.8,7.8c-0.66,0-1.2,0.53-1.2,1.19v1.05c0,3.32-2.51,6.03-5.6,6.03s-5.6-2.7-5.6-6.03V8.99c0-0.66-0.54-1.19-1.2-1.19
|
||||
S0,8.33,0,8.99v1.05c0,4.21,2.96,7.71,6.8,8.31v1.27H4.15c-0.66,0-1.2,0.53-1.2,1.19c0,0.66,0.54,1.19,1.2,1.19h7.69
|
||||
c0.66,0,1.2-0.53,1.2-1.19c0-0.66-0.54-1.19-1.2-1.19H9.2v-1.27c3.84-0.61,6.8-4.11,6.8-8.31V8.99C16,8.33,15.46,7.8,14.8,7.8z
|
||||
M8,9.05c0.99,0,1.79-0.79,1.79-1.77S8.99,5.5,8,5.5S6.21,6.3,6.21,7.28S7.01,9.05,8,9.05z M8,3.55c0.99,0,1.79-0.79,1.79-1.77
|
||||
S8.99,0,8,0S6.21,0.79,6.21,1.77S7.01,3.55,8,3.55z M8,14.55c0.99,0,1.79-0.79,1.79-1.77S8.99,11,8,11s-1.79,0.79-1.79,1.77
|
||||
S7.01,14.55,8,14.55z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 996 B |
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="18.831" height="31.718" fill="none" version="1.1" viewBox="0 0 18.831 31.718" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m18.644 4.1333-1.4666 1.4666c-1.9333-2.1333-4.6666-3.5333-7.7999-3.5333-3 0-5.6666 1.3333-7.5999 3.3333l-1.4666-1.4666c2.2666-2.4 5.5333-3.9333 9.0666-3.9333 3.6666 0 6.9999 1.6 9.2665 4.1333zm-4.8664 4.8674 1.4667-1.4666c-1.4-1.6666-3.5333-2.7333-5.8666-2.7333-2.2667 0-4.2666 0.99999-5.6666 2.5333l1.4666 1.4666c1.0667-1.1333 2.5333-1.9333 4.2-1.9333 1.7999 0 3.3999 0.79999 4.3999 2.1333zm-1.8974 3.0751v-0.3262c0-1.3051-1.104-2.3492-2.4028-2.3492-1.2988 0-2.4028 1.0441-2.4028 2.3492v4.5025zm-4.3373 9.4371-1.9317 1.6974c0.8846 1.0496 2.3028 1.7208 3.8661 1.7208 2.6626 0 4.8706-1.9576 4.8706-4.3721v-3.3932c0-0.6526 0.4546-1.1746 1.104-1.1746 0.5844 0 1.1689 0.4568 1.1689 1.1093v3.4585c0 3.328-2.5976 6.0687-5.9745 6.5908v2.2186h2.8574c0.6494 0 1.1689 0.5221 1.1689 1.1746 0 0.6526-0.5195 1.1746-1.1689 1.1746h-7.9877c-0.6494 0-1.169-0.522-1.169-1.1746 0-0.6525 0.5196-1.1746 1.169-1.1746h2.7924v-2.2186c-1.7757-0.2348-3.3496-1.1453-4.4314-2.4155l-1.9328 1.6984c-0.45458 0.3915-1.1689 0.3263-1.5586-0.1305l-0.12988-0.1305c-0.38965-0.4568-0.32471-1.1746 0.12988-1.5661l16.495-14.617c0.4546-0.39153 1.1689-0.32627 1.5586 0.13047l0.1299 0.1305c0.3896 0.5221 0.3247 1.1746-0.065 1.6314l-6.6238 5.8206v2.4002c0 1.3051-1.104 2.3492-2.4028 2.3492-0.8086 0-1.5031-0.3671-1.9345-0.938zm-3.9751-5.521c0.5844 0 1.039 0.522 1.039 1.1745v1.3051l-2.2729 2.0229v-3.4585c0.06494-0.5873 0.58447-1.1093 1.2339-1.044z" clip-rule="evenodd" fill="#ea4c5f" fill-rule="evenodd"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2 KiB |
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="18.831" height="31.718" fill="none" version="1.1" viewBox="0 0 18.831 31.718" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m18.644 4.1333-1.4666 1.4666c-1.9333-2.1333-4.6666-3.5333-7.7999-3.5333-3 0-5.6666 1.3333-7.5999 3.3333l-1.4666-1.4666c2.2666-2.4 5.5333-3.9333 9.0666-3.9333 3.6666 0 6.9999 1.6 9.2665 4.1333zm-4.8664 4.8674 1.4667-1.4666c-1.4-1.6666-3.5333-2.7333-5.8666-2.7333-2.2667 0-4.2666 0.99999-5.6666 2.5333l1.4666 1.4666c1.0667-1.1333 2.5333-1.9333 4.2-1.9333 1.7999 0 3.3999 0.79999 4.3999 2.1333zm-1.8974 3.0751v-0.3262c0-1.3051-1.104-2.3492-2.4028-2.3492-1.2988 0-2.4028 1.0441-2.4028 2.3492v4.5025zm-4.3373 9.4371-1.9317 1.6974c0.8846 1.0496 2.3028 1.7208 3.8661 1.7208 2.6626 0 4.8706-1.9576 4.8706-4.3721v-3.3932c0-0.6526 0.4546-1.1746 1.104-1.1746 0.5844 0 1.1689 0.4568 1.1689 1.1093v3.4585c0 3.328-2.5976 6.0687-5.9745 6.5908v2.2186h2.8574c0.6494 0 1.1689 0.5221 1.1689 1.1746 0 0.6526-0.5195 1.1746-1.1689 1.1746h-7.9877c-0.6494 0-1.169-0.522-1.169-1.1746 0-0.6525 0.5196-1.1746 1.169-1.1746h2.7924v-2.2186c-1.7757-0.2348-3.3496-1.1453-4.4314-2.4155l-1.9328 1.6984c-0.45458 0.3915-1.1689 0.3263-1.5586-0.1305l-0.12988-0.1305c-0.38965-0.4568-0.32471-1.1746 0.12988-1.5661l16.495-14.617c0.4546-0.39153 1.1689-0.32627 1.5586 0.13047l0.1299 0.1305c0.3896 0.5221 0.3247 1.1746-0.065 1.6314l-6.6238 5.8206v2.4002c0 1.3051-1.104 2.3492-2.4028 2.3492-0.8086 0-1.5031-0.3671-1.9345-0.938zm-3.9751-5.521c0.5844 0 1.039 0.522 1.039 1.1745v1.3051l-2.2729 2.0229v-3.4585c0.06495-0.5873 0.58447-1.1093 1.2339-1.044z" clip-rule="evenodd" fill="#ea4c5f" fill-rule="evenodd"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 20 22" style="enable-background:new 0 0 20 22;" xml:space="preserve">
|
||||
<path d="M14.11,10.55V7.49l5.54-5.44c0.47-0.46,0.47-1.22,0-1.68c-0.47-0.46-1.24-0.46-1.71,0L0.35,17.64
|
||||
c-0.47,0.46-0.47,1.22,0,1.68c0.24,0.23,0.55,0.35,0.86,0.35s0.62-0.12,0.86-0.35l2.84-2.79c1.1,0.94,2.44,1.59,3.92,1.82v1.27H6.14
|
||||
c-0.67,0-1.21,0.53-1.21,1.19c0,0.66,0.54,1.19,1.21,1.19h7.77c0.67,0,1.21-0.53,1.21-1.19c0-0.66-0.54-1.19-1.21-1.19h-2.66v-1.27
|
||||
c3.88-0.61,6.87-4.11,6.87-8.31V8.99c0-0.66-0.54-1.19-1.21-1.19c-0.67,0-1.21,0.53-1.21,1.19v1.05c0,0.02,0,0.05,0,0.07
|
||||
c-0.03,2.85-1.93,5.23-4.44,5.81v-1.55C12.9,13.86,14.11,12.34,14.11,10.55z M8.82,15.92c-0.81-0.19-1.56-0.57-2.2-1.08l1.05-1.03
|
||||
c0.35,0.24,0.73,0.43,1.15,0.56V15.92z M10.04,0L10.04,0C7.8,0,5.97,1.8,5.97,4v5.82l7.72-7.58C13.02,0.92,11.63,0,10.04,0z
|
||||
M4.5,11.26c-0.08-0.4-0.12-0.81-0.12-1.23V8.99c0-0.66-0.54-1.19-1.21-1.19S1.96,8.33,1.96,8.99v1.05c0,1.11,0.21,2.17,0.59,3.15
|
||||
L4.5,11.26z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Art" width="27.121" height="40.121" version="1.1" viewBox="0 0 27.121 40.121" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title>mic-ptt-a</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs>
|
||||
<style>.cls-1{fill-rule:evenodd;}</style>
|
||||
</defs>
|
||||
<title>mic-ptt-a</title>
|
||||
<path class="cls-1" d="m23.1 5.2112-1.85 1.85a13.19 13.19 0 0 0-9.82-4.46 13.35 13.35 0 0 0-9.58 4.2l-1.85-1.84a15.66 15.66 0 0 1 23.1 0.25zm-6.13 6.13 1.85-1.85a9.62 9.62 0 0 0-14.53-0.25l1.84 1.88a7.34 7.34 0 0 1 5.3-2.44 6.85 6.85 0 0 1 5.54 2.66zm-5.39-0.22a3.58 3.58 0 0 1 1.51 0.3 3.68 3.68 0 0 1 1.26 0.88 3.88 3.88 0 0 1 0.84 1.3 3.94 3.94 0 0 1 0.29 1.52v5.07a1.91 1.91 0 0 1 0.48-0.05 3.93 3.93 0 0 1 2.62 1.05 3.38 3.38 0 0 1 1.5-0.32 3.27 3.27 0 0 1 2.77 1.36 2.75 2.75 0 0 1 0.85-0.1 3.35 3.35 0 0 1 1.33 0.25 3.18 3.18 0 0 1 1.12 0.76 3.23 3.23 0 0 1 0.73 1.13 3.32 3.32 0 0 1 0.24 1.32v3.31a12.27 12.27 0 0 1-0.43 3.41l-1.36 5.65a2.67 2.67 0 0 1-1 1.55 2.89 2.89 0 0 1-1.75 0.61h-11a4.47 4.47 0 0 1-1.76-0.43 3.88 3.88 0 0 1-1.36-1.12l-5.78-7.75a3.72 3.72 0 0 1-0.8-2.35 3.64 3.64 0 0 1 0.28-1.5 3.75 3.75 0 0 1 0.84-1.27 3.9 3.9 0 0 1 2.77-1.18 4.5 4.5 0 0 1 2 0.54v-10.06a4.06 4.06 0 0 1 1.13-2.78 3.74 3.74 0 0 1 1.25-0.83 3.85 3.85 0 0 1 1.43-0.27zm0 2a1.89 1.89 0 0 0-0.74 0.12 2 2 0 0 0-1.06 1 1.92 1.92 0 0 0-0.15 0.74v15.35l-2.32-3.06a2 2 0 0 0-0.7-0.59 1.88 1.88 0 0 0-0.9-0.2 1.85 1.85 0 0 0-0.74 0.15 2 2 0 0 0-0.63 0.43 2 2 0 0 0-0.4 0.63 1.9 1.9 0 0 0-0.13 0.74 2 2 0 0 0 0.38 1.17l5.86 7.79a1.79 1.79 0 0 0 0.68 0.57 1.74 1.74 0 0 0 0.85 0.16h11a1.23 1.23 0 0 0 0.59-0.15 0.88 0.88 0 0 0 0.24-0.23 0.71 0.71 0 0 0 0.13-0.31l1.37-5.6a12 12 0 0 0 0.37-3v-3.28a1.7 1.7 0 0 0-0.43-1.07 1.31 1.31 0 0 0-0.47-0.37 1.35 1.35 0 0 0-0.59-0.11 1.46 1.46 0 0 0-0.55 0.11 1.23 1.23 0 0 0-0.46 0.32 1.64 1.64 0 0 0-0.43 1.07h-0.48v-1a1.52 1.52 0 0 0-0.12-0.66 1.61 1.61 0 0 0-0.37-0.56 1.63 1.63 0 0 0-1.22-0.54 2 2 0 0 0-1.23 0.54 1.77 1.77 0 0 0-0.36 0.53 1.57 1.57 0 0 0-0.11 0.64v1h-0.49v-1.33a2.22 2.22 0 0 0-0.58-1.44 1.71 1.71 0 0 0-0.62-0.44 1.88 1.88 0 0 0-0.79-0.12 2 2 0 0 0-0.74 0.13 1.85 1.85 0 0 0-0.63 0.41 2 2 0 0 0-0.53 1.36v1.5h-0.57v-10.4a2 2 0 0 0-0.54-1.44 1.75 1.75 0 0 0-0.63-0.44 1.73 1.73 0 0 0-0.76-0.12z" fill-rule="evenodd"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB |
|
@ -1,8 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg id="Art" width="27.2" height="40.433" version="1.1" viewBox="0 0 27.2 40.433" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata>
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="m5.2 8.4327c-0.3 0.3-0.7 0.6-1 0.9l1.8 1.9c1.4-1.5 3.3-2.4 5.3-2.4 2.2 0 4.2 0.9 5.5 2.7l1.8-1.8c-3.3-4.2-9.3-4.7-13.4-1.3zm16-1.3 1.9-1.9c-0.3-0.3-0.6-0.7-1-1-6.3-5.9-16.2-5.6-22.1 0.7l1.9 1.8c2.5-2.6 5.9-4.2 9.6-4.2 3.6 0.2 7.2 1.8 9.7 4.6zm5.6 17.2c-0.2-0.4-0.4-0.8-0.7-1.1s-0.7-0.6-1.1-0.8c-0.5-0.1-0.9-0.2-1.4-0.2-0.3 0-0.6 0-0.8 0.1-0.6-0.9-1.7-1.4-2.8-1.4-0.5 0-1 0.1-1.5 0.3-0.7-0.7-1.6-1-2.6-1.1-0.2 0-0.3 0-0.5 0.1v-5c0-0.5-0.1-1-0.3-1.5s-0.5-0.9-0.8-1.3c-0.4-0.4-0.8-0.7-1.3-0.9s-1-0.3-1.5-0.3-1 0.1-1.4 0.3c-0.5 0.2-0.9 0.5-1.3 0.8-0.7 0.7-1.1 1.7-1.1 2.8v10.1c-0.6-0.3-1.3-0.5-2-0.5-1 0-2 0.4-2.8 1.2-0.4 0.4-0.6 0.8-0.8 1.3s-0.3 1-0.3 1.5c0 0.9 0.3 1.7 0.8 2.4l5.8 7.8c0.4 0.5 0.8 0.9 1.4 1.1 0.6 0.3 1.2 0.4 1.8 0.4h11c0.6 0 1.2-0.2 1.8-0.6 0.5-0.4 0.9-0.9 1-1.6l1.4-5.6c0.3-1.1 0.4-2.3 0.4-3.4v-3.3c-0.1-0.7-0.2-1.1-0.4-1.6zm-1.6 4.6c0 1-0.1 2-0.4 3l-1.3 5.6c0 0.1-0.1 0.2-0.1 0.3-0.1 0.1-0.1 0.2-0.2 0.2-0.3 0.1-0.5 0.2-0.7 0.2h-11c-0.3 0-0.6 0-0.8-0.2-0.3-0.1-0.5-0.3-0.7-0.6l-5.9-7.8c-0.2-0.3-0.4-0.7-0.4-1.2 0-0.3 0-0.5 0.1-0.7s0.2-0.4 0.4-0.6 0.4-0.3 0.6-0.4 0.5-0.2 0.7-0.2c0.3 0 0.6 0.1 0.9 0.2s0.5 0.3 0.7 0.6l2.3 3.1v-15.3c0-0.3 0.1-0.5 0.2-0.7 0.2-0.5 0.6-0.8 1.1-1 0.3-0.2 0.5-0.2 0.8-0.2s0.5 0 0.8 0.1c0.2 0.1 0.5 0.2 0.6 0.4 0.4 0.4 0.6 0.9 0.5 1.4v10.4h0.6v-1.5c0-0.5 0.2-1 0.5-1.4 0.2-0.2 0.4-0.3 0.6-0.4s0.5-0.1 0.7-0.1c0.3 0 0.5 0 0.8 0.1 0.2 0.1 0.4 0.2 0.6 0.4 0.4 0.4 0.6 0.9 0.6 1.4v1.3h0.5v-1c0-0.2 0-0.4 0.1-0.6s0.2-0.4 0.4-0.5c0.3-0.3 0.8-0.5 1.2-0.5 0.5 0 0.9 0.2 1.2 0.5 0.2 0.2 0.3 0.3 0.4 0.6 0.1 0.2 0.1 0.4 0.1 0.7v1h0.5c0-0.4 0.2-0.8 0.4-1.1 0.1-0.1 0.3-0.3 0.5-0.3 0.2-0.1 0.4-0.1 0.6-0.1s0.4 0 0.6 0.1 0.3 0.2 0.5 0.4c0.3 0.3 0.4 0.7 0.4 1.1z" fill="#fff"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 14 22" style="enable-background:new 0 0 14 22;" xml:space="preserve">
|
||||
<path d="M0.69,3.64c0.32,0.19,0.74,0.08,0.93-0.25C2.34,2.14,3.67,1.37,5.1,1.37s2.77,0.77,3.48,2.02c0.13,0.22,0.35,0.34,0.59,0.34
|
||||
c0.12,0,0.23-0.03,0.34-0.09C9.84,3.45,9.95,3.03,9.76,2.7C8.8,1.04,7.02,0,5.11,0s-3.7,1.04-4.66,2.7
|
||||
C0.26,3.03,0.37,3.45,0.69,3.64z M12.87,12.23c-0.42,0-0.8,0.23-1,0.61c-0.01,0.01-0.08,0.14-0.23,0.14c-0.19,0-0.24-0.24-0.26-0.29
|
||||
c-0.05-0.59-0.54-1.05-1.13-1.05c-0.42,0-0.81,0.24-1.01,0.64c0,0-0.06,0.11-0.22,0.11c-0.2,0-0.24-0.17-0.25-0.27
|
||||
c-0.03-0.6-0.53-1.07-1.13-1.07c-0.42,0-0.81,0.24-1.01,0.63c0,0-0.07,0.13-0.22,0.13c-0.14,0-0.25-0.11-0.25-0.25v-5.2
|
||||
c0-0.56-0.42-1.04-0.95-1.09c-0.3-0.03-0.59,0.07-0.81,0.27c-0.22,0.2-0.35,0.49-0.35,0.79v8.8c0,0.12-0.06,0.21-0.17,0.26
|
||||
c-0.11,0.04-0.22,0.02-0.3-0.06l-1.76-1.77c-0.4-0.4-1.03-0.44-1.44-0.1c-0.23,0.2-0.37,0.47-0.38,0.77
|
||||
c-0.01,0.29,0.09,0.58,0.29,0.79l3.1,4.12c0.37,0.6,1.99,2,2.42,2.21C6.62,21.77,7.53,22,8.45,22c1.13,0,2.22-0.34,3.13-0.98
|
||||
c1.49-0.92,2.42-2.6,2.42-4.38v-3.27C14.01,12.75,13.5,12.23,12.87,12.23z M5.1,2.34c-1.04,0-2.02,0.56-2.54,1.47
|
||||
C2.37,4.14,2.49,4.56,2.81,4.75C3.13,4.93,3.55,4.82,3.74,4.5C4.02,4.01,4.54,3.7,5.1,3.7s1.08,0.3,1.37,0.79
|
||||
c0.13,0.22,0.35,0.34,0.59,0.34c0.12,0,0.23-0.03,0.34-0.09c0.32-0.19,0.43-0.61,0.25-0.93C7.12,2.9,6.15,2.34,5.1,2.34z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 22" style="enable-background:new 0 0 16 22;" xml:space="preserve">
|
||||
<path d="M7.95,10.03c-0.38,0-0.73,0.21-0.91,0.56c-0.01,0.02-0.07,0.12-0.2,0.12c-0.13,0-0.23-0.1-0.23-0.23V5.77
|
||||
c0-0.51-0.38-0.95-0.87-0.99C5.47,4.75,5.2,4.83,5,5.02C4.8,5.2,4.69,5.46,4.69,5.73v7.99c0,0.01,0,0.02-0.01,0.04l3.64-3.65
|
||||
C8.21,10.06,8.08,10.03,7.95,10.03z M1.62,3.3c0.29,0.17,0.67,0.07,0.84-0.22c0.65-1.13,1.87-1.84,3.17-1.84s2.52,0.7,3.17,1.84
|
||||
c0.11,0.2,0.32,0.31,0.53,0.31c0.11,0,0.21-0.03,0.31-0.08c0.29-0.17,0.4-0.55,0.23-0.85C9,0.94,7.37,0,5.63,0
|
||||
C3.89,0,2.27,0.94,1.39,2.45C1.22,2.75,1.32,3.13,1.62,3.3z M15.69,6.26c-0.41-0.41-1.08-0.41-1.5,0L0.31,20.19
|
||||
c-0.41,0.41-0.41,1.09,0,1.5C0.52,21.9,0.79,22,1.06,22s0.54-0.1,0.75-0.31l3.26-3.27c0.49,0.44,1,0.85,1.21,0.95
|
||||
c0.73,0.4,1.56,0.61,2.4,0.61c1.03,0,2.02-0.31,2.85-0.89c1.36-0.84,2.2-2.36,2.2-3.97v-2.97c0-0.57-0.46-1.04-1.03-1.04
|
||||
c-0.16,0-0.32,0.04-0.46,0.12l3.45-3.47C16.1,7.34,16.1,6.67,15.69,6.26z M11.72,11.74l0.06-0.06
|
||||
C11.77,11.7,11.75,11.72,11.72,11.74z M2.79,15.65l1.68-1.68c-0.08,0.01-0.15-0.01-0.21-0.07l-1.6-1.61
|
||||
c-0.36-0.36-0.94-0.4-1.31-0.09C1.13,12.38,1,12.63,0.99,12.9c-0.01,0.26,0.08,0.52,0.27,0.71L2.79,15.65z M6.87,4.08
|
||||
c0.11,0.2,0.32,0.31,0.53,0.31c0.11,0,0.21-0.03,0.31-0.08c0.29-0.17,0.4-0.55,0.23-0.85C7.47,2.64,6.58,2.12,5.63,2.12
|
||||
S3.79,2.64,3.32,3.46c-0.17,0.3-0.07,0.67,0.23,0.85c0.29,0.17,0.67,0.07,0.84-0.23c0.26-0.44,0.73-0.72,1.24-0.72
|
||||
S6.62,3.64,6.87,4.08z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -1,57 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="18.333099"
|
||||
height="31.9998"
|
||||
viewBox="0 0 18.333099 31.9998"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="mic-unmute-a.svg"
|
||||
style="fill:none"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.375"
|
||||
inkscape:cx="9"
|
||||
inkscape:cy="15.9998"
|
||||
inkscape:window-x="2552"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 16.8664,5.59992 18.3331,4.13328 C 16.0664,1.59998 12.7332,0 9.0665,0 5.5333,0 2.26664,1.53331 0,3.93328 L 1.46665,5.39993 C 3.4,3.39995 6.0666,2.06664 9.0665,2.06664 c 3.1333,0 5.8666,1.39998 7.7999,3.53328 z m -3.4,3.39983 1.4667,-1.46665 c -1.4,-1.66664 -3.5333,-2.7333 -5.8666,-2.7333 -2.2666,0 -4.2666,0.99999 -5.6666,2.5333 l 1.4666,1.46665 c 1.0667,-1.13332 2.5333,-1.93331 4.2,-1.93331 1.8,0 3.3999,0.79999 4.3999,2.13331 z m -1.933,2.80065 v 2.9333 H 6.6001 v -2.9333 c 0,-1.3334 1.1333,-2.40001 2.4666,-2.40001 1.4,0 2.4667,1.06661 2.4667,2.40001 z m -4.9333,5.4662 v 2.8666 c 0,1.3333 1.1333,2.4 2.4666,2.4 1.3333,0 2.4667,-1.0667 2.4667,-2.4 v -2.8666 z m 9.9331,-0.1999 V 20.6 c 0,3.3999 -2.6667,6.1332 -6.1333,6.7332 v 2.2666 h 2.9333 c 0.6667,0 1.2,0.5334 1.2,1.2 0,0.6667 -0.5333,1.2 -1.2,1.2 H 5.1333 c -0.6666,0 -1.2,-0.5333 -1.2,-1.2 0,-0.6666 0.5334,-1.2 1.2,-1.2 H 7.9999 V 27.3332 C 4.5333,26.7999 1.8667,23.9999 1.8667,20.6 v -3.6667 c 0,-0.6666 0.59999,-1.1333 1.2666,-1.0666 0.6,0 1.0667,0.5333 1.0667,1.2 V 20.6 c 0,2.4666 2.2666,4.4666 4.9999,4.4666 2.7333,0 5,-2 5,-4.4666 v -3.4667 c 0,-0.6666 0.4666,-1.1999 1.1333,-1.1999 0.6,0 1.2,0.4666 1.2,1.1333 z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="clip-rule:evenodd;fill:#ffffff;fill-rule:evenodd" />
|
||||
</svg>
|
Before Width: | Height: | Size: 2.8 KiB |
|
@ -1,13 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="18.333" height="32" fill="none" version="1.1" viewBox="0 0 18.333 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m16.866 5.5999 1.4667-1.4666c-2.2667-2.5333-5.5999-4.1333-9.2666-4.1333-3.5332 0-6.7999 1.5333-9.0665 3.9333l1.4666 1.4666c1.9334-2 4.6-3.3333 7.5998-3.3333 3.1333 0 5.8666 1.4 7.7999 3.5333zm-3.4 3.3998 1.4667-1.4666c-1.4-1.6666-3.5333-2.7333-5.8666-2.7333-2.2666 0-4.2666 0.99999-5.6666 2.5333l1.4666 1.4666c1.0667-1.1333 2.5333-1.9333 4.2-1.9333 1.8 0 3.3999 0.79999 4.3999 2.1333zm-1.933 2.8006v2.9333h-4.9333v-2.9333c0-1.3334 1.1333-2.4 2.4666-2.4 1.4 0 2.4667 1.0666 2.4667 2.4zm-4.9333 5.4662v2.8666c0 1.3333 1.1333 2.4 2.4666 2.4s2.4667-1.0667 2.4667-2.4v-2.8666zm9.9331-0.1999v3.5333c0 3.3999-2.6667 6.1332-6.1333 6.7332v2.2666h2.9333c0.6667 0 1.2 0.5334 1.2 1.2 0 0.6667-0.5333 1.2-1.2 1.2h-8.1999c-0.6666 0-1.2-0.5333-1.2-1.2 0-0.6666 0.5334-1.2 1.2-1.2h2.8666v-2.2666c-3.4666-0.5333-6.1332-3.3333-6.1332-6.7332v-3.6667c0-0.6666 0.59999-1.1333 1.2666-1.0666 0.6 0 1.0667 0.5333 1.0667 1.2v3.5333c0 2.4666 2.2666 4.4666 4.9999 4.4666s5-2 5-4.4666v-3.4667c0-0.6666 0.4666-1.1999 1.1333-1.1999 0.6 0 1.2 0.4666 1.2 1.1333z" clip-rule="evenodd" fill="#fff" fill-rule="evenodd"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 22" style="enable-background:new 0 0 16 22;" xml:space="preserve">
|
||||
<path d="M14.8,7.8c-0.66,0-1.2,0.53-1.2,1.19v1.05c0,2.88-1.89,5.29-4.4,5.89v-1.55c1.64-0.51,2.83-2.03,2.83-3.82V4
|
||||
c0-2.2-1.81-4-4.03-4S3.97,1.8,3.97,4v6.55c0,1.79,1.2,3.31,2.83,3.82v1.55c-2.51-0.59-4.4-3.01-4.4-5.89V8.99
|
||||
c0-0.66-0.54-1.19-1.2-1.19S0,8.33,0,8.99v1.05c0,4.21,2.96,7.71,6.8,8.32v1.27H4.15c-0.66,0-1.2,0.53-1.2,1.19S3.48,22,4.15,22
|
||||
h7.69c0.66,0,1.2-0.53,1.2-1.19s-0.54-1.19-1.2-1.19H9.2v-1.27c3.84-0.61,6.8-4.11,6.8-8.32V8.99C16,8.33,15.46,7.8,14.8,7.8z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 834 B |
|
@ -25,6 +25,14 @@ Flickable {
|
|||
if (visible) {
|
||||
root.contentX = 0;
|
||||
root.contentY = 0;
|
||||
|
||||
// When the user clicks the About tab, refresh the audio I/O model so that
|
||||
// the delegate Component.onCompleted handlers fire, which will update
|
||||
// the text that appears in the About screen.
|
||||
audioOutputDevices.model = undefined;
|
||||
audioOutputDevices.model = AudioScriptingInterface.devices.output;
|
||||
audioInputDevices.model = undefined;
|
||||
audioInputDevices.model = AudioScriptingInterface.devices.input;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,8 +55,8 @@ Flickable {
|
|||
source: "images/logo.png"
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.topMargin: 16
|
||||
Layout.preferredWidth: 200
|
||||
Layout.preferredHeight: 150
|
||||
Layout.preferredWidth: 160
|
||||
Layout.preferredHeight: 120
|
||||
fillMode: Image.PreserveAspectFit
|
||||
mipmap: true
|
||||
}
|
||||
|
@ -195,6 +203,71 @@ Flickable {
|
|||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
// This is a bit of a hack to get the name of the currently-selected audio input device
|
||||
// in the current mode (Desktop or VR). The reason this is necessary is because it seems to me like
|
||||
// the only way one can get a human-readable list of the audio I/O devices is by using a ListView
|
||||
// and grabbing the names from the AudioScriptingInterface; you can't do it using a ListModel.
|
||||
// See `AudioDevices.h`, specifically the comment above the declaration of `QVariant data()`.
|
||||
ListView {
|
||||
id: audioInputDevices
|
||||
visible: false
|
||||
property string selectedInputDeviceName
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.preferredHeight: contentItem.height
|
||||
interactive: false
|
||||
delegate: Item {
|
||||
Component.onCompleted: {
|
||||
if (HMD.active && selectedHMD) {
|
||||
audioInputDevices.selectedInputDeviceName = model.devicename
|
||||
} else if (!HMD.active && selectedDesktop) {
|
||||
audioInputDevices.selectedInputDeviceName = model.devicename
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HifiStylesUit.GraphikRegular {
|
||||
text: "<b>Audio Input:</b> " + audioInputDevices.selectedInputDeviceName
|
||||
Layout.maximumWidth: parent.width
|
||||
height: paintedHeight
|
||||
size: 16
|
||||
color: simplifiedUI.colors.text.white
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
|
||||
// This is a bit of a hack to get the name of the currently-selected audio output device
|
||||
// in the current mode (Desktop or VR). The reason this is necessary is because it seems to me like
|
||||
// the only way one can get a human-readable list of the audio I/O devices is by using a ListView
|
||||
// and grabbing the names from the AudioScriptingInterface; you can't do it using a ListModel.
|
||||
// See `AudioDevices.h`, specifically the comment above the declaration of `QVariant data()`.
|
||||
ListView {
|
||||
id: audioOutputDevices
|
||||
visible: false
|
||||
property string selectedOutputDeviceName
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.preferredHeight: contentItem.height
|
||||
interactive: false
|
||||
delegate: Item {
|
||||
Component.onCompleted: {
|
||||
if (HMD.active && selectedHMD) {
|
||||
audioOutputDevices.selectedOutputDeviceName = model.devicename
|
||||
} else if (!HMD.active && selectedDesktop) {
|
||||
audioOutputDevices.selectedOutputDeviceName = model.devicename
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HifiStylesUit.GraphikRegular {
|
||||
text: "<b>Audio Output:</b> " + audioOutputDevices.selectedOutputDeviceName
|
||||
Layout.maximumWidth: parent.width
|
||||
height: paintedHeight
|
||||
size: 16
|
||||
color: simplifiedUI.colors.text.white
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
SimplifiedControls.Button {
|
||||
Layout.topMargin: 8
|
||||
width: 200
|
||||
|
@ -248,6 +321,8 @@ Flickable {
|
|||
|
||||
textToCopy += "GPU: " + gpuModel + "\n";
|
||||
textToCopy += "VR Hand Controllers: " + (PlatformInfo.hasRiftControllers() ? "Rift" : (PlatformInfo.hasViveControllers() ? "Vive" : "None")) + "\n";
|
||||
textToCopy += "Audio Input: " + audioInputDevices.selectedInputDeviceName + "\n";
|
||||
textToCopy += "Audio Output: " + audioOutputDevices.selectedOutputDeviceName + "\n";
|
||||
|
||||
textToCopy += "\n**All Platform Info**\n";
|
||||
textToCopy += JSON.stringify(JSON.parse(PlatformInfo.getPlatform()), null, 4);
|
||||
|
|
|
@ -182,6 +182,7 @@ Flickable {
|
|||
|
||||
ColumnLayout {
|
||||
id: micControlsSwitchGroup
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.topMargin: simplifiedUI.margins.settings.settingsGroupTopMargin
|
||||
|
||||
SimplifiedControls.Switch {
|
||||
|
@ -205,6 +206,22 @@ Flickable {
|
|||
AudioScriptingInterface.pushToTalkDesktop = !AudioScriptingInterface.pushToTalkDesktop;
|
||||
}
|
||||
}
|
||||
|
||||
SimplifiedControls.Switch {
|
||||
id: attenuateOutputSwitch
|
||||
enabled: AudioScriptingInterface.pushToTalkDesktop
|
||||
Layout.preferredHeight: 18
|
||||
Layout.preferredWidth: parent.width
|
||||
labelTextOn: "Reduce volume of other sounds while I'm pushing-to-talk"
|
||||
checked: AudioScriptingInterface.pushingToTalkOutputGainDesktop !== 0.0
|
||||
onClicked: {
|
||||
if (AudioScriptingInterface.pushingToTalkOutputGainDesktop === 0.0) {
|
||||
AudioScriptingInterface.pushingToTalkOutputGainDesktop = -20.0;
|
||||
} else {
|
||||
AudioScriptingInterface.pushingToTalkOutputGainDesktop = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -171,6 +171,7 @@ Flickable {
|
|||
|
||||
ColumnLayout {
|
||||
id: micControlsSwitchGroup
|
||||
Layout.preferredWidth: parent.width
|
||||
Layout.topMargin: simplifiedUI.margins.settings.settingsGroupTopMargin
|
||||
|
||||
SimplifiedControls.Switch {
|
||||
|
|