Commit Graph

2835 Commits

Author SHA1 Message Date
casey langen
9fb2c6412d Add transparent background support to PDCURSES_WINCON build. 2022-01-02 13:38:01 -08:00
casey langen
d77bf3c833 Enable color themes for WINCON builds. 2022-01-01 12:02:59 -08:00
casey langen
bc9b026920 Fix background rendering for some types of overlays on some platforms. 2021-12-29 11:56:29 -08:00
casey langen
be2ca36131 Update version hash. 2021-12-28 14:55:45 -08:00
casey langen
d1d9db1e53 Update version hash. 2021-12-28 13:48:07 -08:00
casey langen
6c1ae05b57 Updated musikdroid versionCode 2021-12-28 13:47:44 -08:00
casey langen
6572465e1c More rpath fixes -- this time for macOS. 2021-12-28 13:36:07 -08:00
casey langen
18960811cc Version bump. 2021-12-28 00:46:40 -08:00
casey langen
4bb9bbad3c Fix race condition by adding required locking in WasapiOut to avoid rare
crash.
2021-12-27 22:41:57 -08:00
casey langen
03c55e94e6 Update musikdroid version. 2021-12-27 19:17:01 -08:00
casey langen
540e1498c3 Version bump. 2021-12-27 18:56:04 -08:00
casey langen
c10b957689 Update -rpath usage. 2021-12-27 18:55:37 -08:00
casey langen
d3204e4072 Bump commit hash for release. 2021-12-27 15:10:36 -08:00
casey langen
d278728e01 Refactored and added logging to SystemService to improve notification synchronization issues -- looks like we should debounce all updates to both the notification and the MediaSession or the internals can get confused. 2021-12-27 13:21:17 -08:00
casey langen
4a3c54bf13 Update Android Studio and dependencies. 2021-12-27 13:20:56 -08:00
Maksymilian Jodłowski
f013f1065d
Add missing header.
Fixes #476
2021-12-22 08:45:46 +01:00
casey langen
be1d51c5f7 Fixed notification tray icon for windows builds. 2021-12-18 21:08:00 -08:00
Sergei Trofimovich
1240720e27 always use "%s"-style format for printf()-style functions
`ncuses-6.3` added printf-style function attributes and now makes
it easier to catch cases when user input is used in palce of format
string when built with CFLAGS=-Werror=format-security:

    musikcube/cursespp/cursespp/curses_config.h:54:36:
     error: format not a string literal and no format arguments [-Werror=format-security]
       54 |     if (window && format) { wprintw(window, format, ##__VA_ARGS__); }
          |                             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    musikcube/src/musikcube/app/window/TransportWindow.cpp:640:5: note: in expansion of macro 'checked_wprintw'
      640 |     checked_wprintw(c, shuffleLabel.c_str(

Let's wrap all the missing places with "%s" format.
2021-11-17 09:09:37 +00:00
Robert Günzler
4f5e233126
Fix data directory when using XDG (#470)
Since 7fbed05135
musikcube detects `$XDG_CONFIG_HOME` with `GetHomeDirectory`.
There is an intermediate call to `getDataDirectoryRoot` though which
appends `/.config`, stemming from when `GetHomeDirectory` would actually
return `$HOME`. This leads to the situation where on most systems where
config home is already under `$HOME/.config/` musikcube will create
`$HOME/.config/.config/musikcube` for itself.

We fix this by removing the `getDataDirectoryRoot` shim entirely.

Signed-off-by: Robert Günzler <r@gnzler.io>
2021-11-14 15:43:51 -08:00
Robert Günzler
5bdf0113d7
cmake: fix build against ncurses with separate libtinfo
Tested this on openbsd as well:
https://github.com/robertgzr/musikcube/tree/bsd
https://builds.sr.ht/~robertgzr/job/623049

Signed-off-by: Robert Günzler <r@gnzler.io>
2021-11-08 02:32:53 +01:00
Robert Günzler
aa12ef18bb
cmake: support sd-bus fallback implementations
* elogind: https://github.com/elogind/elogind
* basu: https://github.com/emersion/basu

Relates https://github.com/clangen/musikcube/issues/365
Fixes https://github.com/clangen/musikcube/issues/456

Signed-off-by: Robert Günzler <r@gnzler.io>
2021-11-08 02:32:51 +01:00
casey langen
51275f35ba Looks like some versions of pw_stream_flush() crash if the stream was
never connected. If we can't connect, let's destroy the stream
immediately to avoid this from happening later when the plugin cleans
up.
2021-10-17 14:39:25 -07:00
casey langen
eacb0ea034 Added Android 12 and Android Studio Arctic Fox support. 2021-09-26 23:07:38 -07:00
casey langen
a0162d1fc3 Allow for user to configure NullOut's default sample rate. 2021-09-20 12:25:03 -07:00
casey langen
0497260ddb Fix use after free bug in FfmpegDecoder. 2021-09-20 08:18:25 -07:00
casey langen
042c857895 Fix sample back pressure leading to increased memory usage over time in
FfmpegDecoder.
2021-09-20 08:05:16 -07:00
casey langen
d99e65d91f Read the default sample rate from the selected output and relay it to
the appropriate decoder.
2021-09-19 21:53:02 -07:00
casey langen
06bdf32959 * Updated WasapiOut to provide the preferred sample rate for the
selected device
* Updated FfmpegDecoder to accept the preferred sample rate from the
  output, and use it when resampling if it is non-negative. Otherwise,
  use the sample rate defined by the file.

Note: this is not wired up in the main app yet.
2021-09-19 21:50:54 -07:00
casey langen
f2e8fd45f8 Update IOutput and IDecoder interfaces to allow for querying and setting default/preferred output sample rates. Nothing is wired up yet. 2021-09-19 21:00:59 -07:00
casey langen
440a34b549 CHANGELOG and version bump. 2021-09-05 14:55:37 -07:00
casey langen
f91bee6a1c Fix parsing album art from FLAC files. 2021-09-05 14:49:55 -07:00
Orestes
6e9dcc5246
Spanish translation (#459) 2021-08-28 19:04:33 -07:00
PythonTryHard
f8bc7aa4c0
Fix album duration calculation off-by-one (#453) 2021-08-28 19:04:08 -07:00
casey langen
825adfcf2f Fix view re-creation due to visibility change. 2021-07-18 13:59:29 -07:00
casey langen
53b072f8f6 Redraw UI on visibility change. Shouldn't be necessary; need to look
into the root cause.
2021-07-18 13:18:32 -07:00
casey langen
11f81c59e5 Fix bug where user may not be able to navigate to lyrics layout. 2021-07-18 13:10:06 -07:00
casey langen
8627875691 Update scrobble logic. 2021-07-17 15:41:56 -07:00
casey langen
2af4a125fb Fix unit conversion. 2021-07-17 15:39:41 -07:00
casey langen
3cd6bc165f Update scrobble logic to post after 25% of the track has played, not 10 seconds. 2021-07-17 12:02:31 -07:00
casey langen
c86230d3aa Fix rare PipeWire bug that may cause volume to not get set properly after restarting the app. 2021-07-15 22:50:34 -07:00
casey langen
dfecbe96e5 Syntax fix for OpenBSD CMake support. 2021-07-15 22:16:30 -07:00
casey langen
b87c8d1152 OpenBSD build fixes. 2021-07-15 20:45:43 -07:00
Tian Yunhao
00cf3eb59d
Build: ensure static library existence only when needed (#447)
The current cmake build script for flac, m4a and ogg
asserts the corresponding library existence. However,
when building in environments like buildroot, the static
library may not exist. Thus only check for them when
static build is actually needed.
2021-07-01 21:35:30 -07:00
casey langen
70a35adf39 Android Studio 4.2 support. 2021-05-11 12:58:05 -07:00
Maksymilian Jodłowski
ec842cfcb0
Requery TrackSearchLayout on Indexer.Finished (#437)
Whenever library is updated search should be requeried.

Co-authored-by: Maksymilian Jodlowski <5447436-ravensiris@users.noreply.gitlab.com>
2021-05-05 00:04:34 -07:00
casey langen
f2590fc480 Version bump for Windows re-dist 2021-04-29 19:22:07 -07:00
eater
fea06d9674
Use pkg-config for pipewire library in cmake (#432) 2021-04-19 15:55:14 -07:00
casey langen
132a8b7f88 Replaced a bunch of unnecessary flatMaps with map 2021-04-19 00:03:58 -07:00
casey langen
32908048d3 Upgraded musikcube-bin for a new ExoPlayer flac plugin. 2021-04-17 20:42:46 -07:00
casey langen
9ebf93b155 Upgrade musikdroid dependencies and build tooling. 2021-04-17 19:23:08 -07:00
casey langen
9667ec6bd6 Release hash update 2021-04-16 22:10:42 -07:00
Cthulhux
24aeb8b6be
de_DE translation (#430) 2021-04-16 19:26:29 -07:00
casey langen
172ed8f65f version bump 2021-04-15 21:08:41 -07:00
casey langen
f44157a220 Copyright year updates. 2021-04-14 20:16:48 -07:00
casey langen
d79dac8ac8 Don't fail if libev.a is missing, we'll fall back to the shared library. 2021-04-13 22:16:16 -07:00
casey langen
2a72984be4 Warning cleanup 2021-04-13 22:02:49 -07:00
casey langen
6914702131 Fix bug where sometimes navigating to directory browse would not correctly hightlight the "browse" button in the shortcuts bar 2021-04-12 21:59:30 -07:00
casey langen
6fd0c537b4 Added an "advanced" option to allow resuming playback automatically on app start. 2021-04-11 22:41:12 -07:00
casey langen
e35d117156 Better bad packet detection...? 2021-04-11 20:35:23 -07:00
casey langen
1230315a4e Detect and discard invalid packets in FfmpegDecoder. This seems to fix issues when playing WAV files that have embedded artwork. 2021-04-11 20:04:40 -07:00
casey langen
bdb624a187 More logging and improved seeking in FfmpegDecoder. 2021-04-11 18:22:27 -07:00
casey langen
3b95b17753 Don't show EOF errors by default when decoding, as they're usually nothing to worry about and pollute the log. 2021-04-11 17:31:27 -07:00
casey langen
16af22a7d1 Fix issue with DirectoryAdapter being unable to display some music in the root directory if there are empty sub-directories. 2021-04-11 17:17:41 -07:00
casey langen
de660b8f51 Add support for long filenames on Windows in directory browse view. 2021-04-10 22:53:50 -07:00
casey langen
229b282aec Check for libraries and fail fast if not found. 2021-04-10 22:33:33 -07:00
casey langen
a28d14717d Use M-s instead of ^S to change sort order. 2021-04-10 14:27:00 -07:00
casey langen
8431598aa2 Upgraded Windows build to use ffmpeg4.4 2021-04-10 14:08:48 -07:00
casey langen
15134e9a80 Fixed USE_BUNDLED_TAGLIB=false, and renamed to ENABLE_BUNDLED_TAGLIB 2021-04-09 22:43:56 -07:00
casey langen
1539a407db Syntax modernization in Plugins.cpp 2021-03-27 22:25:11 -07:00
casey langen
f2071d31aa Ensure debug is properly initialized for all plugins. 2021-03-21 22:15:10 -07:00
casey langen
56f3af3b96 Guard against null debug during shutdown. 2021-03-21 14:58:18 -07:00
casey langen
f416a1dbd7
Merge pull request #421 from clangen/clangen/pipewire
PipeWire output support
2021-03-19 23:30:56 -07:00
casey langen
017bc1fdde Fixed StockEncoder's plugin name 2021-03-19 23:29:41 -07:00
casey langen
3b6768cb2d FFMPEG_ENABLED -> ENABLE_FFMPEG for consistency. 2021-03-19 23:29:03 -07:00
casey langen
9cacfb9832 Disable PipeWire by default; added ENABLE_PIPEWIRE flag to CMake. Added Hirsute build target that includes PipeWire. 2021-03-19 23:28:11 -07:00
casey langen
7b4864bed9 Use a stubbed debugger during shutdown. 2021-03-18 22:41:29 -07:00
casey langen
717b6066ec Converted PipeWireOut to use IDebug 2021-03-18 22:19:35 -07:00
casey langen
05bef79366 Fixed a bug where updating the transport wouldn't take effect until an app restart. 2021-03-18 21:35:02 -07:00
casey langen
672a5fdb45 Fixed a bug where switching between crossfade and gapless transport could cause the app to stop responding. 2021-03-18 21:07:42 -07:00
casey langen
fa80e7f041 Fix curses version check. 2021-03-18 11:57:32 -07:00
casey langen
bd0db547ff Query device name. 2021-03-18 11:38:41 -07:00
casey langen
c8867a3b96 PipeWire device selection and persistence by ID. TODO: still need to resolve the name. 2021-03-18 00:41:41 -07:00
casey langen
0a0a192bbf Incremental changes to support device enumeration. TODO: (1) resolving device name, (2) actually changing to a non-default device. 2021-03-17 23:56:39 -07:00
casey langen
89bbdf6f54 Let PipeWire determine the best buffer size automatically. We had selected buffers that were too small and causing gapless playback to not always work properly. 2021-03-17 20:22:21 -07:00
casey langen
ae800d788d Implemented PipeWireOut::SetVolume 2021-03-17 19:15:04 -07:00
casey langen
75dac589d0 Stabilized Pipewire. Just a few TODOs left. 2021-03-16 23:44:47 -07:00
casey langen
4e2a46267c TODOify 2021-03-15 22:33:40 -07:00
casey langen
95564ef5cd Fix pause/resume in PipeWireOut 2021-03-15 22:32:01 -07:00
casey langen
a602b0efaf Ensure PipeWireOut shuts down cleanly 2021-03-15 22:28:31 -07:00
casey langen
dcb4e38921 We have audio! Cleaned up some debug logging. 2021-03-15 22:09:25 -07:00
casey langen
b561bf8fb6 Minor updates and more debugging cruft. Need to test on a machine with a working PipeWire installation. 2021-03-15 21:50:03 -07:00
casey langen
aa7efd3d5b Fix pointer arithmetic 2021-03-14 22:24:48 -07:00
casey langen
8172cac91f Still not producing accurate sound, but this update ensures we completely fill our input buffers before returning them... at least in theory... we're not producing sound yet in the VM. 2021-03-14 22:22:06 -07:00
casey langen
beb95e55a5 More scaffholding. 2021-03-14 18:52:12 -07:00
casey langen
e0fcfcf162 Warning cleanup 2021-03-06 14:36:49 -08:00
casey langen
95420b8359 Fix high CPU usage in musikcube-cmd build. 2021-03-06 14:36:49 -08:00
casey langen
dee5150c2e Fleshed out some PipeWire implementation, but no way to test it yet. 2021-03-05 09:32:02 -08:00
casey langen
104a65f183 Added scaffolding for a PipeWire output plugin. 2021-03-03 22:53:59 -08:00
casey langen
b32130e9a3 Finished first pass of custom layout warning cleanup. 2021-01-30 14:15:36 -08:00
casey langen
d35d8d31f7 Added custom CMake NCURSES_DISABLE_LIB_SUFFIXES flag. 2021-01-29 21:34:00 -08:00
casey langen
2b1e7b5448 Some warning cleanup in the custom app views and layouts. 2021-01-28 19:56:45 -08:00
casey langen
80b81d8e35 TrackListView warning cleanup. 2021-01-27 22:57:57 -08:00
casey langen
ea0cbd8378 Use safer APIs when formatting duration strings. 2021-01-27 15:22:20 -08:00
Casey Langen
2263610b50 Added duration readouts to directory browsing. 2021-01-26 19:40:53 -08:00
casey langen
4a077922ae Added the ability to format durations with hours. 2021-01-26 15:25:38 -08:00
casey langen
fe752a0d6f Added durations to SearchTrackListQuery 2021-01-26 00:04:37 -08:00
casey langen
46118ab6fe Ensure CategoryTrackListQuery is implemented successfully, and added
correct exception handling for query result parse failures in the remote
library WebSocketClient.
2021-01-25 23:45:08 -08:00
casey langen
960c9a55f4 Update CategoryTrackListQuery to also include duration. Untested, checking this in to test on a computer that has easier access to local music. 2021-01-25 22:06:44 -08:00
casey langen
db9f12551a Added new GetDurations() stubs to TrackListQueryBase and subclasses. 2021-01-25 20:10:26 -08:00
casey langen
edce1d7c88
Warning and and precompiled headers fixes and cleanup (#408) 2021-01-25 19:03:57 -08:00
Casey Langen
05e7a690b2 Merge branch 'clangen/0.96.5' 2021-01-24 14:07:13 -08:00
Casey Langen
75552819de version bump and changelog update. 2021-01-24 13:53:38 -08:00
Casey Langen
47cb367d5d When building a static archive on macOS, statically link against the
brew version of curses.
2021-01-24 13:52:18 -08:00
Casey Langen
aa59abd031 Conditionalize weird redraw issue observed on FreeBSD. 2021-01-17 23:59:01 -08:00
casey langen
a64a7c97b9 Ensure we repaint the background of windows before redrawing them. This
fixes some issues with incomplete background colors on some operating
system / ncurses combinations (e.g. FreeBSD)
2021-01-17 22:56:58 -08:00
casey langen
d38e30fcc0 More warning cleanup. 2021-01-09 00:46:59 -08:00
casey langen
5e3f02074e Fixed a bug where track numbers would not be correct if the last loaded session was a playlist 2021-01-08 23:31:37 -08:00
casey langen
fa4c0d0c67 Fixed compiler error on older versions of gcc. 2021-01-06 23:20:26 -08:00
Casey Langen
c3ee55f89d Version bump and CHANGELOG update. 2021-01-05 19:43:18 -08:00
casey langen
a5423fdc4e Some vs2019 warning cleanups in the audio namespace. 2021-01-05 00:15:28 -08:00
Casey Langen
8771e8199f Let's use the less-buggy, brew-provided version of ncurses for improved
compability across terminal emulators that support REP, like kitty.
2021-01-02 16:03:28 -08:00
Casey Langen
10a3863f95 Added mouse wheel handling for Unix platforms. 2020-12-31 23:04:21 -08:00
Casey Langen
5c7415bc45 More cross-platform, cross-terminal-emulator resize compatibility fixes. 2020-12-31 15:08:04 -08:00
casey langen
0951d87add Fixed PDCurses/Windows resize handling. 2020-12-31 15:00:58 -08:00
casey langen
ce562a1d13 Change the method by which we determine our terminal size has changed to be less confusing and more responsive. 2020-12-31 14:28:09 -08:00
casey langen
585e996098 PlaybackService warning cleanup / syntax modernization. 2020-12-29 23:37:13 -08:00
Casey Langen
8e30353843 Gradle plugin version bump. 2020-12-27 00:02:19 -08:00
casey langen
ff101bdeea Update version hash for release. 2020-12-23 10:45:28 -08:00
casey langen
b445db5752 Distinguish between win32 and win64 in HttpClient's user agent. 2020-12-23 10:41:18 -08:00
Casey Langen
fbbaea0beb Added a new PlayQueueClear hotkey. 2020-12-22 19:17:05 -08:00
Casey Langen
210c98b8ad Fixed last.fm double scrobble bug. 2020-12-20 14:19:32 -08:00
Casey Langen
05ea062e03 Oops, version-bumped to the wrong version. 2020-12-20 13:22:44 -08:00
casey langen
b57c32a518 Updated version and CHANGELOG for next release. 2020-12-20 12:43:57 -08:00
casey langen
0ca5bb4bbb Fixed issue where now playing readout was not properly ellipsized. 2020-12-20 12:35:17 -08:00
casey langen
5b1f07c953 Let's disable title updating by default on non-Windows platform because it seems inherently problematic. 2020-12-19 16:58:56 -08:00
eater
f2eb4c138c
fix: when window title update is disabled, quick return 2020-12-19 22:53:48 +01:00
casey langen
44e66937c6 Fixed update check (and an HttpClient re-entrancy issue) 2020-12-16 17:18:47 -08:00
casey langen
7fbed05135 Prefer $XDG_CONFIG_HOME to $HOME on Unix platforms. 2020-12-10 00:03:01 -08:00
Casey Langen
b43b69a918 Version bump. 2020-12-07 17:16:32 -08:00
Casey Langen
a0479c5b25 Refactored LyricsLayout so that it doesn't update UI from a background
thread.
2020-12-07 17:15:22 -08:00
Casey Langen
679e8f645c Fixed a stack smashing bug in HttpClient::Run() 2020-12-07 17:15:02 -08:00
Casey Langen
d3bcb053b6 Fix libmicrohttpd integration in the server plugin statically linking 2020-12-06 16:52:30 -08:00
casey langen
c9047e4a7d Version bump. 2020-12-06 16:10:22 -08:00
casey langen
85eca216e7 Migrate UpdateCheck to use the SDK-provided HttpClient. 2020-12-06 16:10:05 -08:00
casey langen
cfab85ac8b Treat client/server as compatible as long as they have the same major
and minor version (patch version is ignored now)
2020-12-06 15:45:50 -08:00
casey langen
b48b335c74
Merge pull request #388 from Siheyuan98/master
Additional Simplified Chinese translation
2020-12-05 15:34:51 -08:00
casey langen
f001a48b43 Added the app version to the bottom of the settings screen 2020-12-05 15:00:25 -08:00
UM-Li
33eb3860b0 All instances of "Musikcube" --> "musikcube" 2020-12-05 16:20:10 -06:00
casey langen
ad09b30b18 Propagate server version back to the user when remote library connection fails due to incompatible versions. 2020-12-05 14:03:34 -08:00
casey langen
c44343712d Add support for older versions of libcurl (e.g. those found on RHEL7) that do not have support for the newer CURLOPT_XFERINFODATA / CURLOPT_XFERINFOFUNCTION options. 2020-12-05 13:38:59 -08:00