History log of /haiku/src/add-ons/media/media-add-ons/mixer/AudioMixer.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>


# 7753e163 16-Feb-2022 Humdinger <humdingerb@gmail.com>

Mixer: Remove option to refuse format changes from audio mixer GUI

The options "Refuse in/output format changes" were meant to prevent
format changes of connections on the fly, without tearing down and
establishing a new connection.
The mixer does not support such format changes for input.

With this patch input format changes are refused - the former
default setting.
Output format changes are at least mostly implemented, so we are
allowing format changes here.

Both options get removed from the Audio mixer setup panel of the
Media preferences. The code those settings themselves is kept.

Thanks Máximo Castañeda for the investigation, see
https://www.freelists.org/post/haiku-development/Explain-the-Audio-Mixer-Setup-options-of-Media-preferences,26

Change-Id: Idb2d0674a4701014249bc5252a7e4ccedc4f532f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4934
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 8b354362 28-Jan-2022 Humdinger <humdingerb@gmail.com>

Audio mixer: Remove option for linear gain sliders

* always use non-linear gain sliders (was the default setting)
* remove functions and members connected to linear gain setting
* remove "(like BeOS R5)" from "Attenuate by 3 dB" option
* add "Low/High quality" to resample algorithm option

Fixes part of #17554

Change-Id: I746da3f5bcc8f0cb017c75509565b535d5442f71
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4917
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# ec16c2ae 06-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

media/mixer: Disable and remove USE_MEDIA_FORMAT_WORKAROUND.

Apparently BeOS' SpecializeTo() was broken, and so when this code
was introduced in 2003, it came with its own copies of the
specialization routines.

We don't run on BeOS anymore, and our specialization routines
appear to be identical to these, so, we can drop them.

Should not result in any functional change.


# 5b88998b 24-Feb-2019 Murai Takashi <tmurai01@gmail.com>

media-add-ons/mixer: Fix -Werror=class-memaccess

Fix -Werror=class-memaccess, pointed by gcc8.
* AudioMixer.cpp: replace memset() with media_format.Clear().
* MixerAddOn.cpp: remove unneed memset(), since constractor of
media_format already runs memset().

Change-Id: Idfb68c4d3190aeed725d905e46b0f85354962bc9
Reviewed-on: https://review.haiku-os.org/c/1112
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>


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

AudioMixer: Review and rework synchronization

* The event time is managed through the main node control
loop.
* Make the mix thread to activate only when needed.
* Make the locking more simple and remove a race condition,
this will make the thread to be more silent too.


# 08a65695 19-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: Replace debug_printf with TRACE


# 1fe3cb87 19-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: Notify the producer basing on latency variation

* 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.


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

Rework nodes to call Run() only after registration

* While it should not be a big problem the
bebook specify to do it after custom operations,
most nodes also follow this way, this commit restore
consistency.


# 57fddf2a 11-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: Remove duplicated case forgot after cleanup


# 8c19f07f 11-Jun-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: check for errors.

* Improve CreateBufferGroup function.
* Initialize variables.
* Check for BBufferGroup::InitCheck.


# 973f1214 10-May-2013 Jérôme Duval <jerome.duval@gmail.com>

mixer.media_addon: fixes 64 bit warnings


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# ba5e652d 03-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Set of patches by Pete Goodeve to imrpove the handling of audio latency.
Closes #7285.


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


# 6fd240c2 29-Oct-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

#7512: Localize mixer media add-on.


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


# b006bbe1 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Resolved TODO and implemented updating resampling implementation on the fly.
* Reordered some methods in the source to align with declaration order.
* Applied naming conventions for private methods.
* Switched asterix style in MixerInput.


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


# cb7b1a3c 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed DEBUG build.


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


# 77fa0021 12-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Enable the "interpolate" resampling method. Results are not as good as I expected, however.


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


# 2d4ce064 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Changed the latency computation a bit to make it somewhat clearer.
* Only report lateness if it is beyond the accepted jitter.


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


