@ -17,11 +17,7 @@ MICROPROFILE_DEFINE(Audio_RenderSystemManager, "Audio", "Render System Manager",
namespace AudioCore : : AudioRenderer {
SystemManager : : SystemManager ( Core : : System & core_ )
: core { core_ } , adsp { core . AudioCore ( ) . GetADSP ( ) } , mailbox { adsp . GetRenderMailbox ( ) } ,
thread_event { Core : : Timing : : CreateEvent (
" AudioRendererSystemManager " , [ this ] ( std : : uintptr_t , s64 time , std : : chrono : : nanoseconds ) {
return ThreadFunc2 ( time ) ;
} ) } { }
: core { core_ } , adsp { core . AudioCore ( ) . GetADSP ( ) } , mailbox { adsp . GetRenderMailbox ( ) } { }
SystemManager : : ~ SystemManager ( ) {
Stop ( ) ;
@ -32,8 +28,6 @@ bool SystemManager::InitializeUnsafe() {
if ( adsp . Start ( ) ) {
active = true ;
thread = std : : jthread ( [ this ] ( std : : stop_token stop_token ) { ThreadFunc ( ) ; } ) ;
core . CoreTiming ( ) . ScheduleLoopingEvent ( std : : chrono : : nanoseconds ( 0 ) , RENDER_TIME ,
thread_event ) ;
}
}
@ -44,7 +38,6 @@ void SystemManager::Stop() {
if ( ! active ) {
return ;
}
core . CoreTiming ( ) . UnscheduleEvent ( thread_event , { } ) ;
active = false ;
update . store ( true ) ;
update . notify_all ( ) ;
@ -110,16 +103,7 @@ void SystemManager::ThreadFunc() {
adsp . Signal ( ) ;
adsp . Wait ( ) ;
update . wait ( false ) ;
update . store ( false ) ;
}
}
std : : optional < std : : chrono : : nanoseconds > SystemManager : : ThreadFunc2 ( s64 time ) {
update . store ( true ) ;
update . notify_all ( ) ;
return std : : nullopt ;
}
} // namespace AudioCore::AudioRenderer