9 Commits

Author SHA1 Message Date
c4bce75866 Bump version, update NEWS
All checks were successful
Arch Linux AUR Success
Alpine 3.19 Success
2024-02-27 00:39:23 +01:00
08b87bccbd Bump liberty, fix a dead link 2024-02-27 00:30:39 +01:00
fa460b97cf Fix info plugins installation
They could never become executable.
2024-02-25 05:15:00 +01:00
ef19337bad Bump version, update NEWS 2024-02-10 18:39:57 +01:00
9699b80e9d Very mildly improve stream handling 2024-02-10 18:35:10 +01:00
7601a754af Bump liberty 2024-02-10 12:50:39 +01:00
31d975604b README.adoc: remove unintended line break 2024-02-10 10:21:09 +01:00
59f82b7a72 Bump liberty, set the window icon 2024-02-10 10:09:32 +01:00
8bcdb0afd5 Bump liberty, install rasterized icons 2024-02-10 06:04:39 +01:00
6 changed files with 46 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 3.0...3.27)
project (nncmpp VERSION 2.0.0 LANGUAGES C)
project (nncmpp VERSION 2.1.1 LANGUAGES C)
# Moar warnings
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
@@ -68,7 +68,7 @@ if (WITH_PULSE)
list (APPEND extra_libraries ${libpulse_LIBRARIES})
endif ()
pkg_check_modules (x11 x11 xrender xft fontconfig)
pkg_check_modules (x11 x11 xrender xft fontconfig libpng)
add_option (WITH_X11 "Build with X11 support" "${x11_FOUND}")
if (WITH_X11)
if (NOT x11_FOUND)
@@ -128,10 +128,25 @@ add_threads (${PROJECT_NAME})
install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
install (DIRECTORY contrib DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
install (DIRECTORY info DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
install (DIRECTORY info DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}
USE_SOURCE_PERMISSIONS)
if (WITH_X11)
include (IconUtils)
set (icon_base ${PROJECT_BINARY_DIR}/icons)
set (icon_png_list)
foreach (icon_size 16 32 48)
icon_to_png (${PROJECT_NAME} ${PROJECT_SOURCE_DIR}/${PROJECT_NAME}.svg
${icon_size} ${icon_base} icon_png)
list (APPEND icon_png_list ${icon_png})
endforeach ()
add_custom_target (icons ALL DEPENDS ${icon_png_list})
install (FILES ${PROJECT_NAME}.svg
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps)
install (DIRECTORY ${icon_base}
DESTINATION ${CMAKE_INSTALL_DATADIR})
install (FILES ${PROJECT_NAME}.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
endif ()

15
NEWS
View File

@@ -1,4 +1,13 @@
Unreleased
2.1.1 (2024-02-27)
* Fixed installation of Info tab plugins
* Fixed display of playback mode toggles in the terminal user interface
* Fixed a dead link in the manual page
2.1.0 (2024-02-11)
* Added ability to look up song lyrics,
using a new scriptable extension interface for the Info tab
@@ -13,10 +22,14 @@ Unreleased
* X11: fixed rendering of overflowing, partially visible list items
* X11: fixed a crash when resizing the window to zero dimensions
* Added a "o" binding to select the currently playing song
* Added Readline-like M-u, M-l, M-c editor bindings
* Made the scroll wheel work on the elapsed time gauge and the volume display
* Changed volume adjustment bindings to use +/- keys
* Changed volume adjustment to go in steps of 5 rather than 10 %

View File

@@ -40,10 +40,12 @@ The rest of this README will concern itself with externalities.
Building
--------
Build dependencies: CMake, pkg-config, awk, liberty (included),
termo (included), asciidoctor or asciidoc (recommended but optional) +
Build-only dependencies: CMake, pkg-config, awk, liberty (included),
termo (included), asciidoctor or asciidoc (recommended but optional),
rsvg-convert (X11) +
Runtime dependencies: ncursesw, libunistring, cURL +
Optional runtime dependencies: fftw3, libpulse, x11, xft, Perl + cURL (lyrics)
Optional runtime dependencies: fftw3, libpulse, x11 + xft + libpng (X11),
Perl + cURL (lyrics)
$ git clone --recursive https://git.janouch.name/p/nncmpp.git
$ mkdir nncmpp/build

Submodule liberty updated: 4c2874649d...969a4cfc3e

View File

@@ -69,7 +69,7 @@ colors = {
scrollbar = ""
}
streams = {
"dnbradio.com" = "http://www.dnbradio.com/hi.m3u"
"dnbradio.com" = "https://dnbradio.com/hi.pls"
"BassDrive.com" = "http://bassdrive.com/v2/streams/BassDrive.pls"
}
....

View File

@@ -3843,8 +3843,13 @@ streams_tab_parse_playlist (const char *playlist, const char *content_type,
|| (content_type && is_content_type (content_type, "audio", "x-scpls")))
extract_re = "^File[^=]*=(.+)";
else if ((lines.len && !strcasecmp_ascii (lines.vector[0], "#EXTM3U"))
|| (content_type && is_content_type (content_type, "audio", "mpegurl"))
|| (content_type && is_content_type (content_type, "audio", "x-mpegurl")))
extract_re = "^([^#].*)";
// This could be "^([^#].*)", however 1. we would need to resolve
// relative URIs, and 2. relative URIs probably mean a Media Playlist,
// which must be passed to MPD. The better thing to do here would be to
// reject anything with EXT-X-TARGETDURATION, and to resolve the URIs.
extract_re = "^(https?://.+)";
regex_t *re = regex_compile (extract_re, REG_EXTENDED, NULL);
hard_assert (re != NULL);
@@ -3867,7 +3872,7 @@ streams_tab_extract_links (struct str *data, const char *content_type,
}
streams_tab_parse_playlist (data->str, content_type, out);
return true;
return out->len != 0;
}
static void