1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 01:47:34 +00:00

AudioServer: Migrate from DeprecatedFile to File

Advances #17129.
This commit is contained in:
Ben Wiederhake 2023-05-07 21:35:02 +02:00 committed by Sam Atkins
parent d7b067e8f7
commit 37b5bfa068
2 changed files with 17 additions and 14 deletions

View file

@ -16,6 +16,8 @@
#include <AK/RefCounted.h>
#include <AK/WeakPtr.h>
#include <LibAudio/Queue.h>
#include <LibCore/ConfigFile.h>
#include <LibCore/File.h>
#include <LibCore/Timer.h>
#include <LibThreading/ConditionVariable.h>
#include <LibThreading/Mutex.h>
@ -102,8 +104,15 @@ private:
};
class Mixer : public Core::Object {
C_OBJECT(Mixer)
C_OBJECT_ABSTRACT(Mixer)
public:
static ErrorOr<NonnullRefPtr<Mixer>> try_create(NonnullRefPtr<Core::ConfigFile> config)
{
// FIXME: Allow AudioServer to use other audio channels as well
auto device = TRY(Core::File::open("/dev/audio/0"sv, Core::File::OpenMode::Write));
return adopt_nonnull_ref_or_enomem(new (nothrow) Mixer(move(config), move(device)));
}
virtual ~Mixer() override = default;
NonnullRefPtr<ClientAudioStream> create_queue(ConnectionFromClient&);
@ -119,7 +128,7 @@ public:
u32 audiodevice_get_sample_rate() const;
private:
Mixer(NonnullRefPtr<Core::ConfigFile> config);
Mixer(NonnullRefPtr<Core::ConfigFile> config, NonnullOwnPtr<Core::File> device);
void request_setting_sync();
@ -127,7 +136,7 @@ private:
Threading::Mutex m_pending_mutex;
Threading::ConditionVariable m_mixing_necessary { m_pending_mutex };
RefPtr<Core::DeprecatedFile> m_device;
NonnullOwnPtr<Core::File> m_device;
NonnullRefPtr<Threading::Thread> m_sound_thread;