mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-05 11:40:47 +02:00
more decoupling of Audio from Interface
This commit is contained in:
parent
6fd55e6f42
commit
a9eaa4b9f7
8 changed files with 44 additions and 38 deletions
|
@ -54,13 +54,14 @@ void DatagramProcessor::processDatagrams() {
|
|||
case PacketTypeMixedAudio:
|
||||
case PacketTypeSilentAudioFrame: {
|
||||
if (incomingType == PacketTypeAudioStreamStats) {
|
||||
QMetaObject::invokeMethod(&application->_audio, "parseAudioStreamStatsPacket", Qt::QueuedConnection,
|
||||
QMetaObject::invokeMethod(DependencyManager::get<Audio>(), "parseAudioStreamStatsPacket",
|
||||
Qt::QueuedConnection,
|
||||
Q_ARG(QByteArray, incomingPacket));
|
||||
} else if (incomingType == PacketTypeAudioEnvironment) {
|
||||
QMetaObject::invokeMethod(&application->_audio, "parseAudioEnvironmentData", Qt::QueuedConnection,
|
||||
QMetaObject::invokeMethod(DependencyManager::get<Audio>(), "parseAudioEnvironmentData", Qt::QueuedConnection,
|
||||
Q_ARG(QByteArray, incomingPacket));
|
||||
} else {
|
||||
QMetaObject::invokeMethod(&application->_audio, "addReceivedAudioToStream", Qt::QueuedConnection,
|
||||
QMetaObject::invokeMethod(DependencyManager::get<Audio>(), "addReceivedAudioToStream", Qt::QueuedConnection,
|
||||
Q_ARG(QByteArray, incomingPacket));
|
||||
}
|
||||
|
||||
|
@ -143,7 +144,7 @@ void DatagramProcessor::processDatagrams() {
|
|||
}
|
||||
case PacketTypeNoisyMute:
|
||||
case PacketTypeMuteEnvironment: {
|
||||
bool mute = !Application::getInstance()->getAudio()->getMuted();
|
||||
bool mute = !DependencyManager::get<Audio>()->getMuted();
|
||||
|
||||
if (incomingType == PacketTypeMuteEnvironment) {
|
||||
glm::vec3 position;
|
||||
|
@ -158,7 +159,7 @@ void DatagramProcessor::processDatagrams() {
|
|||
}
|
||||
|
||||
if (mute) {
|
||||
Application::getInstance()->getAudio()->toggleMute();
|
||||
DependencyManager::get<Audio>()->toggleMute();
|
||||
if (incomingType == PacketTypeMuteEnvironment) {
|
||||
AudioScriptingInterface::getInstance().environmentMuted();
|
||||
} else {
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
|
||||
#include "Application.h"
|
||||
#include "AccountManager.h"
|
||||
#include "audio/AudioScope.h"
|
||||
#include "devices/Faceshift.h"
|
||||
#include "devices/OculusManager.h"
|
||||
#include "devices/Visage.h"
|
||||
|
@ -525,81 +526,83 @@ Menu::Menu() :
|
|||
SLOT(cycleFrustumRenderMode()));
|
||||
updateFrustumRenderModeAction();
|
||||
|
||||
|
||||
Audio* audioIO = DependencyManager::get<Audio>();
|
||||
QMenu* audioDebugMenu = developerMenu->addMenu("Audio");
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,
|
||||
0,
|
||||
true,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(toggleAudioNoiseReduction()));
|
||||
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::EchoServerAudio);
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::EchoLocalAudio);
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::StereoAudio, 0, false,
|
||||
appInstance->getAudio(), SLOT(toggleStereoInput()));
|
||||
audioIO, SLOT(toggleStereoInput()));
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::MuteAudio,
|
||||
Qt::CTRL | Qt::Key_M,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(toggleMute()));
|
||||
addActionToQMenuAndActionHash(audioDebugMenu,
|
||||
MenuOption::MuteEnvironment,
|
||||
0,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(sendMuteEnvironmentPacket()));
|
||||
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioSourceInject,
|
||||
0,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(toggleAudioSourceInject()));
|
||||
QMenu* audioSourceMenu = audioDebugMenu->addMenu("Generated Audio Source");
|
||||
{
|
||||
QAction *pinkNoise = addCheckableActionToQMenuAndActionHash(audioSourceMenu, MenuOption::AudioSourcePinkNoise,
|
||||
0,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(selectAudioSourcePinkNoise()));
|
||||
|
||||
QAction *sine440 = addCheckableActionToQMenuAndActionHash(audioSourceMenu, MenuOption::AudioSourceSine440,
|
||||
0,
|
||||
true,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(selectAudioSourceSine440()));
|
||||
|
||||
QActionGroup* audioSourceGroup = new QActionGroup(audioSourceMenu);
|
||||
audioSourceGroup->addAction(pinkNoise);
|
||||
audioSourceGroup->addAction(sine440);
|
||||
}
|
||||
|
||||
AudioScope* scope = DependencyManager::get<AudioScope>();
|
||||
|
||||
QMenu* audioScopeMenu = audioDebugMenu->addMenu("Audio Scope");
|
||||
addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScope,
|
||||
Qt::CTRL | Qt::Key_P, false,
|
||||
appInstance->getAudio(),
|
||||
SLOT(toggleScope()));
|
||||
scope,
|
||||
SLOT(toggle()));
|
||||
addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopePause,
|
||||
Qt::CTRL | Qt::SHIFT | Qt::Key_P ,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
SLOT(toggleScopePause()));
|
||||
scope,
|
||||
SLOT(togglePause()));
|
||||
addDisabledActionAndSeparator(audioScopeMenu, "Display Frames");
|
||||
{
|
||||
QAction *fiveFrames = addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopeFiveFrames,
|
||||
0,
|
||||
true,
|
||||
appInstance->getAudio(),
|
||||
scope,
|
||||
SLOT(selectAudioScopeFiveFrames()));
|
||||
|
||||
QAction *twentyFrames = addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopeTwentyFrames,
|
||||
0,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
scope,
|
||||
SLOT(selectAudioScopeTwentyFrames()));
|
||||
|
||||
QAction *fiftyFrames = addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopeFiftyFrames,
|
||||
0,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
scope,
|
||||
SLOT(selectAudioScopeFiftyFrames()));
|
||||
|
||||
QActionGroup* audioScopeFramesGroup = new QActionGroup(audioScopeMenu);
|
||||
|
@ -611,16 +614,16 @@ Menu::Menu() :
|
|||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioStats,
|
||||
Qt::CTRL | Qt::Key_A,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(toggleStats()));
|
||||
|
||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioStatsShowInjectedStreams,
|
||||
0,
|
||||
false,
|
||||
appInstance->getAudio(),
|
||||
audioIO,
|
||||
SLOT(toggleStatsShowInjectedStreams()));
|
||||
|
||||
connect(appInstance->getAudio(), SIGNAL(muteToggled()), this, SLOT(audioMuteToggled()));
|
||||
connect(audioIO, SIGNAL(muteToggled()), this, SLOT(audioMuteToggled()));
|
||||
|
||||
QMenu* experimentalOptionsMenu = developerMenu->addMenu("Experimental");
|
||||
addCheckableActionToQMenuAndActionHash(experimentalOptionsMenu, MenuOption::StringHair, 0, false);
|
||||
|
@ -1357,7 +1360,7 @@ void Menu::toggleToolWindow() {
|
|||
void Menu::audioMuteToggled() {
|
||||
QAction *muteAction = _actionHash.value(MenuOption::MuteAudio);
|
||||
if (muteAction) {
|
||||
muteAction->setChecked(Application::getInstance()->getAudio()->getMuted());
|
||||
muteAction->setChecked(DependencyManager::get<Audio>()->getMuted());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include <InterfaceConfig.h>
|
||||
#include <gpu/GPUConfig.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
|
@ -37,7 +37,7 @@ AudioScope::AudioScope() :
|
|||
|
||||
}
|
||||
|
||||
void AudioScope::toggleScope() {
|
||||
void AudioScope::toggle() {
|
||||
_isEnabled = !_isEnabled;
|
||||
if (_isEnabled) {
|
||||
allocateScope();
|
||||
|
|
|
@ -40,8 +40,8 @@ public:
|
|||
friend class DependencyManager;
|
||||
|
||||
public slots:
|
||||
void toggleScope();
|
||||
void toggleScopePause() { _isPaused = !_isPaused; }
|
||||
void toggle();
|
||||
void togglePause() { _isPaused = !_isPaused; }
|
||||
void selectAudioScopeFiveFrames();
|
||||
void selectAudioScopeTwentyFrames();
|
||||
void selectAudioScopeFiftyFrames();
|
||||
|
|
|
@ -146,7 +146,7 @@ void MyAvatar::update(float deltaTime) {
|
|||
head->relaxLean(deltaTime);
|
||||
updateFromTrackers(deltaTime);
|
||||
// Get audio loudness data from audio input device
|
||||
Audio* audio = Application::getInstance()->getAudio();
|
||||
Audio* audio = DependencyManager::get<Audio>();
|
||||
head->setAudioLoudness(audio->getLastInputLoudness());
|
||||
head->setAudioAverageLoudness(audio->getAudioAverageInputLoudness());
|
||||
|
||||
|
@ -544,7 +544,7 @@ void MyAvatar::startRecording() {
|
|||
if (!_recorder) {
|
||||
_recorder = RecorderPointer(new Recorder(this));
|
||||
}
|
||||
Application::getInstance()->getAudio()->setRecorder(_recorder);
|
||||
DependencyManager::get<Audio>()->setRecorder(_recorder);
|
||||
_recorder->startRecording();
|
||||
|
||||
}
|
||||
|
@ -1662,7 +1662,7 @@ void MyAvatar::updateCollisionSound(const glm::vec3 &penetration, float deltaTim
|
|||
// Base frequency is modified upward by the angle of the collision
|
||||
// Noise is a function of the angle of collision
|
||||
// Duration of the sound is a function of both base frequency and velocity of impact
|
||||
Application::getInstance()->getAudio()->startCollisionSound(
|
||||
DependencyManager::get<Audio>()->startCollisionSound(
|
||||
std::min(COLLISION_LOUDNESS * velocityTowardCollision, 1.0f),
|
||||
frequency * (1.0f + velocityTangentToCollision / velocityTowardCollision),
|
||||
std::min(velocityTangentToCollision / velocityTowardCollision * NOISE_SCALING, 1.0f),
|
||||
|
|
|
@ -27,9 +27,9 @@ AudioDeviceScriptingInterface::AudioDeviceScriptingInterface() {
|
|||
bool AudioDeviceScriptingInterface::setInputDevice(const QString& deviceName) {
|
||||
bool result;
|
||||
QMetaObject::invokeMethod(DependencyManager::get<Audio>(), "switchInputToAudioDevice",
|
||||
Qt::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(bool, result),
|
||||
Q_ARG(const QString&, deviceName));
|
||||
Qt::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(bool, result),
|
||||
Q_ARG(const QString&, deviceName));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -37,9 +37,9 @@ bool AudioDeviceScriptingInterface::setInputDevice(const QString& deviceName) {
|
|||
bool AudioDeviceScriptingInterface::setOutputDevice(const QString& deviceName) {
|
||||
bool result;
|
||||
QMetaObject::invokeMethod(DependencyManager::get<Audio>(), "switchOutputToAudioDevice",
|
||||
Qt::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(bool, result),
|
||||
Q_ARG(const QString&, deviceName));
|
||||
Qt::BlockingQueuedConnection,
|
||||
Q_RETURN_ARG(bool, result),
|
||||
Q_ARG(const QString&, deviceName));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -763,7 +763,7 @@ void ApplicationOverlay::renderAudioMeter() {
|
|||
Application* application = Application::getInstance();
|
||||
|
||||
GLCanvas* glWidget = application->getGLWidget();
|
||||
Audio* audio = application->getAudio();
|
||||
Audio* audio = DependencyManager::get<Audio>();
|
||||
|
||||
// Display a single screen-size quad to create an alpha blended 'collision' flash
|
||||
if (audio->getCollisionFlashesScreen()) {
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include <InterfaceConfig.h>
|
||||
|
||||
#include "Application.h" // HACK ATTACK WARNING: for windows build to work, we need this ahead of QtGui
|
||||
#include <QtGui>
|
||||
#include "ui_updateDialog.h"
|
||||
|
|
Loading…
Reference in a new issue