summaryrefslogtreecommitdiff
path: root/src/output/plugins
AgeCommit message (Collapse)Author
2018-07-16config/Config*: rename files, drop "Config" prefixMax Kellermann
2018-07-16Merge branch 'can' of git://github.com/Wang-Yue/MPDMax Kellermann
2018-07-16Implement Cancel() for OSXOutputPluginYue Wang
2018-07-16output/alsa: use spsc_queue::reset()Max Kellermann
This method was added in Boost 1.58.
2018-07-13Update OSXOutputPlugin.cxxYue Wang
some device seems to have issue with setting kAudioDevicePropertyVolumeScalar with kAudioObjectPropertyElementMaster. Use AudioToolbox 's kAudioHardwareServiceDeviceProperty_VirtualMasterVolume instead. Ideally, we should get the steoro channels first, and set the kAudioDevicePropertyVolumeScalar for each channel, which is doable as presented in https://github.com/cmus/cmus/blob/master/op/coreaudio.c. I will do a follow up PR after refactor PR.
2018-07-13further guard dop code by if (dop_enabled)Yue Wang
2018-07-13Update OSXOutputPlugin.cxxYue Wang
1 sec for pause is too long. we wait for the same amount of time as when ring buffer is not available for writing.
2018-07-13Fix a copy and paste from diff bug.Yue Wang
2018-07-13Enclose pcm_export into the ENABLE_DSD guard.Yue Wang
2018-07-13Simplify audio format assignment codeYue Wang
2018-07-13Enable OSX output plugin to set hardware sample rate and bit depth at the ↵Yue Wang
same time This PR will fix #271. special thanks to @coroner21 who contributed a nice way to score hardware supported format in #292 Also, The DSD related code are all guarded with ENABLE_DSD flag.
2018-07-10enable macOS to use Hardware MixerYue Wang
- Update the mixer to set on device property instead of audio unit property. When user choose "hardware" as mixer type, they will be able to change the hardware device volume instead of the software (AudioUnit) volume. - We don't use square root scale in volume calculation as previous code did. This will make the volume level in line with system volume meter --- That is, MPD will have the same percentage volume reading compared to System Setting (Either in "System Preference" or in "Audio Midi Setup" app)
2018-07-06Merge branch 'v0.20.x'Max Kellermann
2018-07-06AudioFormat: include cleanupMax Kellermann
2018-07-06output/httpd: remove broken DLNA support codeMax Kellermann
This code was added in 21851c06733080b4c131d553d5d1f8784c12410f but looks completely broken: - the status code is "206 OK" but "206" would be "Partial Content" - the "Content-Length" header has a bogus value - the "Content-RangeX" parameter has different bogus values (why "Content-RangeX" anyway and not "Content-Range"?) Apart from that, there are strange undocumented non-standard headers which are probably there to work around bugs/expectations in one broken proprietary client product. But these days, MPD doesn't bend over to support broken clients. So let's kill this code. Closes #304
2018-06-02Fix pause for OSX output plugin (delay one second)Christian Kröner
2018-05-03Merge branch 'v0.20.x'Max Kellermann
2018-05-03{input,output}/alsa: work around -Wswitch due to SND_PCM_STATE_PRIVATE1Max Kellermann
2018-04-26output/alsa: don't submit silence if PCM is not yet runningMax Kellermann
See code comment. Closes #260
2018-04-26output/alsa: CopyRingToPeriodBuffer() returns boolMax Kellermann
2018-04-26output/alsa: disable events in Cancel()Max Kellermann
Don't reactivate the PCM device immediately after Cancel() is finished; if Cancel() gets called this may mean that new data may take a while to produce, or no data at all will be produced because the current song is being stopped. Once new data is available, Play() will automatically reactivate the PCM. This fixes underruns when switching songs manually (closes #264).
2018-04-26output/alsa: reset "active" on errorMax Kellermann
Use the "active" flag in PrepareSockets() instead of LockHasError().
2018-04-26output/alsa: make the "active" attribute thread-safeMax Kellermann
2018-04-26output/alsa: merge Activate() and UnlockActivate()Max Kellermann
Prepare to make the "active" attribute thread-safe.
2018-04-26output/alsa: rethrow errors in Drain()Max Kellermann
2018-04-26output/alsa: thread-safety documentation for attribute "active"Max Kellermann
2018-04-26output/alsa: simplify MultiSocketMonitor::GetEventLoop() callsMax Kellermann
2018-04-10output/alsa: remove obsolete comment, was moved to ↵Max Kellermann
Alsa::PeriodBuffer::Allocate()
2018-03-07Fix build with DSD disabledChristian Kröner
2018-03-07Reset sample rate to initial state on OSX outputChristian Kröner
2018-03-07Fix sample rate sync on Mac output for low ratesChristian Kröner
2018-03-07Implement Pause() for OSXOutput pluginChristian Kröner
2018-03-07Honor 'device "system"' setting for OSX outputChristian Kröner
2018-02-26Initial support for DSD over PCM on macOSChristian Kröner
From: Christian Kröner <ckroener@gmx.net> This just copies the necessary bits and pieces from the ALSA plugin and applies them to OSXOutput based on dop config setting. It only changes the OSXOutput plugin as needed for DoP (further changes to support additionally e.g. integer mode or setting the physical device mode require rather a complete rewrite of the output plugin). Fortunately the Core Audio API is by default bit perfect and supports DoP with minimal changes (setting the sampling rate accordingly after ensuring that the physical mode supports at least 24 bits per channel seems to be enough). This was tested on an Amanero Combo384 device hooked up to a ES9018 DAC. USAGE (try only on DACs that support DoP): - Add dop "yes" option to mpdconf - Be sure to set at least 24bits per channel before playing some DSD file (using Audio-MIDI-Setup) - Based on the dop setting, MPD will change the sample rate as required and output DoP signal to the DAC - Hog mode is recommended to ensure that no other program will try to mix some output with the DoP stream (resulting in bad noise) - Alternatively set the default output device to another device (e.g. the built-in output) to avoid having other audio interfere with DSD playback
2018-02-03Merge tag 'v0.20.16'Max Kellermann
release v0.20.16
2018-01-30output/pulse: fix crash during auto-detectionMax Kellermann
The PulseOutput needs to be "enabled" before WaitConnection() may be called. Closes #207
2018-01-24util/StringFormat: new utility libraryMax Kellermann
2018-01-17fs/AllocatedPath: make the nullptr_t constructor publicMax Kellermann
2018-01-05Haiku: fix buildFrançois Revol
Convert the fill_buffer to a class method, to allow accessing the private method. Also remove the leftover Wrapper stuff.
2018-01-05Merge branch 'v0.20.x'Max Kellermann
2018-01-05output/haiku: remove unimplemented Cancel() methodMax Kellermann
2018-01-03Merge branch 'work_tag' of git://github.com/loujine/MPDMax Kellermann
Closes #181
2018-01-02output/haiku: remove size==0 check from Play()Max Kellermann
By API contract, this parameter must not be zero.
2018-01-02output/ao: round write_size down to a multiple of the frame sizeMax Kellermann
2018-01-02config/Block: add method GetPositiveValue()Max Kellermann
Adds missing checks to several plugins.
2018-01-02output/ao: use class SafeSingleton for libao initializationMax Kellermann
2017-12-30Add basic support for MUSICBRAINZ_WORKID tagloujine
2017-12-20event/BufferedSocket: add "noexcept"Max Kellermann
2017-12-19output/alsa: add attributes "dop" and "allowed_formats"Max Kellermann
2017-12-19Main, ...: catch any exception, not just std::runtime_errorMax Kellermann