History log of /haiku/src/kits/media/MediaRoster.cpp
Revision Date Author Comments
# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# f7338bb6 17-Nov-2021 Augustin Cavalier <waddlesplash@gmail.com>

Media Kit: Fix/appease various GCC 11 warnings.


# b073975e 21-Dec-2019 Jérôme Duval <jerome.duval@gmail.com>

media: fix 64-bit debug build

Change-Id: Ie8c19fc5f067da9973cc52ec4c787a4ad36e390c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2044
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 083314c2 05-Oct-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Create the port pool in MediaRosterUndertaker

Follow up to #15135, which created a regression, apps would crash if
using the port pool before creating a BMediaRoster instance. Now the
port pool is entirely managed by the MediaRosterUndertaker, which is
less confusing.

Fixes the media_addon_server crash on shutdown for me as well, but I
don't remember why (I had studied the code and came to the conclusion
that this should fix it, but I don't remember the reasoning).

Fixes #15263, and regressions for apps using the port pool before they
instanciate the BMediaRoster.

Change-Id: I887dbc590d8ee9de391b6eae0206944bfe99325f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1897
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 472d26a3 16-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Media Kit: Delete the PortPool in a more deliberate way

Letting it get deleted statically can cause segfaults since it is needed for
some final quit messages.

This mimic changes Axel made for the DormantNodeManager and
TimeSourceObjectManager.

I also pulled PortPool into its own file and header.

Fixes #15135.

Change-Id: Ie64753e1876d58b52f7cb95536c6be3df2e6d40c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1721
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 2c4232b8 14-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMediaRoster: Mark publishing areas as cloneable.


# 964cab46 10-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

media: Set B_CLONEABLE_AREA where applicable.

Cloning cloned buffers seems especially strange, but
apparently it is actually done. The buffer management
code really needs to be cleaned up...


# b84955d4 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media: Remove debug.h, finalize MediaDebug.h

* Funny rust from 0 AD.


# 12ed45b6 18-May-2018 Murai Takashi <tmurai01@gmail.com>

Media kit: Suppress -Werror=class-memaccess

* Add media_format::Clear(), media_format::Unflatten().
* Replace memset() with media_format::Clear()
* Replace memcpy() with media_format::Unflatten()

Fix #14156

Change-Id: I38ebc2de4915b954a15b6f4f6b40d016506910e5


# 11ed4f9f 25-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't call NodeRegistered before FinishCreate

* A TimeSource need an additional hook called FinishCreate to be
able to create it's transfer area. This hook was called after the
node registration making room for potential mismatch of the transfer
buffer. Most media nodes such as an event looper call
begin to work with time related functions just once the registration
happens. It could cause shadowed timesource objects initialization
to fail too.
* Add a debugger call to prevent any node to use an unitialized
TimeSource area, that would help to identify any remaining issue.


# 34619a6f 16-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Revert "MediaRoster: Don't allow rosters without a BApplication"

This reverts commit f3c2f6665f2102f7bfac9374712444271e383668.


# f3c2f666 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't allow rosters without a BApplication

* The BeBook states that any media_kit app should have BApplication
behind. Beware the app don't need to be running, but the object
should be present. This is because we use BApplication as a safe
exit point to free the memory allocated.
* While I was a bit reclutant in doing that, after a developer
discussion we agreed this would be the cleaner way to solve this
problem without eluding it.


# ad7255c8 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Use messaging instead to call Quit on exit

* As far as the bebook states loopers shouldn't be quit from
other threads, using a B_QUIT_REQUESTED message should be more
safe.


# 2ceb090f 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Follow up fix to use only portable codes

* My previous commit fixed x86_64 but broke all other archs.


# f4ba347b 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix debug printf werrors

* When debugging was enabled in the media_kit those were
causing the build to fail complaining about werrors.


# 6d63bc5e 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: Use BLaunchRoster::Start

* Remove SyncToServices and the related code from BMediaRoster.


# e4704eb6 22-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaDefs/MediaRoster: Increase code consistency

* Also fix a possible issue with List::Get, the code returned
after a Get() error. While I doubt if this happens the next
items will be still valid, I prefer to continue until we reach
the end of the items, and in case of a SyncToRoster request we will
at least get the list empty. We might have a blocking call
on the other end, so it's our own duty to at least try to avoid
this in any case. As final result at least we will get the list
empty.


# 76889670 21-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Finalize rework of synchronization

* When the user isn't requesting a custom notification, it will
be a BMediaRoster job to do it.
* Reintroduce BMediaRoster::SyncToServices, this time based on local
message passing rather than a global semaphore.
* SyncToServices is used in launch_media_server to make the process
more launch_daemon safe and faster in the average case.
* It was an error to add notifications in the media_server.
* Fixes #12717.


# 11c7bd86 04-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Replace synchronization semaphore with async messages

* Remove SyncToServices, I will probably readd it in future
but this time using a local synchronization service more than
relying on the media_server to release the semaphore.
* Due to some discussions today in mailing list I decided
to step back and retry the initial way to notify media rosters
about media services status. It is woking by using two different
notifications for reconnecting to the media_server and notifying
the local subscribers.
* This speed up the media services restart.
* Sorry for the noise and very thanks for reviewing my code to
everyone.


# 53c3fa51 02-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce functionality for syncing with the media services

* The global synchro semaphore is provided with the purpose of
being used to avoid threads lock up when the media_server is in
an undefined state. There's still room for improvements.
* BMediaRoster::SyncToServices lock up on a semaphore until
the multi_audio correctly connected to the mixer.


# ec02769a 06-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Replace ping/pong with notifications


# 226be011 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: General maintainance

* Move !missing_symbols.cpp in the legacy directory.
* Move useless methods in a Deprecated.cpp file.
* SetRealtimeFlags / GetRealtimeFlags are useless, they
don't make sense nowadays.
* The symbols are anyway preserved.


# 6423f87f 19-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reference count polishment

* BMediaNode is registering it's presence to the roster.
* Only addons needs their configuration to be saved.


# 67060664 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Allow BMediaRoster to log local nodes

* BMediaRoster is now capable to know which nodes are
instantiated in this team. This is also a first step to make
them survive after media_server crashes.
* A control at BMediaRoster::Quit can notify if all nodes
were correctly released. Ideally at this point the local nodes
list should be empty.


