Max Kellermann
|
7e76656a18
|
db/DatabasePlugin: add #EventLoop parameter documentation
|
2017-08-24 19:45:23 +02:00 |
|
Max Kellermann
|
0b93f52ba4
|
release v0.20.10
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlmefSAQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEut8D/4oZgzdHTMbR6uYbFvkUmPrwtohq8N4JbaS
/TtESfKPJ5PIv42MA5k89DjssQUz0uzuladsy+WXxTx8BD4naXaiOy7loDXjPcnu
YL0sUdAKZVVBdau4dcumSQF0ewhUjuKZUt2I6W2Q35IpagV89nf+mHUXDtUrjykC
coXIwrcINpi0MSo1pbS5m11XNOk2yPfl8ZR+9yn6AvaseCtrwxmogAJGK5bUSKUM
NMaLffVLNfIL/YEBzm2RdgSyU4LBREKnO6vF7UCBSKHIVPyne83fbqc90COj7I9Q
01LGowUAvJIoRIlMzjxlXO6S13hmXJlDZSECaaQYQjiC70RbC1+sK9tQtKQ4BqET
C+vG9ysfqVi4bsYkOppR5JDE9NcghkjK+iGwBYVdXmRwGzmdb1W6fWgAqYGRF+Ql
Fg+/htruNsvvuO+RtcOd8WJWpP3nKisGu9jRp7dceAsWGE20M8HTjCeSZsZM+LvU
B9Lp9NplKqkJyq2k81OUmGBWkR7t8okMeZGvon+sExZ285giryOfhao4eEX7CBqy
XHlClydNnBW11R6TEzhjIxCDufPdboM0XHVxX4kutfkPVGkPnJR/8Jk0c+d7AiVE
H5MSgWsOu9fN//nIuUxdODtL5VMw45/hdydZ9YMI/RnwMQFdEqAZmBvMKE7ZLqrI
F80eZ8/nQg==
=b8hp
-----END PGP SIGNATURE-----
Merge tag 'v0.20.10'
release v0.20.10
|
2017-08-24 09:35:34 +02:00 |
|
Max Kellermann
|
a00d412008
|
player/Thread: initialize play_audio_format, fixes assertion
This fixes an assertion failure caused by resuming playback before the
decoder has finished startup.
|
2017-08-23 17:43:49 +02:00 |
|
Matthew Leon
|
aa9c6062b0
|
Merge branch 'v0.20.x' into master
contains OSX mixer
|
2017-08-22 10:36:37 +01:00 |
|
Matthew Leon
|
5fb39658f1
|
OSX mixer
|
2017-08-21 20:05:50 +01:00 |
|
Max Kellermann
|
95637fd153
|
lib/upnp/Discovery: use strncmp() instead of memcmp()
memcmp() can overflow the buffer.
|
2017-08-18 18:48:22 +02:00 |
|
Max Kellermann
|
5ac72211cd
|
event/Loop: set thread to current thread by default
Allows eliminating lots of complexity and workarounds for bogus
assertion failures.
|
2017-08-18 18:18:55 +02:00 |
|
Max Kellermann
|
94525d3952
|
IOThread: remove obsolete library
We now pass the EventThread's EventLoop reference around.
|
2017-08-18 18:15:19 +02:00 |
|
Max Kellermann
|
7f9a2f8adb
|
event/Loop: schedule and cancel the WakeFD in Run()
This is only needed while Run() is alive, and moving it there avoids
problems with thread-checking assertions.
|
2017-08-18 18:08:06 +02:00 |
|
Max Kellermann
|
b7d0890bc0
|
lib/curl/Init: share a CurlGlobal instance between input and storage
|
2017-08-18 13:34:55 +02:00 |
|
Max Kellermann
|
b2b079a26b
|
SongFilter: use std::chrono::system_clock::time_point instead of time_t
|
2017-08-18 12:30:50 +02:00 |
|
Max Kellermann
|
b886dfae4d
|
DetachedSong, db/LightSong, db/simple/Song: use std::chrono::system_clock::time_point
|
2017-08-18 12:22:47 +02:00 |
|
Max Kellermann
|
902fbb3347
|
db/LightDirectory: use std::chrono::system_clock::time_point
|
2017-08-18 12:16:43 +02:00 |
|
Ryan Walklin
|
9f16c798d0
|
Fix std::string read after free in read_stream_art
|
2017-08-17 21:25:03 +10:00 |
|
Ryan Walklin
|
318f80d113
|
Fix EventPipe file descriptors
|
2017-08-17 12:21:01 +10:00 |
|
Ryan Walklin
|
9df8b32f10
|
Add albumart command
Add API documentation
Support 64 bit offsets
Use InputStream for all reads
|
2017-08-15 20:38:33 +10:00 |
|
Max Kellermann
|
6f37f5752b
|
db/PlaylistInfo: use std::chrono::system_clock::time_point
|
2017-08-11 12:50:33 +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
|
b57a272f67
|
system/EPollFD: throw exception instead of raising fatal error
|
2017-08-11 09:39:47 +02:00 |
|
Max Kellermann
|
ef79647e85
|
zeroconf/Avahi: throw exception instead of raising fatal error
|
2017-08-11 09:38:08 +02:00 |
|
Max Kellermann
|
d3fd89552f
|
unix/Signalhandlers: throw exception instead of raising fatal error
|
2017-08-11 09:37:30 +02:00 |
|
Max Kellermann
|
6d43e70a93
|
event/SignalMonitor: throw exception instead of raising fatal error
|
2017-08-11 09:36:22 +02:00 |
|
Max Kellermann
|
e8333316ee
|
Permission: throw exception instead of raising fatal error
|
2017-08-11 09:33:59 +02:00 |
|
Max Kellermann
|
85edcb858d
|
tag/Config: throw exception instead of raising fatal error
|
2017-08-11 09:33:07 +02:00 |
|
Max Kellermann
|
bab5f1a93f
|
client: make GREETING constexpr
|
2017-08-11 09:22:26 +02:00 |
|
Max Kellermann
|
6de8303df8
|
client: use C++11 initializers
|
2017-08-11 09:21:29 +02:00 |
|
Max Kellermann
|
33b4114534
|
system/fd_util: remove unused library
|
2017-08-11 09:20:15 +02:00 |
|
Max Kellermann
|
7a4457402f
|
system/EventPipe: use FileDescriptor::CreatePipeNonBlock()
|
2017-08-11 09:19:00 +02:00 |
|
Max Kellermann
|
9056dcaf7d
|
system/FileDescriptor: add method CreatePipeNonBlock()
|
2017-08-11 09:15:22 +02:00 |
|
Max Kellermann
|
2119e4fd3e
|
system/EventPipe: use class UniqueSocketDescriptor in PoorSocketPair()
|
2017-08-11 09:09:04 +02:00 |
|
Max Kellermann
|
bcd5190f1d
|
system/EventPipe: throw exception instead of raising fatal error
|
2017-08-11 09:09:04 +02:00 |
|
Max Kellermann
|
d705a92e43
|
net/IPv4Address: new class
|
2017-08-11 09:09:04 +02:00 |
|
Max Kellermann
|
614b3634d4
|
net/SocketDescriptor: add AcceptNonBlock() overload without address
|
2017-08-11 09:07:35 +02:00 |
|
Max Kellermann
|
b234f4307f
|
net/SocketDescriptor: AcceptNonBlock() enables non-blocking even if SOCK_NONBLOCK is unavailable
|
2017-08-11 09:04:38 +02:00 |
|
Max Kellermann
|
e38c213ee0
|
net/SocketDescriptor: check HAVE_ACCEPT4
|
2017-08-11 09:04:10 +02:00 |
|
Max Kellermann
|
699f41e114
|
system/EventPipe: use AtScopeExit() in PoorSocketPair()
|
2017-08-11 08:30:37 +02:00 |
|
Max Kellermann
|
424e1363ed
|
zeroconf/Bonjour: pass SocketDescriptor to constructor
Fixes Mac build failure.
|
2017-08-11 08:25:26 +02:00 |
|
Max Kellermann
|
7484bc31b4
|
system/FileDescriptor: implement CreatePipe() on Windows
|
2017-08-11 08:15:47 +02:00 |
|
Max Kellermann
|
5a495cc165
|
system/fd_util: remove unused function close_socket()
|
2017-08-10 19:47:57 +02:00 |
|
Max Kellermann
|
9ff4717738
|
system/fd_util: remove unused function accept_cloexec_nonblock()
|
2017-08-10 19:47:40 +02:00 |
|
Max Kellermann
|
0c1740982d
|
system/fd_util: remove unused function open_cloexec()
|
2017-08-10 19:46:23 +02:00 |
|
Max Kellermann
|
3c7c0515d8
|
output/oss: use class FileDescriptor
|
2017-08-10 19:42:23 +02:00 |
|
Max Kellermann
|
56cb92fdaf
|
mixer/oss: use class FileDescriptor
|
2017-08-10 19:41:22 +02:00 |
|
Max Kellermann
|
c00b6ff999
|
fs/FileSystem: use UniqueFileDescriptor in TruncateFile()
|
2017-08-10 19:40:47 +02:00 |
|
Max Kellermann
|
df5cc3f0f6
|
fs/FileSystem: OpenFile() returns UniqueFileDescriptor
|
2017-08-10 19:34:52 +02:00 |
|
Max Kellermann
|
eb0ff32efb
|
system/FileDescriptor: add Open() overload with wchar_t path
|
2017-08-10 19:34:52 +02:00 |
|
Max Kellermann
|
cf0120e8e0
|
net/SocketUtil: use SocketDescriptor::SetBoolOption()
|
2017-08-10 19:30:46 +02:00 |
|
Max Kellermann
|
1f47dc990d
|
net/SocketDescriptor: add method SetKeepAlive()
|
2017-08-10 19:25:02 +02:00 |
|
Max Kellermann
|
9a5bcc6db0
|
net/ServerSocket: pass UniqueSocketDescriptor&& to OnAccept()
|
2017-08-10 19:20:14 +02:00 |
|
Max Kellermann
|
492b20a89d
|
event/SocketMonitor: use class SocketDescriptor
|
2017-08-10 19:19:58 +02:00 |
|
Max Kellermann
|
fcfc8bacc0
|
output/httpd: remove obsolete accept() error check
|
2017-08-10 19:19:53 +02:00 |
|
Max Kellermann
|
0800d9427c
|
system/fd_util: remove unused function socket_cloexec_nonblock()
|
2017-08-10 17:40:14 +02:00 |
|
Max Kellermann
|
4e113a7086
|
lib/nfs/Connection: use class SocketDescriptor
|
2017-08-10 17:37:19 +02:00 |
|
Max Kellermann
|
39f422ded8
|
net/SocketDescriptor: allow constructing with "int"
|
2017-08-10 17:37:08 +02:00 |
|
Max Kellermann
|
d2cdaa041c
|
net/SocketDescriptor: SO_REUSEADDR is portable
|
2017-08-10 13:23:14 +02:00 |
|
Max Kellermann
|
d84dae488e
|
net/SocketUtil: fix -Wunused
|
2017-08-10 13:22:00 +02:00 |
|
Max Kellermann
|
79e75bfbb9
|
net/SocketDescriptor: cast setsockopt() value to "const char *" for Windows
|
2017-08-10 13:21:24 +02:00 |
|
Max Kellermann
|
73b15c1bee
|
net/SocketDescriptor: socketpair() is unavailable on Windows
|
2017-08-10 13:19:47 +02:00 |
|
Max Kellermann
|
b180604422
|
net/SocketDescriptor: implement SetNonBlocking() on Windows
|
2017-08-10 13:18:23 +02:00 |
|
Max Kellermann
|
fab12ef241
|
net/SocketDescriptor: call SetNonBlocking() on Linux if SOCK_NONBLOCK unavailable
|
2017-08-10 13:16:25 +02:00 |
|
Max Kellermann
|
917881aa48
|
net/SocketDescriptors: IsValid() is not available on Windows
|
2017-08-10 13:15:57 +02:00 |
|
Max Kellermann
|
9259e989a4
|
net/SocketDescriptors: fix includes for Windows
|
2017-08-10 13:13:19 +02:00 |
|
Max Kellermann
|
da90f484aa
|
net/SocketUtil: socket_bind_listen() returns UniqueSocketDescriptor
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
817e912025
|
net/SocketDescriptor: specialization of FileDescriptor for network sockets
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
7f83d38bca
|
net/StaticSocketAddress: add struct sockaddr cast operators
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
54de8b8e77
|
net/*, ...: use AF_LOCAL instead of AF_UNIX
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
796956970e
|
net/StaticSocketAddress: pass SocketAddress by value to operator!=
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
c0020142da
|
net/StaticSocketAddress: add method SetMaxSize()
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
ee6eea95af
|
net/StaticSocketAddress: set a valid size in Clear()
|
2017-08-10 13:12:13 +02:00 |
|
Max Kellermann
|
a257504ba4
|
mixer/Plugin: pass AudioOutput to init()
Fix breakage from commit bea5681fd8
|
2017-08-10 13:07:36 +02:00 |
|
Max Kellermann
|
fb0dbce15b
|
system/EventFD: use class UniqueFileDescriptor
|
2017-08-10 12:14:56 +02:00 |
|
Max Kellermann
|
8333551331
|
system/SignalFD: use class UniqueFileDescriptor
|
2017-08-10 12:13:41 +02:00 |
|
Max Kellermann
|
292d794806
|
system/UniqueFileDescriptor: new auto-closing FileDescriptor wrapper
|
2017-08-10 12:01:17 +02:00 |
|
Max Kellermann
|
91ce76af9d
|
system/FileDescriptor: add methods EnableCloseOnExec(), DisableCloseOnExec()
|
2017-08-10 11:54:26 +02:00 |
|
Max Kellermann
|
33bd9e80bb
|
system/FileDescriptor: add method IsReadyForWriting()
|
2017-08-10 11:53:43 +02:00 |
|
Max Kellermann
|
d310f3e9b7
|
system/FileDescriptor: add method IsValid()
|
2017-08-10 11:52:22 +02:00 |
|
Max Kellermann
|
8c832f4c50
|
system/FileDescriptor: use std::exchange()
|
2017-08-10 09:55:11 +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
|
1cf7f3d87c
|
output/Solaris: use class FileDescriptor
|
2017-08-10 08:56:56 +02:00 |
|
Max Kellermann
|
9c9a9ccd5c
|
output/Interface: convert to class, make attributes private
|
2017-08-09 17:03:07 +02:00 |
|
Max Kellermann
|
7381236de6
|
output/Interface: remove unused attribute "parent"
|
2017-08-09 17:03:00 +02:00 |
|
Max Kellermann
|
fe9ffcb9d2
|
Merge branch 'v0.20.x'
|
2017-08-08 19:30:30 +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
|
e11229494e
|
output/Filtered: add method NeedFullyDefinedAudioFormat()
Avoid accessing FilteredAudioFormat attributes directly.
|
2017-08-08 18:57:59 +02:00 |
|
Max Kellermann
|
ccc0fcb5b7
|
output/Shout: move ConfigureShoutAudioInfo() call to Open()
Configure the AudioFormat after opening the encoder, because only now
we know the final format.
|
2017-08-08 18:56:14 +02:00 |
|
Max Kellermann
|
6e24381962
|
output/Shout: move code to ShoutSetAudioInfo()
|
2017-08-08 18:56:12 +02:00 |
|
Max Kellermann
|
3ab905644d
|
output/Shout: open the encoder first, then open connection
This order will be necessary for proper AudioFormat initialization,
because the encoder may change the format.
|
2017-08-08 18:53:04 +02:00 |
|
Max Kellermann
|
f46d545307
|
output/Shout: pass shout_t* to shout_connect()
|
2017-08-08 18:52:03 +02:00 |
|
Max Kellermann
|
8134b0073b
|
output/Shout: move write_page() into the struct
|
2017-08-08 18:47:37 +02:00 |
|
Max Kellermann
|
6ab19c7ef2
|
output/Shout: pass shout_t* to handle_shout_error()
|
2017-08-08 18:47:30 +02:00 |
|
Max Kellermann
|
d22361f7c7
|
output/Shout: remove unnecessary nullptr check
|
2017-08-08 18:47:02 +02:00 |
|
Max Kellermann
|
06c7e55188
|
output/Filtered: add methods SupportsEnableDisable(), SupportsPause()
|
2017-08-08 15:54:49 +02:00 |
|
Max Kellermann
|
b3eb8489f3
|
output/Filtered: add a few OutputPlugin method wrappers
|
2017-08-08 14:27:19 +02:00 |
|
Max Kellermann
|
5431fca99b
|
output/Filtered: add attribute "log_name"
|
2017-08-08 14:02:58 +02:00 |
|
Max Kellermann
|
47c9d6ac64
|
output/Internal: rename source to Filtered.cxx
|
2017-08-07 21:50:13 +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
|
fc04620519
|
output/Internal: move code to ConfigureConvertFilter()
|
2017-08-07 18:42:10 +02:00 |
|
Max Kellermann
|
d4ee165253
|
output/Thread: move OpenSoftwareMixer() to the end
This call cannot fail, but needs cleanup if others fail. By moving it
to the end, we eliminate some cleanup.
|
2017-08-07 18:42:09 +02:00 |
|
Max Kellermann
|
4f7f577a57
|
output/Internal: add OpenSoftwareMixer()
Moved code from AudioOutputControl::InternalOpen2().
|
2017-08-07 18:33:07 +02:00 |
|
Max Kellermann
|
612def5c11
|
output/Internal: rename CloseFilter() to CloseSoftwareMixer()
|
2017-08-07 18:32:43 +02:00 |
|
Max Kellermann
|
704825be96
|
mixer/Software: include cleanup
|
2017-08-07 18:31:11 +02:00 |
|
Max Kellermann
|
b8be7ec90e
|
filter/Normalize: add normalize_filter_prepare()
|
2017-08-07 18:28:52 +02:00 |
|
Max Kellermann
|
a3d71f4b91
|
filter/Convert: add convert_filter_prepare()
|
2017-08-07 18:27:00 +02:00 |
|
Max Kellermann
|
9250819b75
|
filter/Volume: add volume_filter_prepare()
Circumvent filter_new() with a fake ConfigBlock.
|
2017-08-07 18:23:13 +02:00 |
|
Max Kellermann
|
04738636ca
|
output/Finish: fold internal function into FinishDestroy()
|
2017-08-07 18:15:15 +02:00 |
|
Max Kellermann
|
07d1b3780d
|
output/Control: move two AudioOutput methods to Finish.cxx
|
2017-08-07 18:13:57 +02:00 |
|
Max Kellermann
|
27d68d8fdd
|
output/Internal: move the Mutex to struct AudioOutputControl
struct AudioOutput should not know or care about multi-threading.
|
2017-08-07 17:44:46 +02:00 |
|
Max Kellermann
|
546b773b21
|
output/Internal: remove mutex code from Close()
|
2017-08-07 17:43:58 +02:00 |
|
Max Kellermann
|
15dcaeda0f
|
output/Internal: remove mutex code from BeginPause(), IteratePause()
|
2017-08-07 17:40:40 +02:00 |
|
Max Kellermann
|
8f42ba13ef
|
output/Internal: simplify "return" statements in IteratePause()
|
2017-08-07 17:40:13 +02:00 |
|
Max Kellermann
|
5990017d51
|
output/Internal: remove mutex code from Enable() and Disable()
|
2017-08-07 17:39:20 +02:00 |
|
Max Kellermann
|
3197c0fd7d
|
output/Thread: move code to InternalCloseOutput()
|
2017-08-07 17:35:43 +02:00 |
|
Max Kellermann
|
4580c685f1
|
output/Thread: unlock the mutex for several AudioOutput calls
|
2017-08-07 17:08:49 +02:00 |
|
Max Kellermann
|
67232453d4
|
output/Control: more locking information in API docs
|
2017-08-07 16:56:41 +02:00 |
|
Max Kellermann
|
b4cce80727
|
output/Thread: move code to InternalClose()
|
2017-08-07 16:34:29 +02:00 |
|
Max Kellermann
|
89a2e5ded3
|
output/Thread: rename InternalClose() to InternalCheckClose()
|
2017-08-07 16:33:20 +02:00 |
|
Max Kellermann
|
9d6b4f46d4
|
output/Thread: move AudioOutput methods to Internal.cxx
|
2017-08-07 16:26:50 +02:00 |
|
Max Kellermann
|
a4019cb6aa
|
util/StringBuffer: use std::array::const_iterator
|
2017-08-07 16:18:43 +02:00 |
|
Max Kellermann
|
b0703b92c3
|
util/FormatString: pass the allocated buffer to AllocatedString::Donate()
.. and not the stack buffer. This made the AllocatedString destructor
crash.
Closes #52
|
2017-08-03 00:25:30 +02:00 |
|
Max Kellermann
|
d29bdf3e81
|
Merge branch 'v0.20.x'
|
2017-07-31 13:50:14 +02:00 |
|
Max Kellermann
|
dd9fd3d8a7
|
tag/Aiff: the FORM chunk size is big-endian
Was broken by commit 8a86460b8f
Closes #87
|
2017-07-31 13:46:09 +02:00 |
|
Matthew Leon
|
4c0404c70d
|
Check for MusicBrainz id3v2 tags in ffmpeg.
Addresses #82.
Previously, the ffmpeg decoder only checked for the "generic"
MusicBrainz metadata keys used in other metadata container formats.
|
2017-07-20 08:28:14 +02:00 |
|
Matthew Leon
|
573a413ee1
|
move MusicBrainz id3v2 tags to separate file
We will reuse these tags elsewhere.
|
2017-07-20 08:26:29 +02:00 |
|
Max Kellermann
|
501a4af914
|
util/StringUtil: move strip functions to StringStrip.cxx
|
2017-07-05 17:20:02 +02:00 |
|
Max Kellermann
|
dad7d7e798
|
util/TruncateString: rename CopyString() to CopyTruncateString()
|
2017-07-05 17:15:58 +02:00 |
|
Max Kellermann
|
4b94ae8040
|
util/StringUtil: move CopyString() to TruncateString.cxx
|
2017-07-05 17:11:34 +02:00 |
|
Max Kellermann
|
b04679b429
|
util/WritableBuffer: add method MoveFront()
|
2017-07-05 17:10:59 +02:00 |
|
Max Kellermann
|
19358d1c42
|
util/Exception: add more utility functions
|
2017-07-05 17:08:26 +02:00 |
|
Max Kellermann
|
8679074be7
|
util/Exception: move code to AppendNestedMessage()
|
2017-07-05 17:07:43 +02:00 |
|
Max Kellermann
|
ba09e22c30
|
util/Exception: add GetFullMessage(std::exception)
|
2017-07-05 17:07:41 +02:00 |
|
Max Kellermann
|
6515b9727d
|
util/Exception: catch std::nested_exception
|
2017-07-05 17:07:40 +02:00 |
|
Max Kellermann
|
4af8e5bdb5
|
util/Exception: include cleanup
|
2017-07-05 17:07:39 +02:00 |
|
Max Kellermann
|
2db8cf477b
|
util/Exception: add "fallback" and "separator" parameters
|
2017-07-05 16:59:40 +02:00 |
|
Max Kellermann
|
3cfefa53f7
|
util/Exception: rename FullMessage() to GetFullMessage()
|
2017-07-05 12:25:55 +02:00 |
|
Max Kellermann
|
bce89feb13
|
util/Manual: drop prefix from include guard
|
2017-07-05 12:25:32 +02:00 |
|
Max Kellermann
|
88f5220acf
|
util/Manual: drop support for gcc 4.6
|
2017-07-05 12:25:20 +02:00 |
|
Max Kellermann
|
3e87ac75a1
|
util/Manual: use C++11 initializer
|
2017-07-05 12:12:41 +02:00 |
|
Max Kellermann
|
9237f2a80c
|
util/{Const,Writable}Buffer: add array constructor
|
2017-07-05 12:09:27 +02:00 |
|
Max Kellermann
|
61aca389c4
|
util/{Const,Writable}Buffer: add typedef value_type
|
2017-07-05 12:08:34 +02:00 |
|
Max Kellermann
|
80438c4876
|
util/BindMethod: add BIND_FUNCTION()
|
2017-07-05 12:04:29 +02:00 |
|
Max Kellermann
|
70ac4fa96b
|
util/AllocatedString: implement AllocatedString<wchar_t>::Duplicate()
|
2017-07-05 10:26:39 +02:00 |
|
Max Kellermann
|
6e2b348758
|
output/Internal: move the "open" flag to struct AudioOutputControl
|
2017-06-15 22:52:46 +02:00 |
|
Max Kellermann
|
613dd67784
|
output/Internal: move the AudioOutputSource to struct AudioOutputControl
|
2017-06-08 22:13:47 +02:00 |
|
Max Kellermann
|
58683f02ec
|
output/Thread: move the AudioOutputSource::Open() call to InternalOpen()
Prepare for moving the AudioOutputSource to class AudioOutputControl.
|
2017-06-08 22:08:01 +02:00 |
|
Max Kellermann
|
7cb82fe8f3
|
output/Thread: move code to InternalClose()
|
2017-06-08 21:59:48 +02:00 |
|
Max Kellermann
|
0494779ecb
|
output/Thread: move software_mixer_set_filter() out of the "try" block
That function is "noexcept".
|
2017-06-08 21:49:41 +02:00 |
|
Max Kellermann
|
0500990d23
|
filter/volume: remove unused PcmVolume instance
|
2017-06-08 21:48:22 +02:00 |
|
Max Kellermann
|
22a82f1eaa
|
mixer/software, filter/volume: add "noexcept"
|
2017-06-08 21:45:23 +02:00 |
|
Max Kellermann
|
13b04dc908
|
mixer/Internal: add "noexcept"
|
2017-06-08 21:42:57 +02:00 |
|