Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions interface/src/scripting/Audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
using MutedGetter = std::function<bool()>;
using MutedSetter = std::function<void(bool)>;

#define OVERTE_AUDIO_STRING "Audio"
#define OVERTE_AUDIO_HMD_STRING "VR"
#define OVERTE_AUDIO_DESKTOP_STRING "Desktop"

namespace scripting {

class Audio : public AudioScriptingInterface, protected ReadWriteLockable {
Expand Down
9 changes: 5 additions & 4 deletions interface/src/scripting/AudioDevices.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,14 @@
#include "AudioClient.h"
#include "Audio.h"
#include "UserActivityLogger.h"
#include "HifiAudioDeviceInfo.h"

using namespace scripting;

static Setting::Handle<QString> desktopInputDeviceSetting { QStringList { Audio::AUDIO, Audio::DESKTOP, "INPUT" }};
static Setting::Handle<QString> desktopOutputDeviceSetting { QStringList { Audio::AUDIO, Audio::DESKTOP, "OUTPUT" }};
static Setting::Handle<QString> hmdInputDeviceSetting { QStringList { Audio::AUDIO, Audio::HMD, "INPUT" }};
static Setting::Handle<QString> hmdOutputDeviceSetting { QStringList { Audio::AUDIO, Audio::HMD, "OUTPUT" }};
static Setting::Handle<QString> desktopInputDeviceSetting { QStringList { OVERTE_AUDIO_STRING, OVERTE_AUDIO_DESKTOP_STRING, "INPUT" }, HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME};
static Setting::Handle<QString> desktopOutputDeviceSetting { QStringList { OVERTE_AUDIO_STRING, OVERTE_AUDIO_DESKTOP_STRING, "OUTPUT" }, HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME};
static Setting::Handle<QString> hmdInputDeviceSetting { QStringList { OVERTE_AUDIO_STRING, OVERTE_AUDIO_HMD_STRING, "INPUT" }, HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME};
static Setting::Handle<QString> hmdOutputDeviceSetting { QStringList { OVERTE_AUDIO_STRING, OVERTE_AUDIO_HMD_STRING, "OUTPUT" }, HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME};

Q_DECLARE_METATYPE(HifiAudioDeviceInfo);

Expand Down
8 changes: 5 additions & 3 deletions libraries/audio-client/src/AudioClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ AudioClient::AudioClient() {
defaultAudioDeviceName(QAudio::AudioInput);
defaultAudioDeviceName(QAudio::AudioOutput);

checkDevices();
// start a thread to detect any device changes
_checkDevicesTimer = new QTimer(this);
const unsigned long DEVICE_CHECK_INTERVAL_MSECS = 2 * 1000;
Expand Down Expand Up @@ -807,9 +808,10 @@ void AudioClient::start() {
inputName = _hmdInputName;
outputName = _hmdOutputName;
}

//initialize input to the dummy device to prevent starves
switchInputToAudioDevice(HifiAudioDeviceInfo());

// Input was originally set to HifiAudioDeviceInfo(), but that was causing trouble.
//Original comment: initialize input to the dummy device to prevent starves
switchInputToAudioDevice(defaultAudioDeviceForMode(QAudio::AudioInput, QString()));
switchOutputToAudioDevice(defaultAudioDeviceForMode(QAudio::AudioOutput, QString()));

#if defined(Q_OS_ANDROID)
Expand Down
2 changes: 1 addition & 1 deletion libraries/audio-client/src/HifiAudioDeviceInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

#include "HifiAudioDeviceInfo.h"

const QString HifiAudioDeviceInfo::DEFAULT_DEVICE_NAME = "default ";
const QString HifiAudioDeviceInfo::DEFAULT_DEVICE_NAME = HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME;

void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) {
_audioDeviceInfo = devInfo;
Expand Down
2 changes: 2 additions & 0 deletions libraries/audio-client/src/HifiAudioDeviceInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#include <QAudio>
#include <QString>

#define HIFI_AUDIO_DEVICE_INFO_DEFAULT_DEVICE_NAME "default "

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Little question about this: Why put strings like this one in the header file and then read them in the implementation? With interface/src/scripting/AudioDevices.cpp I would think the reason is that you use the same string multiple times. But here it is only used once.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think 74 had a theory at one point that these strings weren't initialized in time or something like that, but that wasn't the problem, so this is just harmless.


class HifiAudioDeviceInfo : public QObject {
Q_OBJECT

Expand Down