Monday, December 19, 2022
HelenOS 0.12.1 is here!
Thursday, October 27, 2022
Working on the Task Bar for HelenOS
Tuesday, October 25, 2022
Partial Solar Eclipse 2022-10-25
Tuesday, September 27, 2022
Thursday, September 22, 2022
Problems with Hound audio architecture
When debugging audio problems with HelenOS HD Audio driver in VirtualBox, I noticed that HD Audio driver does not actually report the rates/formats supported by the audio device, nor does it set them. So I tried to implement it. Soon I ran into problems (Hound crashing), but mainly the audio device interface is not up to the task. It just expects the audio device to be something like a Sound Blaster, basically being able to set any rate from a (min, max) interval. (In reality, SB can only set the rate approximately.
Also note that I found that we round the rates to multiples of 100 Hz when communicating to Hound. Oh my. In the end I found out that Hound never sets any other format than the default 44100Hz / stereo / 16-bit, because it starts playing even before any stream is started, so it has no way of knowing what format to set.
So I'm not sure if it even makes sense to improve the driver within the scope of the current audio framework, which is severely limited. Even while developing the HD Audio driver I realized that it's a poor match for HelenOS audio architecture. Here's a compiled list of problems encountered so far:
- Each sound card / audio device can only have up to one input and one output (HD Audio can have mutiple).
- Both input and output must support the same rates/formats (can be different in HD Audio).
- Audio device is expected to support basically any rate in some (min, max) interval (but HD Audio only supports a short list of specific rates).
- Rate is passed from client to server in multiples of 100 Hz.
- Audio playback starts as soon as client connects, even if no streams are playing. This means we don't know what the format will be, so we pick default format (and we cannot convert rates).
- Everything thus plays at 44100Hz / 16 bits / stereo.
Thursday, June 16, 2022
File Dialogs - Deluxe!
As you might know, our temporary file dialogs were previously a poor man's affair, containing just a plain text entry and an OK / Cancel button pair.
But now lo and behold!
A file list entry for browsing files/directories complete with a scrollbar. And, as is the standard for libui, both in graphics and glorious text mode. Is that cool or is it not? Granted, it's not perfect, but I can feel progress is being made...
And I can assure you it's only going to get more exciting. Just wait and see.
Thursday, February 24, 2022
Saturday, February 19, 2022
Helen's Weekend Out
Wednesday, February 16, 2022
Come, Mindy!
Mindy: Why?
Brain: Writing an LLVM backend is a daunting task.
Mindy: Why?
Brain: It's big, complicated, and a moving target.
Mindy: Why?
Brain: Because it's something I want to do!
Mindy: Okay, I love you!
And here's the original text: (in case you haven't watched all the episodes of Animaniacs)
Brain: Come, Mindy, it's time for us to take over the world!Mindy: Why?
Brain: By right of superior intelligence I am best suited to guide the destiny of this planet.
Mindy: Why?
Brain: My impairable powers give me the mandate.
Mindy: Why?
Brain: Because it's something I want to do!
Mindy: Okay, I love you!