Add helpers to count playing voices in polyphony groups
This commit is contained in:
parent
5ef6141c4b
commit
2cdf4f165f
4 changed files with 22 additions and 0 deletions
|
|
@ -16,3 +16,10 @@ void sfz::PolyphonyGroup::removeVoice(const Voice* voice) noexcept
|
|||
{
|
||||
swapAndPopFirst(voices, [voice](const Voice* v) { return v == voice; });
|
||||
}
|
||||
|
||||
unsigned sfz::PolyphonyGroup::numPlayingVoices() const noexcept
|
||||
{
|
||||
return absl::c_count_if(voices, [](const Voice* v) {
|
||||
return !v->releasedOrFree();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,10 @@ public:
|
|||
* @return unsigned
|
||||
*/
|
||||
unsigned getPolyphonyLimit() const noexcept { return polyphonyLimit; }
|
||||
/**
|
||||
* @brief Returns the number of playing (unreleased) voices
|
||||
*/
|
||||
unsigned numPlayingVoices() const noexcept;
|
||||
/**
|
||||
* @brief Get the active voices
|
||||
*
|
||||
|
|
|
|||
|
|
@ -46,3 +46,10 @@ void sfz::RegionSet::removeVoiceFromHierarchy(const Region* region, const Voice*
|
|||
parent = parent->getParent();
|
||||
}
|
||||
}
|
||||
|
||||
unsigned sfz::RegionSet::numPlayingVoices() const noexcept
|
||||
{
|
||||
return absl::c_count_if(voices, [](const Voice* v) {
|
||||
return !v->releasedOrFree();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,6 +79,10 @@ public:
|
|||
* @param parent
|
||||
*/
|
||||
void setParent(RegionSet* parent) noexcept { this->parent = parent; }
|
||||
/**
|
||||
* @brief Returns the number of playing (unreleased) voices
|
||||
*/
|
||||
unsigned numPlayingVoices() const noexcept;
|
||||
/**
|
||||
* @brief Get the active voices
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue