mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 23:38:17 +02:00
Moving the REcordingScriptingInterface into the script-engine and wiiring up in the assignment-client
This commit is contained in:
parent
8553033d59
commit
5b92929833
5 changed files with 42 additions and 16 deletions
|
@ -24,6 +24,9 @@
|
|||
#include <SoundCache.h>
|
||||
#include <UUID.h>
|
||||
|
||||
#include <recording/Deck.h>
|
||||
#include <recording/Recorder.h>
|
||||
|
||||
#include <WebSocketServerClass.h>
|
||||
#include <EntityScriptingInterface.h> // TODO: consider moving to scriptengine.h
|
||||
|
||||
|
@ -46,6 +49,8 @@ Agent::Agent(NLPacket& packet) :
|
|||
|
||||
DependencyManager::set<ResourceCacheSharedItems>();
|
||||
DependencyManager::set<SoundCache>();
|
||||
DependencyManager::set<recording::Deck>();
|
||||
DependencyManager::set<recording::Recorder>();
|
||||
DependencyManager::set<RecordingScriptingInterface>();
|
||||
|
||||
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
|
||||
|
@ -168,7 +173,7 @@ void Agent::run() {
|
|||
|
||||
// give this AvatarData object to the script engine
|
||||
setAvatarData(&scriptedAvatar, "Avatar");
|
||||
|
||||
|
||||
auto avatarHashMap = DependencyManager::set<AvatarHashMap>();
|
||||
_scriptEngine->registerGlobalObject("AvatarList", avatarHashMap.data());
|
||||
|
||||
|
@ -245,6 +250,7 @@ void Agent::setIsAvatar(bool isAvatar) {
|
|||
void Agent::setAvatarData(AvatarData* avatarData, const QString& objectName) {
|
||||
_avatarData = avatarData;
|
||||
_scriptEngine->registerGlobalObject(objectName, avatarData);
|
||||
DependencyManager::get<RecordingScriptingInterface>()->setControlledAvatar(avatarData);
|
||||
}
|
||||
|
||||
void Agent::sendAvatarIdentityPacket() {
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
#include <RenderDeferredTask.h>
|
||||
#include <ResourceCache.h>
|
||||
#include <SceneScriptingInterface.h>
|
||||
#include <RecordingScriptingInterface.h>
|
||||
#include <ScriptCache.h>
|
||||
#include <SoundCache.h>
|
||||
#include <TextureCache.h>
|
||||
|
@ -126,7 +127,6 @@
|
|||
#include "scripting/LocationScriptingInterface.h"
|
||||
#include "scripting/MenuScriptingInterface.h"
|
||||
#include "scripting/SettingsScriptingInterface.h"
|
||||
#include "scripting/RecordingScriptingInterface.h"
|
||||
#include "scripting/WebWindowClass.h"
|
||||
#include "scripting/WindowScriptingInterface.h"
|
||||
#include "scripting/ControllerScriptingInterface.h"
|
||||
|
@ -733,6 +733,10 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) :
|
|||
connect(applicationUpdater.data(), &AutoUpdater::newVersionIsAvailable, dialogsManager.data(), &DialogsManager::showUpdateDialog);
|
||||
applicationUpdater->checkForUpdate();
|
||||
|
||||
// Assign MyAvatar to th eRecording Singleton
|
||||
DependencyManager::get<RecordingScriptingInterface>()->setControlledAvatar(getMyAvatar());
|
||||
|
||||
|
||||
// Now that menu is initalized we can sync myAvatar with it's state.
|
||||
getMyAvatar()->updateMotionBehaviorFromMenu();
|
||||
|
||||
|
@ -3979,7 +3983,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri
|
|||
RayToOverlayIntersectionResultFromScriptValue);
|
||||
|
||||
scriptEngine->registerGlobalObject("Desktop", DependencyManager::get<DesktopScriptingInterface>().data());
|
||||
scriptEngine->registerGlobalObject("Recording", DependencyManager::get<RecordingScriptingInterface>().data());
|
||||
|
||||
scriptEngine->registerGlobalObject("Window", DependencyManager::get<WindowScriptingInterface>().data());
|
||||
scriptEngine->registerGetterSetter("location", LocationScriptingInterface::locationGetter,
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
#include <recording/Clip.h>
|
||||
#include <recording/Frame.h>
|
||||
#include <NumericalConstants.h>
|
||||
#include <AudioClient.h>
|
||||
//#include <AudioClient.h>
|
||||
#include <AudioConstants.h>
|
||||
|
||||
#include <Transform.h>
|
||||
//#include "avatar/AvatarManager.h"
|
||||
//#include "Application.h"
|
||||
#include "InterfaceLogging.h"
|
||||
#include "ScriptEngineLogging.h"
|
||||
|
||||
typedef int16_t AudioSample;
|
||||
|
||||
|
@ -45,8 +45,12 @@ RecordingScriptingInterface::RecordingScriptingInterface() {
|
|||
_player = DependencyManager::get<Deck>();
|
||||
_recorder = DependencyManager::get<Recorder>();
|
||||
|
||||
auto audioClient = DependencyManager::get<AudioClient>();
|
||||
connect(audioClient.data(), &AudioClient::inputReceived, this, &RecordingScriptingInterface::processAudioInput);
|
||||
// auto audioClient = DependencyManager::get<AudioClient>();
|
||||
// connect(audioClient.data(), &AudioClient::inputReceived, this, &RecordingScriptingInterface::processAudioInput);
|
||||
}
|
||||
|
||||
void RecordingScriptingInterface::setControlledAvatar(AvatarData* avatar) {
|
||||
_controlledAvatar = avatar;
|
||||
}
|
||||
|
||||
bool RecordingScriptingInterface::isPlaying() {
|
||||
|
@ -86,7 +90,8 @@ void RecordingScriptingInterface::startPlaying() {
|
|||
QMetaObject::invokeMethod(this, "startPlaying", Qt::BlockingQueuedConnection);
|
||||
return;
|
||||
}
|
||||
auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
auto myAvatar = _controlledAvatar;
|
||||
// Playback from the current position
|
||||
if (_playFromCurrentLocation) {
|
||||
_dummyAvatar.setRecordingBasis(std::make_shared<Transform>(myAvatar->getTransform()));
|
||||
|
@ -154,7 +159,7 @@ float RecordingScriptingInterface::recorderElapsed() {
|
|||
|
||||
void RecordingScriptingInterface::startRecording() {
|
||||
if (_recorder->isRecording()) {
|
||||
qCWarning(interfaceapp) << "Recorder is already running";
|
||||
qCWarning(scriptengine) << "Recorder is already running";
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -165,7 +170,9 @@ void RecordingScriptingInterface::startRecording() {
|
|||
|
||||
_recordingEpoch = Frame::epochForFrameTime(0);
|
||||
|
||||
auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
auto myAvatar = _controlledAvatar;
|
||||
myAvatar->setRecordingBasis();
|
||||
_recorder->start();
|
||||
}
|
||||
|
@ -182,7 +189,9 @@ void RecordingScriptingInterface::stopRecording() {
|
|||
}
|
||||
_lastClip->seek(0);
|
||||
|
||||
auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
auto myAvatar = _controlledAvatar;
|
||||
myAvatar->clearRecordingBasis();
|
||||
}
|
||||
|
||||
|
@ -208,7 +217,7 @@ void RecordingScriptingInterface::loadLastRecording() {
|
|||
}
|
||||
|
||||
if (!_lastClip) {
|
||||
qCDebug(interfaceapp) << "There is no recording to load";
|
||||
qCDebug(scriptengine) << "There is no recording to load";
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -221,7 +230,8 @@ void RecordingScriptingInterface::processAvatarFrame(const Frame::ConstPointer&
|
|||
|
||||
AvatarData::fromFrame(frame->data, _dummyAvatar);
|
||||
|
||||
auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
//auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
auto myAvatar = _controlledAvatar;
|
||||
if (_useHeadModel && _dummyAvatar.getFaceModelURL().isValid() &&
|
||||
(_dummyAvatar.getFaceModelURL() != myAvatar->getFaceModelURL())) {
|
||||
// FIXME
|
||||
|
@ -255,6 +265,6 @@ void RecordingScriptingInterface::processAudioInput(const QByteArray& audio) {
|
|||
}
|
||||
|
||||
void RecordingScriptingInterface::processAudioFrame(const recording::FrameConstPointer& frame) {
|
||||
auto audioClient = DependencyManager::get<AudioClient>();
|
||||
audioClient->handleRecordedAudioInput(frame->data);
|
||||
// auto audioClient = DependencyManager::get<AudioClient>();
|
||||
// audioClient->handleRecordedAudioInput(frame->data);
|
||||
}
|
|
@ -24,6 +24,8 @@ class RecordingScriptingInterface : public QObject, public Dependency {
|
|||
public:
|
||||
RecordingScriptingInterface();
|
||||
|
||||
void setControlledAvatar(AvatarData* avatar);
|
||||
|
||||
public slots:
|
||||
bool isPlaying();
|
||||
bool isPaused();
|
||||
|
@ -74,6 +76,7 @@ private:
|
|||
Flag _useSkeletonModel { false };
|
||||
recording::ClipPointer _lastClip;
|
||||
AvatarData _dummyAvatar;
|
||||
AvatarData* _controlledAvatar;
|
||||
};
|
||||
|
||||
#endif // hifi_RecordingScriptingInterface_h
|
|
@ -46,6 +46,7 @@
|
|||
#include "WebSocketClass.h"
|
||||
|
||||
#include "SceneScriptingInterface.h"
|
||||
#include "RecordingScriptingInterface.h"
|
||||
|
||||
#include "MIDIEvent.h"
|
||||
|
||||
|
@ -375,6 +376,9 @@ void ScriptEngine::init() {
|
|||
auto scriptingInterface = DependencyManager::get<controller::ScriptingInterface>();
|
||||
registerGlobalObject("Controller", scriptingInterface.data());
|
||||
UserInputMapper::registerControllerTypes(this);
|
||||
|
||||
auto recordingInterface = DependencyManager::get<RecordingScriptingInterface>();
|
||||
registerGlobalObject("Recording", recordingInterface.data());
|
||||
}
|
||||
|
||||
void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {
|
||||
|
|
Loading…
Reference in a new issue