mirror of
https://github.com/overte-org/overte.git
synced 2025-06-27 11:49:38 +02:00
Add option to auto mute microphone after lose face tracking
This commit is contained in:
parent
95a565627c
commit
ff7b2016b4
4 changed files with 26 additions and 1 deletions
|
@ -339,7 +339,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
|
||||||
_aboutToQuit(false),
|
_aboutToQuit(false),
|
||||||
_notifiedPacketVersionMismatchThisDomain(false),
|
_notifiedPacketVersionMismatchThisDomain(false),
|
||||||
_domainConnectionRefusals(QList<QString>()),
|
_domainConnectionRefusals(QList<QString>()),
|
||||||
_maxOctreePPS(maxOctreePacketsPerSecond.get())
|
_maxOctreePPS(maxOctreePacketsPerSecond.get()),
|
||||||
|
_lastFaceTrackerUpdate(0)
|
||||||
{
|
{
|
||||||
setInstance(this);
|
setInstance(this);
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
|
@ -2409,7 +2410,27 @@ void Application::update(float deltaTime) {
|
||||||
FaceTracker* tracker = getActiveFaceTracker();
|
FaceTracker* tracker = getActiveFaceTracker();
|
||||||
if (tracker && !tracker->isMuted()) {
|
if (tracker && !tracker->isMuted()) {
|
||||||
tracker->update(deltaTime);
|
tracker->update(deltaTime);
|
||||||
|
|
||||||
|
// Auto-mute microphone after losing face tracking?
|
||||||
|
if (tracker->isTracking()) {
|
||||||
|
_lastFaceTrackerUpdate = usecTimestampNow();
|
||||||
|
} else {
|
||||||
|
const quint64 MUTE_MICROPHONE_AFTER_USECS = 5000000; //5 secs
|
||||||
|
Menu* menu = Menu::getInstance();
|
||||||
|
if (menu->isOptionChecked(MenuOption::AutoMuteAudio) && !menu->isOptionChecked(MenuOption::MuteAudio)) {
|
||||||
|
if (_lastFaceTrackerUpdate > 0
|
||||||
|
&& ((usecTimestampNow() - _lastFaceTrackerUpdate) > MUTE_MICROPHONE_AFTER_USECS)) {
|
||||||
|
menu->triggerOption(MenuOption::MuteAudio);
|
||||||
|
_lastFaceTrackerUpdate = 0;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
_lastFaceTrackerUpdate = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_lastFaceTrackerUpdate = 0;
|
||||||
|
}
|
||||||
|
|
||||||
SixenseManager::getInstance().update(deltaTime);
|
SixenseManager::getInstance().update(deltaTime);
|
||||||
JoystickScriptingInterface::getInstance().update();
|
JoystickScriptingInterface::getInstance().update();
|
||||||
}
|
}
|
||||||
|
|
|
@ -668,6 +668,8 @@ private:
|
||||||
glm::uvec2 _renderResolution;
|
glm::uvec2 _renderResolution;
|
||||||
|
|
||||||
int _maxOctreePPS = DEFAULT_MAX_OCTREE_PPS;
|
int _maxOctreePPS = DEFAULT_MAX_OCTREE_PPS;
|
||||||
|
|
||||||
|
quint64 _lastFaceTrackerUpdate;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi_Application_h
|
#endif // hifi_Application_h
|
||||||
|
|
|
@ -407,6 +407,7 @@ Menu::Menu() {
|
||||||
addCheckableActionToQMenuAndActionHash(faceTrackingMenu, MenuOption::MuteFaceTracking,
|
addCheckableActionToQMenuAndActionHash(faceTrackingMenu, MenuOption::MuteFaceTracking,
|
||||||
Qt::CTRL | Qt::SHIFT | Qt::Key_F, true, // DDE face tracking is on by default
|
Qt::CTRL | Qt::SHIFT | Qt::Key_F, true, // DDE face tracking is on by default
|
||||||
qApp, SLOT(toggleFaceTrackerMute()));
|
qApp, SLOT(toggleFaceTrackerMute()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(faceTrackingMenu, MenuOption::AutoMuteAudio, 0, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto avatarManager = DependencyManager::get<AvatarManager>();
|
auto avatarManager = DependencyManager::get<AvatarManager>();
|
||||||
|
|
|
@ -147,6 +147,7 @@ namespace MenuOption {
|
||||||
const QString AudioScopeTwentyFrames = "Twenty";
|
const QString AudioScopeTwentyFrames = "Twenty";
|
||||||
const QString AudioStats = "Audio Stats";
|
const QString AudioStats = "Audio Stats";
|
||||||
const QString AudioStatsShowInjectedStreams = "Audio Stats Show Injected Streams";
|
const QString AudioStatsShowInjectedStreams = "Audio Stats Show Injected Streams";
|
||||||
|
const QString AutoMuteAudio = "Auto Mute Microphone";
|
||||||
const QString AvatarReceiveStats = "Show Receive Stats";
|
const QString AvatarReceiveStats = "Show Receive Stats";
|
||||||
const QString BandwidthDetails = "Bandwidth Details";
|
const QString BandwidthDetails = "Bandwidth Details";
|
||||||
const QString BinaryEyelidControl = "Binary Eyelid Control";
|
const QString BinaryEyelidControl = "Binary Eyelid Control";
|
||||||
|
|
Loading…
Reference in a new issue