# 05962bb1 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add a way to register loopers for quit

* BApplication can now take the job to quit a BLooper at
the application quit. It's rejecting requests from windows too.
* BMediaRoster is using now this service in conjunction with the
MediaRosterUndertaker.
* The BeBook specify that we should have a valid BApplication
before to instantiate the BMediaRoster. While in theory we should
add a debugger call when this situation happens, in pratice this
might lead to more problems. For example libraries might use the
media_kit and create a BApplication object, but they aren't
applications, this is a design problem. So I decided to replace it
with a TRACE call for the moment.


# 38e3fbe3 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Remove possibly confusing debug prints

* Thanks to Axel and Rene for reviewing!


# 7d337b23 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.


# 48b2cb37 29-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Pass unhandled messages to the base class

* While it shouldn't be a big problem, the bebook states
that it's very important to do so.


# d15321ff 28-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster::Roster Use BAutolock


# 6ca16f31 08-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit: Style fixes


# 1ce097db 30-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Wait with more calm for services to be up.

* Needed to avoid the app restarting things too fast. This
is a problem that should be solved, added a TODO.


# 40de3cd1 27-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Definitely undertake the MediaRosterUndertaker

* On a more deep analysis i figured out that other than being
a bad pratice quitting the BLooper explicitly was cause of
more problems, such as the regression after my patches which
led to have a zombie media_addon_server after media services
restart. This should hopefully place a final stone on the
BMediaRoster::Quit() issue as with the previous commit
i've removed every attempt to do this in the system. For
any application developer listening, this means that quitting
the BMediaRoster is highly discouraged, don't do it.


# d009f286 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix style as suggested in ml


# 32afe10a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

* This is done by watching to registrar notifications
and providing a minimal service to contact the
media roster in private API. The roster use this
service to automatically reconnect to the media_server.


# e57acc3a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Fix initialization and destruction

* Improve consistency by adding a BMediaRosterEx destructor
and using it for the specular functionality of ctor instead
to use the father's class destructor.
* Avoid double initialization of MediaInitializer that
becomes MediaRosterUndertaker.
* Remove superfluos call to BMediaRoster::Quit()
in media_addon_server.


# 67483eda 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add BMediaRoster::IsRunning

* This function is provided to check
if media services are running.


# c079d8d6 12-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetNodeAttributesFor


# b6f0f884 10-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetFileFormatsFor


# 42d17c1a 18-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add more checking for BFileInterface related methods

* Validity of node and correct kind are now checked.


# 75486484 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::SyncToNode


# 7bcdb362 24-May-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Improve BTimeSource slave nodes management

The media_server is now able to remember the timesource associated to
a certain registered_node and always remove it when the owner
application crash, Fixes Ticket #11852


# 14896b93 07-Jan-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::RollNode().

Fixes #9083.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>


# cb2c4f8d 25-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Convert more printf to TRACE in media kit.


# 84da57fd 23-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaRoster: remove another message to app stdout.


# 179c6ec2 23-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove some traces sent to application stdout.

* This may be fine in media server where it lands in logs, but certainly
not when the code is run in applications.
* Helps with all media-related webkit tests.


# df612ac9 13-Dec-2013 Rene Gollent <rene@gollent.com>

Fix #10302.

- In the case of an error while unflattening, BMediaRoster::GetParameterWebFor()
would allocate a new parameter web object into the passed in web pointer, and
then delete it again. This would result in the desklink MixerControl object having
a bogus pointer in its fParameterWeb member, leading to a crash. As such, create
the object in a local variable first, and only overwrite the passed in pointer on
success. Furthermore, explicitly reset said pointer to NULL in desklink on failure,
as _Disconnect() tries to delete it unconditionally.


# 4c125cca 11-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kits/media: CPU clock speed may vary significantly


# c74afb57 19-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

try to avoid a media_addon_server crash on quit (bug #5863).

* BMediaRosterEx::ReleaseNodeAll(): if media_server isn't available,
try to contact the node locally.
* BMediaRoster::UnregisterNode(): if media_server isn't available,
try to get the addon_id from the local node.
* BMediaNode::AddOn() as a pure virtual methode isn't available in the
BMediaNode destructor. Workaround that by calling UnregisterNode()
in DeleteHook() instead of the destructor.
* MediaAddonServer::_DestroyInstantiatedFlavors(): give time to each
flavor to clean up.


# 332cc6bc 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

64 bit fixes for libmedia.so, ActivityMonitor, and Sudoku.

* Alex, I feel your pain :-)


# e817f41e 28-Jan-2012 Fredrik Modéen <fredrik@modeen.se>

Fixing debug in Media Kit.

* Only fixing debug i the media kit.
* Help with ASSERT(flavorID == testFlavorID) would be nice, don't know what ASSERT do.


# 6aee58a4 17-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* Revert the reverse the addons iteration of r35121.
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0a1eb2d 05-Jan-2010 Axel Dörfler <axeld@pinc-software.de>

* The static object construction and destruction is no longer random, but takes
the internal dependencies into account. This should fix bugs #5166, #5120,
and #5150.
* Also, the time source object manager, as well as the dormant node manager
are now recreated on media roster restart (when the media server is
restarted).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34906 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6813f2c7 10-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Debug mode build fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34619 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cafce94 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved the port pool into the new request_data.cpp file; it's no longer
accessible from the outside.
* Instead, request_data now retrieves/releases a reply port on its own.
* There were some more places that still used write_port()/read_port() instead
of QueryServer().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4c87231 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Renamed the xfer_* structures to fit the rest, and let them inherit from the
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
duplicating them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fcbc547 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34593 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c3b4706 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up the node manager, got rid of its use of Map, and List.
* Fixed at least two reference counting problems, but nodes from killed teams
still remain alive (will look into this at a later point).
* GetLiveNodes() is now using transfer_area() as well.
* Made all sizes in the SendTo*() and Query*() functions size_t.
* Replaced reinterpret_casts with static_casts when casting void pointers.
* Ordered the request/reply structures by target.
* Tried to consolidate the use of add_on vs. addon.
* More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4ec236c 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Got rid of Map use in TimeSourceObjectManager.
* Renamed global variable _TimeSourceObjectManager to gTimeSourceObjectManager.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9834d875 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote PortPool, and put it into the BPrivate namespace.
* Renamed global variable _PortPool to gPortPool.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34540 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29bb91d6 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up DormantNodeManager.
* Renamed global variable _DormantNodeManager to gDormantNodeManager.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f9ed888 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* The SharedBufferList is now only cloned once in a team, no longer once for
each buffer, and once for each buffer group.
* Also, SharedBufferList::Get() now gets the area to clone from itself, if
necessary, the caller no longer has to provide it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dec2310 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

Sorry for this large commit in advance; it's not really possible to divide this
into smaller parts:

media_addon_server:
* Removed (broken) use of (broken and inefficient) home-brewn Map, and List
classes. This also fixes a crash on shutdown when used with the malloc_debug
implementation. It's using stl::vector, and stl::map now instead.

_shared_buffer_list:
* Renamed _shared_buffer_list to SharedBufferList, and put it into the BPrivate
namespace. Also, made a class out of it.
* Separated shared buffer list creation from cloning.
* Enlarged maximum number of buffers to something that is not that evil, but
actually uses the space it has (ie. is a useful multiple of
shared_buffer_info that fills a multiple of B_PAGE_SIZE as much as possible).
* No longer drops into the debugger if the
* The list that is currently used is very inefficient for the features it
provides though (no change there).

_buffer_id_cache:
* Renamed to BufferCache, and put it into the private namespace
* It now deletes its buffers on deletion; since the BBufferConsumer will be
gone, too, at this point, there is little chance that there are still buffers
in use.
* Also, it's now using std::map instead of the (see above) Map class.

BBuffer:
* Got rid of the fBufferID member.

Misc.:
* Got rid of the global "team" variable; the media kit is now using the
private app kit's current_team() now.
* Added a lot of missing error checks (mostly memory allocations).
* Renamed fields like "flavorid" to flavor_id, renamed "dfi_*" fields to
something more detailed.
* Moved ServerInterface.h from src/servers/media/ to headers/private/media.
* Notifications.h was not self contained.
* Added missing licenses.
* Lots of cleanups, and coding style fixes.

What this doesn't fix:
* Bug #4954 which started all this (this comes next, though)
* Deinitialization is broken, as the PortPool is uninitialized too early, and
still used afterwards.
* The strange add-on monitoring code in the media_addon_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 791a4a77 27-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed building with tracing on...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f7f87a2 12-May-2009 David McPaul <dlmcpaul@gmail.com>

sigh

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 05f452c3 12-May-2009 David McPaul <dlmcpaul@gmail.com>

Implement SniffRef

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ecccf18 24-Apr-2009 François Revol <revol@free.fr>

Fix debug build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30369 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34c72144 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* BParameterWeb::StartWatching() now just calls BMediaRoster::StartWatching()
as on Dano - since the functionality is already there, those two functions
aren't really needed, though, so we could remove them again.
* Cleaned up DataExchange.h, and added basic reply/request structs for anything
that needs an area.
* BControllable now uses a helper class ReceiveTransfer to deal with requests
with areas.
* Major style cleanup of MediaRoster.cpp, though one could still bury some
hours there...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30045 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a74d9260 26-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7fb4c16 09-Apr-2008 Maurice Kalinowski <mauricek@nowhere.fake>

fix some gcc4 related warnings...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24879 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6938364b 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* Implemented BMediaRoster hooks GetRefFor, SetRefFor, SniffRefFor to access BFileInterface related file functions.
* Implemented BFileInterface class which was nearly empty so far. Added handling of messages passed to BFileInterface class.
* Added needed structs and message values to DataExchange.
* This is needed to get for instance the reader.media_addon to work. Usually one calls above functions to set a file to be decoded by the node. If the target is a consumer, they are used for setting the target for encoding data.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 999cd0ac 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* implemented BMediaRoster::StartControlPanel(). It queries a BControllable node with CONTROLLABE_START_CONTROL_PANEL message and returns the result to the caller (thx for help/suggestions from Marcus here). Needed to add appropiate structs and message value to DataExchange.h
* implemented BControllable::StartControlPanel(). The behaviour is supposed to be the one documented in the BeBook, meaning that it first checks if the BControllable node has been instantiated over an BMediaAddOn. If so, we investigate where the addon is located and try to launch it. Thus media_addons which have a control panel need to be compiled as an Application, not as an Addon. See r24664 as an example.
* inside BControllable::HandleMessage() call StartControlPanel for the message.
* MediaNodes having such a ControlPanel are rarely used as parameterwebs should provide you everything. But for instance the vst MediaAddOn uses it and some others do as well.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24665 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9def3bf7 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Rewrote MediaRoster.h
* Removed appearantly unused satic variables. Hope this does not break
binary compatibility, going to test.
* There are three more private methods, which could probably be removed
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a715f908 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Use new (std::nothrow), check for out of memory conditions and report them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b940bb4 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Set the global BMediaRoster instance pointer to NULL in the destructor,
the DefaultDeleter is not the only situation in which the instance might
be deleted, a client app can also call Quit() on the BMediaRoster instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24556 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8056f0db 20-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Failing to find an add-on for a BMediaNode could simply mean that the
node was instantiated by an application, therefor it is not an error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31cf24c1 21-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

debugging instrumentation for Cortex lockup bug (some weeks old already)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22029 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 286a3c91 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

implemented ResolveSpecifier and GetSupportedSuites


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab9afde3 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17556 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65b73ae4 06-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a Disconnect() method with simpler parameter list.
Added more error checking to Connect() and Input/Output publishing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8496c38a 26-Feb-2005 beveloper <beveloper@nowhere.fake>

MediaRoster::Roster() now sets out_error to B_OK if everything is OK


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcfb6bfc 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Constructor for BMediaRosterEx


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df6c2e83 28-Jan-2004 beveloper <beveloper@nowhere.fake>

better buffer size suggestion


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb1d6ef2 27-Dec-2003 beveloper <beveloper@nowhere.fake>

raw decoder supports many samples types now, and support for them
has been added to the file readers, you can now play 24 bit integer
or 64 bit floating point files


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc8b28b6 08-Dec-2003 Jérôme Duval <korli@users.berlios.de>

Implemented GetStartLatency


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b65a0ac5 05-Dec-2003 Jérôme Duval <korli@users.berlios.de>

fixes GetFreeOutputs/Inputs and GetConnectedOutputs/Inputs (cortex now reports correctly the connections with the mixer)
implements GetInitialLatency (untested)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b9700ad 17-Nov-2003 Jérôme Duval <korli@users.berlios.de>

GetInstancesFor must accept a NULL iocount and consider it as 1


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92e575c1 09-Sep-2003 beveloper <beveloper@nowhere.fake>

Moved system time source code into media_addon_server.
It is now a real node.
Shadow timesources finally have the correct control port id.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d2d96e0 07-Sep-2003 beveloper <beveloper@nowhere.fake>

new functions that work with pointer to the node, instead of sending messages
this should avoud deadlocks during execution of RegisterNode()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d91580cd 30-Aug-2003 beveloper <beveloper@nowhere.fake>

removed/fixed warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ac4fbd7 19-Jun-2003 beveloper <beveloper@nowhere.fake>

clean up of debugging functions
FATAL is now replaced by ERROR and active at DEBUG=1 or above
TRACE is active at 2 or above
PRINT(level, ...) can be used for DEBUG= level or abode
INFO is removed


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3578 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 908eaf85 05-Jun-2003 beveloper <beveloper@nowhere.fake>

removed ASSERT


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69983609 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed format negotiation and added some more debug output


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f180ef79 02-Jun-2003 beveloper <beveloper@nowhere.fake>

Fixed crash in Cortex caused by BMediaRoster::MakeTimeSourceFor()
returning NULL when asked for the system time source.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3400 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4295907b 01-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed (hopefully) all latency bugs
fixed BMediaRoster::MakeTimeSourceFor()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5917dd5b 01-Jun-2003 beveloper <beveloper@nowhere.fake>

various timing related bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bedd42c 29-May-2003 beveloper <beveloper@nowhere.fake>

many fixes to improve timing


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21871f38 25-May-2003 beveloper <beveloper@nowhere.fake>

various bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f09fa2f 25-May-2003 beveloper <beveloper@nowhere.fake>

various small bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 359ac306 25-May-2003 beveloper <beveloper@nowhere.fake>

Added automatic loading of physical input and output nodes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 255a01c7 14-Apr-2003 beveloper <beveloper@nowhere.fake>

Added a new license to this file, as I'm the author.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3068 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28ad138a 23-Mar-2003 beveloper <beveloper@nowhere.fake>

Implemented BMediaRoster::GetParameterWebFor().
Unfortunately, BParameterWeb flattening seems to be broken.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 60f15390 22-Mar-2003 beveloper <beveloper@nowhere.fake>

a couple of fixes regarding latency calculation


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 626824ea 21-Mar-2003 beveloper <beveloper@nowhere.fake>

Added reference counting of media add-on instances.
You can't create more node instances than "possible_count".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 73794717 17-Mar-2003 beveloper <beveloper@nowhere.fake>

OBEY possible_count


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54187cc6 15-Mar-2003 beveloper <beveloper@nowhere.fake>

Global nodes can mow be released by the teams which created them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86bce45b 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Removed time sourced from reference counting.
Releasing nodes works now, except if they have been instanciated globally.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2920 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf4e2277 14-Mar-2003 beveloper <beveloper@nowhere.fake>

fixing BMediaRoster::ReleaseNode()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b04ffc1 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Reorganized BMediaRoster support functions.
Improved dormant node support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40f36b03 11-Mar-2003 beveloper <beveloper@nowhere.fake>

some cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2895 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e21b167 06-Jan-2003 beveloper <beveloper@nowhere.fake>

time sources now publish and retrieve timing information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2372 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aac800c2 06-Jan-2003 beveloper <beveloper@nowhere.fake>

added SetTimeSourceFor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 835140c8 05-Jan-2003 beveloper <beveloper@nowhere.fake>

better time source support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2356 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 287f7492 02-Jan-2003 beveloper <beveloper@nowhere.fake>

more time source function...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2353 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 618b1338 10-Dec-2002 beveloper <beveloper@nowhere.fake>

cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2220 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76669a29 08-Dec-2002 beveloper <beveloper@nowhere.fake>

changed use of port communication, debugging functions, map, list and stack


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 353b9f6b 02-Dec-2002 beveloper <beveloper@nowhere.fake>

changed map and list templates to be more useable, however, they will
be rewritten soon. Changed debugging macros and use of them, too.
Also replaced the linked lists in the BufferManager (which were complicated,
but working ok) with template based ones.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6396865d 19-Nov-2002 beveloper <beveloper@nowhere.fake>

added automatic media_addon_server launching and termination.
added detection of and cleanup after application crashes.
if the media_addon_server crashes, it will be restarted.
removed preleminary volume control functions.
removed unneeded media_server functions.
changed application registration to use port based messaging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2027 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfb2ad61 03-Nov-2002 beveloper <beveloper@nowhere.fake>

code cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1833 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 570f7d04 10-Oct-2002 beveloper <beveloper@nowhere.fake>

updated to include the same features/bugs as the screenshot in today's news.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1299bfb2 08-Oct-2002 beveloper <beveloper@nowhere.fake>

added real media_server node management, removed bugs, added debug output


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85dfab2b 05-Oct-2002 beveloper <beveloper@nowhere.fake>

even more BMediaRoster functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9e9417d2 05-Oct-2002 beveloper <beveloper@nowhere.fake>

more BMediaRoster functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1381 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b41a96 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed memory leak


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0caff283 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed some bugs, test program works again


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3620737c 03-Oct-2002 beveloper <beveloper@nowhere.fake>

added more BMediaRoster functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5edd2016 02-Oct-2002 beveloper <beveloper@nowhere.fake>

removed some warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1355 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63ffaa3e 02-Oct-2002 beveloper <beveloper@nowhere.fake>

some last minute changes...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c6a6096 02-Oct-2002 beveloper <beveloper@nowhere.fake>

rewrote BMediaRoster::Connect() and a few related functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e66fda40 02-Oct-2002 beveloper <beveloper@nowhere.fake>

finished notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4925104 01-Oct-2002 beveloper <beveloper@nowhere.fake>

changed media kit internal messaging and notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 042847af 29-Aug-2002 beveloper <beveloper@nowhere.fake>

some more changes to the notification support. still not finished.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eae26d3d 22-Aug-2002 beveloper <beveloper@nowhere.fake>

Start adding notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@854 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16b7eea4 13-Aug-2002 beveloper <beveloper@nowhere.fake>

Add some experimental media add-on instantiating support, more debugging and bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@744 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6de9d11 12-Jul-2002 beveloper <beveloper@nowhere.fake>

removed compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@138 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0207628 11-Jul-2002 beveloper <beveloper@nowhere.fake>

finally get libmedia.so building :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a483e72 11-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed includes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@86 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38e3fbe3892110c7526db6037cb701fb4e4e0e41 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Remove possibly confusing debug prints

* Thanks to Axel and Rene for reviewing!


# 7d337b23b7a962caac04e6e5b8a03a35b9591394 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.


# 48b2cb377123257347d43438525b04504ce04b68 29-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Pass unhandled messages to the base class

* While it shouldn't be a big problem, the bebook states
that it's very important to do so.


# d15321ff907a1203836c9f5ecedd977fe1d9720a 28-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster::Roster Use BAutolock


# 6ca16f31cb3977a020516f46726968526c228158 08-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit: Style fixes


# 1ce097dbb0577074ada08fefb78df51a76c2ab08 30-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Wait with more calm for services to be up.

* Needed to avoid the app restarting things too fast. This
is a problem that should be solved, added a TODO.


# 40de3cd148f2d8edbf4b60bd2221c43f267fea5a 27-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Definitely undertake the MediaRosterUndertaker

* On a more deep analysis i figured out that other than being
a bad pratice quitting the BLooper explicitly was cause of
more problems, such as the regression after my patches which
led to have a zombie media_addon_server after media services
restart. This should hopefully place a final stone on the
BMediaRoster::Quit() issue as with the previous commit
i've removed every attempt to do this in the system. For
any application developer listening, this means that quitting
the BMediaRoster is highly discouraged, don't do it.


# d009f2861397a85c95776afb615ff2c6f50723f8 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix style as suggested in ml


# 32afe10ab298b543622ea2089f5fa404c83788ae 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

* This is done by watching to registrar notifications
and providing a minimal service to contact the
media roster in private API. The roster use this
service to automatically reconnect to the media_server.


# e57acc3a990689adc3d230f877bb98ca979aeac0 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Fix initialization and destruction

* Improve consistency by adding a BMediaRosterEx destructor
and using it for the specular functionality of ctor instead
to use the father's class destructor.
* Avoid double initialization of MediaInitializer that
becomes MediaRosterUndertaker.
* Remove superfluos call to BMediaRoster::Quit()
in media_addon_server.


# 67483edabd465c8889dc8ffd2bf7d820e424952a 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add BMediaRoster::IsRunning

* This function is provided to check
if media services are running.


# c079d8d6d9048763ce2daab04f7d9474711775c8 12-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetNodeAttributesFor


# b6f0f884326256fa8a22d61eaff9691f7014b367 10-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::GetFileFormatsFor


# 42d17c1aa0afc2690e5fa456ba3995f470852458 18-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add more checking for BFileInterface related methods

* Validity of node and correct kind are now checked.


# 75486484201a2b4ebbffc34d868679d270b0f170 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::SyncToNode


# 7bcdb3624951ebf640098d2a860cef7d9557e1df 24-May-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Improve BTimeSource slave nodes management

The media_server is now able to remember the timesource associated to
a certain registered_node and always remove it when the owner
application crash, Fixes Ticket #11852


# 14896b937ac8d8934f52425da50a8dbbee884599 07-Jan-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaRoster::RollNode().

Fixes #9083.

Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>


# cb2c4f8d443128d13ec3894a31867c4fce24f76d 25-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Convert more printf to TRACE in media kit.


# 84da57fd56b57a334ee640f570dd166b003b3d41 23-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaRoster: remove another message to app stdout.


# 179c6ec2fd0886dc6560f6c79f77e109e2ce13d7 23-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove some traces sent to application stdout.

* This may be fine in media server where it lands in logs, but certainly
not when the code is run in applications.
* Helps with all media-related webkit tests.


# df612ac9b3f05f1f2ddfd5dfd4891f956759e3db 13-Dec-2013 Rene Gollent <rene@gollent.com>

Fix #10302.

- In the case of an error while unflattening, BMediaRoster::GetParameterWebFor()
would allocate a new parameter web object into the passed in web pointer, and
then delete it again. This would result in the desklink MixerControl object having
a bogus pointer in its fParameterWeb member, leading to a crash. As such, create
the object in a local variable first, and only overwrite the passed in pointer on
success. Furthermore, explicitly reset said pointer to NULL in desklink on failure,
as _Disconnect() tries to delete it unconditionally.


# 4c125ccacd874f5c68851184e2d6f965087b5df0 11-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kits/media: CPU clock speed may vary significantly


# c74afb578a4715d2184a620511e49174a4642690 19-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

try to avoid a media_addon_server crash on quit (bug #5863).

* BMediaRosterEx::ReleaseNodeAll(): if media_server isn't available,
try to contact the node locally.
* BMediaRoster::UnregisterNode(): if media_server isn't available,
try to get the addon_id from the local node.
* BMediaNode::AddOn() as a pure virtual methode isn't available in the
BMediaNode destructor. Workaround that by calling UnregisterNode()
in DeleteHook() instead of the destructor.
* MediaAddonServer::_DestroyInstantiatedFlavors(): give time to each
flavor to clean up.


# 332cc6bc3b696473169bb9e43340b69a0a3fc4f1 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

64 bit fixes for libmedia.so, ActivityMonitor, and Sudoku.

* Alex, I feel your pain :-)


# e817f41e8ba504627f07bf491a1112a50de94e44 28-Jan-2012 Fredrik Modéen <fredrik@modeen.se>

Fixing debug in Media Kit.

* Only fixing debug i the media kit.
* Help with ASSERT(flavorID == testFlavorID) would be nice, don't know what ASSERT do.


# 6aee58a4cb26a848cad1f4343af8597baa144df0 17-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* Revert the reverse the addons iteration of r35121.
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0a1eb2dba3c1a4703f1b9f43292f6383358caf0 05-Jan-2010 Axel Dörfler <axeld@pinc-software.de>

* The static object construction and destruction is no longer random, but takes
the internal dependencies into account. This should fix bugs #5166, #5120,
and #5150.
* Also, the time source object manager, as well as the dormant node manager
are now recreated on media roster restart (when the media server is
restarted).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34906 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6813f2c744cb144725cf9ea9e91cdd1764cd5d22 10-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Debug mode build fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34619 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cafce94b533adc869d1958cdc4cb6db178f65c6 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved the port pool into the new request_data.cpp file; it's no longer
accessible from the outside.
* Instead, request_data now retrieves/releases a reply port on its own.
* There were some more places that still used write_port()/read_port() instead
of QueryServer().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4c87231a37d9ec8cb923c61af6995b0622218dc 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Renamed the xfer_* structures to fit the rest, and let them inherit from the
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
duplicating them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fcbc5470bd4b35b8cfd68402e8dd61139d61bc1 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34593 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c3b4706dd3ed8f9896031973852735223be485c 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up the node manager, got rid of its use of Map, and List.
* Fixed at least two reference counting problems, but nodes from killed teams
still remain alive (will look into this at a later point).
* GetLiveNodes() is now using transfer_area() as well.
* Made all sizes in the SendTo*() and Query*() functions size_t.
* Replaced reinterpret_casts with static_casts when casting void pointers.
* Ordered the request/reply structures by target.
* Tried to consolidate the use of add_on vs. addon.
* More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4ec236cadd00d397522bd3ddccb61254df5e08a 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Got rid of Map use in TimeSourceObjectManager.
* Renamed global variable _TimeSourceObjectManager to gTimeSourceObjectManager.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9834d875d0b708296a98ce776cca2b96a1717b2b 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote PortPool, and put it into the BPrivate namespace.
* Renamed global variable _PortPool to gPortPool.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34540 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29bb91d6e5a32fc04749f5f4ef868be0a7d750b7 07-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleaned up DormantNodeManager.
* Renamed global variable _DormantNodeManager to gDormantNodeManager.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f9ed888a24130579b97509580f351ce2620c9b8 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* The SharedBufferList is now only cloned once in a team, no longer once for
each buffer, and once for each buffer group.
* Also, SharedBufferList::Get() now gets the area to clone from itself, if
necessary, the caller no longer has to provide it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9dec23104287e2fd592cc14148b43fb28a6e1d8e 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

Sorry for this large commit in advance; it's not really possible to divide this
into smaller parts:

media_addon_server:
* Removed (broken) use of (broken and inefficient) home-brewn Map, and List
classes. This also fixes a crash on shutdown when used with the malloc_debug
implementation. It's using stl::vector, and stl::map now instead.

_shared_buffer_list:
* Renamed _shared_buffer_list to SharedBufferList, and put it into the BPrivate
namespace. Also, made a class out of it.
* Separated shared buffer list creation from cloning.
* Enlarged maximum number of buffers to something that is not that evil, but
actually uses the space it has (ie. is a useful multiple of
shared_buffer_info that fills a multiple of B_PAGE_SIZE as much as possible).
* No longer drops into the debugger if the
* The list that is currently used is very inefficient for the features it
provides though (no change there).

_buffer_id_cache:
* Renamed to BufferCache, and put it into the private namespace
* It now deletes its buffers on deletion; since the BBufferConsumer will be
gone, too, at this point, there is little chance that there are still buffers
in use.
* Also, it's now using std::map instead of the (see above) Map class.

BBuffer:
* Got rid of the fBufferID member.

Misc.:
* Got rid of the global "team" variable; the media kit is now using the
private app kit's current_team() now.
* Added a lot of missing error checks (mostly memory allocations).
* Renamed fields like "flavorid" to flavor_id, renamed "dfi_*" fields to
something more detailed.
* Moved ServerInterface.h from src/servers/media/ to headers/private/media.
* Notifications.h was not self contained.
* Added missing licenses.
* Lots of cleanups, and coding style fixes.

What this doesn't fix:
* Bug #4954 which started all this (this comes next, though)
* Deinitialization is broken, as the PortPool is uninitialized too early, and
still used afterwards.
* The strange add-on monitoring code in the media_addon_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 791a4a7774f3d84a75ca09c173997bdcbb368a68 27-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed building with tracing on...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f7f87a2ac2560680b976f4f21b361a163dd8ffb 12-May-2009 David McPaul <dlmcpaul@gmail.com>

sigh

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 05f452c37c54460055f136df7e26285c3e6169df 12-May-2009 David McPaul <dlmcpaul@gmail.com>

Implement SniffRef

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ecccf181e7244f969dc99a33f84193af7d83a7f 24-Apr-2009 François Revol <revol@free.fr>

Fix debug build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30369 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34c721444214fe3e783ecc57b3eb4627b1a18b77 08-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* BParameterWeb::StartWatching() now just calls BMediaRoster::StartWatching()
as on Dano - since the functionality is already there, those two functions
aren't really needed, though, so we could remove them again.
* Cleaned up DataExchange.h, and added basic reply/request structs for anything
that needs an area.
* BControllable now uses a helper class ReceiveTransfer to deal with requests
with areas.
* Major style cleanup of MediaRoster.cpp, though one could still bury some
hours there...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30045 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a74d92608dde5b000f147cbd14a59b75488c5267 26-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7fb4c16b62bd264d73e82aa7bfa5eabf9898f1f 09-Apr-2008 Maurice Kalinowski <mauricek@nowhere.fake>

fix some gcc4 related warnings...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24879 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6938364b3992fe594a30cc4ec76ca0bd5f951886 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* Implemented BMediaRoster hooks GetRefFor, SetRefFor, SniffRefFor to access BFileInterface related file functions.
* Implemented BFileInterface class which was nearly empty so far. Added handling of messages passed to BFileInterface class.
* Added needed structs and message values to DataExchange.
* This is needed to get for instance the reader.media_addon to work. Usually one calls above functions to set a file to be decoded by the node. If the target is a consumer, they are used for setting the target for encoding data.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 999cd0acee12d10de95b90f2aaa29e5aaffba58d 29-Mar-2008 Maurice Kalinowski <mauricek@nowhere.fake>

