mirror of
https://github.com/overte-org/overte.git
synced 2025-04-15 05:07:12 +02:00
expose audio injector streams
This commit is contained in:
parent
96e9399b89
commit
efb71c18a1
1 changed files with 26 additions and 1 deletions
|
@ -183,6 +183,31 @@ void AudioStatsInterface::updateLocalBuffers(const MovingMinMaxAvg<float>& input
|
|||
}
|
||||
|
||||
void AudioStatsInterface::updateInjectorStreams(const QHash<QUuid, AudioStreamStats>& stats) {
|
||||
// TODO
|
||||
// Get existing injectors
|
||||
auto injectorIds = _injectors->dynamicPropertyNames();
|
||||
|
||||
// Go over reported injectors
|
||||
QHash<QUuid, AudioStreamStats>::const_iterator injector = stats.constBegin();
|
||||
while (injector != stats.constEnd()) {
|
||||
const auto id = injector.key().toByteArray();
|
||||
// Mark existing injector (those left will be removed)
|
||||
injectorIds.removeOne(id);
|
||||
auto injectorProperty = _injectors->property(id);
|
||||
// Add new injector
|
||||
if (!injectorProperty.isValid()) {
|
||||
injectorProperty = QVariant::fromValue(new AudioStreamStatsInterface(this));
|
||||
_injectors->setProperty(id, injectorProperty);
|
||||
}
|
||||
// Update property with reported injector
|
||||
injectorProperty.value<AudioStreamStatsInterface*>()->updateStream(injector.value());
|
||||
++injector;
|
||||
}
|
||||
|
||||
// Remove unreported injectors
|
||||
for (auto& id : injectorIds) {
|
||||
_injectors->property(id).value<AudioStreamStatsInterface*>()->deleteLater();
|
||||
_injectors->setProperty(id, QVariant());
|
||||
}
|
||||
|
||||
emit injectorStreamsChanged();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue