This reverts commit 31ea76548a.
Adrien, please try again without clobbering the otherwise nice
BNetworkInterface API!
Conflicts:
src/kits/network/getifaddrs.cpp
We would show "1Mbps" for 1.0 to 1.9 actual speed, which made this not
so helpful. Instead, switch to Mbps when reaching 10000 Kbps. So we show
"1000 Kbps" or 1900Kbps" in the mentionned situation, and up to "9999
Kbps" (note this is still only 4 digits, so it stays readable). We then
switch to "10 Mbps", which is still only withing 12% of the actual speed
(but better than the previous error of up to 50%).
Fixes#11821.
Also use uppercase for the SI prefixes as it should be, and use %d
instead of %f for the bps rating as it is an integer.
* It's not only broken conceptionally, but also it's implementation
is: it unconditionally filters all ctrl-cmd(-shift) key combinations.
* Since it's functionality should be implemented differently in the
first place, it should be removed completely, though.
usb_midi devices can be input-only or output-only. We failed to check
for this in some places leading to KDL on devices that are not
bidirectional.
Should fix#11810.
* Instead of the deprecated GroupLayoutBuilder.
* Ordered headers correctly, use headers directly instead of including
InterfaceKit.h.
* Also, guarded the profile sections in their ENABLE_PROFILES
definition.
In normal situations the midi_server opens all midi ports, so this
wouldn't be a problem. However, my new MIDI keyboard (Miditech
i²Control-25) sends some MIDI events immediately when it is connected to
an USB port. These would be handled before the MIDI server had a chance
to open the port, leading to a KDL.
A similar problem could be triggered by killing the midi_server then
sending MIDI events from any other USB device.
* These would be completely skipped before because of a bug in the USB
audio dumping code.
* Now they are decoded in human readable format
* Also fix a typo (Ttype instead of Type) in audio endpoints formatting.
* When a midi device is unplugged, the driver deletes all the MIDI
channels, and unblocks all pending accesses on those. The port
structureis freed but the device kept a pointer to it.
* When a transfer is cancelled, the driver would try to notify all
callers waiting on the ports that the device is gone. But it's too late
to access the port as it was already deleted (and the callers already
unlocked).
Reset the port pointer to NULL when deleting a port, so no further
access to it is possible.
Fixes#11533.
Also remove an unused field in the usb midi device structure.
* use ceilf() over ceil() and floorf() over floor()
* rename prevTab to previousTab
* check that tab pointer is valid in each loop
* use tabCount variable in each loop to check the end condition
No functional change intended, corrected in feature branch, but
unrelated to feature. Having this change in tree will make keeping
my Tracker feature branches up to date slightly easier.