Howard Stearns 2015-07-17 11:28:25 -07:00
parent 62fca613a6
commit 2d277a2abd
2 changed files with 6 additions and 1 deletions

View file

@ -93,6 +93,7 @@ void AudioInjector::injectAudio() {
} }
void AudioInjector::restart() { void AudioInjector::restart() {
_isPlaying = true;
connect(this, &AudioInjector::finished, this, &AudioInjector::restartPortionAfterFinished); connect(this, &AudioInjector::finished, this, &AudioInjector::restartPortionAfterFinished);
if (!_isStarted || _isFinished) { if (!_isStarted || _isFinished) {
emit finished(); emit finished();
@ -270,6 +271,7 @@ void AudioInjector::injectToMixer() {
} }
setIsFinished(true); setIsFinished(true);
_isPlaying = !_isFinished; // Which can be false if a restart was requested
} }
void AudioInjector::stop() { void AudioInjector::stop() {
@ -277,6 +279,7 @@ void AudioInjector::stop() {
if (_options.localOnly) { if (_options.localOnly) {
// we're only a local injector, so we can say we are finished right away too // we're only a local injector, so we can say we are finished right away too
_isPlaying = false;
setIsFinished(true); setIsFinished(true);
} }
} }
@ -334,6 +337,7 @@ AudioInjector* AudioInjector::playSound(const QByteArray& buffer, const AudioInj
injectorThread->setObjectName("Audio Injector Thread"); injectorThread->setObjectName("Audio Injector Thread");
AudioInjector* injector = new AudioInjector(buffer, options); AudioInjector* injector = new AudioInjector(buffer, options);
injector->_isPlaying = true;
injector->setLocalAudioInterface(localInterface); injector->setLocalAudioInterface(localInterface);
injector->moveToThread(injectorThread); injector->moveToThread(injectorThread);

View file

@ -62,7 +62,7 @@ public slots:
void setCurrentSendPosition(int currentSendPosition) { _currentSendPosition = currentSendPosition; } void setCurrentSendPosition(int currentSendPosition) { _currentSendPosition = currentSendPosition; }
float getLoudness() const { return _loudness; } float getLoudness() const { return _loudness; }
bool isPlaying() const { return !_isFinished; } bool isPlaying() const { return _isPlaying; }
void restartPortionAfterFinished(); void restartPortionAfterFinished();
signals: signals:
@ -78,6 +78,7 @@ private:
AudioInjectorOptions _options; AudioInjectorOptions _options;
bool _shouldStop = false; bool _shouldStop = false;
float _loudness = 0.0f; float _loudness = 0.0f;
bool _isPlaying = false;
bool _isStarted = false; bool _isStarted = false;
bool _isFinished = false; bool _isFinished = false;
bool _shouldDeleteAfterFinish = false; bool _shouldDeleteAfterFinish = false;