mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 08:57:27 +02:00
add support for listing all audio devices and default device in JS
This commit is contained in:
parent
df9e1ff077
commit
7ef1fe3a74
6 changed files with 67 additions and 7 deletions
|
@ -10,6 +10,27 @@
|
|||
|
||||
|
||||
|
||||
var inputDevices = AudioDevice.getInputDevices();
|
||||
var defaultInputDevice = AudioDevice.getDefaultInputDevice();
|
||||
print("Input Devices:");
|
||||
for(var i = 0; i < inputDevices.length; i++) {
|
||||
if (inputDevices[i] == defaultInputDevice) {
|
||||
print(" " + inputDevices[i] + " << default");
|
||||
} else {
|
||||
print(" " + inputDevices[i]);
|
||||
}
|
||||
}
|
||||
|
||||
var outputDevices = AudioDevice.getInputDevices();
|
||||
var defaultOutputDevice = AudioDevice.getDefaultInputDevice();
|
||||
print("Output Devices:");
|
||||
for(var i = 0; i < outputDevices.length; i++) {
|
||||
if (outputDevices[i] == defaultOutputDevice) {
|
||||
print(" " + outputDevices[i] + " << default");
|
||||
} else {
|
||||
print(" " + outputDevices[i]);
|
||||
}
|
||||
}
|
||||
|
||||
print("Audio Input Device: " + AudioDevice.getInputDevice());
|
||||
AudioDevice.setInputDevice("Shure Digital");
|
||||
|
|
|
@ -271,6 +271,19 @@ void Audio::start() {
|
|||
}
|
||||
}
|
||||
|
||||
QString Audio::getDefaultDeviceName(QAudio::Mode mode) {
|
||||
QAudioDeviceInfo deviceInfo = defaultAudioDeviceForMode(mode);
|
||||
return deviceInfo.deviceName();
|
||||
}
|
||||
|
||||
QVector<QString> Audio::getDeviceNames(QAudio::Mode mode) {
|
||||
QVector<QString> deviceNames;
|
||||
foreach(QAudioDeviceInfo audioDevice, QAudioDeviceInfo::availableDevices(mode)) {
|
||||
deviceNames << audioDevice.deviceName().trimmed();
|
||||
}
|
||||
return deviceNames;
|
||||
}
|
||||
|
||||
bool Audio::switchInputToAudioDevice(const QString& inputDeviceName) {
|
||||
bool supportedFormat = false;
|
||||
|
||||
|
|
|
@ -19,9 +19,12 @@
|
|||
|
||||
#include "InterfaceConfig.h"
|
||||
|
||||
#include <QAudio>
|
||||
#include <QGLWidget>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtMultimedia/QAudioFormat>
|
||||
#include <QVector>
|
||||
|
||||
#include <AbstractAudioInterface.h>
|
||||
#include <AudioRingBuffer.h>
|
||||
|
@ -29,7 +32,6 @@
|
|||
|
||||
#include "ui/Oscilloscope.h"
|
||||
|
||||
#include <QGLWidget>
|
||||
|
||||
static const int NUM_AUDIO_CHANNELS = 2;
|
||||
|
||||
|
@ -85,10 +87,10 @@ public slots:
|
|||
|
||||
bool switchInputToAudioDevice(const QString& inputDeviceName);
|
||||
bool switchOutputToAudioDevice(const QString& outputDeviceName);
|
||||
|
||||
QString getInputAudioDeviceName() const { return _inputAudioDeviceName; }
|
||||
QString getOutputAudioDeviceName() const { return _outputAudioDeviceName; }
|
||||
|
||||
QString getDeviceName(QAudio::Mode mode) const { return (mode == QAudio::AudioInput) ?
|
||||
_inputAudioDeviceName : _outputAudioDeviceName; }
|
||||
QString getDefaultDeviceName(QAudio::Mode mode);
|
||||
QVector<QString> getDeviceNames(QAudio::Mode mode);
|
||||
|
||||
signals:
|
||||
bool muteToggled();
|
||||
|
|
|
@ -36,9 +36,25 @@ bool AudioDeviceScriptingInterface::setOutputDevice(const QString& deviceName) {
|
|||
}
|
||||
|
||||
QString AudioDeviceScriptingInterface::getInputDevice() {
|
||||
return Application::getInstance()->getAudio()->getInputAudioDeviceName();
|
||||
return Application::getInstance()->getAudio()->getDeviceName(QAudio::AudioInput);
|
||||
}
|
||||
|
||||
QString AudioDeviceScriptingInterface::getOutputDevice() {
|
||||
return Application::getInstance()->getAudio()->getOutputAudioDeviceName();
|
||||
return Application::getInstance()->getAudio()->getDeviceName(QAudio::AudioOutput);
|
||||
}
|
||||
|
||||
QString AudioDeviceScriptingInterface::getDefaultInputDevice() {
|
||||
return Application::getInstance()->getAudio()->getDefaultDeviceName(QAudio::AudioInput);
|
||||
}
|
||||
|
||||
QString AudioDeviceScriptingInterface::getDefaultOutputDevice() {
|
||||
return Application::getInstance()->getAudio()->getDefaultDeviceName(QAudio::AudioOutput);
|
||||
}
|
||||
|
||||
QVector<QString> AudioDeviceScriptingInterface::getInputDevices() {
|
||||
return Application::getInstance()->getAudio()->getDeviceNames(QAudio::AudioInput);
|
||||
}
|
||||
|
||||
QVector<QString> AudioDeviceScriptingInterface::getOutputDevices() {
|
||||
return Application::getInstance()->getAudio()->getDeviceNames(QAudio::AudioOutput);
|
||||
}
|
||||
|
|
|
@ -24,8 +24,15 @@ public:
|
|||
public slots:
|
||||
bool setInputDevice(const QString& deviceName);
|
||||
bool setOutputDevice(const QString& deviceName);
|
||||
|
||||
QString getInputDevice();
|
||||
QString getOutputDevice();
|
||||
|
||||
QString getDefaultInputDevice();
|
||||
QString getDefaultOutputDevice();
|
||||
|
||||
QVector<QString> getInputDevices();
|
||||
QVector<QString> getOutputDevices();
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__AudioDeviceScriptingInterface__) */
|
||||
|
|
|
@ -144,6 +144,7 @@ void ScriptEngine::init() {
|
|||
qScriptRegisterMetaType(&_engine, ParticleIDtoScriptValue, ParticleIDfromScriptValue);
|
||||
qScriptRegisterSequenceMetaType<QVector<ParticleID> >(&_engine);
|
||||
qScriptRegisterSequenceMetaType<QVector<glm::vec2> >(&_engine);
|
||||
qScriptRegisterSequenceMetaType<QVector<QString> >(&_engine);
|
||||
|
||||
QScriptValue soundConstructorValue = _engine.newFunction(soundConstructor);
|
||||
QScriptValue soundMetaObject = _engine.newQMetaObject(&Sound::staticMetaObject, soundConstructorValue);
|
||||
|
|
Loading…
Reference in a new issue