@@ -1,40 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2013 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "xenia/apu/xaudio2/xaudio2_apu.h"
|
||||
|
||||
#include "xenia/apu/xaudio2/xaudio2_audio_system.h"
|
||||
|
||||
using namespace xe;
|
||||
using namespace xe::apu;
|
||||
using namespace xe::apu::xaudio2;
|
||||
|
||||
namespace {
|
||||
void InitializeIfNeeded();
|
||||
void CleanupOnShutdown();
|
||||
|
||||
void InitializeIfNeeded() {
|
||||
static bool has_initialized = false;
|
||||
if (has_initialized) {
|
||||
return;
|
||||
}
|
||||
has_initialized = true;
|
||||
|
||||
//
|
||||
|
||||
atexit(CleanupOnShutdown);
|
||||
}
|
||||
|
||||
void CleanupOnShutdown() {}
|
||||
}
|
||||
|
||||
std::unique_ptr<AudioSystem> xe::apu::xaudio2::Create(Emulator* emulator) {
|
||||
InitializeIfNeeded();
|
||||
return std::make_unique<XAudio2AudioSystem>(emulator);
|
||||
}
|
||||
@@ -7,22 +7,4 @@
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_APU_XAUDIO2_XAUDIO2_APU_H_
|
||||
#define XENIA_APU_XAUDIO2_XAUDIO2_APU_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "xenia/apu/audio_system.h"
|
||||
#include "xenia/emulator.h"
|
||||
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
namespace xaudio2 {
|
||||
|
||||
std::unique_ptr<AudioSystem> Create(Emulator* emulator);
|
||||
|
||||
} // namespace xaudio2
|
||||
} // namespace apu
|
||||
} // namespace xe
|
||||
|
||||
#endif // XENIA_APU_XAUDIO2_XAUDIO2_APU_H_
|
||||
#include "xenia/apu/xaudio2/xaudio2_apu_flags.h"
|
||||
@@ -7,19 +7,9 @@
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef XENIA_APU_XAUDIO2_XAUDIO2_APU_PRIVATE_H_
|
||||
#define XENIA_APU_XAUDIO2_XAUDIO2_APU_PRIVATE_H_
|
||||
#ifndef XENIA_APU_XAUDIO2_XAUDIO2_APU_FLAGS_H_
|
||||
#define XENIA_APU_XAUDIO2_XAUDIO2_APU_FLAGS_H_
|
||||
|
||||
#include "xenia/apu/xaudio2/xaudio2_apu.h"
|
||||
#include <gflags/gflags.h>
|
||||
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
namespace xaudio2 {
|
||||
|
||||
//
|
||||
|
||||
} // namespace xaudio2
|
||||
} // namespace apu
|
||||
} // namespace xe
|
||||
|
||||
#endif // XENIA_APU_XAUDIO2_XAUDIO2_APU_PRIVATE_H_
|
||||
#endif // XENIA_APU_XAUDIO2_XAUDIO2_APU_FLAGS_H_
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "xenia/apu/xaudio2/xaudio2_audio_driver.h"
|
||||
|
||||
#include "xenia/apu/apu-private.h"
|
||||
#include "xenia/apu/apu_flags.h"
|
||||
#include "xenia/base/clock.h"
|
||||
#include "xenia/base/logging.h"
|
||||
#include "xenia/emulator.h"
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
#include <xaudio2.h>
|
||||
|
||||
#include "xenia/apu/audio_driver.h"
|
||||
#include "xenia/apu/xaudio2/xaudio2_apu-private.h"
|
||||
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
@@ -22,11 +21,11 @@ namespace xaudio2 {
|
||||
class XAudio2AudioDriver : public AudioDriver {
|
||||
public:
|
||||
XAudio2AudioDriver(Emulator* emulator, HANDLE semaphore);
|
||||
virtual ~XAudio2AudioDriver();
|
||||
~XAudio2AudioDriver() override;
|
||||
|
||||
virtual void Initialize();
|
||||
virtual void SubmitFrame(uint32_t frame_ptr);
|
||||
virtual void Shutdown();
|
||||
void Initialize();
|
||||
void SubmitFrame(uint32_t frame_ptr) override;
|
||||
void Shutdown();
|
||||
|
||||
private:
|
||||
IXAudio2* audio_;
|
||||
|
||||
@@ -8,15 +8,20 @@
|
||||
*/
|
||||
|
||||
#include "xenia/apu/xaudio2/xaudio2_audio_system.h"
|
||||
|
||||
#include <xaudio2.h>
|
||||
|
||||
#include "xenia/apu/apu_flags.h"
|
||||
#include "xenia/apu/xaudio2/xaudio2_audio_driver.h"
|
||||
|
||||
#include "xenia/apu/apu-private.h"
|
||||
|
||||
#include "xenia/emulator.h"
|
||||
|
||||
using namespace xe;
|
||||
using namespace xe::apu;
|
||||
using namespace xe::apu::xaudio2;
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
namespace xaudio2 {
|
||||
|
||||
std::unique_ptr<AudioSystem> XAudio2AudioSystem::Create(Emulator* emulator) {
|
||||
return std::make_unique<XAudio2AudioSystem>(emulator);
|
||||
}
|
||||
|
||||
XAudio2AudioSystem::XAudio2AudioSystem(Emulator* emulator)
|
||||
: AudioSystem(emulator) {}
|
||||
@@ -41,3 +46,7 @@ void XAudio2AudioSystem::DestroyDriver(AudioDriver* driver) {
|
||||
assert_not_null(xdriver);
|
||||
delete xdriver;
|
||||
}
|
||||
|
||||
} // namespace xaudio2
|
||||
} // namespace apu
|
||||
} // namespace xe
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
#ifndef XENIA_APU_XAUDIO2_XAUDIO2_AUDIO_SYSTEM_H_
|
||||
#define XENIA_APU_XAUDIO2_XAUDIO2_AUDIO_SYSTEM_H_
|
||||
|
||||
#include <xaudio2.h>
|
||||
|
||||
#include "xenia/apu/audio_system.h"
|
||||
#include "xenia/apu/xaudio2/xaudio2_apu-private.h"
|
||||
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
@@ -22,11 +19,13 @@ namespace xaudio2 {
|
||||
class XAudio2AudioSystem : public AudioSystem {
|
||||
public:
|
||||
XAudio2AudioSystem(Emulator* emulator);
|
||||
virtual ~XAudio2AudioSystem();
|
||||
~XAudio2AudioSystem() override;
|
||||
|
||||
virtual X_RESULT CreateDriver(size_t index, HANDLE semaphore,
|
||||
AudioDriver** out_driver);
|
||||
virtual void DestroyDriver(AudioDriver* driver);
|
||||
static std::unique_ptr<AudioSystem> Create(Emulator* emulator);
|
||||
|
||||
X_RESULT CreateDriver(size_t index, HANDLE semaphore,
|
||||
AudioDriver** out_driver) override;
|
||||
void DestroyDriver(AudioDriver* driver) override;
|
||||
|
||||
protected:
|
||||
virtual void Initialize();
|
||||
|
||||
Reference in New Issue
Block a user