Explorar o código

core: Add AudioCore to global state.

bunnei %!s(int64=8) %!d(string=hai) anos
pai
achega
2a742229ee
Modificáronse 2 ficheiros con 9 adicións e 0 borrados
  1. 2 0
      src/core/core.cpp
  2. 7 0
      src/core/core.h

+ 2 - 0
src/core/core.cpp

@@ -177,6 +177,7 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
     }
 
     gpu_core = std::make_unique<Tegra::GPU>();
+    audio_core = std::make_unique<AudioCore::AudioOut>();
     telemetry_session = std::make_unique<Core::TelemetrySession>();
     service_manager = std::make_shared<Service::SM::ServiceManager>();
 
@@ -228,6 +229,7 @@ void System::Shutdown() {
     service_manager.reset();
     telemetry_session.reset();
     gpu_core.reset();
+    audio_core.reset();
 
     // Close all CPU/threading state
     cpu_barrier->NotifyEnd();

+ 7 - 0
src/core/core.h

@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 #include <thread>
+#include "audio_core/audio_out.h"
 #include "common/common_types.h"
 #include "core/arm/exclusive_monitor.h"
 #include "core/core_cpu.h"
@@ -131,6 +132,11 @@ public:
         return *gpu_core;
     }
 
+    /// Gets the AudioCore interface
+    AudioCore::AudioOut& AudioCore() {
+        return *audio_core;
+    }
+
     /// Gets the scheduler for the CPU core that is currently running
     Kernel::Scheduler& CurrentScheduler() {
         return *CurrentCpuCore().Scheduler();
@@ -195,6 +201,7 @@ private:
     /// AppLoader used to load the current executing application
     std::unique_ptr<Loader::AppLoader> app_loader;
     std::unique_ptr<Tegra::GPU> gpu_core;
+    std::unique_ptr<AudioCore::AudioOut> audio_core;
     std::shared_ptr<Tegra::DebugContext> debug_context;
     Kernel::SharedPtr<Kernel::Process> current_process;
     std::shared_ptr<ExclusiveMonitor> cpu_exclusive_monitor;