mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-23 16:10:20 +00:00
Kernel: Teach DeviceManagement to handle multiple audio devices
This commit is contained in:
parent
61d77274db
commit
1aafb6cd23
Notes:
sideshowbarker
2024-07-18 00:50:01 +09:00
Author: https://github.com/gmta Commit: https://github.com/SerenityOS/serenity/commit/1aafb6cd237 Pull-request: https://github.com/SerenityOS/serenity/pull/11028
4 changed files with 9 additions and 9 deletions
|
@ -84,7 +84,9 @@ UNMAP_AFTER_INIT RefPtr<SB16> SB16::try_detect_and_create()
|
|||
auto device_or_error = DeviceManagement::try_create_device<SB16>();
|
||||
if (device_or_error.is_error())
|
||||
return {};
|
||||
return device_or_error.release_value();
|
||||
auto device = device_or_error.release_value();
|
||||
DeviceManagement::the().attach_audio_device(device);
|
||||
return device;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void SB16::initialize()
|
||||
|
|
|
@ -22,9 +22,9 @@ UNMAP_AFTER_INIT void DeviceManagement::initialize()
|
|||
s_the.ensure_instance();
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void DeviceManagement::attach_sb16_device(SB16 const& device)
|
||||
UNMAP_AFTER_INIT void DeviceManagement::attach_audio_device(CharacterDevice const& device)
|
||||
{
|
||||
m_sb16_device = device;
|
||||
m_audio_devices.append(device);
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void DeviceManagement::attach_console_device(ConsoleDevice const& device)
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <AK/Types.h>
|
||||
#include <Kernel/API/TimePage.h>
|
||||
#include <Kernel/Arch/RegisterState.h>
|
||||
#include <Kernel/Devices/Audio/SB16.h>
|
||||
#include <Kernel/Devices/CharacterDevice.h>
|
||||
#include <Kernel/Devices/ConsoleDevice.h>
|
||||
#include <Kernel/Devices/Device.h>
|
||||
#include <Kernel/Devices/NullDevice.h>
|
||||
|
@ -36,7 +36,7 @@ public:
|
|||
void attach_console_device(ConsoleDevice const&);
|
||||
|
||||
// FIXME: Once we have a singleton for managing many sound cards, remove this from here
|
||||
void attach_sb16_device(SB16 const&);
|
||||
void attach_audio_device(CharacterDevice const&);
|
||||
|
||||
void after_inserting_device(Badge<Device>, Device&);
|
||||
void before_device_removal(Badge<Device>, Device&);
|
||||
|
@ -62,7 +62,7 @@ private:
|
|||
RefPtr<NullDevice> m_null_device;
|
||||
RefPtr<ConsoleDevice> m_console_device;
|
||||
// FIXME: Once we have a singleton for managing many sound cards, remove this from here
|
||||
RefPtr<SB16> m_sb16_device;
|
||||
NonnullRefPtrVector<CharacterDevice, 1> m_audio_devices;
|
||||
MutexProtected<HashMap<u32, Device*>> m_devices;
|
||||
};
|
||||
|
||||
|
|
|
@ -318,9 +318,7 @@ void init_stage2(void*)
|
|||
(void)RandomDevice::must_create().leak_ref();
|
||||
PTYMultiplexer::initialize();
|
||||
|
||||
// FIXME: Once we have a singleton for managing many sound cards, remove this from here
|
||||
if (auto device = SB16::try_detect_and_create(); !!device)
|
||||
DeviceManagement::the().attach_sb16_device(*device);
|
||||
SB16::try_detect_and_create();
|
||||
|
||||
StorageManagement::the().initialize(kernel_command_line().root_device(), kernel_command_line().is_force_pio());
|
||||
if (VirtualFileSystem::the().mount_root(StorageManagement::the().root_filesystem()).is_error()) {
|
||||
|
|
Loading…
Reference in a new issue