mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 11:33:44 +02:00
repairs to audio classes for Sound* to QScriptValue
This commit is contained in:
parent
d4b74e6ecf
commit
ef2c181c98
7 changed files with 31 additions and 15 deletions
|
@ -21,6 +21,14 @@
|
|||
|
||||
#include "AudioInjector.h"
|
||||
|
||||
QScriptValue injectorToScriptValue(QScriptEngine* engine, AudioInjector* const &in) {
|
||||
return engine->newQObject(in);
|
||||
}
|
||||
|
||||
void injectorFromScriptValue(const QScriptValue &object, AudioInjector* &out) {
|
||||
out = qobject_cast<AudioInjector*>(object.toQObject());
|
||||
}
|
||||
|
||||
AudioInjector::AudioInjector(QObject* parent) :
|
||||
QObject(parent),
|
||||
_sound(NULL),
|
||||
|
|
|
@ -50,4 +50,7 @@ private:
|
|||
|
||||
Q_DECLARE_METATYPE(AudioInjector*)
|
||||
|
||||
QScriptValue injectorToScriptValue(QScriptEngine* engine, AudioInjector* const &in);
|
||||
void injectorFromScriptValue(const QScriptValue &object, AudioInjector* &out);
|
||||
|
||||
#endif // hifi_AudioInjector_h
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
void registerAudioMetaTypes(QScriptEngine* engine) {
|
||||
qScriptRegisterMetaType(engine, injectorOptionsToScriptValue, injectorOptionsFromScriptValue);
|
||||
qScriptRegisterMetaType(engine, soundToScriptValue, soundFromScriptValue);
|
||||
}
|
||||
|
||||
AudioScriptingInterface& AudioScriptingInterface::getInstance() {
|
||||
|
@ -23,7 +24,7 @@ AudioScriptingInterface& AudioScriptingInterface::getInstance() {
|
|||
AudioScriptingInterface::AudioScriptingInterface() :
|
||||
_localLoopbackInterface(NULL)
|
||||
{
|
||||
qRegisterMetaType<AudioInjectorOptions>("AudioInjectorOptions");
|
||||
|
||||
}
|
||||
|
||||
void AudioScriptingInterface::stopAllInjectors() {
|
||||
|
@ -41,12 +42,9 @@ void AudioScriptingInterface::stopAllInjectors() {
|
|||
}
|
||||
}
|
||||
|
||||
AudioInjector* AudioScriptingInterface::playSound(Sound* sound, const AudioInjectorOptions* injectorOptions) {
|
||||
AudioInjector* AudioScriptingInterface::playSound(Sound* sound, AudioInjectorOptions& injectorOptions) {
|
||||
|
||||
if (sound->isStereo()) {
|
||||
const_cast<AudioInjectorOptions*>(injectorOptions)->stereo = true;
|
||||
}
|
||||
AudioInjector* injector = new AudioInjector(sound, *injectorOptions);
|
||||
AudioInjector* injector = new AudioInjector(sound, injectorOptions);
|
||||
|
||||
QThread* injectorThread = new QThread();
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ public slots:
|
|||
|
||||
static float getLoudness(AudioInjector* injector);
|
||||
|
||||
AudioInjector* playSound(Sound* sound, const AudioInjectorOptions* injectorOptions = NULL);
|
||||
AudioInjector* playSound(Sound* sound, AudioInjectorOptions& injectorOptions);
|
||||
|
||||
void stopInjector(AudioInjector* injector);
|
||||
bool isInjectorPlaying(AudioInjector* injector);
|
||||
|
|
|
@ -29,6 +29,15 @@
|
|||
#include "AudioEditBuffer.h"
|
||||
#include "Sound.h"
|
||||
|
||||
|
||||
QScriptValue soundToScriptValue(QScriptEngine* engine, Sound* const &in) {
|
||||
return engine->newQObject(in);
|
||||
}
|
||||
|
||||
void soundFromScriptValue(const QScriptValue &object, Sound* &out) {
|
||||
out = qobject_cast<Sound*>(object.toQObject());
|
||||
}
|
||||
|
||||
// procedural audio version of Sound
|
||||
Sound::Sound(float volume, float frequency, float duration, float decay, QObject* parent) :
|
||||
QObject(parent),
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtNetwork/QNetworkReply>
|
||||
#include <QtScript/qscriptengine.h>
|
||||
|
||||
class Sound : public QObject {
|
||||
Q_OBJECT
|
||||
|
@ -44,4 +45,9 @@ private slots:
|
|||
void replyError(QNetworkReply::NetworkError code);
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(Sound*)
|
||||
|
||||
QScriptValue soundToScriptValue(QScriptEngine* engine, Sound* const &in);
|
||||
void soundFromScriptValue(const QScriptValue &object, Sound* &out);
|
||||
|
||||
#endif // hifi_Sound_h
|
||||
|
|
|
@ -74,14 +74,6 @@ void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) {
|
|||
out = qobject_cast<AvatarData*>(object.toQObject());
|
||||
}
|
||||
|
||||
QScriptValue injectorToScriptValue(QScriptEngine* engine, AudioInjector* const &in) {
|
||||
return engine->newQObject(in);
|
||||
}
|
||||
|
||||
void injectorFromScriptValue(const QScriptValue &object, AudioInjector* &out) {
|
||||
out = qobject_cast<AudioInjector*>(object.toQObject());
|
||||
}
|
||||
|
||||
QScriptValue inputControllerToScriptValue(QScriptEngine *engine, AbstractInputController* const &in) {
|
||||
return engine->newQObject(in);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue