"use strict";
//
//  audio.js
//  scripts/system/
//
//  Created by Gabriel Calero & Cristian Duarte on Jan 16, 2018
//  Copyright 2018 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
//

(function() { // BEGIN LOCAL_SCOPE

var audiobar;
var audioButton;

var logEnabled = false;

function printd(str) {
    if (logEnabled)
        print("[audio.js] " + str);
}

function init() {
    audiobar = new QmlFragment({
        qml: "hifi/AudioBar.qml"
    });

    audioButton = audiobar.addButton({
        icon: "icons/mic-unmute-a.svg",
        activeIcon: "icons/mic-mute-a.svg",
        text: "",
        bgOpacity: 0.0,
        hoverBgOpacity: 0.0,
        activeHoverBgOpacity: 0.0,
        activeBgOpacity: 0.0
    });

    onMuteToggled();

    audioButton.clicked.connect(onMuteClicked);
    audioButton.entered.connect(onMutePressed);
    Audio.mutedChanged.connect(onMuteToggled);
}

function onMuteClicked() {
    Audio.muted = !Audio.muted;
}

function onMutePressed() {
    Controller.triggerHapticPulseOnDevice(Controller.findDevice("TouchscreenVirtualPad"), 0.1, 40.0, 0);
}

function onMuteToggled() {
    printd("On Mute Toggled");
    audioButton.isActive = Audio.muted; // Menu.isOptionChecked("Mute Microphone")
    printd("Audio button is active: " + audioButton.isActive);
}

Script.scriptEnding.connect(function () {
    if(audioButton) {
        audioButton.clicked.disconnect(onMuteClicked);
        audioButton.entered.disconnect(onMutePressed);
        Audio.mutedChanged.connect(onMuteToggled);
    }
});

init();

}()); // END LOCAL_SCOPE