* implemented BMediaRoster::StartControlPanel(). It queries a BControllable node with CONTROLLABE_START_CONTROL_PANEL message and returns the result to the caller (thx for help/suggestions from Marcus here). Needed to add appropiate structs and message value to DataExchange.h
* implemented BControllable::StartControlPanel(). The behaviour is supposed to be the one documented in the BeBook, meaning that it first checks if the BControllable node has been instantiated over an BMediaAddOn. If so, we investigate where the addon is located and try to launch it. Thus media_addons which have a control panel need to be compiled as an Application, not as an Addon. See r24664 as an example.
* inside BControllable::HandleMessage() call StartControlPanel for the message.
* MediaNodes having such a ControlPanel are rarely used as parameterwebs should provide you everything. But for instance the vst MediaAddOn uses it and some others do as well.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24665 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9def3bf783b77ea0cf7507b5069f2ad80d0f33f7 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Rewrote MediaRoster.h
* Removed appearantly unused satic variables. Hope this does not break
binary compatibility, going to test.
* There are three more private methods, which could probably be removed
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a715f908f20aac168294d1344248f8350a514653 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Use new (std::nothrow), check for out of memory conditions and report them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b940bb4003c9d5aa11a373cd6dbc60106862257 24-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Set the global BMediaRoster instance pointer to NULL in the destructor,
the DefaultDeleter is not the only situation in which the instance might
be deleted, a client app can also call Quit() on the BMediaRoster instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24556 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8056f0db1987e02e16d666396be985fec376fcb7 20-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

* Failing to find an add-on for a BMediaNode could simply mean that the
node was instantiated by an application, therefor it is not an error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24500 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31cf24c13e5291294cfe8b3aa33e190db299bb11 21-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

debugging instrumentation for Cortex lockup bug (some weeks old already)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22029 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 286a3c912ade4f65e7778a8b56565a7ee72d3d33 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

implemented ResolveSpecifier and GetSupportedSuites


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab9afde3054ea74bb047fcb56eeedcaa3baf47a8 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

removed debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17556 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65b73ae4f2341bbdef6e9ab1f9893327ffacd2fb 06-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a Disconnect() method with simpler parameter list.
Added more error checking to Connect() and Input/Output publishing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8496c38a3de20dae2d827969eb08d4b7f58a6fac 26-Feb-2005 beveloper <beveloper@nowhere.fake>

MediaRoster::Roster() now sets out_error to B_OK if everything is OK


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11499 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcfb6bfcd554a35dab4c8997d1258bbd9ff6fc0f 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Constructor for BMediaRosterEx


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df6c2e833f142ccaaeded453494e3522f23ac233 28-Jan-2004 beveloper <beveloper@nowhere.fake>

better buffer size suggestion


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bb1d6ef24727b9ee47843143658cd807f290e90c 27-Dec-2003 beveloper <beveloper@nowhere.fake>

raw decoder supports many samples types now, and support for them
has been added to the file readers, you can now play 24 bit integer
or 64 bit floating point files


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc8b28b6e12d86de8fb9f07ac4fe9ed4ebe2698c 08-Dec-2003 Jérôme Duval <korli@users.berlios.de>

Implemented GetStartLatency


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b65a0ac50e8a004f1af5be2e7a3b799ec7c789f6 05-Dec-2003 Jérôme Duval <korli@users.berlios.de>

fixes GetFreeOutputs/Inputs and GetConnectedOutputs/Inputs (cortex now reports correctly the connections with the mixer)
implements GetInitialLatency (untested)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b9700ad24da48152e2bf21ffe8feba34380c2c9 17-Nov-2003 Jérôme Duval <korli@users.berlios.de>

GetInstancesFor must accept a NULL iocount and consider it as 1


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92e575c103c50b3795b6a68aa9c4aeb7420e5a22 09-Sep-2003 beveloper <beveloper@nowhere.fake>

Moved system time source code into media_addon_server.
It is now a real node.
Shadow timesources finally have the correct control port id.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d2d96e05072ba2d618a68538af2faf98b1e2ae4 07-Sep-2003 beveloper <beveloper@nowhere.fake>

new functions that work with pointer to the node, instead of sending messages
this should avoud deadlocks during execution of RegisterNode()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4544 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d91580cd9a9f39e74f086d5ca31d997a56c111a9 30-Aug-2003 beveloper <beveloper@nowhere.fake>

removed/fixed warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4418 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ac4fbd70dc5b5387cc80965de796deb820d4f05 19-Jun-2003 beveloper <beveloper@nowhere.fake>

clean up of debugging functions
FATAL is now replaced by ERROR and active at DEBUG=1 or above
TRACE is active at 2 or above
PRINT(level, ...) can be used for DEBUG= level or abode
INFO is removed


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3578 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 908eaf852b2938011506035a6d8a948dbff3d9c4 05-Jun-2003 beveloper <beveloper@nowhere.fake>

removed ASSERT


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69983609f29759f32c259b57bea228e3ec224c61 03-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed format negotiation and added some more debug output


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3409 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f180ef79b2af7c9ad778d270c7f22c83ce0611df 02-Jun-2003 beveloper <beveloper@nowhere.fake>

Fixed crash in Cortex caused by BMediaRoster::MakeTimeSourceFor()
returning NULL when asked for the system time source.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3400 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4295907bd14047fb8c4156fe2cb0b9103c36bed6 01-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed (hopefully) all latency bugs
fixed BMediaRoster::MakeTimeSourceFor()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3397 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5917dd5b85eed661e5d9297c8eb8979bf304b6dc 01-Jun-2003 beveloper <beveloper@nowhere.fake>

various timing related bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bedd42cd1e0fdb44e39be7ef4f3c76786d59b50 29-May-2003 beveloper <beveloper@nowhere.fake>

many fixes to improve timing


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21871f384ecf9ad360ac1d0c8de9ba888fb5c037 25-May-2003 beveloper <beveloper@nowhere.fake>

various bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f09fa2ff1558116730774d1c84c9fb34ab2a33a 25-May-2003 beveloper <beveloper@nowhere.fake>

various small bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 359ac30644ff37232316ad7c0a187c2454e64770 25-May-2003 beveloper <beveloper@nowhere.fake>

Added automatic loading of physical input and output nodes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 255a01c76a3ddc38d2c6cae806c4148b9bf022d4 14-Apr-2003 beveloper <beveloper@nowhere.fake>

Added a new license to this file, as I'm the author.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3068 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28ad138ac925fbd55bbef5619d6802ddc0208c47 23-Mar-2003 beveloper <beveloper@nowhere.fake>

Implemented BMediaRoster::GetParameterWebFor().
Unfortunately, BParameterWeb flattening seems to be broken.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 60f15390cd7b83f1a8083d8530d7256aa1ea71e3 22-Mar-2003 beveloper <beveloper@nowhere.fake>

a couple of fixes regarding latency calculation


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 626824eaaf91ec35de3ca9eb737f87d98ffb6121 21-Mar-2003 beveloper <beveloper@nowhere.fake>

Added reference counting of media add-on instances.
You can't create more node instances than "possible_count".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7379471718b92a91aaa6225391415c4cc9444077 17-Mar-2003 beveloper <beveloper@nowhere.fake>

OBEY possible_count


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54187cc6e8dab0f8502b3fed8621e13ce44a3cf8 15-Mar-2003 beveloper <beveloper@nowhere.fake>

Global nodes can mow be released by the teams which created them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86bce45b0c73eddb1ac8239428b666df04287a66 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Removed time sourced from reference counting.
Releasing nodes works now, except if they have been instanciated globally.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2920 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf4e22778668a91fead7c7573d531d5d1fac8a12 14-Mar-2003 beveloper <beveloper@nowhere.fake>

fixing BMediaRoster::ReleaseNode()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b04ffc12da2f91c98d7b21c6cba7e87ccc76b43 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Reorganized BMediaRoster support functions.
Improved dormant node support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 40f36b03c6d6e5b56766794344d3bf87fbb440ab 11-Mar-2003 beveloper <beveloper@nowhere.fake>

some cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2895 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e21b167c923fa9d57cd68e29886d8431d4ba918 06-Jan-2003 beveloper <beveloper@nowhere.fake>

time sources now publish and retrieve timing information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2372 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aac800c2d16791b6e8d5c428974a00b9a50f1ddd 06-Jan-2003 beveloper <beveloper@nowhere.fake>

added SetTimeSourceFor


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 835140c89a74b440c1e99c6aaff5cc995cf8bc02 05-Jan-2003 beveloper <beveloper@nowhere.fake>

better time source support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2356 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 287f7492c391deeb77d87951ed2b0620a9d163d5 02-Jan-2003 beveloper <beveloper@nowhere.fake>

more time source function...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2353 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 618b1338cc4b9a927de4b6c68c2dd378fcb9679e 10-Dec-2002 beveloper <beveloper@nowhere.fake>

cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2220 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 76669a292a7a9cdf48535ff3fe91db5de31ed35e 08-Dec-2002 beveloper <beveloper@nowhere.fake>

changed use of port communication, debugging functions, map, list and stack


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 353b9f6bcedb3fa9950f3f65c960e1deb700f84a 02-Dec-2002 beveloper <beveloper@nowhere.fake>

changed map and list templates to be more useable, however, they will
be rewritten soon. Changed debugging macros and use of them, too.
Also replaced the linked lists in the BufferManager (which were complicated,
but working ok) with template based ones.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6396865dcd5051f2baa6b55017e220d9d0cf4b25 19-Nov-2002 beveloper <beveloper@nowhere.fake>

added automatic media_addon_server launching and termination.
added detection of and cleanup after application crashes.
if the media_addon_server crashes, it will be restarted.
removed preleminary volume control functions.
removed unneeded media_server functions.
changed application registration to use port based messaging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2027 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfb2ad6148f303a0ee57faecc282953d11156067 03-Nov-2002 beveloper <beveloper@nowhere.fake>

code cleanup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1833 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 570f7d0456164c9d2f22525c7eca167021e93770 10-Oct-2002 beveloper <beveloper@nowhere.fake>

updated to include the same features/bugs as the screenshot in today's news.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1299bfb29f6155daaa6117fec04f9054e0dc24b6 08-Oct-2002 beveloper <beveloper@nowhere.fake>

added real media_server node management, removed bugs, added debug output


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85dfab2ba84a3d225d384beb92deb3b658734714 05-Oct-2002 beveloper <beveloper@nowhere.fake>

even more BMediaRoster functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9e9417d20596827f8c375ffd90b7a01cae1c0c4c 05-Oct-2002 beveloper <beveloper@nowhere.fake>

more BMediaRoster functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1381 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b41a964afdb7af37e0bb863d8116ef66f23be8 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed memory leak


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0caff283177c7c2f5b50308cd419decdf1bea45e 03-Oct-2002 beveloper <beveloper@nowhere.fake>

fixed some bugs, test program works again


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3620737cb79cb28d11eba8a7396a4d0f00fc512d 03-Oct-2002 beveloper <beveloper@nowhere.fake>

added more BMediaRoster functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5edd2016f885d0ff879a1224b48e9435d7ae376b 02-Oct-2002 beveloper <beveloper@nowhere.fake>

removed some warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1355 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63ffaa3ea493c670632a32e3660d21af66d408e2 02-Oct-2002 beveloper <beveloper@nowhere.fake>

some last minute changes...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c6a6096e726d70741695920db0818695bcda98f 02-Oct-2002 beveloper <beveloper@nowhere.fake>

rewrote BMediaRoster::Connect() and a few related functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e66fda405a88e6125bf6617b15e3c32cb44f675c 02-Oct-2002 beveloper <beveloper@nowhere.fake>

finished notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4925104822c0990c8fc7b99144512294827b3cf 01-Oct-2002 beveloper <beveloper@nowhere.fake>

changed media kit internal messaging and notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1338 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 042847af1f8b7812e3a6b4d446b3855b02c25827 29-Aug-2002 beveloper <beveloper@nowhere.fake>

some more changes to the notification support. still not finished.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eae26d3da16dcaf2da8f0e9af46c99247964183f 22-Aug-2002 beveloper <beveloper@nowhere.fake>

Start adding notification support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@854 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16b7eea41a06da4167cfd3e28a18681ca29ff04f 13-Aug-2002 beveloper <beveloper@nowhere.fake>

Add some experimental media add-on instantiating support, more debugging and bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@744 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6de9d11ff1c98de319f0c4f93ae3ceb9a33556f 12-Jul-2002 beveloper <beveloper@nowhere.fake>

removed compiler warnings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@138 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e0207628190bd95e4730c4eb6875326f57e84637 11-Jul-2002 beveloper <beveloper@nowhere.fake>

finally get libmedia.so building :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a483e722194fedf4b5a891c7902c73a4e4dd213 11-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed includes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@86 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96