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
33f67d418f
test/run_output: use AudioOutput::{Begin,Finish}Destroy()
2017-08-07 18:14:54 +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
Max Kellermann
cf0c59864f
doc/protocol.xml: clarify that idle events do not get lost
2017-07-21 09:51:43 +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
f633e6ca49
python/build/libs: add LAME
...
Enable it in the Windows build script, closes #78 .
LAME currently doesn't support Android:
checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized
2017-07-19 20:53:52 +02:00
Max Kellermann
07b06d76be
{android,win32}/build.py: concatenate variables from the command line
2017-07-19 20:53:52 +02:00