mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-07 07:22:31 +02:00
Add notification sound + muting system.
This commit is contained in:
parent
580d4826e9
commit
baa24c311e
4 changed files with 87 additions and 3 deletions
|
@ -29,11 +29,19 @@
|
|||
</span>
|
||||
<div class="switch muteSwitch col s2">
|
||||
<label>
|
||||
<span style="font-size: 20px" id="muteText">Mute</span>
|
||||
<span id="muteText">Hide Popups</span>
|
||||
<input type="checkbox" id="muteInput" onclick="muteSwitchToggle()">
|
||||
<span class="lever waves-light"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="switch muteSwitch col s2">
|
||||
<label>
|
||||
<span id="muteAudioText">Mute Sound</span>
|
||||
<input type="checkbox" id="muteAudioInput" onclick="muteAudioSwitchToggle()">
|
||||
<span class="lever waves-light"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<span class="col s1">
|
||||
</span>
|
||||
|
@ -47,6 +55,7 @@
|
|||
|
||||
<script>
|
||||
var muted = {"Local": false, "Domain": false, "Grid": false};
|
||||
var mutedAudio = {"Local": false, "Domain": false, "Grid": false};
|
||||
var instance;
|
||||
var appUUID;
|
||||
var messageData = {}; // The data that is sent along with the message.
|
||||
|
@ -380,18 +389,23 @@
|
|||
|
||||
function time() {
|
||||
var d = new Date();
|
||||
var month = (d.getMonth()).toString();
|
||||
var day = (d.getDate()).toString();
|
||||
var h = (d.getHours()).toString();
|
||||
var m = (d.getMinutes()).toString();
|
||||
var s = (d.getSeconds()).toString();
|
||||
var h2 = ("0" + h).slice(-2);
|
||||
var m2 = ("0" + m).slice(-2);
|
||||
var s2 = ("0" + s).slice(-2);
|
||||
s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
|
||||
return h2 + ":" + m2 + ":" + s2;
|
||||
// s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
|
||||
return month + "/" + day + " - " + h2 + ":" + m2 + ":" + s2;
|
||||
}
|
||||
|
||||
var muteInput;
|
||||
var muteText;
|
||||
|
||||
var muteAudioInput;
|
||||
var muteAudioText;
|
||||
|
||||
function muteSwitchToggle() {
|
||||
muted[getCurrTab()] = muteInput.checked;
|
||||
|
@ -399,18 +413,33 @@
|
|||
muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
|
||||
emitWebEvent({type: "CMD", cmd: "MUTED", muted: muted});
|
||||
}
|
||||
|
||||
function muteAudioSwitchToggle() {
|
||||
mutedAudio[getCurrTab()] = muteAudioInput.checked;
|
||||
muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
|
||||
muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
|
||||
emitWebEvent({type: "CMD", cmd: "MUTEDAUDIO", muted: mutedAudio});
|
||||
}
|
||||
|
||||
function main() {
|
||||
|
||||
muteInput = document.getElementById("muteInput");
|
||||
muteText = document.getElementById("muteText");
|
||||
|
||||
muteAudioInput = document.getElementById("muteAudioInput");
|
||||
muteAudioText = document.getElementById("muteAudioText");
|
||||
|
||||
instance = M.Tabs.init(document.getElementById("tabs"), {
|
||||
"onShow": function (e) {
|
||||
scrollChatLog(getCurrTab());
|
||||
|
||||
muteInput.checked = muted[getCurrTab()];
|
||||
muteText.classList.add(muteInput.checked ? "red-text" : "white-text");
|
||||
muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
|
||||
|
||||
muteAudioInput.checked = mutedAudio[getCurrTab()];
|
||||
muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
|
||||
muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
|
||||
}
|
||||
});
|
||||
instance.select("Local");
|
||||
|
@ -475,6 +504,12 @@
|
|||
muteText.classList.add(muteInput.checked ? "red-text" : "white-text");
|
||||
muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
|
||||
}
|
||||
if (cmd.cmd === "MUTEDAUDIO") {
|
||||
mutedAudio = cmd.muted;
|
||||
muteAudioInput.checked = mutedAudio[getCurrTab()];
|
||||
muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
|
||||
muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 100); // Delay to allow everything to settle
|
||||
|
|
|
@ -57,6 +57,8 @@ var vircadiaGotoUrl = "https://metaverse.vircadia.com/interim/d-goto/app/goto.js
|
|||
var gotoJSONUrl = Settings.getValue(settingsRoot + "/gotoJSONUrl", vircadiaGotoUrl);
|
||||
|
||||
var muted = Settings.getValue(settingsRoot + "/muted", {"Local": false, "Domain": false, "Grid": true});
|
||||
var mutedAudio = Settings.getValue(settingsRoot + "/mutedAudio", {"Local": false, "Domain": false, "Grid": true});
|
||||
var notificationSound = SoundCache.getSound(Script.resolvePath("resources/bubblepop.wav"));
|
||||
|
||||
var ws;
|
||||
var wsReady = false;
|
||||
|
@ -285,12 +287,17 @@ function onWebEventReceived(event) {
|
|||
if (event.type === "ready") {
|
||||
chatHistory.emitScriptEvent(JSON.stringify({type: "MSG", data: historyLog}));
|
||||
chatHistory.emitScriptEvent(JSON.stringify({type: "CMD", cmd: "MUTED", muted: muted}));
|
||||
chatHistory.emitScriptEvent(JSON.stringify({type: "CMD", cmd: "MUTEDAUDIO", muted: mutedAudio}));
|
||||
}
|
||||
if (event.type === "CMD") {
|
||||
if (event.cmd === "MUTED") {
|
||||
muted = event.muted;
|
||||
Settings.setValue(settingsRoot + "/muted", muted);
|
||||
}
|
||||
if (event.cmd === "MUTEDAUDIO") {
|
||||
mutedAudio = event.muted;
|
||||
Settings.setValue(settingsRoot + "/mutedAudio", mutedAudio);
|
||||
}
|
||||
if (event.cmd === "COLOUR") {
|
||||
Settings.setValue(settingsRoot + "/" + event.colourType + "Colour", event.colour);
|
||||
colours[event.colourType] = event.colour;
|
||||
|
@ -346,6 +353,16 @@ function onWebEventReceived(event) {
|
|||
}
|
||||
}
|
||||
|
||||
function playNotificationSound() {
|
||||
if (notificationSound.downloaded) {
|
||||
var injectorOptions = {
|
||||
position: MyAvatar.position,
|
||||
volume: 0.25
|
||||
};
|
||||
var injector = Audio.playSound(notificationSound, injectorOptions);
|
||||
}
|
||||
}
|
||||
|
||||
function replaceFormatting(text) {
|
||||
var found = false;
|
||||
if (text.indexOf("**") !== -1) {
|
||||
|
@ -429,6 +446,11 @@ function messageReceived(channel, message) {
|
|||
if (cmd.channel === "Local") {
|
||||
if (Vec3.withinEpsilon(MyAvatar.position, cmd.position, 20)) {
|
||||
addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
|
||||
|
||||
if (!mutedAudio["Local"]) {
|
||||
playNotificationSound();
|
||||
}
|
||||
|
||||
if (!muted["Local"]) {
|
||||
Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
|
||||
sender: "(L) " + cmd.displayName,
|
||||
|
@ -439,6 +461,11 @@ function messageReceived(channel, message) {
|
|||
}
|
||||
} else if (cmd.channel === "Domain") {
|
||||
addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
|
||||
|
||||
if (!mutedAudio["Domain"]) {
|
||||
playNotificationSound();
|
||||
}
|
||||
|
||||
if (!muted["Domain"]) {
|
||||
Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
|
||||
sender: "(D) " + cmd.displayName,
|
||||
|
@ -448,6 +475,11 @@ function messageReceived(channel, message) {
|
|||
}
|
||||
} else if (cmd.channel === "Grid") {
|
||||
addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
|
||||
|
||||
if (!mutedAudio["Grid"]) {
|
||||
playNotificationSound();
|
||||
}
|
||||
|
||||
if (!muted["Grid"]) {
|
||||
Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
|
||||
sender: "(G) " + cmd.displayName,
|
||||
|
@ -457,6 +489,9 @@ function messageReceived(channel, message) {
|
|||
}
|
||||
} else {
|
||||
addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
|
||||
|
||||
playNotificationSound();
|
||||
|
||||
Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
|
||||
sender: cmd.displayName,
|
||||
text: replaceFormatting(cmd.message),
|
||||
|
|
|
@ -50,6 +50,12 @@ div.dockButton button.active {
|
|||
border-top: none;
|
||||
}
|
||||
|
||||
#tabs {
|
||||
width: 250px !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -152,6 +158,14 @@ body {
|
|||
background-color: #a62113 !important;
|
||||
}
|
||||
|
||||
#muteText {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#muteAudioText {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
img, a{
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
|
|
BIN
scripts/communityScripts/chat/resources/bubblepop.wav
Normal file
BIN
scripts/communityScripts/chat/resources/bubblepop.wav
Normal file
Binary file not shown.
Loading…
Reference in a new issue