Skip to content

realtime Reset #8

@sophiapoirier

Description

@sophiapoirier

I can't figure out how realtime-safe audio Reset is supposed to function in the 1.4.0 SDK release.

AUBase::BaseReset is a non-virtual no-op. The documentary comment says:
if a derived class wishes to implement a safe Reset, it can call BaseReset()
AUBase::Reset does as much, which will run the no-op. An override of AUBase::Reset could also call BaseReset, but it's still a no-op that cannot be itself overridden because it is not virtual, so what is the envisioned usage of this?

Similarly there is ResetRT in AUEffectBase which presents a means for by template invoking a non-virtual method also named ResetRT in AUKernelBase-derived classes, but still ResetRT is invoked nowhere in the existing Reset call paths, so I don't understand the purpose, why it is not a virtual method in AUKernelBase and called from AUEffectBase or anything like that?

And generally I am confused because Reset does need to be realtime safe and has strong reasons for being sometimes called from the realtime audio thread and definitely is by existing AU hosts, so I'm wondering why AUBase::Reset wasn't simply attributed as such, and then how any of these alternatives are actually expected to be used functionally by a client of the AU SDK?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions