From d52d6252a93dd6fa2becf5b1890963e57614a127 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sat, 11 Jan 2020 13:53:15 +1000 Subject: [PATCH] Qt: Remove QAudioOutput-based audio stream --- src/duckstation-qt/duckstation-qt.vcxproj | 18 ++-- .../duckstation-qt.vcxproj.filters | 2 - src/duckstation-qt/qtaudiostream.cpp | 84 ------------------- src/duckstation-qt/qtaudiostream.h | 29 ------- src/duckstation-qt/qthostinterface.cpp | 2 +- 5 files changed, 9 insertions(+), 126 deletions(-) delete mode 100644 src/duckstation-qt/qtaudiostream.cpp delete mode 100644 src/duckstation-qt/qtaudiostream.h diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj index f971d6d77..5378c64ed 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj +++ b/src/duckstation-qt/duckstation-qt.vcxproj @@ -40,7 +40,6 @@ - @@ -60,7 +59,6 @@ - @@ -283,7 +281,7 @@ Console true $(SolutionDir)dep\msvc\lib32-debug;$(SolutionDir)dep\msvc\qt5-x86\lib;%(AdditionalLibraryDirectories) - Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Multimediad.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -304,7 +302,7 @@ Console true $(SolutionDir)dep\msvc\lib64-debug;$(SolutionDir)dep\msvc\qt5-x64\lib;%(AdditionalLibraryDirectories) - Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Multimediad.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -327,7 +325,7 @@ Console true $(SolutionDir)dep\msvc\lib32-debug;$(SolutionDir)dep\msvc\qt5-x86\lib;%(AdditionalLibraryDirectories) - Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Multimediad.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -350,7 +348,7 @@ Console true $(SolutionDir)dep\msvc\lib64-debug;$(SolutionDir)dep\msvc\qt5-x64\lib;%(AdditionalLibraryDirectories) - Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5Multimediad.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -372,7 +370,7 @@ true true $(SolutionDir)dep\msvc\lib32;$(SolutionDir)dep\msvc\qt5-x86\lib;%(AdditionalLibraryDirectories) - Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Multimedia.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -395,7 +393,7 @@ true true $(SolutionDir)dep\msvc\lib32;$(SolutionDir)dep\msvc\qt5-x86\lib;%(AdditionalLibraryDirectories) - Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Multimedia.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) UseLinkTimeCodeGeneration @@ -418,7 +416,7 @@ true true $(SolutionDir)dep\msvc\lib64;$(SolutionDir)dep\msvc\qt5-x64\lib;%(AdditionalLibraryDirectories) - Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Multimedia.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) @@ -441,7 +439,7 @@ true true $(SolutionDir)dep\msvc\lib64;$(SolutionDir)dep\msvc\qt5-x64\lib;%(AdditionalLibraryDirectories) - Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5Multimedia.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) + Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies) UseLinkTimeCodeGeneration diff --git a/src/duckstation-qt/duckstation-qt.vcxproj.filters b/src/duckstation-qt/duckstation-qt.vcxproj.filters index 648aa4fbd..4687ecc90 100644 --- a/src/duckstation-qt/duckstation-qt.vcxproj.filters +++ b/src/duckstation-qt/duckstation-qt.vcxproj.filters @@ -29,7 +29,6 @@ - @@ -37,7 +36,6 @@ - diff --git a/src/duckstation-qt/qtaudiostream.cpp b/src/duckstation-qt/qtaudiostream.cpp deleted file mode 100644 index 9a1f9628b..000000000 --- a/src/duckstation-qt/qtaudiostream.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "qtaudiostream.h" -#include -#include - -QtAudioStream::QtAudioStream() -{ - QIODevice::open(QIODevice::ReadOnly); -} - -QtAudioStream::~QtAudioStream() = default; - -std::unique_ptr QtAudioStream::Create() -{ - return std::make_unique(); -} - -bool QtAudioStream::OpenDevice() -{ - QAudioFormat format; - format.setSampleRate(m_output_sample_rate); - format.setChannelCount(m_channels); - format.setSampleSize(sizeof(SampleType) * 8); - format.setCodec("audio/pcm"); - format.setByteOrder(QAudioFormat::LittleEndian); - format.setSampleType(QAudioFormat::SignedInt); - - QAudioDeviceInfo adi = QAudioDeviceInfo::defaultOutputDevice(); - if (!adi.isFormatSupported(format)) - { - qWarning() << "Audio format not supported by device"; - return false; - } - - m_output = std::make_unique(format); - m_output->setBufferSize(sizeof(SampleType) * m_channels * m_buffer_size); - return true; -} - -void QtAudioStream::PauseDevice(bool paused) -{ - if (paused) - { - m_output->stop(); - return; - } - - m_output->start(this); -} - -void QtAudioStream::CloseDevice() -{ - m_output.reset(); -} - -void QtAudioStream::BufferAvailable() {} - -bool QtAudioStream::isSequential() const -{ - return true; -} - -qint64 QtAudioStream::bytesAvailable() const -{ - return GetSamplesAvailable() * m_channels * sizeof(SampleType); -} - -qint64 QtAudioStream::readData(char* data, qint64 maxlen) -{ - const u32 num_samples = static_cast(maxlen) / sizeof(SampleType) / m_channels; - const u32 read_samples = ReadSamples(reinterpret_cast(data), num_samples); - const u32 silence_samples = num_samples - read_samples; - if (silence_samples > 0) - { - std::memset(reinterpret_cast(data) + (read_samples * m_channels), 0, - silence_samples * m_channels * sizeof(SampleType)); - } - - return num_samples * m_channels * sizeof(SampleType); -} - -qint64 QtAudioStream::writeData(const char* data, qint64 len) -{ - return 0; -} diff --git a/src/duckstation-qt/qtaudiostream.h b/src/duckstation-qt/qtaudiostream.h deleted file mode 100644 index ad3d1b5fe..000000000 --- a/src/duckstation-qt/qtaudiostream.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include "common/audio_stream.h" -#include -#include - -class QAudioOutput; - -class QtAudioStream final : public AudioStream, private QIODevice -{ -public: - QtAudioStream(); - ~QtAudioStream(); - - static std::unique_ptr Create(); - -protected: - bool OpenDevice() override; - void PauseDevice(bool paused) override; - void CloseDevice() override; - void BufferAvailable() override; - -private: - bool isSequential() const override; - qint64 bytesAvailable() const override; - qint64 readData(char* data, qint64 maxlen) override; - qint64 writeData(const char* data, qint64 len) override; - - std::unique_ptr m_output; -}; diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp index d2c33f819..c387c82e4 100644 --- a/src/duckstation-qt/qthostinterface.cpp +++ b/src/duckstation-qt/qthostinterface.cpp @@ -1,5 +1,6 @@ #include "qthostinterface.h" #include "common/assert.h" +#include "common/audio_stream.h" #include "common/byte_stream.h" #include "common/log.h" #include "common/string_util.h" @@ -7,7 +8,6 @@ #include "core/game_list.h" #include "core/gpu.h" #include "core/system.h" -#include "qtaudiostream.h" #include "qtsettingsinterface.h" #include "qtutils.h" #include