mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 07:53:08 +02:00
log selected_audio_device
This commit is contained in:
parent
5f236bd025
commit
837f37220a
2 changed files with 41 additions and 16 deletions
|
@ -17,12 +17,17 @@
|
||||||
#include "AudioClient.h"
|
#include "AudioClient.h"
|
||||||
#include "Audio.h"
|
#include "Audio.h"
|
||||||
|
|
||||||
|
#include "UserActivityLogger.h"
|
||||||
|
|
||||||
using namespace scripting;
|
using namespace scripting;
|
||||||
|
|
||||||
static Setting::Handle<QString> desktopInputDeviceSetting { QStringList { Audio::AUDIO, Audio::DESKTOP, "INPUT" }};
|
static const INPUT = "INPUT";
|
||||||
static Setting::Handle<QString> desktopOutputDeviceSetting { QStringList { Audio::AUDIO, Audio::DESKTOP, "OUTPUT" }};
|
static const OUTPUT= "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 { 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 }};
|
||||||
|
|
||||||
const bool hmdSetting = true;
|
const bool hmdSetting = true;
|
||||||
const bool desktopSetting = false;
|
const bool desktopSetting = false;
|
||||||
|
@ -82,7 +87,7 @@ bool AudioDeviceList::setData(const QModelIndex& index, const QVariant& value, i
|
||||||
|
|
||||||
if (success) {
|
if (success) {
|
||||||
device.selected = true;
|
device.selected = true;
|
||||||
emit deviceSelected(device.info);
|
emit deviceSelected(device.info, _selectedDevice);
|
||||||
emit deviceChanged(device.info);
|
emit deviceChanged(device.info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,7 +114,7 @@ void AudioDeviceList::resetDevice(bool contextIsHMD, const QString& device) {
|
||||||
|
|
||||||
// the selection failed - reset it
|
// the selection failed - reset it
|
||||||
if (!success) {
|
if (!success) {
|
||||||
emit deviceSelected(QAudioDeviceInfo());
|
emit deviceSelected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,11 +188,11 @@ AudioDevices::AudioDevices(bool& contextIsHMD) : _contextIsHMD(contextIsHMD) {
|
||||||
_inputs.onDevicesChanged(client->getAudioDevices(QAudio::AudioInput));
|
_inputs.onDevicesChanged(client->getAudioDevices(QAudio::AudioInput));
|
||||||
_outputs.onDevicesChanged(client->getAudioDevices(QAudio::AudioOutput));
|
_outputs.onDevicesChanged(client->getAudioDevices(QAudio::AudioOutput));
|
||||||
|
|
||||||
connect(&_inputs, &AudioDeviceList::deviceSelected, [&](const QAudioDeviceInfo& device) {
|
connect(&_inputs, &AudioDeviceList::deviceSelected, [&](const QAudioDeviceInfo& device, const QAudioDeviceInfo& previousDevice) {
|
||||||
onDeviceSelected(QAudio::AudioInput, device);
|
onDeviceSelected(QAudio::AudioInput, device, previousDevice);
|
||||||
});
|
});
|
||||||
connect(&_outputs, &AudioDeviceList::deviceSelected, [&](const QAudioDeviceInfo& device) {
|
connect(&_outputs, &AudioDeviceList::deviceSelected, [&](const QAudioDeviceInfo& device, const QAudioDeviceInfo& previousDevice) {
|
||||||
onDeviceSelected(QAudio::AudioOutput, device);
|
onDeviceSelected(QAudio::AudioOutput, device, previousDevice);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +204,7 @@ void AudioDevices::onContextChanged(const QString& context) {
|
||||||
_outputs.resetDevice(_contextIsHMD, output);
|
_outputs.resetDevice(_contextIsHMD, output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioDevices::onDeviceSelected(QAudio::Mode mode, const QAudioDeviceInfo& device) {
|
void AudioDevices::onDeviceSelected(QAudio::Mode mode, const QAudioDeviceInfo& device, const QAudioDeviceInfo& previousDevice) {
|
||||||
QString deviceName;
|
QString deviceName;
|
||||||
if (!device.isNull()) {
|
if (!device.isNull()) {
|
||||||
deviceName = device.deviceName();
|
deviceName = device.deviceName();
|
||||||
|
@ -207,14 +212,33 @@ void AudioDevices::onDeviceSelected(QAudio::Mode mode, const QAudioDeviceInfo& d
|
||||||
|
|
||||||
auto& setting = deviceSettings[_contextIsHMD][mode];
|
auto& setting = deviceSettings[_contextIsHMD][mode];
|
||||||
|
|
||||||
// retrieve the prior device
|
// check for a previous device
|
||||||
auto lastDeviceName = setting.get();
|
auto wasDefault = setting.get().isNull();
|
||||||
|
|
||||||
// store the selected device
|
// store the selected device
|
||||||
setting.set(deviceName);
|
setting.set(deviceName);
|
||||||
|
|
||||||
// TODO: log the selected device
|
// log the selected device
|
||||||
if (!device.isNull()) {
|
if (!device.isNull()) {
|
||||||
|
QJsonObject data;
|
||||||
|
|
||||||
|
const QString MODE = "audio_mode";
|
||||||
|
data[MODE] = mode == QAudio::AudioInput ? INPUT : OUTPUT;
|
||||||
|
|
||||||
|
const QString CONTEXT = "display_mode";
|
||||||
|
data[CONTEXT] = _contextIsHMD ? Audio::HMD : Audio::DESKTOP;
|
||||||
|
|
||||||
|
const QString DISPLAY = "display_device";
|
||||||
|
data[DISPLAY] = qApp->getActiveDisplayPlugin()->getName();
|
||||||
|
|
||||||
|
const QString DEVICE = "device";
|
||||||
|
const QString PREVIOUS_DEVICE = "previous_device";
|
||||||
|
const QString WAS_DEFAULT = "was_default";
|
||||||
|
data[DEVICE] = deviceName;
|
||||||
|
data[PREVIOUS_DEVICE] = previousDevice.deviceName();
|
||||||
|
data[WAS_DEFAULT] = wasDefault;
|
||||||
|
|
||||||
|
UserActivityLogger::getInstance()->logAction("selected_audio_device", data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ public:
|
||||||
void resetDevice(bool contextIsHMD, const QString& device);
|
void resetDevice(bool contextIsHMD, const QString& device);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void deviceSelected(const QAudioDeviceInfo& device);
|
void deviceSelected(const QAudioDeviceInfo& device = QAudioDeviceInfo(),
|
||||||
|
const QAudioDeviceInfo& previousDevice = QAudioDeviceInfo());
|
||||||
void deviceChanged(const QAudioDeviceInfo& device);
|
void deviceChanged(const QAudioDeviceInfo& device);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
@ -76,7 +77,7 @@ signals:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onContextChanged(const QString& context);
|
void onContextChanged(const QString& context);
|
||||||
void onDeviceSelected(QAudio::Mode mode, const QAudioDeviceInfo& device);
|
void onDeviceSelected(QAudio::Mode mode, const QAudioDeviceInfo& device, const QAudioDeviceInfo& previousDevice);
|
||||||
void onDeviceChanged(QAudio::Mode mode, const QAudioDeviceInfo& device);
|
void onDeviceChanged(QAudio::Mode mode, const QAudioDeviceInfo& device);
|
||||||
void onDevicesChanged(QAudio::Mode mode, const QList<QAudioDeviceInfo>& devices);
|
void onDevicesChanged(QAudio::Mode mode, const QList<QAudioDeviceInfo>& devices);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue