Moving the REcordingScriptingInterface into the script-engine and wiiring up in the assignment-client

This commit is contained in:
Sam Gateau 2015-11-17 09:32:22 -08:00
parent 8553033d59
commit 5b92929833
5 changed files with 42 additions and 16 deletions

View file

@ -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() {

View file

@ -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,

View file

@ -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);
}

View file

@ -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

View file

@ -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) {