* Initial Commit Added Device logic to Sinks Started on UI for selecting devices Removed redundant import * Audio Core: Complete Device Switching Complete the device switching implementation by allowing the output device to be loaded, changed and saved through the configurations menu. Worked with the Sink abstraction and tuned the "Device Selection" configuration so that the Device List is automatically populated when the Sink is changed. This hopefully addresses the concerns and recommendations mentioned in the comments of the PR. * Clean original implementation. * Refactor GetSinkDetails
34 lines
744 B
C++
34 lines
744 B
C++
// Copyright 2016 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <memory>
|
|
#include "audio_core/sink.h"
|
|
|
|
namespace AudioCore {
|
|
|
|
class SDL2Sink final : public Sink {
|
|
public:
|
|
SDL2Sink();
|
|
~SDL2Sink() override;
|
|
|
|
unsigned int GetNativeSampleRate() const override;
|
|
|
|
void EnqueueSamples(const s16* samples, size_t sample_count) override;
|
|
|
|
size_t SamplesInQueue() const override;
|
|
|
|
std::vector<std::string> GetDeviceList() const override;
|
|
void SetDevice(int device_id);
|
|
|
|
private:
|
|
struct Impl;
|
|
std::unique_ptr<Impl> impl;
|
|
int device_id;
|
|
std::vector<std::string> device_list;
|
|
};
|
|
|
|
} // namespace AudioCore
|