react-native-nitro-player 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/NitroPlayer.podspec +31 -0
  2. package/README.md +610 -0
  3. package/android/CMakeLists.txt +29 -0
  4. package/android/build.gradle +147 -0
  5. package/android/fix-prefab.gradle +51 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +2 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +7 -0
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +29 -0
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +116 -0
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +167 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +93 -0
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/NitroPlayerPackage.kt +21 -0
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/connection/AndroidAutoConnectionDetector.kt +171 -0
  15. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +639 -0
  16. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +352 -0
  17. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibrary.kt +58 -0
  18. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryManager.kt +77 -0
  19. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryParser.kt +73 -0
  20. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +506 -0
  21. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/Playlist.kt +21 -0
  22. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +454 -0
  23. package/android/src/main/java/com/margelo/nitro/nitroplayer/queue/Queue.kt +94 -0
  24. package/android/src/main/java/com/margelo/nitro/nitroplayer/queue/QueueManager.kt +143 -0
  25. package/ios/HybridAudioRoutePicker.swift +53 -0
  26. package/ios/HybridTrackPlayer.swift +100 -0
  27. package/ios/core/TrackPlayerCore.swift +1040 -0
  28. package/ios/media/MediaSessionManager.swift +230 -0
  29. package/ios/playlist/PlaylistManager.swift +446 -0
  30. package/ios/playlist/PlaylistModel.swift +49 -0
  31. package/ios/queue/HybridPlayerQueue.swift +95 -0
  32. package/ios/queue/Queue.swift +126 -0
  33. package/ios/queue/QueueManager.swift +157 -0
  34. package/lib/hooks/index.d.ts +6 -0
  35. package/lib/hooks/index.js +6 -0
  36. package/lib/hooks/useAndroidAutoConnection.d.ts +13 -0
  37. package/lib/hooks/useAndroidAutoConnection.js +26 -0
  38. package/lib/hooks/useAudioDevices.d.ts +26 -0
  39. package/lib/hooks/useAudioDevices.js +55 -0
  40. package/lib/hooks/useOnChangeTrack.d.ts +9 -0
  41. package/lib/hooks/useOnChangeTrack.js +17 -0
  42. package/lib/hooks/useOnPlaybackProgressChange.d.ts +9 -0
  43. package/lib/hooks/useOnPlaybackProgressChange.js +19 -0
  44. package/lib/hooks/useOnPlaybackStateChange.d.ts +9 -0
  45. package/lib/hooks/useOnPlaybackStateChange.js +17 -0
  46. package/lib/hooks/useOnSeek.d.ts +8 -0
  47. package/lib/hooks/useOnSeek.js +17 -0
  48. package/lib/index.d.ts +14 -0
  49. package/lib/index.js +24 -0
  50. package/lib/specs/AndroidAutoMediaLibrary.nitro.d.ts +21 -0
  51. package/lib/specs/AndroidAutoMediaLibrary.nitro.js +1 -0
  52. package/lib/specs/AudioDevices.nitro.d.ts +24 -0
  53. package/lib/specs/AudioDevices.nitro.js +1 -0
  54. package/lib/specs/AudioRoutePicker.nitro.d.ts +10 -0
  55. package/lib/specs/AudioRoutePicker.nitro.js +1 -0
  56. package/lib/specs/TrackPlayer.nitro.d.ts +39 -0
  57. package/lib/specs/TrackPlayer.nitro.js +1 -0
  58. package/lib/types/AndroidAutoMediaLibrary.d.ts +44 -0
  59. package/lib/types/AndroidAutoMediaLibrary.js +1 -0
  60. package/lib/types/PlayerQueue.d.ts +32 -0
  61. package/lib/types/PlayerQueue.js +1 -0
  62. package/lib/utils/androidAutoMediaLibrary.d.ts +47 -0
  63. package/lib/utils/androidAutoMediaLibrary.js +62 -0
  64. package/nitro.json +31 -0
  65. package/nitrogen/generated/.gitattributes +1 -0
  66. package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +91 -0
  67. package/nitrogen/generated/android/NitroPlayer+autolinking.gradle +27 -0
  68. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +88 -0
  69. package/nitrogen/generated/android/NitroPlayerOnLoad.hpp +25 -0
  70. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +85 -0
  71. package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +80 -0
  72. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
  73. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
  74. package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +76 -0
  75. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +88 -0
  76. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +106 -0
  77. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +55 -0
  78. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +66 -0
  79. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +70 -0
  80. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +66 -0
  81. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +143 -0
  82. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +77 -0
  83. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +137 -0
  84. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +78 -0
  85. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +65 -0
  86. package/nitrogen/generated/android/c++/JPlayerState.hpp +87 -0
  87. package/nitrogen/generated/android/c++/JPlaylist.hpp +99 -0
  88. package/nitrogen/generated/android/c++/JQueueOperation.hpp +65 -0
  89. package/nitrogen/generated/android/c++/JReason.hpp +65 -0
  90. package/nitrogen/generated/android/c++/JTAudioDevice.hpp +69 -0
  91. package/nitrogen/generated/android/c++/JTrackItem.hpp +86 -0
  92. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +62 -0
  93. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.cpp +26 -0
  94. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +77 -0
  95. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  96. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  97. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.cpp +26 -0
  98. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +74 -0
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackItem_std__optional_Reason_.kt +80 -0
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason_.kt +80 -0
  101. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_bool.kt +80 -0
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double.kt +80 -0
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool_.kt +80 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation_.kt +80 -0
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_Playlist__std__optional_QueueOperation_.kt +80 -0
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +61 -0
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +61 -0
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +116 -0
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +134 -0
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/NitroPlayerOnLoad.kt +35 -0
  111. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerConfig.kt +44 -0
  112. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +53 -0
  113. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Playlist.kt +50 -0
  114. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/QueueOperation.kt +23 -0
  115. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Reason.kt +23 -0
  116. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TAudioDevice.kt +47 -0
  117. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +56 -0
  118. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +22 -0
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +59 -0
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +59 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +59 -0
  122. package/nitrogen/generated/ios/NitroPlayer+autolinking.rb +60 -0
  123. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +123 -0
  124. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +531 -0
  125. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +80 -0
  126. package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +49 -0
  127. package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +55 -0
  128. package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.cpp +11 -0
  129. package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.hpp +74 -0
  130. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.cpp +11 -0
  131. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +167 -0
  132. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.cpp +11 -0
  133. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +174 -0
  134. package/nitrogen/generated/ios/swift/Func_void_TrackItem_std__optional_Reason_.swift +47 -0
  135. package/nitrogen/generated/ios/swift/Func_void_TrackPlayerState_std__optional_Reason_.swift +47 -0
  136. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  137. package/nitrogen/generated/ios/swift/Func_void_double_double.swift +47 -0
  138. package/nitrogen/generated/ios/swift/Func_void_double_double_std__optional_bool_.swift +54 -0
  139. package/nitrogen/generated/ios/swift/Func_void_std__string_Playlist_std__optional_QueueOperation_.swift +47 -0
  140. package/nitrogen/generated/ios/swift/Func_void_std__vector_Playlist__std__optional_QueueOperation_.swift +47 -0
  141. package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec.swift +56 -0
  142. package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec_cxx.swift +130 -0
  143. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +68 -0
  144. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +349 -0
  145. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +69 -0
  146. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +325 -0
  147. package/nitrogen/generated/ios/swift/PlayerConfig.swift +115 -0
  148. package/nitrogen/generated/ios/swift/PlayerState.swift +181 -0
  149. package/nitrogen/generated/ios/swift/Playlist.swift +182 -0
  150. package/nitrogen/generated/ios/swift/QueueOperation.swift +48 -0
  151. package/nitrogen/generated/ios/swift/Reason.swift +48 -0
  152. package/nitrogen/generated/ios/swift/TrackItem.swift +147 -0
  153. package/nitrogen/generated/ios/swift/TrackPlayerState.swift +44 -0
  154. package/nitrogen/generated/ios/swift/Variant_NullType_Playlist.swift +18 -0
  155. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
  156. package/nitrogen/generated/ios/swift/Variant_NullType_TrackItem.swift +18 -0
  157. package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.cpp +22 -0
  158. package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +63 -0
  159. package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.cpp +22 -0
  160. package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +65 -0
  161. package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.cpp +21 -0
  162. package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.hpp +62 -0
  163. package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.cpp +33 -0
  164. package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +87 -0
  165. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +34 -0
  166. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +91 -0
  167. package/nitrogen/generated/shared/c++/PlayerConfig.hpp +83 -0
  168. package/nitrogen/generated/shared/c++/PlayerState.hpp +103 -0
  169. package/nitrogen/generated/shared/c++/Playlist.hpp +97 -0
  170. package/nitrogen/generated/shared/c++/QueueOperation.hpp +84 -0
  171. package/nitrogen/generated/shared/c++/Reason.hpp +84 -0
  172. package/nitrogen/generated/shared/c++/TAudioDevice.hpp +87 -0
  173. package/nitrogen/generated/shared/c++/TrackItem.hpp +102 -0
  174. package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +80 -0
  175. package/package.json +172 -0
  176. package/react-native.config.js +16 -0
  177. package/src/hooks/index.ts +6 -0
  178. package/src/hooks/useAndroidAutoConnection.ts +30 -0
  179. package/src/hooks/useAudioDevices.ts +64 -0
  180. package/src/hooks/useOnChangeTrack.ts +24 -0
  181. package/src/hooks/useOnPlaybackProgressChange.ts +30 -0
  182. package/src/hooks/useOnPlaybackStateChange.ts +24 -0
  183. package/src/hooks/useOnSeek.ts +25 -0
  184. package/src/index.ts +47 -0
  185. package/src/specs/AndroidAutoMediaLibrary.nitro.ts +22 -0
  186. package/src/specs/AudioDevices.nitro.ts +25 -0
  187. package/src/specs/AudioRoutePicker.nitro.ts +9 -0
  188. package/src/specs/TrackPlayer.nitro.ts +81 -0
  189. package/src/types/AndroidAutoMediaLibrary.ts +58 -0
  190. package/src/types/PlayerQueue.ts +38 -0
  191. package/src/utils/androidAutoMediaLibrary.ts +66 -0
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// JFunc_void_TrackPlayerState_std__optional_Reason_.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "TrackPlayerState.hpp"
14
+ #include "Reason.hpp"
15
+ #include <optional>
16
+ #include <functional>
17
+ #include <NitroModules/JNICallable.hpp>
18
+ #include "JTrackPlayerState.hpp"
19
+ #include "JReason.hpp"
20
+
21
+ namespace margelo::nitro::nitroplayer {
22
+
23
+ using namespace facebook;
24
+
25
+ /**
26
+ * Represents the Java/Kotlin callback `(state: TrackPlayerState, reason: Reason?) -> Unit`.
27
+ * This can be passed around between C++ and Java/Kotlin.
28
+ */
29
+ struct JFunc_void_TrackPlayerState_std__optional_Reason_: public jni::JavaClass<JFunc_void_TrackPlayerState_std__optional_Reason_> {
30
+ public:
31
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason_;";
32
+
33
+ public:
34
+ /**
35
+ * Invokes the function this `JFunc_void_TrackPlayerState_std__optional_Reason_` instance holds through JNI.
36
+ */
37
+ void invoke(TrackPlayerState state, std::optional<Reason> reason) const {
38
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JTrackPlayerState> /* state */, jni::alias_ref<JReason> /* reason */)>("invoke");
39
+ method(self(), JTrackPlayerState::fromCpp(state), reason.has_value() ? JReason::fromCpp(reason.value()) : nullptr);
40
+ }
41
+ };
42
+
43
+ /**
44
+ * An implementation of Func_void_TrackPlayerState_std__optional_Reason_ that is backed by a C++ implementation (using `std::function<...>`)
45
+ */
46
+ class JFunc_void_TrackPlayerState_std__optional_Reason__cxx final: public jni::HybridClass<JFunc_void_TrackPlayerState_std__optional_Reason__cxx, JFunc_void_TrackPlayerState_std__optional_Reason_> {
47
+ public:
48
+ static jni::local_ref<JFunc_void_TrackPlayerState_std__optional_Reason_::javaobject> fromCpp(const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& func) {
49
+ return JFunc_void_TrackPlayerState_std__optional_Reason__cxx::newObjectCxxArgs(func);
50
+ }
51
+
52
+ public:
53
+ /**
54
+ * Invokes the C++ `std::function<...>` this `JFunc_void_TrackPlayerState_std__optional_Reason__cxx` instance holds.
55
+ */
56
+ void invoke_cxx(jni::alias_ref<JTrackPlayerState> state, jni::alias_ref<JReason> reason) {
57
+ _func(state->toCpp(), reason != nullptr ? std::make_optional(reason->toCpp()) : std::nullopt);
58
+ }
59
+
60
+ public:
61
+ [[nodiscard]]
62
+ inline const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& getFunction() const {
63
+ return _func;
64
+ }
65
+
66
+ public:
67
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason__cxx;";
68
+ static void registerNatives() {
69
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_TrackPlayerState_std__optional_Reason__cxx::invoke_cxx)});
70
+ }
71
+
72
+ private:
73
+ explicit JFunc_void_TrackPlayerState_std__optional_Reason__cxx(const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& func): _func(func) { }
74
+
75
+ private:
76
+ friend HybridBase;
77
+ std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)> _func;
78
+ };
79
+
80
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// JFunc_void_bool.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include <functional>
14
+ #include <NitroModules/JNICallable.hpp>
15
+
16
+ namespace margelo::nitro::nitroplayer {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * Represents the Java/Kotlin callback `(connected: Boolean) -> Unit`.
22
+ * This can be passed around between C++ and Java/Kotlin.
23
+ */
24
+ struct JFunc_void_bool: public jni::JavaClass<JFunc_void_bool> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_bool;";
27
+
28
+ public:
29
+ /**
30
+ * Invokes the function this `JFunc_void_bool` instance holds through JNI.
31
+ */
32
+ void invoke(bool connected) const {
33
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* connected */)>("invoke");
34
+ method(self(), connected);
35
+ }
36
+ };
37
+
38
+ /**
39
+ * An implementation of Func_void_bool that is backed by a C++ implementation (using `std::function<...>`)
40
+ */
41
+ class JFunc_void_bool_cxx final: public jni::HybridClass<JFunc_void_bool_cxx, JFunc_void_bool> {
42
+ public:
43
+ static jni::local_ref<JFunc_void_bool::javaobject> fromCpp(const std::function<void(bool /* connected */)>& func) {
44
+ return JFunc_void_bool_cxx::newObjectCxxArgs(func);
45
+ }
46
+
47
+ public:
48
+ /**
49
+ * Invokes the C++ `std::function<...>` this `JFunc_void_bool_cxx` instance holds.
50
+ */
51
+ void invoke_cxx(jboolean connected) {
52
+ _func(static_cast<bool>(connected));
53
+ }
54
+
55
+ public:
56
+ [[nodiscard]]
57
+ inline const std::function<void(bool /* connected */)>& getFunction() const {
58
+ return _func;
59
+ }
60
+
61
+ public:
62
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_bool_cxx;";
63
+ static void registerNatives() {
64
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_bool_cxx::invoke_cxx)});
65
+ }
66
+
67
+ private:
68
+ explicit JFunc_void_bool_cxx(const std::function<void(bool /* connected */)>& func): _func(func) { }
69
+
70
+ private:
71
+ friend HybridBase;
72
+ std::function<void(bool /* connected */)> _func;
73
+ };
74
+
75
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// JFunc_void_double_double.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include <functional>
14
+ #include <NitroModules/JNICallable.hpp>
15
+
16
+ namespace margelo::nitro::nitroplayer {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * Represents the Java/Kotlin callback `(position: Double, totalDuration: Double) -> Unit`.
22
+ * This can be passed around between C++ and Java/Kotlin.
23
+ */
24
+ struct JFunc_void_double_double: public jni::JavaClass<JFunc_void_double_double> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double;";
27
+
28
+ public:
29
+ /**
30
+ * Invokes the function this `JFunc_void_double_double` instance holds through JNI.
31
+ */
32
+ void invoke(double position, double totalDuration) const {
33
+ static const auto method = javaClassStatic()->getMethod<void(double /* position */, double /* totalDuration */)>("invoke");
34
+ method(self(), position, totalDuration);
35
+ }
36
+ };
37
+
38
+ /**
39
+ * An implementation of Func_void_double_double that is backed by a C++ implementation (using `std::function<...>`)
40
+ */
41
+ class JFunc_void_double_double_cxx final: public jni::HybridClass<JFunc_void_double_double_cxx, JFunc_void_double_double> {
42
+ public:
43
+ static jni::local_ref<JFunc_void_double_double::javaobject> fromCpp(const std::function<void(double /* position */, double /* totalDuration */)>& func) {
44
+ return JFunc_void_double_double_cxx::newObjectCxxArgs(func);
45
+ }
46
+
47
+ public:
48
+ /**
49
+ * Invokes the C++ `std::function<...>` this `JFunc_void_double_double_cxx` instance holds.
50
+ */
51
+ void invoke_cxx(double position, double totalDuration) {
52
+ _func(position, totalDuration);
53
+ }
54
+
55
+ public:
56
+ [[nodiscard]]
57
+ inline const std::function<void(double /* position */, double /* totalDuration */)>& getFunction() const {
58
+ return _func;
59
+ }
60
+
61
+ public:
62
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_cxx;";
63
+ static void registerNatives() {
64
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_double_double_cxx::invoke_cxx)});
65
+ }
66
+
67
+ private:
68
+ explicit JFunc_void_double_double_cxx(const std::function<void(double /* position */, double /* totalDuration */)>& func): _func(func) { }
69
+
70
+ private:
71
+ friend HybridBase;
72
+ std::function<void(double /* position */, double /* totalDuration */)> _func;
73
+ };
74
+
75
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// JFunc_void_double_double_std__optional_bool_.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include <optional>
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+
17
+ namespace margelo::nitro::nitroplayer {
18
+
19
+ using namespace facebook;
20
+
21
+ /**
22
+ * Represents the Java/Kotlin callback `(position: Double, totalDuration: Double, isManuallySeeked: Boolean?) -> Unit`.
23
+ * This can be passed around between C++ and Java/Kotlin.
24
+ */
25
+ struct JFunc_void_double_double_std__optional_bool_: public jni::JavaClass<JFunc_void_double_double_std__optional_bool_> {
26
+ public:
27
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool_;";
28
+
29
+ public:
30
+ /**
31
+ * Invokes the function this `JFunc_void_double_double_std__optional_bool_` instance holds through JNI.
32
+ */
33
+ void invoke(double position, double totalDuration, std::optional<bool> isManuallySeeked) const {
34
+ static const auto method = javaClassStatic()->getMethod<void(double /* position */, double /* totalDuration */, jni::alias_ref<jni::JBoolean> /* isManuallySeeked */)>("invoke");
35
+ method(self(), position, totalDuration, isManuallySeeked.has_value() ? jni::JBoolean::valueOf(isManuallySeeked.value()) : nullptr);
36
+ }
37
+ };
38
+
39
+ /**
40
+ * An implementation of Func_void_double_double_std__optional_bool_ that is backed by a C++ implementation (using `std::function<...>`)
41
+ */
42
+ class JFunc_void_double_double_std__optional_bool__cxx final: public jni::HybridClass<JFunc_void_double_double_std__optional_bool__cxx, JFunc_void_double_double_std__optional_bool_> {
43
+ public:
44
+ static jni::local_ref<JFunc_void_double_double_std__optional_bool_::javaobject> fromCpp(const std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)>& func) {
45
+ return JFunc_void_double_double_std__optional_bool__cxx::newObjectCxxArgs(func);
46
+ }
47
+
48
+ public:
49
+ /**
50
+ * Invokes the C++ `std::function<...>` this `JFunc_void_double_double_std__optional_bool__cxx` instance holds.
51
+ */
52
+ void invoke_cxx(double position, double totalDuration, jni::alias_ref<jni::JBoolean> isManuallySeeked) {
53
+ _func(position, totalDuration, isManuallySeeked != nullptr ? std::make_optional(static_cast<bool>(isManuallySeeked->value())) : std::nullopt);
54
+ }
55
+
56
+ public:
57
+ [[nodiscard]]
58
+ inline const std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)>& getFunction() const {
59
+ return _func;
60
+ }
61
+
62
+ public:
63
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool__cxx;";
64
+ static void registerNatives() {
65
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_double_double_std__optional_bool__cxx::invoke_cxx)});
66
+ }
67
+
68
+ private:
69
+ explicit JFunc_void_double_double_std__optional_bool__cxx(const std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)>& func): _func(func) { }
70
+
71
+ private:
72
+ friend HybridBase;
73
+ std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)> _func;
74
+ };
75
+
76
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,88 @@
1
+ ///
2
+ /// JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include <string>
14
+ #include "Playlist.hpp"
15
+ #include "QueueOperation.hpp"
16
+ #include <optional>
17
+ #include <functional>
18
+ #include <NitroModules/JNICallable.hpp>
19
+ #include "JPlaylist.hpp"
20
+ #include <NitroModules/Null.hpp>
21
+ #include <variant>
22
+ #include "JVariant_NullType_String.hpp"
23
+ #include <NitroModules/JNull.hpp>
24
+ #include "TrackItem.hpp"
25
+ #include <vector>
26
+ #include "JTrackItem.hpp"
27
+ #include "JQueueOperation.hpp"
28
+
29
+ namespace margelo::nitro::nitroplayer {
30
+
31
+ using namespace facebook;
32
+
33
+ /**
34
+ * Represents the Java/Kotlin callback `(playlistId: String, playlist: Playlist, operation: QueueOperation?) -> Unit`.
35
+ * This can be passed around between C++ and Java/Kotlin.
36
+ */
37
+ struct JFunc_void_std__string_Playlist_std__optional_QueueOperation_: public jni::JavaClass<JFunc_void_std__string_Playlist_std__optional_QueueOperation_> {
38
+ public:
39
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation_;";
40
+
41
+ public:
42
+ /**
43
+ * Invokes the function this `JFunc_void_std__string_Playlist_std__optional_QueueOperation_` instance holds through JNI.
44
+ */
45
+ void invoke(const std::string& playlistId, const Playlist& playlist, std::optional<QueueOperation> operation) const {
46
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<JPlaylist> /* playlist */, jni::alias_ref<JQueueOperation> /* operation */)>("invoke");
47
+ method(self(), jni::make_jstring(playlistId), JPlaylist::fromCpp(playlist), operation.has_value() ? JQueueOperation::fromCpp(operation.value()) : nullptr);
48
+ }
49
+ };
50
+
51
+ /**
52
+ * An implementation of Func_void_std__string_Playlist_std__optional_QueueOperation_ that is backed by a C++ implementation (using `std::function<...>`)
53
+ */
54
+ class JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx final: public jni::HybridClass<JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx, JFunc_void_std__string_Playlist_std__optional_QueueOperation_> {
55
+ public:
56
+ static jni::local_ref<JFunc_void_std__string_Playlist_std__optional_QueueOperation_::javaobject> fromCpp(const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& func) {
57
+ return JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::newObjectCxxArgs(func);
58
+ }
59
+
60
+ public:
61
+ /**
62
+ * Invokes the C++ `std::function<...>` this `JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx` instance holds.
63
+ */
64
+ void invoke_cxx(jni::alias_ref<jni::JString> playlistId, jni::alias_ref<JPlaylist> playlist, jni::alias_ref<JQueueOperation> operation) {
65
+ _func(playlistId->toStdString(), playlist->toCpp(), operation != nullptr ? std::make_optional(operation->toCpp()) : std::nullopt);
66
+ }
67
+
68
+ public:
69
+ [[nodiscard]]
70
+ inline const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& getFunction() const {
71
+ return _func;
72
+ }
73
+
74
+ public:
75
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation__cxx;";
76
+ static void registerNatives() {
77
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::invoke_cxx)});
78
+ }
79
+
80
+ private:
81
+ explicit JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx(const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& func): _func(func) { }
82
+
83
+ private:
84
+ friend HybridBase;
85
+ std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)> _func;
86
+ };
87
+
88
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,106 @@
1
+ ///
2
+ /// JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "Playlist.hpp"
14
+ #include <vector>
15
+ #include "QueueOperation.hpp"
16
+ #include <optional>
17
+ #include <functional>
18
+ #include <NitroModules/JNICallable.hpp>
19
+ #include "JPlaylist.hpp"
20
+ #include <string>
21
+ #include <NitroModules/Null.hpp>
22
+ #include <variant>
23
+ #include "JVariant_NullType_String.hpp"
24
+ #include <NitroModules/JNull.hpp>
25
+ #include "TrackItem.hpp"
26
+ #include "JTrackItem.hpp"
27
+ #include "JQueueOperation.hpp"
28
+
29
+ namespace margelo::nitro::nitroplayer {
30
+
31
+ using namespace facebook;
32
+
33
+ /**
34
+ * Represents the Java/Kotlin callback `(playlists: Array<Playlist>, operation: QueueOperation?) -> Unit`.
35
+ * This can be passed around between C++ and Java/Kotlin.
36
+ */
37
+ struct JFunc_void_std__vector_Playlist__std__optional_QueueOperation_: public jni::JavaClass<JFunc_void_std__vector_Playlist__std__optional_QueueOperation_> {
38
+ public:
39
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__vector_Playlist__std__optional_QueueOperation_;";
40
+
41
+ public:
42
+ /**
43
+ * Invokes the function this `JFunc_void_std__vector_Playlist__std__optional_QueueOperation_` instance holds through JNI.
44
+ */
45
+ void invoke(const std::vector<Playlist>& playlists, std::optional<QueueOperation> operation) const {
46
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JPlaylist>> /* playlists */, jni::alias_ref<JQueueOperation> /* operation */)>("invoke");
47
+ method(self(), [&]() {
48
+ size_t __size = playlists.size();
49
+ jni::local_ref<jni::JArrayClass<JPlaylist>> __array = jni::JArrayClass<JPlaylist>::newArray(__size);
50
+ for (size_t __i = 0; __i < __size; __i++) {
51
+ const auto& __element = playlists[__i];
52
+ auto __elementJni = JPlaylist::fromCpp(__element);
53
+ __array->setElement(__i, *__elementJni);
54
+ }
55
+ return __array;
56
+ }(), operation.has_value() ? JQueueOperation::fromCpp(operation.value()) : nullptr);
57
+ }
58
+ };
59
+
60
+ /**
61
+ * An implementation of Func_void_std__vector_Playlist__std__optional_QueueOperation_ that is backed by a C++ implementation (using `std::function<...>`)
62
+ */
63
+ class JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx final: public jni::HybridClass<JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx, JFunc_void_std__vector_Playlist__std__optional_QueueOperation_> {
64
+ public:
65
+ static jni::local_ref<JFunc_void_std__vector_Playlist__std__optional_QueueOperation_::javaobject> fromCpp(const std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)>& func) {
66
+ return JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx::newObjectCxxArgs(func);
67
+ }
68
+
69
+ public:
70
+ /**
71
+ * Invokes the C++ `std::function<...>` this `JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx` instance holds.
72
+ */
73
+ void invoke_cxx(jni::alias_ref<jni::JArrayClass<JPlaylist>> playlists, jni::alias_ref<JQueueOperation> operation) {
74
+ _func([&]() {
75
+ size_t __size = playlists->size();
76
+ std::vector<Playlist> __vector;
77
+ __vector.reserve(__size);
78
+ for (size_t __i = 0; __i < __size; __i++) {
79
+ auto __element = playlists->getElement(__i);
80
+ __vector.push_back(__element->toCpp());
81
+ }
82
+ return __vector;
83
+ }(), operation != nullptr ? std::make_optional(operation->toCpp()) : std::nullopt);
84
+ }
85
+
86
+ public:
87
+ [[nodiscard]]
88
+ inline const std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)>& getFunction() const {
89
+ return _func;
90
+ }
91
+
92
+ public:
93
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__vector_Playlist__std__optional_QueueOperation__cxx;";
94
+ static void registerNatives() {
95
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx::invoke_cxx)});
96
+ }
97
+
98
+ private:
99
+ explicit JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx(const std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)>& func): _func(func) { }
100
+
101
+ private:
102
+ friend HybridBase;
103
+ std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)> _func;
104
+ };
105
+
106
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,55 @@
1
+ ///
2
+ /// JHybridAndroidAutoMediaLibrarySpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JHybridAndroidAutoMediaLibrarySpec.hpp"
9
+
10
+
11
+
12
+ #include <string>
13
+
14
+ namespace margelo::nitro::nitroplayer {
15
+
16
+ jni::local_ref<JHybridAndroidAutoMediaLibrarySpec::jhybriddata> JHybridAndroidAutoMediaLibrarySpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
17
+ return makeCxxInstance(jThis);
18
+ }
19
+
20
+ void JHybridAndroidAutoMediaLibrarySpec::registerNatives() {
21
+ registerHybrid({
22
+ makeNativeMethod("initHybrid", JHybridAndroidAutoMediaLibrarySpec::initHybrid),
23
+ });
24
+ }
25
+
26
+ size_t JHybridAndroidAutoMediaLibrarySpec::getExternalMemorySize() noexcept {
27
+ static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
28
+ return method(_javaPart);
29
+ }
30
+
31
+ void JHybridAndroidAutoMediaLibrarySpec::dispose() noexcept {
32
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
33
+ method(_javaPart);
34
+ }
35
+
36
+ std::string JHybridAndroidAutoMediaLibrarySpec::toString() {
37
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
38
+ auto javaString = method(_javaPart);
39
+ return javaString->toStdString();
40
+ }
41
+
42
+ // Properties
43
+
44
+
45
+ // Methods
46
+ void JHybridAndroidAutoMediaLibrarySpec::setMediaLibrary(const std::string& libraryJson) {
47
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* libraryJson */)>("setMediaLibrary");
48
+ method(_javaPart, jni::make_jstring(libraryJson));
49
+ }
50
+ void JHybridAndroidAutoMediaLibrarySpec::clearMediaLibrary() {
51
+ static const auto method = javaClassStatic()->getMethod<void()>("clearMediaLibrary");
52
+ method(_javaPart);
53
+ }
54
+
55
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,66 @@
1
+ ///
2
+ /// HybridAndroidAutoMediaLibrarySpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <NitroModules/JHybridObject.hpp>
11
+ #include <fbjni/fbjni.h>
12
+ #include "HybridAndroidAutoMediaLibrarySpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::nitroplayer {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridAndroidAutoMediaLibrarySpec: public jni::HybridClass<JHybridAndroidAutoMediaLibrarySpec, JHybridObject>,
22
+ public virtual HybridAndroidAutoMediaLibrarySpec {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec;";
25
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
+ static void registerNatives();
27
+
28
+ protected:
29
+ // C++ constructor (called from Java via `initHybrid()`)
30
+ explicit JHybridAndroidAutoMediaLibrarySpec(jni::alias_ref<jhybridobject> jThis) :
31
+ HybridObject(HybridAndroidAutoMediaLibrarySpec::TAG),
32
+ HybridBase(jThis),
33
+ _javaPart(jni::make_global(jThis)) {}
34
+
35
+ public:
36
+ ~JHybridAndroidAutoMediaLibrarySpec() override {
37
+ // Hermes GC can destroy JS objects on a non-JNI Thread.
38
+ jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
+ }
40
+
41
+ public:
42
+ size_t getExternalMemorySize() noexcept override;
43
+ void dispose() noexcept override;
44
+ std::string toString() override;
45
+
46
+ public:
47
+ inline const jni::global_ref<JHybridAndroidAutoMediaLibrarySpec::javaobject>& getJavaPart() const noexcept {
48
+ return _javaPart;
49
+ }
50
+
51
+ public:
52
+ // Properties
53
+
54
+
55
+ public:
56
+ // Methods
57
+ void setMediaLibrary(const std::string& libraryJson) override;
58
+ void clearMediaLibrary() override;
59
+
60
+ private:
61
+ friend HybridBase;
62
+ using HybridBase::HybridBase;
63
+ jni::global_ref<JHybridAndroidAutoMediaLibrarySpec::javaobject> _javaPart;
64
+ };
65
+
66
+ } // namespace margelo::nitro::nitroplayer