Max Kellermann
|
e097fef79e
|
output/control: add command RELEASE
With the new command, the decision to pause or close the output moves
into the output thread.
|
2018-11-12 12:09:37 +01:00 |
|
Max Kellermann
|
9a813cd3b1
|
output/Thread: update comment
|
2018-11-12 12:09:02 +01:00 |
|
Max Kellermann
|
f5c9071494
|
*: copyright year 2018
|
2018-10-31 17:54:59 +01:00 |
|
Max Kellermann
|
1624a5eb8d
|
output/Control: add another Cond attribute, replacing audio_output_client_notify
|
2018-06-23 19:11:48 +02:00 |
|
Max Kellermann
|
1bca29f9e2
|
output/Control: rename "cond" to "wake_cond"
Prepare for adding another Cond attribute.
|
2018-06-23 19:10:23 +02:00 |
|
Max Kellermann
|
eb771eaf0d
|
output/Thread: re-lock the mutex after flush error
Fixes deadlock due to mutex double lock.
|
2018-01-29 22:30:56 +01:00 |
|
Max Kellermann
|
e3ef3e8d71
|
output/Control: unlock mutex during expensive operations
|
2018-01-04 10:36:18 +01:00 |
|
Max Kellermann
|
051b8fbb31
|
output/Thread: add "noexcept"
|
2018-01-04 09:54:35 +01:00 |
|
Max Kellermann
|
6d0d8cf9cf
|
filter/Filter: add virtual method Flush()
This will be used by filters which have internal buffers which need to
be flushed at the end, e.g. the "soxr" resampler.
|
2018-01-02 23:15:51 +01:00 |
|
Max Kellermann
|
b0199245d5
|
output/Thread: move code to method InternalDrain()
|
2018-01-02 18:03:48 +01:00 |
|
Max Kellermann
|
b93e3b2cf6
|
output/Thread: move code to method InternalCloseError()
|
2018-01-02 18:02:14 +01:00 |
|
Max Kellermann
|
ae7fcf4c6b
|
output/Thread: move common code to method Failure()
|
2018-01-02 18:00:20 +01:00 |
|
Max Kellermann
|
1607754771
|
output/Thread: update "last_error" after filter/play errors
|
2018-01-02 17:59:37 +01:00 |
|
Max Kellermann
|
028f659c40
|
output/Thread: move error handling code into the catch block
|
2018-01-02 17:48:14 +01:00 |
|
Max Kellermann
|
8dfdacf128
|
output/Thread: AudioOutput::Play() must not return zero
|
2018-01-02 17:47:46 +01:00 |
|
Max Kellermann
|
e2621d5e44
|
filter/Plugin: return std::unique_ptr<PreparedFilter>
|
2017-12-27 11:39:01 +01:00 |
|
Max Kellermann
|
03cf6591c0
|
output/Source: convert prepared_filter to reference
|
2017-12-27 11:21:43 +01:00 |
|
Max Kellermann
|
914df18bf9
|
Main, ...: catch any exception, not just std::runtime_error
|
2017-12-19 10:56:23 +01:00 |
|
Max Kellermann
|
49784513b1
|
util/{Const,Writable}Buffer, ...: rename IsEmpty() to empty(), imitating STL
|
2017-11-10 19:24:33 +01:00 |
|
Max Kellermann
|
523051132d
|
Merge branch 'v0.20.x'
|
2017-11-05 17:48:41 +01: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
|
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
|
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
|
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
|
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
|
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
|
7467b85019
|
output/Thread: rename audio_format to in_audio_format
|
2017-06-08 13:20:55 +02:00 |
|
Max Kellermann
|
7dea615f74
|
output/{Source,Thread}: make the AudioFormat parameter const
|
2017-06-08 13:19:34 +02:00 |
|
Max Kellermann
|
3010d182fc
|
output/Internal: move "really_enabled" flag to class AudioOutputControl
|
2017-06-08 09:55:49 +02:00 |
|
Max Kellermann
|
a72a02f0f2
|
output/Thread: move Enable() call to InternalEnable()
|
2017-06-08 09:51:13 +02:00 |
|
Max Kellermann
|
614df96382
|
output/Thread: move Enable() call out of Open()
|
2017-06-08 09:50:34 +02:00 |
|
Max Kellermann
|
669d7a6feb
|
output/Thread: move Close() call out of Disable()
|
2017-06-08 09:34:24 +02:00 |
|
Max Kellermann
|
d600b937f1
|
output/Thread: move code to InternalDisable()
|
2017-06-08 09:32:07 +02:00 |
|
Max Kellermann
|
1fa1790da5
|
output/Internal: move the "pause" flag to struct AudioOutputControl
|
2017-05-23 11:23:10 +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 |
|