# d0085d25 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* We now limit the maximum latency in MediaPlayer and the audio mixer, as a
latency can easily get annoying if too high.


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


# b289aaf6 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.


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


# ab496a4b 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Changed various labels in audio drivers to sentence case. This is
case-audio-drivers.diff from #5169.


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


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

* Cleanup, no functional change.


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


# 78a60972 20-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Do not crash when a node tries to change the format during runtime, as long as
this is actually not implemented.


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


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

* Minor cleanup.


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


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

* The audio mixer is supposed to support getting/setting only a single value,
such that all channels are affected.
* This fixes the "setvolume" command under Haiku.


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


# 2b0feeea 06-Nov-2008 Ryan Leavengood <leavengood@gmail.com>

Removed now unused constants as suggested by Marcus. Thanks!


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


# 02c774cb 04-Nov-2008 Ryan Leavengood <leavengood@gmail.com>

Bug #1571: I think diver is right, the Info tab is pretty useless on the
mixer's controls, so I am removing it.

If someone disagrees, this code can be added back easily.


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


# 5cea25bf 16-Feb-2008 Ryan Leavengood <leavengood@gmail.com>

Adding patch from Juan Sebastian Muñoz Arango to fix bug #1571:

This creates a new tab Info to contain the information for the media
mixer instead of placing it next to the setup controls.


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


# bf7ab50d 03-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

large patch by Bek (HOST team):
* style improvements, header reformatting, small refactoring and adding
of missing copyrights

(to Marcus: this is not the original patch, it has already been revised two
times by myself and I thought it was very nice now)


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


# f916862c 13-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Switched to using a local debug header file, instead of using the private media kit file.
This should prevent mixer from beeing build with debug enabled, when media kit is build with debug.
Thus CPU usage will be reduced as mixer no longer prints a lot of information to stdout.


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


# edde83c4 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup of DEBUG and NDEBUG usage in media kit


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


# 6f9446b3 06-Mar-2005 beveloper <beveloper@nowhere.fake>

modified warning text


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


# afeadaa2 23-Jan-2005 beveloper <beveloper@nowhere.fake>

Bumped release number for bebits release, a few bugfixes had been done since release 0.2, including the name change from OpenBeOS to Haiku.


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


# 88debd33 24-Oct-2004 beveloper <beveloper@nowhere.fake>

This must say Haiku of cause


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


# 9c5b691f 30-May-2004 shatty <shatty@nowhere.fake>

workaround for crashing bug in RealPlayer. specialize the frame_rate when Connected gets called with a frame rate of 0.


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


# 44c1e167 06-Mar-2004 beveloper <beveloper@nowhere.fake>

gave mixer a non alpha version number for bebits release


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


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

Cancels the fix, it now works because the node manager is now fixed


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


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

out_input must be filled by the consumer node. Fixes a bug when getting a wrong connection info


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


# dfbe8043 08-Sep-2003 beveloper <beveloper@nowhere.fake>

I fixed a timing bug. The mixer was accidentally sending itself
a notification about downstream latency change, when it really
should have send that to the connected inputs. This is now done
by the PublishEventLatencyChange() function.


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


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

added a debbuging outputs, start threads always at high priority


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4539 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


# abe798f3 19-Aug-2003 beveloper <beveloper@nowhere.fake>

fixed spelling error


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


# a4cd9d18 17-Aug-2003 beveloper <beveloper@nowhere.fake>

input connection settings are saved now, too


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


# 1165d5e1 17-Aug-2003 beveloper <beveloper@nowhere.fake>

added support for a settings file,
some fixes in the deferred saving code,
added save/load to mixer connections


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


# c3465a64 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added full balance control to all input channels
removed performance display control and settings


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


# 5fa60b3b 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added balance control to output


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


# 4224efc3 16-Aug-2003 beveloper <beveloper@nowhere.fake>

