Implement Cancel() for OSXOutputPlugin
This commit is contained in:
		| @@ -101,6 +101,7 @@ private: | |||||||
| 	std::chrono::steady_clock::duration Delay() const noexcept override; | 	std::chrono::steady_clock::duration Delay() const noexcept override; | ||||||
| 	size_t Play(const void *chunk, size_t size) override; | 	size_t Play(const void *chunk, size_t size) override; | ||||||
| 	bool Pause() override; | 	bool Pause() override; | ||||||
|  | 	void Cancel() noexcept override; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| static constexpr Domain osx_output_domain("osx_output"); | static constexpr Domain osx_output_domain("osx_output"); | ||||||
| @@ -910,6 +911,17 @@ bool OSXOutput::Pause() { | |||||||
| 	return true; | 	return true; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void | ||||||
|  | OSXOutput::Cancel() noexcept | ||||||
|  | { | ||||||
|  | 	AudioOutputUnitStop(au); | ||||||
|  | 	ring_buffer->reset(); | ||||||
|  | #ifdef ENABLE_DSD | ||||||
|  | 	pcm_export->Reset(); | ||||||
|  | #endif | ||||||
|  | 	AudioOutputUnitStart(au); | ||||||
|  | } | ||||||
|  |  | ||||||
| int | int | ||||||
| osx_output_get_volume(OSXOutput &output) | osx_output_get_volume(OSXOutput &output) | ||||||
| { | { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yue Wang
					Yue Wang