* SoundRecorder can now be connected and disconnected safely,
due to some unknown reason, probably format negotiation problems,
ATM we need a system mixer between.
* The normal behavior is unchanged, when the record button is pressed
it will record from the preferred audio interface and disconnect on
stop. But when the connection is made manually it will stay connected
until the user explictly disconnect it.
* To make it work, instantiate a system mixer, connect the output to
SoundRecorder, instantiate a node like the ToneProducer, and connect
it's output to the mixer input. Press the record button and check
the Mixer has started from the Cortex transport, if not, start it.
* This required to review various parts of the code, and
isn't probably still perfect. The main problem was an attributes
hell where redondance created a lot of problems, all this data
is now controlled mostly by the node.
* Header indentation changes needed too.
* The WaitForMessage is moved at the end of the loop, and
the check for quitting the loop is moved as it's condition,
this makes us to be sure that once a Quit() request is performed
we will not handle events anymore.
* Other minor style and initialization fixes.
* This is the only solution that allowed to use the best
of both ways to do this calculus. I've also tested it
with a modified sound player that snoozed every time
the buffer should be handled, and found that neither
of the lateness calculus I tested (including enqueue_time)
really solve all problems. That's why I've tried to find
an average solution. There's still room for improvements
eventually.
* This problem happens only at the startup, so that it's
preferred that we deal with it in the BMediaEventLooper side.
* This solve some audio stability problems I had with slow systems.
* After having this patch applied locally for some time,
I'm going to be sure that we have to deal only with real_time values.
* Since RealTime() is just a system_time() wrapper, the code
will be slightly improved in performances too.
* Additionally it performs very well when the thread is
externally stopped (such as debugging it), so that the audio
recover almost immediately.
* Reverts f3e381dd
* Details in #12633
* For some unknown reason, this change breaks an Intel Core 2
system from booting (Dell Optiplex 960, E8400)
* If anyone has any ideas on why, let me know :-)
BMenuField's frame is drawn from the LowColor() which is adopted from its
parent. However, we should be adopting the parent's view color for our low
color, otherwise we sometimes end up with a miscolored border (most often white).
This was not noticed earlier as most views have matching view and low colors.
Fixes ticket #12603
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Erroneous use of SetLowUIColor(ViewUIColor()) when the old API was more
appropriate resulted in the tint value being ignored which resulted in some
text rendering issues with certain color combinations and LCD subpixel aliasing.
Fixes ticket# 12596
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
The addattr didn't quite match its help text, wrt the kinds of values one can
use for type codes. Aside from the list of named types (which isn't actually
quite complete compared to the choices in the source) the help said one can
enter "numeric values", and gives both hex and decimal examples.
However, trying a hex value didn't work -- only decimal numbers were accepted.
This turned out to be because the sscanf format option is "%u" (actually
B_SCNu32) which only handles decimal. It has to be B_SCNi32 (which means it
would be allowed to enter a negative value -- just not very sensible...) The
other example entry given is " 'ABCD' ", which apparently is meant to indicate
that one can enter 'FourCC' direct type-code representations, but of course
that wouldn't work as shown because the shell strips off the quotes. Escaping
the quotes -- \'ABCD\' -- or adding a second layer -- "'ABCD'" -- does work
but is not obvious. (I can't think of any other command line that requires
such a convention.)
I have added another option: "-c ABCD". The current way can
still work, but the new option should be fairly evident to anyone.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Fixes#12562.
While mixing layouted and non-layouted views is not supported, we are
doing it in some cases, including translator preferences (which uses
layout, but the views may come from a translator add-on which doesn't).
So, try to handle that case and at least avoid crashes by calling
MinSize/MaxSize and other unsupported layout code on views which won't
handle it.
Fixes#12610.
Change control border color to 172, 172, 172 and use for default button
indicator drawing.
People doing an in-place upgrade will need to modify the border color from
its previous default manually or by pressing "Default" in the Appearance
preflet. This is a one-time annoyance.
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Fixes: #12589
* Since the producer may take an undefined amount of buffers to
process the latency increase, possibly depending on it's queue,
the consumer will notify only the difference between the old latency
and the new. While not solving completely, this improves the situation
under virtual box (and slow systems) making the sound more stable.
Changelog: https://acpica.org/sites/acpica/files/changes_29.txt
* This is based on the upgrade waddlesplash aborted due to a bug
in ACPICA which has since been fixed.
* Some ACPICA code is excluded until needed. (You may want to
compare our acpica dir to ACPICA if you are missing functions.)