implemeted non linear gain controls (similar to BeOS R5)
allow to select gain control slider modus in setup
(either controls physical input, or virtual output channels)


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


# 26bf7cd3 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added mixer setup tab functionality and storage of settings


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


# 44327fe2 25-Jul-2003 beveloper <beveloper@nowhere.fake>

Added a setup tab


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


# c3b1c2a6 04-Jul-2003 beveloper <beveloper@nowhere.fake>

Implemented proper handling of latency changes that occur when connecting
a chain of mixer nodes. Also added a small hack to always pick the optimal
frame rate and channel count when connecting multiple audio mixer nodes.


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


# 914ab8f7 04-Jul-2003 beveloper <beveloper@nowhere.fake>

fixed the macro names


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


# 9a32a037 03-Jul-2003 beveloper <beveloper@nowhere.fake>

this is really annoying


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


# 69517c15 03-Jul-2003 beveloper <beveloper@nowhere.fake>

Removed gain controls from input channel mapping group.
Gain for each virtual mixer channel is now controlled in the main control group.


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


# 9c3be6a5 03-Jul-2003 beveloper <beveloper@nowhere.fake>

Fixed some debug macros.
Cleanup of MixerInput class.
Implemented output destination mapping controls.


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


# e0dc5b6d 02-Jul-2003 beveloper <beveloper@nowhere.fake>

introduce a gain cache for non active sources to allow changing of gain without activating them, and to avoid gain value beeing reset to 0.0 each time enable is cycled.


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


# b6270d60 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Cleanup of MixerOutput class, the channel type is now used instead of channel designation or channel_mask
Implemented output channel remapping controls.


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


# 0c63c7d0 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Started implementing input and output channel mapping controls.
Optimized inner loop of mix thread, up to 10% faster now.
Moved some #includes around.
Added #define for maximum supported channel types.
Removed static buffers.


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


# c378a5ec 01-Jul-2003 beveloper <beveloper@nowhere.fake>

limit maximum latency


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


# 8936182d 01-Jul-2003 beveloper <beveloper@nowhere.fake>

preparing for input/output channel mapping.


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


# 57b75f14 30-Jun-2003 beveloper <beveloper@nowhere.fake>

The mixer gain controls must change the physical input channels, not the virtual mixer internal channels.


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


# b326a30e 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented muting of the master output


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


# 2cb2bc41 30-Jun-2003 beveloper <beveloper@nowhere.fake>

Use B_MASTER_GAIN kind for master gain control to allow Deskbar volume control to work.


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


# 087e6a8a 30-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed MediaPlayer volume control bug by using R5 like ID assignments (taken from media kit SoundPlayer.cpp)


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


# 1c237c18 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented mute support for input channel, fixed casting bugs


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


# 9391f0a5 30-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixer gain controls


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


# b5a088d0 30-Jun-2003 beveloper <beveloper@nowhere.fake>

avoid creation of loopback connections


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


# a2ca4723 30-Jun-2003 beveloper <beveloper@nowhere.fake>

cleanup of debugging code


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


# 60e2e68c 29-Jun-2003 beveloper <beveloper@nowhere.fake>

finally it does mixing, but we should get rid of the CPU eating List template
at this place, as it internally calls malloc, free, new and delete quite often


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


# fae6ce82 29-Jun-2003 beveloper <beveloper@nowhere.fake>

added output channel control functions,
made most often called functions inline


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


# cb595db7 29-Jun-2003 beveloper <beveloper@nowhere.fake>

added an additional sanity check


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


# d5848e21 28-Jun-2003 beveloper <beveloper@nowhere.fake>

rewrote start and stop handling to allow connecting an input without
having an output, followed by starting the node.
fix some bugs of handling an unconnected output
added better locking to the mix thread


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


# 8d28117f 28-Jun-2003 beveloper <beveloper@nowhere.fake>

multiple bugfixes, but still many pops in output audio stream


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


# 16cecbde 25-Jun-2003 beveloper <beveloper@nowhere.fake>

some workarounds, fMixStartTime is now always 0,
delay mix thread if timesource has negative time,
calculate correct time and frame base for mix thread


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


# 7b0daf5c 24-Jun-2003 beveloper <beveloper@nowhere.fake>

allocate mixer buffers of the correct size,
place incoming data in input specific mix buffer


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


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

added connecting/disconnecting of inputs/outputs
changed debug functions
added multiaudio format correction
added workaround for broken BeOS R5 media_format:SpecializeTo()
fixed AudioMixer::Connect function to use correct destination
added utility functions
fixed locking bugs


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


# 7ee2c804 15-Jun-2003 beveloper <beveloper@nowhere.fake>

Internal API rewritten, BMediaNode and derived classes functionality implemented.


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


# be2a2489 11-Jun-2003 beveloper <beveloper@nowhere.fake>

Mixer rewrite, work in progress.
Moved Input and Output handling into the MixerCore class,
format and connection negotiation remains in AudioMixer class.


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


# 545124e6 05-Jun-2003 beveloper <beveloper@nowhere.fake>

disable node stopping on the system mixer


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


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

next event calculation properly based on frames played in performace time now


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3401 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


# 1ab3e018 30-May-2003 beveloper <beveloper@nowhere.fake>

bugfixes and debug information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3390 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


# 5bc7143b 28-Sep-2002 shatty <shatty@nowhere.fake>

fixed some casting bugs
fixed newline at end of file


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


# ea83877f 17-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman provides this update to the audio mixer add-on


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


# 00cffa1c 09-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman started implementing the BeOS system audio mixer.


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


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

Rework nodes to call Run() only after registration

* While it should not be a big problem the
bebook specify to do it after custom operations,
most nodes also follow this way, this commit restore
consistency.


# 57fddf2a931f244cac056223b652866d072b10bf 11-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: Remove duplicated case forgot after cleanup


# 8c19f07f3c8f5936e4dfdee463ee2065b0c26471 11-Jun-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: check for errors.

* Improve CreateBufferGroup function.
* Initialize variables.
* Check for BBufferGroup::InitCheck.


# 973f12146b02030523dca4771408d1a0e8cf31ec 10-May-2013 Jérôme Duval <jerome.duval@gmail.com>

mixer.media_addon: fixes 64 bit warnings


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# ba5e652d79a41a15230b0940003e7dc352b41974 03-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Set of patches by Pete Goodeve to imrpove the handling of audio latency.
Closes #7285.


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


# 6fd240c27d13ae7a34c546ce7f0f2123aa836783 29-Oct-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

#7512: Localize mixer media add-on.


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


# b006bbe1304984932aa2bb114a332a63c2c3cc03 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Resolved TODO and implemented updating resampling implementation on the fly.
* Reordered some methods in the source to align with declaration order.
* Applied naming conventions for private methods.
* Switched asterix style in MixerInput.


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


# cb7b1a3ceef7d6d43622cd731891b2276419103b 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed DEBUG build.


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


# 77fa0021d98154eb4781f55642663ac66bfdb637 12-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Enable the "interpolate" resampling method. Results are not as good as I expected, however.


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


# 2d4ce06468d0cd9a3f048ff918581d22aff10e7b 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Changed the latency computation a bit to make it somewhat clearer.
* Only report lateness if it is beyond the accepted jitter.


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


# d0085d25d17c2d715f4d0b862be9d833355c63e8 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* We now limit the maximum latency in MediaPlayer and the audio mixer, as a
latency can easily get annoying if too high.


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


# b289aaf66bbf6e173aa90fa194fc256965f1b34d 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.


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


# ab496a4be829b69eba1bae9a920494c0ffb7d48f 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Changed various labels in audio drivers to sentence case. This is
case-audio-drivers.diff from #5169.


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


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

* Cleanup, no functional change.


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


# 78a6097283437a89682914a5eab654edb6f81922 20-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Do not crash when a node tries to change the format during runtime, as long as
this is actually not implemented.


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


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

* Minor cleanup.


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


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

* The audio mixer is supposed to support getting/setting only a single value,
such that all channels are affected.
* This fixes the "setvolume" command under Haiku.


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


# 2b0feeea6027992840a149bdac86ca78d3d4190c 06-Nov-2008 Ryan Leavengood <leavengood@gmail.com>

Removed now unused constants as suggested by Marcus. Thanks!


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


# 02c774cbd26d92c29307e907195bf43d700a33dc 04-Nov-2008 Ryan Leavengood <leavengood@gmail.com>

Bug #1571: I think diver is right, the Info tab is pretty useless on the
mixer's controls, so I am removing it.

If someone disagrees, this code can be added back easily.


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


# 5cea25bfaffcff3349f878ed46d07423ed1d19a6 16-Feb-2008 Ryan Leavengood <leavengood@gmail.com>

Adding patch from Juan Sebastian Muñoz Arango to fix bug #1571:

This creates a new tab Info to contain the information for the media
mixer instead of placing it next to the setup controls.


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


# bf7ab50d4ced3f1735551c8f6d9032a42e548f7e 03-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

large patch by Bek (HOST team):
* style improvements, header reformatting, small refactoring and adding
of missing copyrights

(to Marcus: this is not the original patch, it has already been revised two
times by myself and I thought it was very nice now)


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


# f916862c2ebbbf3a1fdeac1541fc75ded977bccf 13-Mar-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Switched to using a local debug header file, instead of using the private media kit file.
This should prevent mixer from beeing build with debug enabled, when media kit is build with debug.
Thus CPU usage will be reduced as mixer no longer prints a lot of information to stdout.


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


# edde83c450b3866d6e38b387e56971e066e46eab 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup of DEBUG and NDEBUG usage in media kit


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


# 6f9446b32a34b761b96d74742cf9e2caa22dab4d 06-Mar-2005 beveloper <beveloper@nowhere.fake>

modified warning text


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


# afeadaa2390d28341bdf9d2a4986cf66d4b39d55 23-Jan-2005 beveloper <beveloper@nowhere.fake>

Bumped release number for bebits release, a few bugfixes had been done since release 0.2, including the name change from OpenBeOS to Haiku.


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


# 88debd334ed3663e875c24d8c10fa8950544c07c 24-Oct-2004 beveloper <beveloper@nowhere.fake>

This must say Haiku of cause


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


# 9c5b691f2296016a77224c4a6cab2eb4fefd7baf 30-May-2004 shatty <shatty@nowhere.fake>

workaround for crashing bug in RealPlayer. specialize the frame_rate when Connected gets called with a frame rate of 0.


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


# 44c1e167fc2ffca096e17e9c87e65029c2ee4b3e 06-Mar-2004 beveloper <beveloper@nowhere.fake>

gave mixer a non alpha version number for bebits release


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


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

Cancels the fix, it now works because the node manager is now fixed


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


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

out_input must be filled by the consumer node. Fixes a bug when getting a wrong connection info


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


# dfbe8043fafe879bbceb621762b62d088a117690 08-Sep-2003 beveloper <beveloper@nowhere.fake>

I fixed a timing bug. The mixer was accidentally sending itself
a notification about downstream latency change, when it really
should have send that to the connected inputs. This is now done
by the PublishEventLatencyChange() function.


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


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

added a debbuging outputs, start threads always at high priority


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4539 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


# abe798f30bf7ff8f8d7dadf469c150cdebbcb47d 19-Aug-2003 beveloper <beveloper@nowhere.fake>

fixed spelling error


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


# a4cd9d18a164cebcb58b02e7e45772ef70935e2e 17-Aug-2003 beveloper <beveloper@nowhere.fake>

input connection settings are saved now, too


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


# 1165d5e18aa006db62ac40a8d218d7affb5151f7 17-Aug-2003 beveloper <beveloper@nowhere.fake>

added support for a settings file,
some fixes in the deferred saving code,
added save/load to mixer connections


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


# c3465a64eedf92cb2467befe0887d5ce01e98b10 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added full balance control to all input channels
removed performance display control and settings


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


# 5fa60b3b6490368a7ac762b1f34ca22327e0dd6c 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added balance control to output


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


# 4224efc3c723b348c02b0bd4b6b75497f6624dbd 16-Aug-2003 beveloper <beveloper@nowhere.fake>

implemeted non linear gain controls (similar to BeOS R5)
allow to select gain control slider modus in setup
(either controls physical input, or virtual output channels)


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


# 26bf7cd399550ff1c49b40a77780b0a0afbcfd14 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added mixer setup tab functionality and storage of settings


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


# 44327fe2c2ada1ed6824435c1b895a6dc6daef53 25-Jul-2003 beveloper <beveloper@nowhere.fake>

Added a setup tab


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


# c3b1c2a692c2a585fd259e62da158cf8fec7199d 04-Jul-2003 beveloper <beveloper@nowhere.fake>

Implemented proper handling of latency changes that occur when connecting
a chain of mixer nodes. Also added a small hack to always pick the optimal
frame rate and channel count when connecting multiple audio mixer nodes.


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


# 914ab8f76fee488984ecb836adfc9861580172ca 04-Jul-2003 beveloper <beveloper@nowhere.fake>

fixed the macro names


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


# 9a32a037e5b3394b3176dc7abd8fb633a9e3141d 03-Jul-2003 beveloper <beveloper@nowhere.fake>

this is really annoying


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


# 69517c1537473b9ae5a17672bed91790966dc583 03-Jul-2003 beveloper <beveloper@nowhere.fake>

Removed gain controls from input channel mapping group.
Gain for each virtual mixer channel is now controlled in the main control group.


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


# 9c3be6a55723d8024dc868f2e7119496f26295c5 03-Jul-2003 beveloper <beveloper@nowhere.fake>

Fixed some debug macros.
Cleanup of MixerInput class.
Implemented output destination mapping controls.


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


# e0dc5b6d1fa01d403ef2296625583807fa82f064 02-Jul-2003 beveloper <beveloper@nowhere.fake>

introduce a gain cache for non active sources to allow changing of gain without activating them, and to avoid gain value beeing reset to 0.0 each time enable is cycled.


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


# b6270d60b29ad49ae09811b7d0b4968989229908 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Cleanup of MixerOutput class, the channel type is now used instead of channel designation or channel_mask
Implemented output channel remapping controls.


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


# 0c63c7d061f2d4490205d48b1e5008c8a2cf95f2 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Started implementing input and output channel mapping controls.
Optimized inner loop of mix thread, up to 10% faster now.
Moved some #includes around.
Added #define for maximum supported channel types.
Removed static buffers.


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


# c378a5ecf8201e4b78c67eda53ec839697d52e12 01-Jul-2003 beveloper <beveloper@nowhere.fake>

limit maximum latency


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


# 8936182d3c54d959bb12a828abc8231ccd04acdb 01-Jul-2003 beveloper <beveloper@nowhere.fake>

preparing for input/output channel mapping.


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


# 57b75f140bf7bad2683aef8cd5a343f9552ce1cb 30-Jun-2003 beveloper <beveloper@nowhere.fake>

The mixer gain controls must change the physical input channels, not the virtual mixer internal channels.


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


# b326a30e21605eb8b3bb4a2b7598bb30bfcd8957 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented muting of the master output


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


# 2cb2bc41111449943aa5e2764316129cb91ed532 30-Jun-2003 beveloper <beveloper@nowhere.fake>

Use B_MASTER_GAIN kind for master gain control to allow Deskbar volume control to work.


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


# 087e6a8afd89d53dad28288d9e4030c785b517d2 30-Jun-2003 beveloper <beveloper@nowhere.fake>

fixed MediaPlayer volume control bug by using R5 like ID assignments (taken from media kit SoundPlayer.cpp)


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


# 1c237c1852883cd806f6b7f712f8d76c430d83ba 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented mute support for input channel, fixed casting bugs


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


# 9391f0a5526a6a1efb50e7ca73f1d07ac1c93ee2 30-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixer gain controls


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


# b5a088d01f0a87b597d881aa3358a173fa47af97 30-Jun-2003 beveloper <beveloper@nowhere.fake>

avoid creation of loopback connections


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


# a2ca4723941de50864eb7ef575591629cabb3318 30-Jun-2003 beveloper <beveloper@nowhere.fake>

cleanup of debugging code


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


# 60e2e68ce4ee2cd63621a47d1f174c9c5158dcd1 29-Jun-2003 beveloper <beveloper@nowhere.fake>

finally it does mixing, but we should get rid of the CPU eating List template
at this place, as it internally calls malloc, free, new and delete quite often


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


# fae6ce82e324e852c65c0d791056e749994bbfd6 29-Jun-2003 beveloper <beveloper@nowhere.fake>

added output channel control functions,
made most often called functions inline


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


# cb595db7456daa17add58615303fa8b8d1cff183 29-Jun-2003 beveloper <beveloper@nowhere.fake>

added an additional sanity check


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


# d5848e21a402ad57ae434b9982560e0f9c2c0dbf 28-Jun-2003 beveloper <beveloper@nowhere.fake>

rewrote start and stop handling to allow connecting an input without
having an output, followed by starting the node.
fix some bugs of handling an unconnected output
added better locking to the mix thread


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


# 8d28117ff7c15fa966ab55e20e5e343d89186097 28-Jun-2003 beveloper <beveloper@nowhere.fake>

multiple bugfixes, but still many pops in output audio stream


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


# 16cecbde360eb5fc03598dc7d05fb2d9be9b6931 25-Jun-2003 beveloper <beveloper@nowhere.fake>

some workarounds, fMixStartTime is now always 0,
delay mix thread if timesource has negative time,
calculate correct time and frame base for mix thread


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


# 7b0daf5ccadfdb073a738f291a2f4a74b29c46f0 24-Jun-2003 beveloper <beveloper@nowhere.fake>

allocate mixer buffers of the correct size,
place incoming data in input specific mix buffer


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


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

added connecting/disconnecting of inputs/outputs
changed debug functions
added multiaudio format correction
added workaround for broken BeOS R5 media_format:SpecializeTo()
fixed AudioMixer::Connect function to use correct destination
added utility functions
fixed locking bugs


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


# 7ee2c8049caebce89fd72e544a5db9f94cc6613f 15-Jun-2003 beveloper <beveloper@nowhere.fake>

Internal API rewritten, BMediaNode and derived classes functionality implemented.


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


# be2a24894fa4b3e2578b1d1994d33bbb2b935216 11-Jun-2003 beveloper <beveloper@nowhere.fake>

Mixer rewrite, work in progress.
Moved Input and Output handling into the MixerCore class,
format and connection negotiation remains in AudioMixer class.


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


# 545124e6a1fe13d71d2ca422b76992e0fa8e9afb 05-Jun-2003 beveloper <beveloper@nowhere.fake>

disable node stopping on the system mixer


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


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

next event calculation properly based on frames played in performace time now


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3401 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


# 1ab3e018978a65e71ffe20141d51ae4e591f67de 30-May-2003 beveloper <beveloper@nowhere.fake>

bugfixes and debug information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3390 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


# 5bc7143bb9290ce9648a2b5f894a7ea44a3f45af 28-Sep-2002 shatty <shatty@nowhere.fake>

fixed some casting bugs
fixed newline at end of file


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


# ea83877f0b04404ca20720d89179c4531e678a2d 17-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman provides this update to the audio mixer add-on


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


# 00cffa1ce7235854c27cf1ea86b760c51de04800 09-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman started implementing the BeOS system audio mixer.


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