Geoffroy Youri Berret [Wed, 11 Nov 2020 09:50:18 +0000 (10:50 +0100)]
Updated changelog
Gbp-Dch: Ignore
Geoffroy Youri Berret [Wed, 11 Nov 2020 08:50:06 +0000 (09:50 +0100)]
Dropped version in libmpdclient-dev dependency
Geoffroy Youri Berret [Wed, 11 Nov 2020 08:47:32 +0000 (09:47 +0100)]
Bump dh compat to level 13
Geoffroy Youri Berret [Wed, 11 Nov 2020 08:43:20 +0000 (09:43 +0100)]
Update copyright
Geoffroy Youri Berret [Mon, 9 Nov 2020 08:39:06 +0000 (09:39 +0100)]
Update Changelog
Gbp-Dch: Ignore
Geoffroy Youri Berret [Mon, 9 Nov 2020 08:37:33 +0000 (09:37 +0100)]
Add NEWS.Debian regarding lyrics plugin removal
Geoffroy Youri Berret [Fri, 6 Nov 2020 15:26:50 +0000 (16:26 +0100)]
Update changelog
Gbp-Dch: Ignore
Max Kellermann [Wed, 28 Oct 2020 21:06:48 +0000 (22:06 +0100)]
release v0.42
Max Kellermann [Wed, 28 Oct 2020 20:49:24 +0000 (21:49 +0100)]
LibraryPage: move PLAY handler code to LibraryTagListPage::HandleEnter()
This completes mouse support for the library page, because now
TagListPage::OnMouse() can call LibraryTagListPage::HandleEnter().
Max Kellermann [Wed, 28 Oct 2020 20:48:01 +0000 (21:48 +0100)]
LibraryPage: add subclass of TagListPage
We'll move some code from ArtistBrowserPage there, so TagListPage can
call into ArtistBrowserPage.
Max Kellermann [Wed, 28 Oct 2020 20:56:45 +0000 (21:56 +0100)]
LibraryPage: move code from SongListPage::OnCommand() to HandleEnter()
Enables mouse click support for "[..]".
Max Kellermann [Wed, 28 Oct 2020 20:40:34 +0000 (21:40 +0100)]
TagListPage: mouse support
Max Kellermann [Wed, 28 Oct 2020 20:39:59 +0000 (21:39 +0100)]
TagListPage: move code to HandleEnter(), HandleSelect()
Max Kellermann [Wed, 28 Oct 2020 20:13:06 +0000 (21:13 +0100)]
FileListPage: make HandleEnter() virtual
This fixes mouse clicks on directories because FileListPage::OnMouse()
will now call FileBrowserPage::HandleEnter().
Max Kellermann [Wed, 28 Oct 2020 20:21:40 +0000 (21:21 +0100)]
NEWS: "library page" change was really about the "file page"
Max Kellermann [Wed, 28 Oct 2020 19:47:46 +0000 (20:47 +0100)]
ListWindow: support the mouse wheel
Closes https://github.com/MusicPlayerDaemon/ncmpc/issues/78
Max Kellermann [Wed, 28 Oct 2020 19:53:55 +0000 (20:53 +0100)]
FileListPage: repaint after moving cursor with mouse
Max Kellermann [Wed, 28 Oct 2020 13:59:55 +0000 (14:59 +0100)]
event/Loop: AbandonFD() unlinks the SocketEvent
Fixes use-after-free bugs causing assertion failures at shutdown,
because all "abandoned" SocketEvents are still in the linked list.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/986
Closes https://github.com/MusicPlayerDaemon/MPD/issues/987
Max Kellermann [Wed, 28 Oct 2020 13:58:23 +0000 (14:58 +0100)]
event/Loop: pass SocketEvent& to AbandonFD()
arcnmx [Mon, 19 Oct 2020 19:15:34 +0000 (12:15 -0700)]
system/FileDescriptor: fix Duplicate result
dup2 returns new_fd on success, not 0
Max Kellermann [Mon, 19 Oct 2020 12:14:32 +0000 (14:14 +0200)]
event/PollGroup: rename to PollBackend
Max Kellermann [Mon, 19 Oct 2020 12:28:41 +0000 (14:28 +0200)]
event/PollGroup: move event flags to a separate header
Reduce header dependencies for SocketEvent.hxx.
Max Kellermann [Sun, 18 Oct 2020 18:07:48 +0000 (20:07 +0200)]
event/SocketEvent: forbid copying
Max Kellermann [Sun, 18 Oct 2020 18:05:21 +0000 (20:05 +0200)]
event/Loop: reorder assertions
Max Kellermann [Sun, 18 Oct 2020 18:04:15 +0000 (20:04 +0200)]
event/Loop: add assertions
Max Kellermann [Sun, 18 Oct 2020 17:31:58 +0000 (19:31 +0200)]
event/SocketEvent: use class IntrusiveList<>
Max Kellermann [Sun, 18 Oct 2020 17:39:21 +0000 (19:39 +0200)]
event/Loop: manage all SocketEvents in a linked list
Not only those which are "ready".
Max Kellermann [Sun, 18 Oct 2020 17:43:35 +0000 (19:43 +0200)]
event/Loop: un-inline AddFD(), ModifyFD()
Prepare for adding more code here.
Max Kellermann [Tue, 5 Mar 2019 21:06:09 +0000 (22:06 +0100)]
event/Loop: round epoll_wait() timeout up
This implements proper rounding, amending commit
dcbb9fe07ce
Max Kellermann [Sun, 18 Oct 2020 17:21:47 +0000 (19:21 +0200)]
event/IdleEvent: use class IntrusiveList<>
Max Kellermann [Sun, 18 Oct 2020 17:21:11 +0000 (19:21 +0200)]
util/IntrusiveList: replacement for boost::intrusive::list
Max Kellermann [Sun, 18 Oct 2020 17:23:30 +0000 (19:23 +0200)]
event/IdleEvent: use `auto`
Max Kellermann [Sun, 18 Oct 2020 17:23:20 +0000 (19:23 +0200)]
event/IdleEvent: forbid copying
Max Kellermann [Fri, 16 Oct 2020 11:01:00 +0000 (13:01 +0200)]
increment version number to 0.42
Geoffroy Youri Berret [Fri, 6 Nov 2020 15:15:04 +0000 (16:15 +0100)]
Update Changelog
Gbp-Dch: Ignore
Geoffroy Youri Berret [Fri, 6 Nov 2020 15:08:52 +0000 (16:08 +0100)]
Drop ruby dependency in ncmpc-lyrics
The ncmpc-lyrics is only reading previously cached lyrics since upstream
remove "lyricwiki" plugin (site is gone).
Max Kellermann [Fri, 16 Oct 2020 10:59:17 +0000 (12:59 +0200)]
release v0.41
Max Kellermann [Fri, 16 Oct 2020 10:29:25 +0000 (12:29 +0200)]
doc/index.rst: improve the `screen-list` description
Close https://github.com/MusicPlayerDaemon/ncmpc/issues/76
Max Kellermann [Fri, 16 Oct 2020 10:26:20 +0000 (12:26 +0200)]
doc: more RST markup
Max Kellermann [Thu, 15 Oct 2020 18:40:19 +0000 (20:40 +0200)]
screen_status: add std::exception_ptr overload
Max Kellermann [Thu, 15 Oct 2020 18:32:56 +0000 (20:32 +0200)]
net/AsyncHandler: pass std::exception_ptr to OnConnectError()
Max Kellermann [Thu, 15 Oct 2020 18:31:34 +0000 (20:31 +0200)]
net/AsyncConnect: close only on error
Max Kellermann [Thu, 15 Oct 2020 18:29:37 +0000 (20:29 +0200)]
net/AsyncConnect: check SO_ERROR only if EPOLLERR was returned
Max Kellermann [Thu, 15 Oct 2020 18:19:01 +0000 (20:19 +0200)]
event/Loop: move code to Wait()
Max Kellermann [Thu, 15 Oct 2020 18:06:51 +0000 (20:06 +0200)]
event/PollGroup: ReadEvents() returns PollResult
Max Kellermann [Thu, 15 Oct 2020 15:01:13 +0000 (17:01 +0200)]
event/SocketEvent: add ScheduleImplicit(), Is{Read,Write}Pending()
Max Kellermann [Thu, 15 Oct 2020 14:55:43 +0000 (16:55 +0200)]
event/SocketEvent: add Abandon()
Max Kellermann [Thu, 15 Oct 2020 14:55:29 +0000 (16:55 +0200)]
event/SocketEvent: document Close()
Max Kellermann [Thu, 15 Oct 2020 14:52:36 +0000 (16:52 +0200)]
event/SocketEvent: rename Steal() to ReleaseSocket()
Max Kellermann [Wed, 7 Oct 2020 08:14:18 +0000 (10:14 +0200)]
net/UniqueSocketDescriptor: add `noexcept`
Max Kellermann [Thu, 15 Oct 2020 14:45:49 +0000 (16:45 +0200)]
net/SocketAddress: add missing include
Max Kellermann [Thu, 15 Oct 2020 12:46:33 +0000 (14:46 +0200)]
TagListPage: fix nullptr dereference when adding "[All]"
Commit
9f5a0754d5 caused a regression because two variables were mixed
up: the `text` must not be nullptr, or else Utf8ToLocale() crashes.
Closes https://github.com/MusicPlayerDaemon/ncmpc/issues/77
Max Kellermann [Thu, 15 Oct 2020 12:26:08 +0000 (14:26 +0200)]
net/AsyncConnect: use the SO_ERROR result, not errno
Fixes regression by commit
dfd26025ccb652a7514f7c73429fbf948e159dd2
Max Kellermann [Thu, 15 Oct 2020 10:53:41 +0000 (12:53 +0200)]
util/StringStrip: use std::strlen()
Max Kellermann [Thu, 15 Oct 2020 10:52:22 +0000 (12:52 +0200)]
util/StringStrip: use std::size_t
Max Kellermann [Sun, 22 Mar 2020 18:15:55 +0000 (19:15 +0100)]
util/StringCompare: add API documentation
Max Kellermann [Fri, 13 Mar 2020 19:36:48 +0000 (20:36 +0100)]
util/StringCompare: add StringIsEqual() with string_view
Max Kellermann [Fri, 13 Mar 2020 17:47:00 +0000 (18:47 +0100)]
util/StringCompare: add more StringView overloads
Max Kellermann [Thu, 15 Oct 2020 10:47:42 +0000 (12:47 +0200)]
util/StringCompare: use std::memcmp()
Rosen Penev [Fri, 1 May 2020 02:25:55 +0000 (19:25 -0700)]
use std chr functions
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Max Kellermann [Thu, 23 Jul 2020 14:10:27 +0000 (16:10 +0200)]
util/RuntimeError: add IWYU pragma
Max Kellermann [Thu, 15 Oct 2020 10:45:07 +0000 (12:45 +0200)]
util/Exception: use [[noreturn]]
Max Kellermann [Sat, 1 Feb 2020 12:13:08 +0000 (13:13 +0100)]
util/Exception: move the forwarded std::exception_ptr
Max Kellermann [Mon, 6 Apr 2020 13:19:06 +0000 (15:19 +0200)]
util/ConstBuffer, ...: use `using` instead of `typedef`
Max Kellermann [Fri, 13 Mar 2020 18:43:12 +0000 (19:43 +0100)]
util/Stringview: use `const_pointer` instead of hard-coding `const char *`
Fixes Windows build failure.
Max Kellermann [Mon, 3 Feb 2020 19:45:58 +0000 (20:45 +0100)]
util/StringView: add method substr()
Max Kellermann [Wed, 14 Oct 2020 20:00:06 +0000 (22:00 +0200)]
util/ConstBuffer: use <cassert>
Max Kellermann [Fri, 3 Jan 2020 14:49:29 +0000 (15:49 +0100)]
util/{Const,Writable}Buffer: drop "_type" from type names
Behave like STL.
Max Kellermann [Fri, 3 Jan 2020 14:50:39 +0000 (15:50 +0100)]
util/StringView: use `using` instead of `typedef`
Max Kellermann [Fri, 3 Jan 2020 14:38:02 +0000 (15:38 +0100)]
util/{Const,Writable}Buffer: use std::size_t
Max Kellermann [Fri, 3 Jan 2020 14:39:19 +0000 (15:39 +0100)]
util/ConstBuffer: add `noexcept`
Max Kellermann [Mon, 27 Apr 2020 11:57:05 +0000 (13:57 +0200)]
util/CharUtil: add IsNonPrintableASCII()
Prepare to fix
cc72ceb368185381851bec2d7d4fe1c4d69b3f46
Max Kellermann [Mon, 6 Apr 2020 10:59:33 +0000 (12:59 +0200)]
util/CharUtil: add IsHexDigit()
Max Kellermann [Tue, 13 Oct 2020 14:04:07 +0000 (16:04 +0200)]
migrate from boost::asio to the MPD EventLoop
Two years ago, ncmpc 0.32 (commit
74cc24bdfcfd) made the switch from
GLib's GMainLoop to boost::asio, because that appeared to be a decent
non-blocking I/O event loop for C++, but it turned out that the API
was complicated to use, broke all the time and the generated code was
heavily bloated.
Even though importing more than 7000 lines of code from MPD sounds
like replacing one kind of bloat with another, this reduces ncmpc's
executable size from 380 kB to 240 kB (37% smaller). The "mini" build
is reduced from 149 kB to 79 kB (47% smaller).
Closes https://github.com/MusicPlayerDaemon/ncmpc/issues/73
Max Kellermann [Tue, 13 Oct 2020 13:29:30 +0000 (15:29 +0200)]
event: import the non-blocking event I/O loop from MPD
Will replace boost::asio.
Max Kellermann [Wed, 14 Oct 2020 19:32:10 +0000 (21:32 +0200)]
lyrics: remove the "lyricwiki" plugin because the site is gone
See
https://web.archive.org/web/
20200830142257/https://lyrics.fandom.com/wiki/LyricWiki
That leaves ncmpc without a working lyrics plugin. I hope we can find
a new site for obtaining lyrics!
Min Ho Park [Fri, 9 Oct 2020 14:57:56 +0000 (14:57 +0000)]
Translated using Weblate (Korean)
Currently translated at 100.0% (276 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/ko/
Yaron Shahrabani [Tue, 29 Sep 2020 11:19:03 +0000 (11:19 +0000)]
Translated using Weblate (Hebrew)
Currently translated at 78.6% (217 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/he/
Allan Nordhøy [Mon, 7 Sep 2020 00:02:40 +0000 (00:02 +0000)]
Translated using Weblate (Norwegian Bokmål)
Currently translated at 92.3% (255 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/nb_NO/
IvanDan [Mon, 7 Sep 2020 16:23:35 +0000 (16:23 +0000)]
Translated using Weblate (Italian)
Currently translated at 98.5% (272 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/it/
J.MarSar [Thu, 3 Sep 2020 14:15:14 +0000 (14:15 +0000)]
Translated using Weblate (Spanish)
Currently translated at 99.6% (275 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/es/
Владимир [Sat, 29 Aug 2020 23:23:00 +0000 (23:23 +0000)]
Translated using Weblate (Russian)
Currently translated at 97.4% (269 of 276 strings)
Translation: Ncmpc/Translations
Translate-URL: https://hosted.weblate.org/projects/ncmpc/translations/ru/
Max Kellermann [Wed, 7 Oct 2020 18:59:19 +0000 (20:59 +0200)]
increment version number to 0.41
Geoffroy Youri Berret [Mon, 12 Oct 2020 11:15:16 +0000 (13:15 +0200)]
Update changelog
Gbp-Dch: Ignore
Geoffroy Youri Berret [Mon, 12 Oct 2020 10:52:02 +0000 (12:52 +0200)]
Update upstream source from tag 'upstream/0.40'
Update to upstream version '0.40'
with Debian dir
1dd4e62629efe32de9bc53af5acb7f9e424f3dbf
Geoffroy Youri Berret [Mon, 12 Oct 2020 10:52:01 +0000 (12:52 +0200)]
New upstream version 0.40
Max Kellermann [Wed, 7 Oct 2020 15:24:58 +0000 (17:24 +0200)]
release v0.40
Max Kellermann [Mon, 5 Oct 2020 11:48:52 +0000 (13:48 +0200)]
SongRowPaint: require a minimum width to enable hscroll
Like commit
c44784f7af609fd94b4fb0b7d23f329c671d51db
Closes https://github.com/MusicPlayerDaemon/ncmpc/issues/73
Max Kellermann [Wed, 7 Oct 2020 15:22:14 +0000 (17:22 +0200)]
StatusBar: show elapsed time even at 0:00
This special case was never useful.
Max Kellermann [Wed, 7 Oct 2020 15:17:14 +0000 (17:17 +0200)]
StatusBar: show elapsed time of streams
Max Kellermann [Mon, 5 Oct 2020 14:14:30 +0000 (16:14 +0200)]
ListCursor: clamp scroll_offset, replacing special case
This replaces commit
db6e2e0cb6880d687ce468093fe85d6ee26aa004, which
caused a jumping cursor on song change when the whole queue was
visible.
Max Kellermann [Mon, 5 Oct 2020 11:18:50 +0000 (13:18 +0200)]
StatusBar: merge redundant `options.scroll` checks
Max Kellermann [Mon, 5 Oct 2020 11:18:38 +0000 (13:18 +0200)]
StatusBar: make `center_width` a local variable
Max Kellermann [Mon, 5 Oct 2020 10:26:46 +0000 (12:26 +0200)]
FileListPage: pass references to browser_select_entry()
Max Kellermann [Mon, 5 Oct 2020 10:22:04 +0000 (12:22 +0200)]
FileListPage: add nullptr check to PaintStatusBarOverride()
Fixes a bug bug which crashes ncmpc when the range selection includes
the special entry ".." which has no "entity".
Closes https://github.com/MusicPlayerDaemon/ncmpc/issues/75
Max Kellermann [Mon, 5 Oct 2020 10:20:18 +0000 (12:20 +0200)]
FileListPage: add local variable `entity`
Geoffroy Youri Berret [Sat, 26 Sep 2020 11:34:16 +0000 (13:34 +0200)]
Update changelog
Gbp-Dch: Ignore
Geoffroy Youri Berret [Sat, 26 Sep 2020 11:32:26 +0000 (13:32 +0200)]
Add basic upstream metadata
Geoffroy Youri Berret [Sat, 26 Sep 2020 09:13:05 +0000 (11:13 +0200)]
Update upstream source from tag 'upstream/0.39'
Update to upstream version '0.39'
with Debian dir
a18a34a2bfbc3aa02c1234a280e4e16f767ffa8d
Geoffroy Youri Berret [Sat, 26 Sep 2020 09:13:04 +0000 (11:13 +0200)]
New upstream version 0.39