mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 02:57:10 +02:00
only ask for an audio/avatar mixer every 5 iterations
This commit is contained in:
parent
d498d97da7
commit
8c5937dc78
1 changed files with 28 additions and 7 deletions
|
@ -101,16 +101,37 @@ int main(int argc, char* const argv[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// use a map to keep track of iterations of silence for assignment creation requests
|
||||||
|
const int ASSIGNMENT_SILENCE_MAX_ITERATIONS = 5;
|
||||||
|
std::map<Assignment*, int> assignmentSilenceCount;
|
||||||
|
|
||||||
|
// as a domain-server we will always want an audio mixer and avatar mixer
|
||||||
|
// setup the create assignments for those
|
||||||
|
Assignment audioAssignment(Assignment::Create, Assignment::AudioMixer, assignmentPool);
|
||||||
|
Assignment avatarAssignment(Assignment::Create, Assignment::AvatarMixer, assignmentPool);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
||||||
if (!nodeList->soloNodeOfType(NODE_TYPE_AUDIO_MIXER)) {
|
if (!nodeList->soloNodeOfType(NODE_TYPE_AUDIO_MIXER)) {
|
||||||
// create an assignment to send, ask for an audio mixer, pass the assignment pool if it exists
|
if (assignmentSilenceCount[&audioAssignment] == ASSIGNMENT_SILENCE_MAX_ITERATIONS) {
|
||||||
Assignment mixerAssignment(Assignment::Create, Assignment::AudioMixer, assignmentPool);
|
nodeList->sendAssignment(audioAssignment);
|
||||||
nodeList->sendAssignment(mixerAssignment);
|
assignmentSilenceCount[&audioAssignment] = 0;
|
||||||
} else if (!nodeList->soloNodeOfType(NODE_TYPE_AVATAR_MIXER)) {
|
} else {
|
||||||
// create an assignment to send, ask for an avatar mixer, pass the assignment pool if it exists
|
assignmentSilenceCount[&audioAssignment]++;
|
||||||
Assignment avatarAssignment(Assignment::Create, Assignment::AvatarMixer, assignmentPool);
|
}
|
||||||
|
} else {
|
||||||
|
assignmentSilenceCount[&audioAssignment] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nodeList->soloNodeOfType(NODE_TYPE_AVATAR_MIXER)) {
|
||||||
|
if (assignmentSilenceCount[&avatarAssignment] == ASSIGNMENT_SILENCE_MAX_ITERATIONS) {
|
||||||
nodeList->sendAssignment(avatarAssignment);
|
nodeList->sendAssignment(avatarAssignment);
|
||||||
|
assignmentSilenceCount[&avatarAssignment] = 0;
|
||||||
|
} else {
|
||||||
|
assignmentSilenceCount[&avatarAssignment]++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
assignmentSilenceCount[&avatarAssignment] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue