Max Kellermann
44652fdb13
output/jack: convert callback functions to static methods
2019-08-05 09:29:27 +02:00
Max Kellermann
2892a6f5e2
output/jack: merge set_audioformat() into Open()
2019-08-05 09:28:41 +02:00
Max Kellermann
2fc40e5575
output/jack: eliminate "shutdown" flag, use only "error" (mutex protected)
2019-08-05 09:24:43 +02:00
Max Kellermann
d146bef740
output/jack: use jack_on_info_shutdown()
2019-08-04 20:25:13 +02:00
Max Kellermann
1f4c4be1f1
output/jack: use std::atomic_bool for "shutdown" and "pause"
...
Without this, the compiler may optimize accesses away.
2019-08-04 20:24:51 +02:00
Max Kellermann
90067d16c0
output/jack: use SIZE_MAX instead of (size_t)-1
2019-08-04 06:34:43 +02:00
Richard Dodd
4f6a713b32
Add option to not connect jack ports automatically
2019-08-03 13:01:47 +02:00
Max Kellermann
a90685d6cf
release v0.21.12
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl1FZnQQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEjrXD/0QChgJtx6sVPRpMK7KszwgpmxNkhDPA13l
puuYTg0eEZe9EJxNM82ouCNn2kOx9OjP5DKyeus0Dt4Pk5Cwj8HGeHqjTahtwHtD
jbVy5kiEZ57NjBoLFoQBI6vMuzcz/DKStq2HmPJ62NQCIqbiTQXPpWvDYAieTFV+
lbM7vc7VQ6A3bhms//vYMZYmQV7T4Eam3iEVxoQhX4Pd+wWXv+XcTfdI2UTUFWIY
mt7+AZlG2ynev+zszUtDLB4aFEbRcLUBlSKuPv3j5ox7BjleLJXltpVbisI+TDHL
nAyb2LtOTeVPpAaqiPeCju2ucWaUOsFkHmSCjPu8BHc8b4mLATiozv2BzY1qe5rX
G7DZxCLq3IBtY4u4FpR4kOuVcjTGFKCToHGl8N6GrPmfa3n+MqPLAqKx32tSq+r/
po2kbB9t0IXXT1njGWLb9W6y7z/7dsvy3YgjV6L7SfY/SA9MZELx+MBED2GSDYr9
eWLK7LDO5soBUZvnDVJZO/a1oP0n5WiSV9n2/YGgRJXcljW8tJ8C76yMNziPK7yn
Fjmc12o6kf5Afo3dNsLAdXH4p/8LeYK9IcJZmGfwBCccMHlnX+ySLfBOyuyUDD7g
nOV/o7av/HZzirQ9h2CGUZhBPbPARjvMI+mhDVGxUx3OYxW9UfokmMVEs4h21f0R
4XRbOUejVA==
=hzQJ
-----END PGP SIGNATURE-----
Merge tag 'v0.21.12'
release v0.21.12
2019-08-03 12:53:23 +02:00
Diomendius
b81138bda1
Fix JACK plugin outputting only to left channel
...
The JACK output plugin would not correctly upmix mono input files when exactly 2 output ports were configured. This fixes that.
2019-08-02 15:52:20 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
412b04be58
output: allow throwing any exception
2019-07-03 22:10:26 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
816603fd9a
config/Config*: rename files, drop "Config" prefix
2018-07-16 19:50:07 +02:00
Max Kellermann
be65c7d5d0
config/Block: add method GetPositiveValue()
...
Adds missing checks to several plugins.
2018-01-02 17:24:34 +01:00
Max Kellermann
d0f6131ba4
output/Interface: allow Pause() to throw exception
...
Coverity discovered that the Pulse plugin could throw exceptions from
Pause(), but that method was marked "noexcept" because its caller was
not designed to catch exceptions. So instead of avoiding exceptions
(by catching and logging them in each and every implementation), let's
allow them, and do the catch/log game in the MPD core.
2017-09-08 14:45:53 +02:00
Max Kellermann
9d0a71f245
output/Jack: add "noexcept"
2017-08-11 12:41:11 +02:00
Max Kellermann
ff1b435232
output/Jack: reorder methods
2017-08-11 12:39:42 +02:00
Max Kellermann
31bad5f7af
output/Interface: convert to abstract class
...
Yet another C-style vtable replaced with C++.
2017-08-10 09:01:41 +02:00
Max Kellermann
bea5681fd8
output/Interface: define a new struct AudioOutput
...
Hide struct FilteredAudioOutput from the plugins, preparing for hiding
MPD's core internals.
2017-08-08 18:58:40 +02:00
Max Kellermann
d0157af13e
filter/Internal: rename struct AudioOutput to FilteredAudioOutput
...
Prepare to add an abstract class AudioOutput, to be implemented by
plugins, to get rid of the C-style vtable.
2017-08-07 18:47:39 +02:00
Max Kellermann
353299168a
output/Thread: skip WaitForDelay() after resuming playback
...
This allows removing the "base.pause" check from the JACK output
plugin, and will allow removing similar accesses from other plugins.
2017-05-23 11:00:28 +02:00
Max Kellermann
4faef28cc5
release v0.20.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlkaFL0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEr4ID/9iAQC+7fFv06uLOm48Ufu+PgoD8uJkAwF5
QuLQkc85g9urn+bu9N7Qs7Vypp7aLyGcJKY0jyA8wxkOj24pUC3GYk80daUt561V
5s20FnoS/Uoman3CSJL94IfCUBxejizE6vgIIHTc5bb6U0qIsPub/8JTTE2Ih7uP
nvFZ5uBQ+YTc7at+iIH9123eUMKkitkh8osNblovqQT9v42++Tm4ztAytRHBjwUA
Itew5HhlvahbLKqFs/7vmICh/YX1FcOV7cV+erEWYfkH0KCI2bhSle4u2d0CBOvD
VJlDnBCo9bM7WKcPYqJiFFFXA0CRk06wbkkkAtwF4zjp8xos7aQcq4FyQnYL8KXo
5lijIhRwBURBd+nt8oA9kuEhBt/T75otcemJkzVaYappHTJCLjhxSGcPt8mw+nE9
9WQzsp/MIVzg9l5g3D9S/43xM7uhvn98Tn1Qf2s8YRd2o8CZeOhW+X3RvbCvVPv2
mOlx4sFAv8DOJ3KxMdqiJT+PmylPyJluQdqH+tMc8BdPg/kpSpYIPTuSjjRqK1yh
ld5do0HtAAwiHtvXfk5YVFjJSpO0c8yVn6xci2Cl4k/5ZHj2UE1ln+N5vCea2BRF
2J3HAjROwtcwY3lU1jFnEAogf24KWiFJqhhC0EqBGUdlrM8Dn37P5cEWWjROIMNK
lPEdovokNw==
=CdDy
-----END PGP SIGNATURE-----
Merge tag 'v0.20.7'
release v0.20.7
2017-05-15 23:01:49 +02:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
8fd9d91974
output/Plugin: pass EventLoop& to init()
...
Eliminate dependency on io_thread_get().
2017-01-25 22:54:41 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
d5e422970c
output/Plugin: delay() returns std::chrono::steady_clock::duration
2016-12-28 22:00:29 +01:00
Max Kellermann
d9cb85df83
output/Plugin: remove 'Error&' parameters, use C++ exceptions only
2016-11-09 12:36:21 +01:00
Max Kellermann
52aed3f8a1
output/jack: migrate from class Error to C++ exceptions
2016-11-08 15:11:21 +01:00
Max Kellermann
cadd186f1b
output/jack: use AtScopeExit()
2016-11-08 15:10:38 +01:00
Max Kellermann
667edcd9d0
util/IterableSplitString: cheaper variant of SplitString()
2016-03-18 14:11:50 +01:00
Max Kellermann
1aee89f5ea
*: include cleanup (using iwyu)
2016-03-01 22:08:13 +01:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
4fa5538e2b
config/Param: split block-specific attributes to new struct ConfigBlock
...
The old struct config_param remains only for top-level string options.
2015-01-21 23:56:33 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
0b9f650fe2
output/Wrapper: new helper class
2014-12-29 23:45:14 +01:00
Max Kellermann
2983c2a24f
output/jack: fix implicit nullptr/bool conversion
...
Return false on error, not nullptr.
2014-12-26 14:44:47 +01:00
Max Kellermann
d4ca853fd3
output/jack: move code to separate functions
2014-12-25 22:18:22 +01:00
Max Kellermann
5a8d2e8057
output/jack: cache AudioFormat::channels
2014-12-24 23:22:56 +01:00
Max Kellermann
687fc358fd
output/jack: fix typo
2014-12-24 23:22:56 +01:00
Max Kellermann
c4c2da06b7
output/jack: use jack_ringbuffer_get_write_vector()
...
Reduce number of libjack calls.
2014-12-24 23:14:15 +01:00
Max Kellermann
8928cd53bf
output/jack: move jack_ringbuffer_write_space() call to WriteSamples()
2014-12-24 23:08:39 +01:00
Max Kellermann
ca88fc4ed3
output/jack: cache AudioFormat::channels
2014-12-24 23:04:29 +01:00
Max Kellermann
b83a1d79b7
output/jack: pass float* to WriteSamples()
2014-12-24 23:02:19 +01:00
Max Kellermann
cec2a837cf
output/jack: WriteSamples() returns size_t
2014-12-24 23:00:46 +01:00
Max Kellermann
cff47262da
output/jack: pass size_t to WriteSamples()
2014-12-24 23:00:15 +01:00
Max Kellermann
da83eae754
output/jack: use SampleFormat::FLOAT
...
What JACK expects is already implemented in MPD, just not used. The
sample format conversion code in the JACK plugin was redundant and
could reduce sound quality.
2014-12-24 22:40:00 +01:00
Max Kellermann
2ea633a2f7
output/jack: use std::fill()
2014-12-24 16:27:13 +01:00
Max Kellermann
9a52043fad
output/jack: move functions into the struct
2014-12-24 16:10:27 +01:00
Max Kellermann
39a5be2df9
output/jack: merge two mpd_jack_available() calls
2014-12-24 16:10:27 +01:00