Commit Graph

18260 Commits

Author SHA1 Message Date
Colin Edwards 3711bd0d24 android: Implement basic media session handling for next and previous track
This starts a Media3 MediaSession when the service starts. A custom player class gets passed into that session to receive commands from other apps and the android os.

Currently we pad out some dummy items to make SimpleBasePlayer think we can do next and previous tracks.

MPD handles the threading for the native calls so we can just directly call the bridge from the player class.
2024-01-05 18:23:16 -06:00
Colin Edwards e086f09d48 android: add next and previous track to the jni bridge
This will allow the android client to directly make calls to the mpd process to change tracks

I went with camel case on the function names here, if you use an underscore
javac generates a function tht looks like this:
 JNIEXPORT void JNICALL Java_org_musicpd_Bridge_play_1previous

I figured what we ended up with looks a little nicer:
JNIEXPORT void JNICALL Java_org_musicpd_Bridge_playPrevious
2024-01-05 18:21:46 -06:00
Max Kellermann 468eceabff lib/upnp/Discovery: remove unreachable exception handler 2024-01-04 18:04:46 +01:00
Max Kellermann 08e0eb79f5 lib/upnp/Discovery: remove unused default ctor 2024-01-04 18:04:21 +01:00
Max Kellermann 8b03ce562c input/curl: increase CURLOPT_BUFFERSIZE from 16 kB to 512 kB 2024-01-04 17:57:42 +01:00
Max Kellermann 997311ba14 lib/curl/Easy: add method TrySetOption() 2024-01-04 17:51:48 +01:00
Max Kellermann cbd031ca7f lib/upnp/Action: common UpnpSendAction() wrapper for pupnp and npupnp
Merge a lot of duplicate code.
2024-01-04 17:40:59 +01:00
Max Kellermann 95842e7984 db/upnp: eliminate the std::forward_list, use IterableSplitString() 2024-01-04 16:31:28 +01:00
Max Kellermann cc41e95806 db/upnp: add `rootid_sv` 2024-01-04 16:20:44 +01:00
Max Kellermann 2c77e088b4 db/upnp: eliminate temporary std::string from Visit() 2024-01-04 16:19:03 +01:00
Max Kellermann 4eefc2e47c test/DumpDatabase: add "URI" parameter 2024-01-04 15:37:10 +01:00
Max Kellermann 7c13666226 test/DumpDatabase: remove the "PLUGIN" parameter, load from config file 2024-01-04 15:36:18 +01:00
Max Kellermann 4ed8313954 test/DumpDatabase: use libfmt 2024-01-04 15:32:26 +01:00
Max Kellermann c8e2ab6781 db/upnp/Object: smaller enums 2024-01-04 14:31:41 +01:00
Max Kellermann b2ed29b8c0 lib/upnp/ContentDirectoryService: getFriendlyName() returns std::string reference
This can avoid the overhead of casting a C string back to std::string_view.
2024-01-04 14:28:12 +01:00
Max Kellermann 1789b56a85 db/upnp: pass std::string_view to songPath() 2024-01-04 14:28:12 +01:00
Max Kellermann 714dbc9294 lib/upnp/Discovery: forward-declare inner class ContentDirectoryDescriptor 2024-01-04 14:28:12 +01:00
Max Kellermann f40eb963fd lib/upnp/Discovery: forward-declare inner class Downloader 2024-01-04 14:28:12 +01:00
Max Kellermann ee4b49d12f lib/expat/ExpatParser: pass std::string_view to Parse() 2024-01-04 14:28:12 +01:00
Max Kellermann 4c9942534c lib/upnp/Device: pass url as std::string_view to Parse() 2024-01-04 14:28:12 +01:00
Max Kellermann d5f7db59a8 lib/upnp/Util: pass std::string_view to path_getfather() 2024-01-04 14:28:12 +01:00
Max Kellermann 8d1b73ae89 lib/upnp/Discovery: use string_view::starts_with() instead of strncmp() 2024-01-04 14:28:08 +01:00
Rosen Penev afa77099cf msys2 CI
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-04 12:49:43 +01:00
Rosen Penev f68fab53a7 zzip: fix compilation on Windows
NarrowPath is needed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-04 12:38:36 +01:00
Rosen Penev 6a4dc281d1 bzip2: fix compilation on Windows
NarrowPath is needed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-04 12:38:30 +01:00
Max Kellermann 26831a417a subproject: update expat to 2.5.0-4 2024-01-04 09:49:10 +01:00
Max Kellermann 6293818c35 subproject: update fmt to 10.2.0-1 2024-01-04 09:49:09 +01:00
Rosen Penev a859de6806 sndfile: fix compilation with clang's libc++
error: non-constant-expression cannot be narrowed from type 'sf_count_t'
(aka 'long long') to 'size_type' (aka 'unsigned int') in initializer list
 [-Wc++11-narrowing]
  215 |                      std::span{buffer, num_frames * frame_size},
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
note: insert an explicit cast to silence this issue
  215 |                      std::span{buffer, num_frames * frame_size},
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                                        static_cast<size_type>()

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-03 12:18:52 -08:00
Rosen Penev 13202bfce4 test: neighbor_explorer: fix compilation on WIN32
Need NarrowPath. Matches what is done in other tests.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-31 15:38:49 -08:00
Rosen Penev f3d031b38a libnpupnp: update subproject
Fixes compilation under Windows.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-31 13:58:10 -08:00
Rosen Penev f6dbf38e99 upnp: change interface variable name
rpc.h under Windows defines interface as struct, which blows up the
build here. Rename to avoid.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-28 19:39:05 -08:00
Max Kellermann d0a4270449 lib/upnp/Compat: remove obsolete kludges
Those bugs have been fixed looong ago.
2023-12-28 21:24:58 +01:00
Max Kellermann b9a7a9981e lib/upnp/ContentDirectoryService: remove unused fields 2023-12-28 21:22:41 +01:00
Max Kellermann d9fb152b95 lib/upnp/ContentDirectoryService: include some headers only with libpupnp 2023-12-28 21:18:41 +01:00
Max Kellermann 09a0f7a45c Merge branch 'android_fix' of https://github.com/DDRBoxman/MPD 2023-12-28 21:02:49 +01:00
Max Kellermann 9396ffb509 db/plugins/upnp/ContentDirectoryService: add missing closing curly brace 2023-12-28 20:52:53 +01:00
Max Kellermann 66a8afd18c subprojects: add libnpupnp 2023-12-28 20:51:13 +01:00
Rosen Penev e7e07c39c5 meson: fix flac_dep under Windows
declare_dependency's found() method evaluates to true always, resulting
in MPD trying to build flac when not found. Check for dependency()'s
find() first.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-27 12:43:08 -08:00
Colin Edwards 201e081750 android: Fix boot receiver settings and intent check 2023-12-27 13:38:38 -06:00
Colin Edwards 5f7f1d738d android: set kotlin target to 9
The naming scheme was changed in kotlin but not java after java 8
2023-12-27 13:34:37 -06:00
Colin Edwards 8a3d144714 android: Set kotlin jvm target to 1.9 2023-12-27 13:27:02 -06:00
Rosen Penev 44080154b0 no setenv on Windows
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-27 10:50:00 -08:00
Max Kellermann c17493f2d3 Merge branch 'fs' of https://github.com/neheb/MPD 2023-12-27 12:38:30 +01:00
Max Kellermann dcfc1ca6a0 Merge branch 'doc-time-case' of https://github.com/naglis/MPD 2023-12-27 12:37:58 +01:00
Max Kellermann 07e1bae0af Merge branch 'doc-config-comments' of https://github.com/naglis/MPD 2023-12-27 12:35:32 +01:00
Max Kellermann 658a7f1ca7 Merge branch 'material' of https://github.com/DDRBoxman/MPD 2023-12-27 12:35:13 +01:00
Max Kellermann bd408cd627 Merge branch 'bootfix' of https://github.com/DDRBoxman/MPD 2023-12-27 12:33:14 +01:00
Rosen Penev 7c520f6475 fs: fix typo
Wrong macro used.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-26 10:57:44 -08:00
naglis 07ee11b963 doc/protocol.rst: fix time tag case
The `Time` song tag starts with an uppercase letter.
2023-12-26 10:51:34 +02:00
Colin Edwards a4c7041561 subprojects: properly export id3tag include headers
According to the Makefile.am from libid3 only i3dtag.h should be installed to the include directory.
include_HEADERS =	id3tag.h
2023-12-24 11:31:29 -06:00