* These classes were moved from Media Server, making the use of ports
and messages to communicate with the app irrelevant.
* Split in a separate commit to help git keep track of moved files.
Fixes#4893.
The media server tried to use node monitoring to dynamically add and
remove plug-ins, but it isn't that useful:
* When a plug-in is added, applications would have to query the media
server to get an up to date list of available formats. For example
MediaConvert populates its format menus on startup.
* When removing a plugin, if an app already had it loaded, there is not
much that can be done to keep it working.
* The list of plugins was not sorted by directories (user vs system
add-ons), so the directories were re-scanned to make sure user add-ons
were returned first, rendering the node monitoring less interesting.
Now, the format handling is done by each application. The node
monitoring is removed, instead the apps will scan the plugin directory
when first using the media kit classes. Restarting the application is
needed to update the media formats list.
This reverts a portion of hrev46580 concerning placement of a label on a button.
The label was draw too low on the button in some cases, notably in Keymap.
Restoring the old code for the icon-less case fixes the problem.
There still may be a problem drawing labels on buttons with icons, but, the code
should behave the same as it did in hrev46580 for that case, which is when
buttons with icons was introduced.
* Add button is disabled initially (as the server name is blank)
* Use B_FAILURE_COLOR when server name is invalid instead of hardcoding red
* Some code refactoring
* Some style fixes
* Replace code to find the plug-ins with the new APIs.
* Prepare for hybrid-aware code (but we need to use the app
architecture, not the media_server one)
These are used when an app uses BMediaFile/BMediaTrack, which leads to
the plug-ins being instanciated on the application side.
* Fixes one more part of #10049 (media add-ons are still missing).
* Will probably not solve any real-world issue because of #4893.
* With the muxer & demuxer tables merged in hrev47063, the
list of output formats included media file formats that
weren't flagged as writable
Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
46b39e8378 contained a change to the
rounding for non-subpixel-precise drawing. This changes it back
from using round() to casting to int32. This also reverts a change
to StrokeLine() which meant that lines on integer pixels appeared
at the same location regardless of using B_SUBPIXEL_PRECISE or not.
On further thought, this doesn't make any sense, since it means
to treat the meaning of coordinates different for stroking and
filling. This fixes WonderBrush's brush tip preview, but breaks
Gobe Productive's caret rendering for zooms smaller than 150%.
The change to the rounding fixes#10690.
Interestingly, it only complained about some of them. Changing them all
to %define though, as equ means it should try to evaluate it once, which
of course it can't really if those are ebp+CONSTANT.
Didn't catch those since I wasn't building gcc2h.
Thanks to jessicah for reporting and testing the fix!
* Transformed ConnectionTest into WebAppInterface
* Added methods to Model to trigger the population of all packages
with additional information that is needed in the list view.
* This launches a thread which tries to retrieve icons for all known
packages from depot.haiku-os.org. This is uncached and very slow. I
guess it could even be fast enough with a change to the protocol where
icons are not retrieved one at a time.
* The media_file_format struct has B_READABLE and B_WRITABLE flags,
allowing us to tell which formats we support decoding and encoding
* This allows application to query for the supported decoding formats.
* Also adjust some of the MIME types to match what's actually used (eg.
in HTML5 audio).
This makes html5test.com detect which formats we declare we can decode.
BListView::RemoveItem() doesn't delete the item, it just removes it
from the list. We have to delete the item to free the memory it
consumes ourselves.
Application "Time" crashes when you push "Remove" button without any
selection on list of network time servers.
Fixes#10716
Please use git format-patch to create your patches in the future so that
the author information is preserved.
Signed-off-by: John Scipione <jscipione@gmail.com>
* The maximum vector icon data size was a bit low. That may
be hard to track down why a certain vector icon doesn't work,
especially when imported from SVG...
* Don't allocate the vector buffer on the stack anymore.
When installing a package, it is set to pending, which removes
the Install button from the package info area. When multiple
packages are downloaded, theould all be put to pending,
right now, they will still offer to be installed, although they
are already scheduled for downloading. Requesting a package to
be installed when it is already schduled will mess things up later.
Godm, I hate this nano bug...
...when sending the whole view state over the link.
Also inherit the fill rule when pushing states (DrawState
copy constructor). A somewhat sloppy oversight, I must add.
* Base class needs to check this as well because the subclass might
not override it (e.g. InitParametersPanel).
* Fixes crash when trying to initialize partition map. Thanks to
jessicah for pointing this out.
After load_image() the child thread is suspended and the parent is
expected to resume it later. However, it is possible that the parent
attempts to resume its child after it has been notified that the image
had been loaded but before the child managed to suspend itself. In such
case the child would suspends itself after that wake up attempt and,
consequently will not be ever resumed.
To mitigate that problem flag Thread::going_to_suspend has been added
which helps synchronizing thread suspension and continuation in a similar
way that "traditional" thread blocking is performed. This means that
the child should behave in a following manner: set its going_to_suspend flag,
notify the parent (i.e. any thread that may want to resume it), acquire
its scheduler_lock and suspend itself if the going_to_suspend flag is set.
The parent should follow pattern: clear going_to_suspend flag of the thread
that is about to be resumed, acquire that thread scheduler_lock and enqueue
it in a run queue if it is suspended.
Thanks Oliver for reporting the bug and identifying what causes it.
Most of the actual UserEvent work is done in DPC so that we don't have
to care about the limitations of the context in which UserEvent::Fire()
is invoked. This requires appropriate management of lifetime of UserEvent
instances to make sure that DoDPC() method is always called on a valid
object.
* That's the only one I would ever want to see (in most cases).
* I must admit that I don't really understand why the lists are created
and updated only for filtering, instead of just testing against the
package state.
* However, I also have no idea, why the NotContainedInFilter does not
work. I left it in because someone might see what I didn't, and maybe,
if the first confusion is cleared, it might even find some use.
* BView gets SetFillRule/FillRule methods. The fill rule is part of the
view state.
* The B_NONZERO rule is the default. This is what we implemented before.
* The B_EVEN_ODD rule is the other common possibility for this, and
we need to support it to help WebKit to render properly.
- POSIX says the behavior for pthread_equal is undefined for
uninitialized arguments.
- However, gcc C++11 threads supports expects C++-compatible behavior,
that is, two uninitialized pthread_t should compare equal.
Avoids some runtime asserts in latest WebKit version.
In low latency mode the scheduler would not attempt to balance load
on not heavily loaded cores unless difference in load exceeded
kLoadDifference * 2 (i.e. 40 percentage points), which does not seem
to be good enough.
To make sure that load statistics are accurate on idle cores each time
idle thread is scheduled a timer is set to update load when current
load measurement interval elapses. However, core load is defined as the
average load during last measurement interval and idle core may be still
considered busy if it was not idle during entire measurement interval.
Since, load update timer is a one shot timer that information will not be
updated until the core becomes active again.
To mitigate that issue load update timer is set to fire after two load
measurement intervals had elapsed.
Should fix#10628. If there is a race condition with a writer getting
minimum or maximum from double ended heap may incorrectly result NULL.
Which is not expected in the most of the thread migration logic. Apart
from that, because of the race condition heap state may be observed as
inconsistent thus failing assertions.
ended heap
- Per DWARF4's specification, if a type's complete definition is
contained in a .debug_types unit, it should be referenced via the
DW_AT_signature attribute. 4.8 now actually does this rather than
setting e.g. DW_AT_attribute_origin to a signature ref, and
consequently we weren't finding said reference any more.
Gets .debug_types section support working again.
- Various other places in Debugger expect the highpc attribute to be
an address rather than an offset. As such, resolve it to one when
setting the attribute in the corresponding DIE so the resolved value
is available everywhere. Fixes variable scopes not being computed
properly, and consequently the missing variables mentioned in the
previous commit.
This gets things working properly again under gcc4.8.
- For DWARF4, lowpc/highpc can be specified as constants in addition
to addresses. Furthermore, they can also be specified such that highpc
is a relative offset from lowpc rather than an absolute address. We
weren't handling this case, which gcc4.8 is now using when emitting
version 4 debug information. Fixes another part of #10659.
There still remains a problem with regards to class/structure variables not
showing up in the local variables view.
* When the add-on provides no parameter editor, still add the set of
of default controls instead of just bailing out of the Init()
method.
* Before, DriveSetup never added the default controls in such cases
and simply showed an empty window. This happened when e.g. trying
to create a new partition inside an extended partition (because
ExtendedPartitionAddOn provides no parameter editor).
* Fixes#10569
* When determining the output link, look at the internal encoder in
the transmitter setup.
* Fixes getting no picture on digital output of certain systems.
... instead of vertically. This actually swaps horizontal and vertical
so if you have a mouse with a fancy 2-axis scroll ball it will swap
the x and y coordinates. (untested)
... by calling new(std::nothrow)
Also try really hard not to leak any memory in the process.
Lots of error checking added to check if reads and writes fail
returning B_IO_ERROR and if initialization fails returning B_NO_MEMORY
... to prevent throwing a std::bad_alloc exception if there isn't
enough memory to allocate a new BBitmap.
This effectively reverts 116e78d4d4
Thanks Axel and AnEvilYak and sorry for the noise.
* Remove the NULL check since BBitmaps don't return NULL but check
that it IsValid() instead.
* Fill out the *out pointer directly instead of creating a temporary
bitmap pointer.
* Rename err to result.
* Return B_OK unconditionally if we get to the end of the function.
Thanks again Jérôme
* Don't show the menu in MenusBeginning, this is invoked for all
shortcuts, so cmd+C and others would show the menu. Fixes#9186.
* Instead, show the interface specifically for the CMD+ESC case. Also,
send that key event to the default window handler so the menu opens.
Before, this was mistakenly sent to the "stop" button. Fixes#10523.
Translation instructions are "keep it short and all uppercase,
5 characters or less".
Now non-English languages can join the fun:
DEBUG JETZT
DEBUG AHORA
DEBUG ORA
DEBUG が現在
... this might be a bit of a challenge for some languages.
* Align all allocations of more than 8 bytes to 8-byte.
* Avoids hitting ASSERTs in WebKit when built in debug mode (it assumes
at least 8 byte alignment)
* Libbe is not available when cross-building the *_bootstrap packages,
so no libnetwork could not be used either, which made building
anything network-related impossible.
* The only code in libnetwork that requires libbe is the notification,
so I moved that over to libbnetapi. Non-C++ applications can't use
the notification calls anyway, as their interface is C++-only.
* The rounding algorithm here expects to start with the 2 digits
after the decimal point in pll->feedbackDivFrac. Multiplying with
1000 instead of 100 filled it with 3 digits.
The last step then set the fractional part to zero because it was
still too large.