mirror of
https://git.checksum.fail/alec/erythros
synced 2025-12-10 13:09:55 +02:00
34 lines
1021 B
HolyC
34 lines
1021 B
HolyC
I64 @shell_cmd_aplay(@shell* sh, I64 argc, U8** argv)
|
|
{
|
|
U8 buf[512];
|
|
if (argc < 2) {
|
|
StrPrint(&buf, "Error reading file %s\n", argv[1]);
|
|
Stdio.WriteLine(sh, "Usage: aplay [OPTION]... [FILE]...\n");
|
|
return 1;
|
|
}
|
|
I64 i;
|
|
I64 size;
|
|
Sound* snd;
|
|
U8* filename = NULL;
|
|
for (i = 1; i < argc; i++) {
|
|
filename = @shell_expand_relative_path(sh, argv[i]);
|
|
if (FileSystem.PathExists(filename)) {
|
|
snd = Audio.SoundFromFile(filename);
|
|
if (!snd) {
|
|
StrPrint(&buf, "%s: Error playing audio file\n", argv[i]);
|
|
Stdio.WriteLine(sh, &buf);
|
|
Free(filename);
|
|
return 1;
|
|
}
|
|
Audio.PlaySound(snd);
|
|
Audio.FreeSound(snd);
|
|
Free(filename);
|
|
} else {
|
|
StrPrint(&buf, "%s: No such file or directory\n", argv[i]);
|
|
Stdio.WriteLine(sh, &buf);
|
|
Free(filename);
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
} |