ladybird/Kernel/Devices
Liav A 6efa27537a Kernel/Audio: Introduce a new design architecture for the subsystem
We have 3 new components:
1. The AudioManagement singleton. This class like in other subsystems,
is responsible to find hardware audio controllers and keep a reference
to them.
2. AudioController class - this class is the parent class for hardware
controllers like the Sound Blaster 16 or Intel 82801AA (AC97). For now,
this class has simple interface for getting and controlling sample rate
of audio channels, as well a write interface for specific audio channel
but not reading from it. One AudioController object might have multiple
AudioChannel "child" objects to hold with reference counting.
3. AudioChannel class - this is based on the CharacterDevice class, and
represents hardware PCM audio channel. It facilitates an ioctl interface
which should be consistent across all supported hardware currently.
It has a weak reference to a parent AudioController, and when trying to
write to a channel, it redirects the data to the parent AudioController.
Each audio channel device should be added into a new directory under the
/dev filesystem called "audio".
2022-02-14 11:39:19 +01:00
..
Audio Kernel/Audio: Introduce a new design architecture for the subsystem 2022-02-14 11:39:19 +01:00
HID Kernel: Evaluate block conditions only once on new mouse packets 2022-02-14 11:35:20 +01:00
AsyncDeviceRequest.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
AsyncDeviceRequest.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
BlockDevice.cpp Kernel: Remove the assumption of 512 block size in read/write_block 2022-01-29 17:41:06 +02:00
BlockDevice.h AK: Move integral log2 and exp to IntegerMath.h 2022-02-06 17:52:33 +00:00
CharacterDevice.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CharacterDevice.h Kernel: Make major and minor numbers to be DistinctNumerics 2021-12-23 23:02:39 +01:00
ConsoleDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
ConsoleDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
Device.cpp Kernel: Rename File::{before_removing => will_be_destroyed} 2021-12-29 12:04:15 +01:00
Device.h Kernel: Protect global device map with spinlock instead of mutx 2022-02-03 16:11:26 +01:00
DeviceControlDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
DeviceControlDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
DeviceManagement.cpp Kernel/Audio: Introduce a new design architecture for the subsystem 2022-02-14 11:39:19 +01:00
DeviceManagement.h Kernel/Audio: Introduce a new design architecture for the subsystem 2022-02-14 11:39:19 +01:00
FullDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
FullDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
KCOVDevice.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
KCOVDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
KCOVInstance.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
KCOVInstance.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
MemoryDevice.cpp Kernel: Make map_typed() & map_typed_writable() fallible using ErrorOr 2022-01-13 22:40:25 +01:00
MemoryDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
NullDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
NullDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
PCISerialDevice.cpp Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
PCISerialDevice.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
PCSpeaker.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
PCSpeaker.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RandomDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
RandomDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
SerialDevice.cpp Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
SerialDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
VMWareBackdoor.cpp Kernel: Stop using the make<T> factory method in the Kernel 2022-02-03 23:33:20 +01:00
VMWareBackdoor.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
ZeroDevice.cpp Kernel: Use u64 instead of size_t for File::can_read offset 2022-01-25 22:41:17 +02:00
ZeroDevice.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00