summaryrefslogtreecommitdiff
path: root/src/Main.cxx
AgeCommit message (Collapse)Author
2018-07-17decoder/List: use struct ConfigDataMax Kellermann
2018-07-17fs/Path: add operator/(Path,Path)Max Kellermann
Modeled after std::filesystem::operator/() from C++17.
2018-07-16config/Config*: rename files, drop "Config" prefixMax Kellermann
2018-07-16Main, pcm/SampleFormat, command/Error: remove obsolete GCC version checksMax Kellermann
2018-06-03zeroconf/Avahi: move dbus_shutdown() call to the end of Main()Max Kellermann
Calling dbus_shutdown() too early will break the "udisks2" neighbor plugin.
2018-03-05Merge branch 'v0.20.x'Max Kellermann
2018-03-04Get rid of GCD on macOS which breaks debug buildsChristian Kröner
With Grand Central Dispatch used in Main.cxx, debug builds on macOS crash as the IsInside() assertion gets triggered in the event loop. As a simple fix, usage of GCD is removed. Plugging and unplugging headphones or changes of the default output device was tested without issues. Whatever the original commit tried to fix by GCD probably does not need fixing anymore.
2018-02-24Merge tag 'v0.20.18'Max Kellermann
release v0.20.18
2018-02-24Main: move WinSock initialization to class ScopeNetInitMax Kellermann
2018-02-16output/alsa: use a new I/O thread with real-time schedulingMax Kellermann
The normal I/O event thread can have a large latency, e.g. when libgnutls loads all TLS CA certificates for a https connect. This makes it unreliable for the ALSA I/O notifications, and causes ring buffer xruns. To avoid interfering with high latency events such as CURL's, we move the ALSA I/O events to a separate I/O thread which also obtains real-time scheduling (if possible). Closes #221
2018-01-29Listen: move ClientListener pointer to struct PartitionMax Kellermann
2018-01-29Main: move part of the shutdown code to Instance methodsMax Kellermann
2018-01-29Main: cancel the update on shutdown even if inotify is unavailableMax Kellermann
Fixup for commit 681e012fb542ee1bb2ea5312dc673987a7a8ee29
2018-01-29Instance: rename Shutdown() to Break()Max Kellermann
2018-01-17CommandLine: convert pointer to referenceMax Kellermann
2018-01-02storage/Composite: use std::unique_ptr<Storage>Max Kellermann
2018-01-02storage/Plugin: return std::unique_ptr<Storage>Max Kellermann
2017-12-19Main, ...: catch any exception, not just std::runtime_errorMax Kellermann
2017-12-16Merge branch 'v0.20.x'Max Kellermann
2017-12-12*: check defined(_WIN32) instead of defined(WIN32)Max Kellermann
Only _WIN32 is defined by the compiler, and WIN32 is not standardized and may be missing. Closes #169
2017-08-24db/DatabasePlugin: pass EventThread's EventLoop to create()Max Kellermann
Allows database plugins to use the EventThread, e.g. for CURL integration.
2017-05-16Merge branch 'v0.20.x'Max Kellermann
2017-05-16Main: omit "constexpr" on MIN_BUFFER_SIZE with GCC 4.xMax Kellermann
2017-05-15Merge tag 'v0.20.7'Max Kellermann
release v0.20.7
2017-05-15Main: cap buffer_before_play at 80% to prevent deadlockMax Kellermann
Closes #34
2017-05-15Main: enforce a reasonable minimum audio_buffer_size settingMax Kellermann
2017-05-15Main: refactor DEFAULT_BUFFER_SIZE to represent bytesMax Kellermann
2017-05-08*: remove "pure" and "const" attributes from throwing functionsMax Kellermann
The "pure" and "const" attributes are not so well-defined, and a recent clang version implements an optimization which pushes the definition's boundary beyond what I believed it was. clang now assumes that functions declared "pure" cannot throw exceptions, even if they lack the "noexcept" specification. When compiled with this new clang version, MPD will crash randomly if an exception happens to get thrown by such as "pure" function (https://github.com/MusicPlayerDaemon/MPD/issues/41). This commit removes all such misplaced "pure" and "const" attributes, closing #41.
2017-02-17Instance: make "partition" a std::listMax Kellermann
With this commit, multi-player support becomes possible... it's just not wired to the frontend yet. This is based on massive amounts of refactoring work I did over the past 9 years.
2017-02-17Partition: add "name" attributeMax Kellermann
2017-02-10IOThread: move EventThread instance into struct InstanceMax Kellermann
Eliminate global variables.
2017-02-09Main: use the IOThread for outputs and mixersMax Kellermann
The main EventLoop can block for a long time while a client's command runs, and is therefore inappropriate for internal engine I/O. This fixes a serious regression for at least the "httpd" output, which used to be hard-coded for the IOThread, but now receives the main EventLoop as an initialization parameter. For the mixers, this doesn't make much of a difference. They are not latency critical.
2017-02-08tag/Tag*: rename several source filesMax Kellermann
2017-01-26input/Plugin: pass EventLoop& to init()Max Kellermann
Eliminate dependency on io_thread_get().
2017-01-23Main, db/Glue: improve error messagesMax Kellermann
2017-01-03update copyright yearMax Kellermann
2017-01-03Main: invoke UpdateEffectiveReplayGainMode() after output initMax Kellermann
Forward the configured ReplayGainMode to all outputs and decoders.
2016-12-28Stats: initialize start_time automaticallyMax Kellermann
2016-12-28event/Loop: use std::chronoMax Kellermann
2016-12-10ReplayGainGlobal: move replay_gain_config into struct ConfigMax Kellermann
Yet another global variable removed.
2016-12-10Main: add struct Config, empty currentlyMax Kellermann
2016-12-04LogInit: convert use_stdout flag to out_fd=STDOUT_FILENOMax Kellermann
2016-12-03decoder/Control: add attribute configured_audio_formatMax Kellermann
Obsoletes the same variable from AudioConfig.cxx.
2016-12-03ReplayGainGlobal: move replay_gain_mode to struct PartitionMax Kellermann
2016-12-03Partition: pass ReplayGainConfig to constructorMax Kellermann
2016-12-03Main: call replay_gain_global_init() before forkingMax Kellermann
2016-12-03filter/ReplayGain: add ReplayGainConfig copyMax Kellermann
Remove dependency on ReplayGain global variables.
2016-11-25ReplayGainConfig: add struct ReplayGainConfig, move globals to ↵Max Kellermann
ReplayGainGlobal.cxx
2016-11-24Partition: add UpdateEffectiveReplayGainMode()Max Kellermann
Move code from replay_gain_get_real_mode().
2016-11-02CommandLine: migrate from class Error to C++ exceptionsMax Kellermann