Max Kellermann
b57eeaa720
protocol/RangeArg: add static method Single()
2021-02-15 20:29:37 +01:00
Max Kellermann
ad059d5804
protocol/RangeArg: add method IsOpenEnded()
2021-02-15 20:29:35 +01:00
Max Kellermann
6e1940e930
protocol/RangeArg: add static method OpenEnded()
2021-02-15 20:29:34 +01:00
Max Kellermann
103194e32d
protocol/RangeArg: add missing `noexcept`
2021-02-15 19:56:02 +01:00
Naglis Jonaitis
cbc830fd65
doc/client.rst: fix typo
2021-02-15 20:23:32 +02:00
Shen-Ta Hsieh
481c330c17
src/output: Set thread name for Wasapi output thread
2021-02-15 17:51:49 +01:00
Shen-Ta Hsieh
7ef489e057
src/win32: run clang-format
2021-02-15 17:50:51 +01:00
Shen-Ta Hsieh
d9e5d5ff5b
src/win32: Add error message for NO_ERROR
2021-02-15 17:45:25 +01:00
Max Kellermann
ca02fb7782
android/AndroidManifest.xml: enable requestLegacyExternalStorage
...
This is a workaround for the new scoped storage design in Android 11:
https://developer.android.com/about/versions/11/privacy/storage
This needs a proper solution eventually, but this quick fix will do
until we change "targetSdkVersion" to 30.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1061
2021-02-15 17:43:05 +01:00
Max Kellermann
d4d06da2f8
db/simple: fix dangling LightSong::tag reference in moved ExportedSong
...
After commit 1afa33c3c7
, an old bug was revealed:
SimpleDatabase::GetSong() constructs an ExportedSong instance by
moving the return value of Song::Export(), which causes the
LightSong::tag field to be dangling on the moved-from
ExportedSong::tag_buffer. This broke tags from CUE sheets.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1070
2021-02-15 17:38:37 +01:00
Max Kellermann
efde78db77
output/Thread: skip drain calls if there is no data to be played
...
Keep track of whether there is data being played, and don't call
AudioOutput::Drain() after Cancel() has been called already.
2021-02-15 16:39:13 +01:00
Max Kellermann
f1b8bcd6b2
output/pulse: don't drain if stream is suspended or corked
...
In this state, we can't make any progress.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1084
2021-02-15 16:07:16 +01:00
Max Kellermann
c2bc3704e1
output/pulse: move code to virtual method Drain()
...
Drain only if it was requested explicitly.
2021-02-15 15:59:54 +01:00
Max Kellermann
def120aca4
output/pulse: eliminate the `pause` field
...
It is useless, because we're always checking pa_stream_is_corked().
2021-02-15 15:59:46 +01:00
Max Kellermann
6d2b09ac2b
doc/developer.rst: update branch names
2021-02-15 13:41:46 +01:00
Max Kellermann
98a9f81d61
doc/client.rst: new chapter about client development
2021-02-15 13:26:25 +01:00
Max Kellermann
78b43a9930
doc/protocol.rst: document `add` on local socket
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1022
2021-02-15 13:00:18 +01:00
AndriiZ
f5460b35a3
Add cacert option for Curl plugin. Allows to set cacert for curl lib ( #3 )
...
Add cacert option for curl plugin
add cacert option for Curl plugin. Allows to set cacert for curl lib
Added documentation line into doc/plugins.rst with explanation for cacert option
2021-02-13 13:49:15 +02:00
Max Kellermann
3456b1e50d
use std::size_t
2021-02-12 18:39:28 +01:00
Max Kellermann
fe6abe1750
zlib/Error: add `noexcept`
2021-02-12 18:37:32 +01:00
Max Kellermann
6cdb3ff21e
use [[gnu::pure]] instead of gcc_pure
...
This is semi-standard and doesn't require the util/Compiler.h header.
2021-02-12 18:34:16 +01:00
Max Kellermann
01af2778ab
time/ISO8601: throw std::invalid_argument on error
...
Throwing std::runtime_error was slightly wrong.
2021-02-12 18:31:56 +01:00
Max Kellermann
ad03c70753
event/TimerWheel: workaround for GCC9 bug
2021-02-12 18:29:02 +01:00
Max Kellermann
7fe0095fa7
util/IntrusiveList: add `noexcept` to defaulted constructor
2021-02-11 21:22:15 +01:00
Max Kellermann
a4b236348f
Merge branch 'v0.22.x'
2021-02-07 22:04:07 +01:00
Max Kellermann
da5ff779c6
python/build/libs.py: enable CURL/schannel support on Windows
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1031
2021-02-07 21:58:08 +01:00
Max Kellermann
e7da5b104d
archive/iso9660: another fix for unaligned reads
...
Commit 79b2366387
added the field `skip`
to support unaligned reads, but set the `offset` field to a wrong
value. This resulted in miscalculation of `remaining`, causing
an assertion failure.
The fix is to assign `offset` the correct value, but consider the
`skip` value in the assertion.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1067
2021-02-07 21:41:51 +01:00
Max Kellermann
aa40aae5bd
doc/user.rst: add section about profiling MPD
2021-02-07 21:38:24 +01:00
Max Kellermann
4be76f3c8f
archive/iso9660: check "skip==0" before doing optimized large read
...
After a Seek() to an odd offset, some data needs to be skipped from
the start of the block, and reading right into the given buffer
doesn't work.
2021-02-07 21:38:13 +01:00
Max Kellermann
c58c53293c
test/run_input: add option --seek
2021-02-07 21:20:17 +01:00
Max Kellermann
8695a2806a
test/run_input: document more options
2021-02-07 21:17:10 +01:00
vkostas
a59f1b21a6
Fix: Separate Conductor from Performer
...
Conductor was incorrectly saved to Performer tag in MPD database
2021-02-07 20:45:01 +01:00
Max Kellermann
5a16e3ffa3
event/TimerWheel: optimized container for CoarseTimerEvent
2021-02-05 18:24:25 +01:00
Max Kellermann
d1957b83c8
event/Chrono: add type alias TimePoint
2021-02-05 18:19:23 +01:00
Max Kellermann
1b4fd74575
event/TimerEvent: rename to FineTimerEvent
...
... and make TimerEvent a type alias for FineTimerEvent (i.e. swap
names).
2021-02-05 18:18:05 +01:00
Max Kellermann
def962b6cb
event/{Coarse,Fine,Far}TimerEvent: aliases for TimerEvent
...
Preparing for a variant of TimerEvent with coarse 1-second
granularity, but cheaper (with a timer wheel).
2021-02-05 18:16:05 +01:00
Max Kellermann
e802f1f61a
event/Loop: move TimerSet to separate class
2021-02-05 18:09:21 +01:00
Max Kellermann
271b287356
event/TimerEvent: assign `due` in Schedule()
2021-02-05 17:57:05 +01:00
Max Kellermann
2a30acd99c
event/Loop: use [[gnu::pure]]
2021-02-05 17:55:33 +01:00
Max Kellermann
a8e70f18fd
event/*: use `using` instead of `typedef`
2021-02-05 17:54:16 +01:00
Max Kellermann
ddd9f20a0b
fs/io/GunzipReader: document that the constructor throws
2021-02-04 17:29:00 +01:00
Max Kellermann
f4a5d671fe
util/{Const,Writable}Buffer: include cleanup
2021-02-04 17:27:48 +01:00
Richard Backhouse
c72006dbcc
zeroconf/ZeroconfBonjour: Cleanup formatting from previous commit
2021-01-23 06:13:05 -05:00
Richard Backhouse
06fe30e2bd
zeroconf/ZeroconfBonjour: Fix compile errors resulting from "refactor to SocketEvent" and reenable bonjour for darwin build
2021-01-23 06:06:49 -05:00
Max Kellermann
08e76815ba
io/FileDescriptor: use std::byte
2021-01-22 12:50:16 +01:00
Max Kellermann
33ac3eb551
lib/curl/Easy: add methods SetVerify{Host,Peer}()
2021-01-22 12:34:04 +01:00
Max Kellermann
d56a51cb5e
Merge branch 'v0.22.x'
2021-01-21 22:28:11 +01:00
Max Kellermann
9e2d09dabc
net/SocketError: add syscall specific check functions
...
Fixes Windows compatibility.
2021-01-21 22:05:21 +01:00
Max Kellermann
2719f62feb
net/SocketError: relicense to BSD-2
2021-01-21 21:31:02 +01:00
Max Kellermann
065a0c09f8
fs/io/StdioOutputStream: include cleanup
2021-01-21 21:13:40 +01:00