Closed atsushieno closed 1 year ago
This needs to be worked on in the context of https://github.com/atsushieno/aap-core/issues/171 which means it will be post-0.7.8 work...
At ^ there is a migration implementation in StandardExtensions
helper facade for asynchronous extension function, wrapped in synchronous API.
To make everything fully async, we will have to revamp the entire AAPXS stack (in both API and implementation) and that's going to be a further milestone.
It's done in aapxs-v080
branch. Once we merge aapxs-v080
branch, we can close this issue.
It is merged into main.
It is possible that an AAP plugin receives non-RT-safe operations via AAPXS SysEx8.
It should not be expected that such operations are performed in realtime manner, but it is valid if such requests were intended to be asynchronous operations.
extension()
operation via Binder could prevent realtimeprocess()
calls on its RT thread (extension()
on non-RT thread could block RT audio processing thread), so at realtime ACTIVE state everything should be on aprocess()
call.Some extension functions need a response to the request. Since it may not be completed within one realtime request-reply
process()
call, such non-RT request should be performed asynchronously at theaap::LocalPluginInstance
, which sends the reply back to the client only when it is ready. Then the clientaap::RemotePluginInstance
also needs to waited for the result until it is returned by the service.We need such a correlator implementation down to somewhere like cmidi2 layer.