History

Merging with todays upstream and checking

samcake committed 10 years ago

Commit 368f19b2 parents d2f3b48 733d93010 files · +171 −142Browse files

Showing the changes to libraries/script-engine/src/RecordingScriptingInterface.cpp (1 of 10 files). Show all

Unified · Split

libraries/script-engine/src/RecordingScriptingInterface.cpp+43−39
@@ -15,11 +15,11 @@ · 14 unmodified lines
1515 #include <recording/Clip.h>
1616 #include <recording/Frame.h>
1717 #include <NumericalConstants.h>
18+// FiXME
1819 //#include <AudioClient.h>
1920 #include <AudioConstants.h>
2021 #include <Transform.h>
21−//#include "avatar/AvatarManager.h"
22−//#include "Application.h"
22+
2323 #include "ScriptEngineLogging.h"
2424
2525 typedef int16_t AudioSample;
@@ -45,6 +45,7 @@ RecordingScriptingInterface::RecordingScriptingInterface() { · 19 unmodified lines
4545 _player = DependencyManager::get<Deck>();
4646 _recorder = DependencyManager::get<Recorder>();
4747
48+ // FIXME : Disabling Sound
4849 // auto audioClient = DependencyManager::get<AudioClient>();
4950 // connect(audioClient.data(), &AudioClient::inputReceived, this, &RecordingScriptingInterface::processAudioInput);
5051 }
@@ -53,19 +54,19 @@ void RecordingScriptingInterface::setControlledAvatar(AvatarData* avatar) { · 2 unmodified lines
5354 _controlledAvatar = avatar;
5455 }
5556
56−bool RecordingScriptingInterface::isPlaying() {
57+bool RecordingScriptingInterface::isPlaying() const {
5758 return _player->isPlaying();
5859 }
5960
60−bool RecordingScriptingInterface::isPaused() {
61+bool RecordingScriptingInterface::isPaused() const {
6162 return _player->isPaused();
6263 }
6364
64−float RecordingScriptingInterface::playerElapsed() {
65+float RecordingScriptingInterface::playerElapsed() const {
6566 return _player->position();
6667 }
6768
68−float RecordingScriptingInterface::playerLength() {
69+float RecordingScriptingInterface::playerLength() const {
6970 return _player->length();
7071 }
7172
@@ -90,11 +91,10 @@ void RecordingScriptingInterface::startPlaying() { · 18 unmodified lines
9091 QMetaObject::invokeMethod(this, "startPlaying", Qt::BlockingQueuedConnection);
9192 return;
9293 }
93− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
94− auto myAvatar = _controlledAvatar;
94+
9595 // Playback from the current position
96− if (_playFromCurrentLocation) {
97− _dummyAvatar.setRecordingBasis(std::make_shared<Transform>(myAvatar->getTransform()));
96+ if (_playFromCurrentLocation && _controlledAvatar) {
97+ _dummyAvatar.setRecordingBasis(std::make_shared<Transform>(_controlledAvatar->getTransform()));
9898 } else {
9999 _dummyAvatar.clearRecordingBasis();
100100 }
@@ -110,6 +110,10 @@ void RecordingScriptingInterface::setPlayerAudioOffset(float audioOffset) { · 9 unmodified lines
110110 }
111111
112112 void RecordingScriptingInterface::setPlayerTime(float time) {
113+ if (QThread::currentThread() != thread()) {
114+ QMetaObject::invokeMethod(this, "setPlayerTime", Qt::BlockingQueuedConnection, Q_ARG(float, time));
115+ return;
116+ }
113117 _player->seek(time);
114118 }
115119
@@ -137,23 +141,27 @@ void RecordingScriptingInterface::setPlayerUseSkeletonModel(bool useSkeletonMode · 21 unmodified lines
137141 _useSkeletonModel = useSkeletonModel;
138142 }
139143
140−void RecordingScriptingInterface::play() {
141− _player->play();
142−}
143−
144144 void RecordingScriptingInterface::pausePlayer() {
145+ if (QThread::currentThread() != thread()) {
146+ QMetaObject::invokeMethod(this, "pausePlayer", Qt::BlockingQueuedConnection);
147+ return;
148+ }
145149 _player->pause();
146150 }
147151
148152 void RecordingScriptingInterface::stopPlaying() {
153+ if (QThread::currentThread() != thread()) {
154+ QMetaObject::invokeMethod(this, "stopPlaying", Qt::BlockingQueuedConnection);
155+ return;
156+ }
149157 _player->stop();
150158 }
151159
152−bool RecordingScriptingInterface::isRecording() {
160+bool RecordingScriptingInterface::isRecording() const {
153161 return _recorder->isRecording();
154162 }
155163
156−float RecordingScriptingInterface::recorderElapsed() {
164+float RecordingScriptingInterface::recorderElapsed() const {
157165 return _recorder->position();
158166 }
159167
@@ -170,29 +178,21 @@ void RecordingScriptingInterface::startRecording() { · 10 unmodified lines
170178
171179 _recordingEpoch = Frame::epochForFrameTime(0);
172180
173− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
174− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
175− auto myAvatar = _controlledAvatar;
176− myAvatar->setRecordingBasis();
181+ if (_controlledAvatar) {
182+ _controlledAvatar->setRecordingBasis();
183+ }
184+
177185 _recorder->start();
178186 }
179187
180188 void RecordingScriptingInterface::stopRecording() {
181189 _recorder->stop();
182−
183190 _lastClip = _recorder->getClip();
184− // post-process the audio into discreet chunks based on times of received samples
185− _lastClip->seek(0);
186− Frame::ConstPointer frame;
187− while (frame = _lastClip->nextFrame()) {
188− qDebug() << "Frame time " << frame->timeOffset << " size " << frame->data.size();
189− }
190191 _lastClip->seek(0);
191192
192− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
193− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
194− auto myAvatar = _controlledAvatar;
195− myAvatar->clearRecordingBasis();
193+ if (_controlledAvatar) {
194+ _controlledAvatar->clearRecordingBasis();
195+ }
196196 }
197197
198198 void RecordingScriptingInterface::saveRecording(const QString& filename) {
@@ -228,28 +228,32 @@ void RecordingScriptingInterface::loadLastRecording() { · 29 unmodified lines
228228 void RecordingScriptingInterface::processAvatarFrame(const Frame::ConstPointer& frame) {
229229 Q_ASSERT(QThread::currentThread() == thread());
230230
231+ if (!_controlledAvatar) {
232+ return;
233+ }
234+
231235 AvatarData::fromFrame(frame->data, _dummyAvatar);
232236
233− //auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
234− auto myAvatar = _controlledAvatar;
237+
238+
235239 if (_useHeadModel && _dummyAvatar.getFaceModelURL().isValid() &&
236− (_dummyAvatar.getFaceModelURL() != myAvatar->getFaceModelURL())) {
240+ (_dummyAvatar.getFaceModelURL() != _controlledAvatar->getFaceModelURL())) {
237241 // FIXME
238242 //myAvatar->setFaceModelURL(_dummyAvatar.getFaceModelURL());
239243 }
240244
241245 if (_useSkeletonModel && _dummyAvatar.getSkeletonModelURL().isValid() &&
242− (_dummyAvatar.getSkeletonModelURL() != myAvatar->getSkeletonModelURL())) {
246+ (_dummyAvatar.getSkeletonModelURL() != _controlledAvatar->getSkeletonModelURL())) {
243247 // FIXME
244248 //myAvatar->useFullAvatarURL()
245249 }
246250
247− if (_useDisplayName && _dummyAvatar.getDisplayName() != myAvatar->getDisplayName()) {
248− myAvatar->setDisplayName(_dummyAvatar.getDisplayName());
251+ if (_useDisplayName && _dummyAvatar.getDisplayName() != _controlledAvatar->getDisplayName()) {
252+ _controlledAvatar->setDisplayName(_dummyAvatar.getDisplayName());
249253 }
250254
251− myAvatar->setPosition(_dummyAvatar.getPosition());
252− myAvatar->setOrientation(_dummyAvatar.getOrientation());
255+ _controlledAvatar->setPosition(_dummyAvatar.getPosition());
256+ _controlledAvatar->setOrientation(_dummyAvatar.getOrientation());
253257
254258 // FIXME attachments
255259 // FIXME joints