ladybird/Userland/Utilities
kleines Filmröllchen 03fac609ee AudioServer+Userland: Separate audio IPC into normal client and manager
This is a sensible separation of concerns that mirrors the WindowServer
IPC split. On the one hand, there is the "normal" audio interface, used
for clients that play audio, which is the primary service of
AudioServer. On the other hand, there is the management interface,
which, like the WindowManager endpoint, provides higher-level control
over clients and the server itself.

The reasoning for this split are manifold, as mentioned we are mirroring
the WindowServer split. Another indication to the sensibility of the
split is that no single audio client used the APIs of both interfaces.
Also, useless audio queues are no longer created for managing clients
(since those don't even exist, just like there's no window backing
bitmap for window managing clients), eliminating any bugs that may occur
there as they have in the past.

Implementation-wise, we just move all the APIs and implementations from
the old AudioServer into the AudioManagerServer (and respective clients,
of course). There is one point of duplication, namely the hardware
sample rate. This will be fixed in combination with per-client sample
rate, eliminating client-side resampling and the related update bugs.
For now, we keep one legacy API to simplify the transition.

The new AudioManagerServer also gains a hardware sample rate change
callback to have exact symmetry on the main server parameters (getter,
setter, and callback).
2023-06-25 00:16:44 +02:00
..
abench.cpp Utilities: Use elapsed_milliseconds() instead of elapsed() 2023-05-24 15:50:43 +02:00
aconv.cpp aconv: Remove usage of ancient Core::DeprecatedFile 2023-06-22 21:53:00 +02:00
adjtime.cpp Utilities: Use lround() instead of casting round() to long 2023-04-22 07:17:08 +02:00
allocate.cpp Utilities: Use elapsed_milliseconds() instead of elapsed() 2023-05-24 15:50:43 +02:00
aplay.cpp aplay: Determine absolute path before raising the veil 2023-05-19 22:42:02 +02:00
arp.cpp arp: Stop using DeprecatedString 2023-04-22 07:17:08 +02:00
asctl.cpp AudioServer+Userland: Separate audio IPC into normal client and manager 2023-06-25 00:16:44 +02:00
base64.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
basename.cpp Everywhere: Use default execpromises argument for Core::System::pledge 2021-11-28 08:04:57 +01:00
beep.cpp Kernel+Userland: Add support for using the PCSpeaker with various tones 2023-03-05 08:38:29 +00:00
blockdev.cpp blockdev: Use Core::System::open() instead of LibC open() 2023-01-08 15:19:59 +00:00
bt.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
cal.cpp cal: Don't pretend ConfigServer returns a StringView 2023-06-13 01:49:02 +02:00
cat.cpp AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
checksum.cpp AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
chgrp.cpp chgrp: Use StringView instead of 'char const*' 2023-01-08 19:02:50 +01:00
chmod.cpp chmod: Don't bail immediately on error 2023-06-18 20:34:04 +02:00
chown.cpp chown: Don't bail immediately on error 2023-06-19 06:14:02 +02:00
chres.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
cksum.cpp cksum: Stop using DeprecatedString 2023-04-22 07:17:08 +02:00
clear.cpp Utilities: Use default execpromises parameter to pledge(..) 2022-04-03 17:13:51 -07:00
CMakeLists.txt aconv: Remove usage of ancient Core::DeprecatedFile 2023-06-22 21:53:00 +02:00
cmp.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
comm.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
config.cpp config: Stop using DeprecatedString 2023-04-22 07:17:08 +02:00
copy.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
cp.cpp cp: Prefer FileSystem over DeprecatedFile 2023-05-19 21:12:15 +02:00
cpp-lexer.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
cpp-parser.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
cpp-preprocessor.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
cut.cpp cut: Use the Stream API instead of a FILE * 2023-06-09 17:24:59 +02:00
date.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
dd.cpp dd: Print elapsed time and write speed after copying 2023-06-07 00:45:26 +02:00
df.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
diff.cpp diff: Use Diff::write_normal to output hunks 2023-06-24 18:34:08 +02:00
dirname.cpp dirname: Add support for multiple paths 2023-06-22 17:26:51 -04:00
disasm.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
disk_benchmark.cpp AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
dmesg.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
du.cpp du: Continue enumerating directories on error 2023-05-23 01:45:10 +02:00
echo.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
env.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
errno.cpp errno: Remove usage of DeprecatedString 2023-05-11 16:33:18 +02:00
expr.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
false.cpp false: Port to LibMain 2022-01-14 19:42:19 +02:00
fdtdump.cpp LibDeviceTree: Add a slow, allocation-free property fetch API 2023-02-19 13:49:07 +01:00
file.cpp LibCompress/Gzip: Replace usage of DeprecatedString 2023-06-17 06:44:16 +02:00
find.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
flock.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
fortune.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
functrace.cpp LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
gml-format.cpp Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
grep.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
gron.cpp Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
groupadd.cpp groupadd: Add -U option for adding members to a new group 2023-06-21 12:27:46 +02:00
groupdel.cpp groupdel: Ensure the veil is closed after required files are unveiled 2023-06-19 18:56:36 +02:00
groups.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
gunzip.cpp gunzip+LibCompress: Move utility to decompress files to GzipDecompressor 2023-04-01 08:15:49 +02:00
gzip.cpp gzip: Use utilities from LibCompress to (de)compress files 2023-04-01 08:15:49 +02:00
head.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
headless-browser.cpp headless-browser: Use Diff::write_normal to output hunks 2023-06-24 18:34:08 +02:00
hello-world.jakt Meta+Userland: Add jakt as an optional Lagom Tool 2022-05-23 23:05:45 +02:00
hexdump.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
host.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
hostname.cpp Userland: Convert command line arguments to String/StringView 2022-07-12 23:11:35 +02:00
icc.cpp icc: Add a --measure flag that prints color difference in profile 2023-04-30 05:57:20 +02:00
id.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ifconfig.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
image2bin.cpp LibGfx: Remove try_ prefix from bitmap creation functions 2023-01-26 20:24:37 +00:00
image.cpp image: Support JPEG as an output format 2023-06-22 21:13:04 +02:00
ini.cpp Everywhere: Use LibFileSystem where trivial 2023-03-21 19:03:21 +00:00
install.cpp install: Prefer FileSystem over DeprecatedFile 2023-05-19 21:12:15 +02:00
jail-attach.cpp Kernel: Allow configuring a Jail to not impose PID isolation restriction 2023-04-24 12:15:29 +02:00
jail-create.cpp Kernel: Allow configuring a Jail to not impose PID isolation restriction 2023-04-24 12:15:29 +02:00
js.cpp LibJS/Bytecode: Simplify Bytecode::Interpreter lifetime model 2023-06-22 21:16:17 +02:00
json.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
kcov-example.cpp Kernel+Userland: Unify declarations for KCOV in Kernel/API/kcov.h 2023-02-24 20:35:45 +01:00
keymap.cpp Everywhere: Remove needless copies of Error / ErrorOr instances 2023-02-10 09:08:52 +00:00
kill.cpp kill: Parse multi-digit signal numbers correctly 2023-06-07 00:24:09 +02:00
killall.cpp killall: Continue killing processes if kill() call fails 2023-05-31 06:00:45 +02:00
ldd.cpp ldd: Pledge map_fixed 2023-04-17 19:29:20 -04:00
less.cpp less: Stop adding extra blank lines 2023-03-06 21:44:28 +01:00
ln.cpp Everywhere: Remove needless copies of Error / ErrorOr instances 2023-02-10 09:08:52 +00:00
logout.cpp Userland: Remove a bunch of unveil calls on /sys/kernel/processes 2023-01-13 13:41:30 +01:00
ls.cpp ls: Migrate away from DeprecatedFile 2023-05-14 15:44:39 -06:00
lsblk.cpp LibCore+Everywhere: Return an Error from DirIterator::error() 2023-03-05 20:23:42 +01:00
lscpu.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
lsirq.cpp lsirq: Restore enumeration of interrupt line 2023-05-17 06:42:21 +02:00
lsjails.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
lsof.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
lspci.cpp LibCore+Everywhere: Return an Error from DirIterator::error() 2023-03-05 20:23:42 +01:00
lsusb.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
lzcat.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
man.cpp man: Use /bin/Shell as shell in non-POSIX mode 2023-06-10 07:14:08 +02:00
markdown-check.cpp Meta+Lagom: Enable CMAKE_BUILD_WITH_INSTALL_RPATH 2023-06-08 17:59:53 +02:00
matroska.cpp AK+Everywhere: Do not implicitly copy variables in TRY macros 2023-02-10 09:08:52 +00:00
md.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
mkdir.cpp mkdir: Add -v option to print a message for each created directory 2023-06-22 22:35:30 +02:00
mkfifo.cpp mkfifo: Don't rely on global errno 2023-05-22 10:24:08 +02:00
mknod.cpp mknod: Add option for specifying file permissions 2023-06-07 01:01:58 +02:00
mktemp.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
mount.cpp Kernel+Userland: Split bind-mounting and re-mounting from mount syscall 2023-05-17 23:39:15 -06:00
mv.cpp mv: Prefer FileSystem over DeprecatedFile 2023-05-19 21:12:15 +02:00
nc.cpp nc: Fix overflow in port and local_port argument 2023-04-30 21:12:46 +03:30
netstat.cpp netstat: Fix fallback value for pid field 2023-05-07 11:55:58 +02:00
network-settings.cpp Userland+Meta: Add new helper program for network settings 2023-05-13 17:59:37 -06:00
nl.cpp nl: Don't output a new line on empty file 2023-06-09 17:24:59 +02:00
nologin.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
notify.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
nproc.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
ntpquery.cpp Utilities: Use lround() instead of casting round() to long 2023-04-22 07:17:08 +02:00
open.cpp open: Prefer LibFileSystem over DeprecatedFile 2023-05-21 07:50:52 +02:00
passwd.cpp passwd: Use StringView instead of DeprecatedString 2023-01-08 17:10:53 +01:00
paste.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
pathchk.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
pgrep.cpp pgrep: Add -O option to filter processes by age 2023-06-10 07:13:25 +02:00
pidof.cpp pidof: Add -S option to specify a pid separator 2023-05-15 06:57:44 +02:00
ping.cpp Ping: Add TTL config option and value to output 2023-06-22 00:14:56 +02:00
pixelflut.cpp Utilities: Add pixelflut, a Pixelflut protocol client 2023-06-20 00:22:03 +02:00
pkill.cpp pkill: Add -O option to filter processes by age 2023-06-16 07:22:45 +02:00
pledge.cpp LibFileSystem+Everything: Remove resolve_executable_from_environment 2023-06-06 23:46:36 +02:00
pls.cpp Userland/pls: Use Core::System::exec_command method to execute a command 2022-11-05 18:00:58 -06:00
pmap.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
pmemdump.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
printf.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
pro.cpp pro: Change the download speed reporting interval to 1000 ms 2023-06-22 06:46:48 +02:00
profile.cpp profile: Prevent crash when -p is supplied a non-integer value 2023-05-03 09:57:43 +02:00
ps.cpp ps: Add -u option, to list processes associated with specified users 2023-05-16 12:54:18 +02:00
purge.cpp purge: Port to LibMain 2022-03-22 11:39:20 +01:00
pwd.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
readelf.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
readlink.cpp readlink: Prefer FileSystem::readlink over DeprecatedFile 2023-05-15 06:50:43 +02:00
realpath.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
reboot.cpp Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
rev.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
rm.cpp Everywhere: Use LibFileSystem where trivial 2023-03-21 19:03:21 +00:00
rmdir.cpp rmdir: Add -v option to list each directory as it is removed 2023-06-19 22:52:15 +02:00
route.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
run-tests.cpp run-tests: Unlink coredumps in self-test mode 2023-06-01 09:04:20 +02:00
sed.cpp sed: Fix unveil error for every run 2023-06-21 06:53:29 -04:00
seq.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
shot.cpp shot: Prefer LibFileSystem over DeprecatedFile 2023-05-21 07:50:52 +02:00
shuf.cpp shuf: Add -r option to allow output lines to be repeated 2023-05-18 21:06:37 -06:00
shutdown.cpp Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
sleep.cpp Utilities: Use default execpromises parameter to pledge(..) 2022-04-03 17:13:51 -07:00
sort.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
sql.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
stat.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
strace.cpp Kernel/Net: Implement SIOCGIFINDEX and SIOCGIFNAME for sockets 2023-04-14 12:29:03 +01:00
strings.cpp AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
stty.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
su.cpp su: Only check for an interactive tty if a password is actually needed 2023-02-16 12:52:11 +00:00
sync.cpp sync: Port to LibMain 2022-02-01 04:58:24 +00:00
syscall.cpp LibCore+Userland: Remove ArgsParser::add*(Vector<char const*>&) 2023-03-01 10:47:19 +01:00
sysctl.cpp Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
tac.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
tail.cpp tail: Count lines correctly when file ends with two or more newlines 2023-05-21 07:49:43 +02:00
tar.cpp tar: Wire up compressing .tar files with LZMA 2023-05-17 09:08:53 +02:00
tee.cpp Everywhere: Use my fairly new and shiny serenityos.org email :^) 2022-06-30 15:59:42 +01:00
telws.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
test_env.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
test-bindtodevice.cpp test-bindtodevice: Port to LibMain 2022-03-29 21:28:29 -07:00
test-fuzz.cpp test-fuzz: Add all the missing fuzzers 2023-05-23 06:11:33 +02:00
test-imap.cpp test-imap: Prefer Core::File over DeprecatedFile 2023-05-14 15:42:57 -06:00
test-pthread.cpp test-pthread: Check for correct return value from sem_trywait() 2023-05-13 17:05:59 +02:00
test-unveil.cpp Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
test.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
timezone.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
top.cpp top: Add -p option to filter by pid 2023-05-13 17:05:05 +02:00
touch.cpp touch: Don't bail immediately on error 2023-06-22 00:09:26 +02:00
tr.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
traceroute.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
tree.cpp LibCore+Everywhere: Return an Error from DirIterator::error() 2023-03-05 20:23:42 +01:00
true.cpp true: Port to LibMain 2022-03-22 11:39:20 +01:00
truncate.cpp Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
tsort.cpp AK: Add take_first to HashTable and rename pop to take_last 2023-02-21 22:13:06 +01:00
tt.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
ttfdisasm.cpp Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
tty.cpp tty: Port to LibMain 2022-03-29 21:28:29 -07:00
umount.cpp umount: Port to LibMain 2022-01-22 13:31:52 +02:00
uname.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
uniq.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
unveil.cpp LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
unzip.cpp unzip: Add option to list files of an archive 2023-06-15 21:01:51 +01:00
update-cpp-test-results.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
uptime.cpp AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
useradd.cpp Utilities: Replace ctype.h usage with AK/CharacterTypes.h 2023-04-22 07:17:08 +02:00
userdel.cpp Kernel+Userland: Ensure proper unveil permissions before using rm/rmdir 2023-06-02 17:53:55 +02:00
usermod.cpp usermod: Prefer FileSystem over DeprecatedFile 2023-05-19 21:12:15 +02:00
utmpupdate.cpp Everywhere: Remove unintentional partial stream reads and writes 2023-03-13 15:16:20 +00:00
w.cpp Userland: Remove remaining users of Duration::now_realtime() 2023-05-24 23:18:07 +02:00
wallpaper.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
wasm.cpp LibWasm: Create AK::StackInfo once per AbstractMachine 2023-05-28 13:20:56 +02:00
watch.cpp watch: Avoid overflow for large interval values 2023-05-29 14:11:49 +02:00
wc.cpp wc: Add -L option to show the length of the longest line 2023-06-23 06:24:33 +02:00
which.cpp LibFileSystem+Everything: Remove resolve_executable_from_environment 2023-06-06 23:46:36 +02:00
whoami.cpp whoami: Port to LibMain :^) 2021-11-30 23:34:40 +01:00
wsctl.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
xargs.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
xml.cpp xml: Prefer LibFileSystem over DeprecatedFile 2023-05-21 07:50:52 +02:00
xzcat.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
yes.cpp LibCore+Everywhere: Remove ArgsParser::add*(char const*&) 2023-03-01 10:47:19 +01:00
zip.cpp Everywhere: Use LibFileSystem where trivial 2023-03-21 19:03:21 +00:00