react-native-nitro-player 0.3.0-alpha.9 → 0.4.0

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 (257) hide show
  1. package/README.md +444 -4
  2. package/android/build.gradle +4 -1
  3. package/android/src/main/AndroidManifest.xml +16 -1
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +2 -0
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +8 -0
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +225 -0
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +105 -0
  8. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +6 -6
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +37 -12
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +970 -213
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +475 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadFileManager.kt +159 -0
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +489 -0
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +209 -0
  15. package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +486 -0
  16. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +3 -1
  17. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +14 -6
  18. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +27 -0
  19. package/ios/HybridDownloadManager.swift +226 -0
  20. package/ios/HybridEqualizer.swift +111 -0
  21. package/ios/HybridTrackPlayer.swift +36 -8
  22. package/ios/core/TrackPlayerCore.swift +998 -276
  23. package/ios/download/DownloadDatabase.swift +493 -0
  24. package/ios/download/DownloadFileManager.swift +241 -0
  25. package/ios/download/DownloadManagerCore.swift +923 -0
  26. package/ios/equalizer/EqualizerCore.swift +685 -0
  27. package/ios/media/MediaSessionManager.swift +40 -28
  28. package/ios/playlist/PlaylistManager.swift +40 -9
  29. package/ios/queue/HybridPlayerQueue.swift +33 -13
  30. package/lib/hooks/downloadCallbackManager.d.ts +36 -0
  31. package/lib/hooks/downloadCallbackManager.js +108 -0
  32. package/lib/hooks/equalizerCallbackManager.d.ts +37 -0
  33. package/lib/hooks/equalizerCallbackManager.js +109 -0
  34. package/lib/hooks/index.d.ts +16 -0
  35. package/lib/hooks/index.js +10 -0
  36. package/lib/hooks/useActualQueue.d.ts +48 -0
  37. package/lib/hooks/useActualQueue.js +98 -0
  38. package/lib/hooks/useDownloadActions.d.ts +26 -0
  39. package/lib/hooks/useDownloadActions.js +117 -0
  40. package/lib/hooks/useDownloadProgress.d.ts +25 -0
  41. package/lib/hooks/useDownloadProgress.js +79 -0
  42. package/lib/hooks/useDownloadStorage.d.ts +19 -0
  43. package/lib/hooks/useDownloadStorage.js +60 -0
  44. package/lib/hooks/useDownloadedTracks.d.ts +25 -0
  45. package/lib/hooks/useDownloadedTracks.js +69 -0
  46. package/lib/hooks/useEqualizer.d.ts +25 -0
  47. package/lib/hooks/useEqualizer.js +124 -0
  48. package/lib/hooks/useEqualizerPresets.d.ts +22 -0
  49. package/lib/hooks/useEqualizerPresets.js +96 -0
  50. package/lib/hooks/useNowPlaying.js +3 -2
  51. package/lib/hooks/useOnChangeTrack.js +15 -12
  52. package/lib/hooks/useOnPlaybackStateChange.js +16 -13
  53. package/lib/hooks/usePlaylist.d.ts +48 -0
  54. package/lib/hooks/usePlaylist.js +136 -0
  55. package/lib/index.d.ts +6 -0
  56. package/lib/index.js +6 -0
  57. package/lib/specs/DownloadManager.nitro.d.ts +152 -0
  58. package/lib/specs/DownloadManager.nitro.js +1 -0
  59. package/lib/specs/Equalizer.nitro.d.ts +43 -0
  60. package/lib/specs/Equalizer.nitro.js +1 -0
  61. package/lib/specs/TrackPlayer.nitro.d.ts +6 -2
  62. package/lib/types/DownloadTypes.d.ts +110 -0
  63. package/lib/types/DownloadTypes.js +1 -0
  64. package/lib/types/EqualizerTypes.d.ts +52 -0
  65. package/lib/types/EqualizerTypes.js +1 -0
  66. package/lib/types/PlayerQueue.d.ts +4 -0
  67. package/nitro.json +8 -0
  68. package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +10 -1
  69. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +32 -2
  70. package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +65 -0
  71. package/nitrogen/generated/android/c++/JDownloadConfig.hpp +92 -0
  72. package/nitrogen/generated/android/c++/JDownloadError.hpp +71 -0
  73. package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +74 -0
  74. package/nitrogen/generated/android/c++/JDownloadProgress.hpp +79 -0
  75. package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +81 -0
  76. package/nitrogen/generated/android/c++/JDownloadState.hpp +71 -0
  77. package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +73 -0
  78. package/nitrogen/generated/android/c++/JDownloadTask.hpp +108 -0
  79. package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +111 -0
  80. package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +92 -0
  81. package/nitrogen/generated/android/c++/JEqualizerBand.hpp +69 -0
  82. package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +78 -0
  83. package/nitrogen/generated/android/c++/JEqualizerState.hpp +91 -0
  84. package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +80 -0
  85. package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +89 -0
  86. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -0
  87. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +81 -0
  88. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -0
  89. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +83 -0
  90. package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +97 -0
  91. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -0
  92. package/nitrogen/generated/android/c++/JGainRange.hpp +61 -0
  93. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +470 -0
  94. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +99 -0
  95. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +204 -0
  96. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +82 -0
  97. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +2 -0
  98. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +117 -15
  99. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +6 -2
  100. package/nitrogen/generated/android/c++/JPlaybackSource.hpp +62 -0
  101. package/nitrogen/generated/android/c++/JPlayerState.hpp +11 -3
  102. package/nitrogen/generated/android/c++/JPlaylist.hpp +2 -0
  103. package/nitrogen/generated/android/c++/JPresetType.hpp +59 -0
  104. package/nitrogen/generated/android/c++/JStorageLocation.hpp +59 -0
  105. package/nitrogen/generated/android/c++/JTrackItem.hpp +9 -3
  106. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +3 -3
  107. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  108. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  109. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +26 -0
  110. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +74 -0
  111. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +26 -0
  112. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +84 -0
  113. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +26 -0
  114. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +85 -0
  115. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +26 -0
  116. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +80 -0
  117. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +2 -0
  118. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +2 -0
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +23 -0
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +59 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +47 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +26 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +53 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +56 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +25 -0
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +50 -0
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +65 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +53 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +56 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +47 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +44 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +44 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +80 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +80 -0
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +80 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +80 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +41 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +210 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +141 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +19 -2
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +22 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +6 -3
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +21 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +21 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +7 -3
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +2 -2
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +59 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +59 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +59 -0
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +59 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +59 -0
  153. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +138 -8
  154. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +1046 -121
  155. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +66 -0
  156. package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +16 -0
  157. package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +30 -0
  158. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +11 -0
  159. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +386 -0
  160. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +11 -0
  161. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +223 -0
  162. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +1 -0
  163. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +46 -6
  164. package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +48 -0
  165. package/nitrogen/generated/ios/swift/DownloadConfig.swift +270 -0
  166. package/nitrogen/generated/ios/swift/DownloadError.swift +69 -0
  167. package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +60 -0
  168. package/nitrogen/generated/ios/swift/DownloadProgress.swift +91 -0
  169. package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +102 -0
  170. package/nitrogen/generated/ios/swift/DownloadState.swift +56 -0
  171. package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +80 -0
  172. package/nitrogen/generated/ios/swift/DownloadTask.swift +315 -0
  173. package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +103 -0
  174. package/nitrogen/generated/ios/swift/DownloadedTrack.swift +147 -0
  175. package/nitrogen/generated/ios/swift/EqualizerBand.swift +69 -0
  176. package/nitrogen/generated/ios/swift/EqualizerPreset.swift +70 -0
  177. package/nitrogen/generated/ios/swift/EqualizerState.swift +115 -0
  178. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  179. package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +47 -0
  180. package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +47 -0
  181. package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +47 -0
  182. package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +47 -0
  183. package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
  184. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  185. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +66 -0
  186. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  187. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +47 -0
  188. package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +47 -0
  189. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +47 -0
  190. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
  191. package/nitrogen/generated/ios/swift/GainRange.swift +47 -0
  192. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +90 -0
  193. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +705 -0
  194. package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +73 -0
  195. package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +396 -0
  196. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +6 -2
  197. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +105 -8
  198. package/nitrogen/generated/ios/swift/PlaybackSource.swift +44 -0
  199. package/nitrogen/generated/ios/swift/PlayerState.swift +13 -2
  200. package/nitrogen/generated/ios/swift/PresetType.swift +40 -0
  201. package/nitrogen/generated/ios/swift/StorageLocation.swift +40 -0
  202. package/nitrogen/generated/ios/swift/TrackItem.swift +31 -1
  203. package/nitrogen/generated/ios/swift/TrackPlayerState.swift +4 -4
  204. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  205. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +18 -0
  206. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +18 -0
  207. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +18 -0
  208. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +18 -0
  209. package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +84 -0
  210. package/nitrogen/generated/shared/c++/DownloadConfig.hpp +108 -0
  211. package/nitrogen/generated/shared/c++/DownloadError.hpp +89 -0
  212. package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +96 -0
  213. package/nitrogen/generated/shared/c++/DownloadProgress.hpp +97 -0
  214. package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +99 -0
  215. package/nitrogen/generated/shared/c++/DownloadState.hpp +92 -0
  216. package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +91 -0
  217. package/nitrogen/generated/shared/c++/DownloadTask.hpp +122 -0
  218. package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +101 -0
  219. package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +107 -0
  220. package/nitrogen/generated/shared/c++/EqualizerBand.hpp +87 -0
  221. package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +86 -0
  222. package/nitrogen/generated/shared/c++/EqualizerState.hpp +89 -0
  223. package/nitrogen/generated/shared/c++/GainRange.hpp +79 -0
  224. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +55 -0
  225. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +134 -0
  226. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +38 -0
  227. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +95 -0
  228. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +4 -0
  229. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +11 -5
  230. package/nitrogen/generated/shared/c++/PlaybackSource.hpp +80 -0
  231. package/nitrogen/generated/shared/c++/PlayerState.hpp +9 -2
  232. package/nitrogen/generated/shared/c++/PresetType.hpp +76 -0
  233. package/nitrogen/generated/shared/c++/StorageLocation.hpp +76 -0
  234. package/nitrogen/generated/shared/c++/TrackItem.hpp +7 -2
  235. package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +5 -5
  236. package/package.json +1 -1
  237. package/src/hooks/downloadCallbackManager.ts +149 -0
  238. package/src/hooks/equalizerCallbackManager.ts +138 -0
  239. package/src/hooks/index.ts +23 -0
  240. package/src/hooks/useActualQueue.ts +116 -0
  241. package/src/hooks/useDownloadActions.ts +179 -0
  242. package/src/hooks/useDownloadProgress.ts +126 -0
  243. package/src/hooks/useDownloadStorage.ts +84 -0
  244. package/src/hooks/useDownloadedTracks.ts +138 -0
  245. package/src/hooks/useEqualizer.ts +173 -0
  246. package/src/hooks/useEqualizerPresets.ts +140 -0
  247. package/src/hooks/useNowPlaying.ts +3 -2
  248. package/src/hooks/useOnChangeTrack.ts +15 -11
  249. package/src/hooks/useOnPlaybackStateChange.ts +19 -15
  250. package/src/hooks/usePlaylist.ts +161 -0
  251. package/src/index.ts +12 -0
  252. package/src/specs/DownloadManager.nitro.ts +203 -0
  253. package/src/specs/Equalizer.nitro.ts +69 -0
  254. package/src/specs/TrackPlayer.nitro.ts +6 -2
  255. package/src/types/DownloadTypes.ts +135 -0
  256. package/src/types/EqualizerTypes.ts +72 -0
  257. package/src/types/PlayerQueue.ts +9 -0
@@ -0,0 +1,97 @@
1
+ ///
2
+ /// JFunc_void_std__vector_EqualizerBand_.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 "EqualizerBand.hpp"
14
+ #include <vector>
15
+ #include <functional>
16
+ #include <NitroModules/JNICallable.hpp>
17
+ #include "JEqualizerBand.hpp"
18
+ #include <string>
19
+
20
+ namespace margelo::nitro::nitroplayer {
21
+
22
+ using namespace facebook;
23
+
24
+ /**
25
+ * Represents the Java/Kotlin callback `(bands: Array<EqualizerBand>) -> Unit`.
26
+ * This can be passed around between C++ and Java/Kotlin.
27
+ */
28
+ struct JFunc_void_std__vector_EqualizerBand_: public jni::JavaClass<JFunc_void_std__vector_EqualizerBand_> {
29
+ public:
30
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_;";
31
+
32
+ public:
33
+ /**
34
+ * Invokes the function this `JFunc_void_std__vector_EqualizerBand_` instance holds through JNI.
35
+ */
36
+ void invoke(const std::vector<EqualizerBand>& bands) const {
37
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JEqualizerBand>> /* bands */)>("invoke");
38
+ method(self(), [&]() {
39
+ size_t __size = bands.size();
40
+ jni::local_ref<jni::JArrayClass<JEqualizerBand>> __array = jni::JArrayClass<JEqualizerBand>::newArray(__size);
41
+ for (size_t __i = 0; __i < __size; __i++) {
42
+ const auto& __element = bands[__i];
43
+ auto __elementJni = JEqualizerBand::fromCpp(__element);
44
+ __array->setElement(__i, *__elementJni);
45
+ }
46
+ return __array;
47
+ }());
48
+ }
49
+ };
50
+
51
+ /**
52
+ * An implementation of Func_void_std__vector_EqualizerBand_ that is backed by a C++ implementation (using `std::function<...>`)
53
+ */
54
+ class JFunc_void_std__vector_EqualizerBand__cxx final: public jni::HybridClass<JFunc_void_std__vector_EqualizerBand__cxx, JFunc_void_std__vector_EqualizerBand_> {
55
+ public:
56
+ static jni::local_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> fromCpp(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& func) {
57
+ return JFunc_void_std__vector_EqualizerBand__cxx::newObjectCxxArgs(func);
58
+ }
59
+
60
+ public:
61
+ /**
62
+ * Invokes the C++ `std::function<...>` this `JFunc_void_std__vector_EqualizerBand__cxx` instance holds.
63
+ */
64
+ void invoke_cxx(jni::alias_ref<jni::JArrayClass<JEqualizerBand>> bands) {
65
+ _func([&]() {
66
+ size_t __size = bands->size();
67
+ std::vector<EqualizerBand> __vector;
68
+ __vector.reserve(__size);
69
+ for (size_t __i = 0; __i < __size; __i++) {
70
+ auto __element = bands->getElement(__i);
71
+ __vector.push_back(__element->toCpp());
72
+ }
73
+ return __vector;
74
+ }());
75
+ }
76
+
77
+ public:
78
+ [[nodiscard]]
79
+ inline const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& getFunction() const {
80
+ return _func;
81
+ }
82
+
83
+ public:
84
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand__cxx;";
85
+ static void registerNatives() {
86
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__vector_EqualizerBand__cxx::invoke_cxx)});
87
+ }
88
+
89
+ private:
90
+ explicit JFunc_void_std__vector_EqualizerBand__cxx(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& func): _func(func) { }
91
+
92
+ private:
93
+ friend HybridBase;
94
+ std::function<void(const std::vector<EqualizerBand>& /* bands */)> _func;
95
+ };
96
+
97
+ } // namespace margelo::nitro::nitroplayer
@@ -24,6 +24,8 @@
24
24
  #include <NitroModules/JNull.hpp>
25
25
  #include "TrackItem.hpp"
26
26
  #include "JTrackItem.hpp"
27
+ #include <NitroModules/AnyMap.hpp>
28
+ #include <NitroModules/JAnyMap.hpp>
27
29
  #include "JQueueOperation.hpp"
28
30
 
29
31
  namespace margelo::nitro::nitroplayer {
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JGainRange.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 "GainRange.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::nitroplayer {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "GainRange" and the the Kotlin data class "GainRange".
21
+ */
22
+ struct JGainRange final: public jni::JavaClass<JGainRange> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/GainRange;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct GainRange by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ GainRange toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldMin = clazz->getField<double>("min");
35
+ double min = this->getFieldValue(fieldMin);
36
+ static const auto fieldMax = clazz->getField<double>("max");
37
+ double max = this->getFieldValue(fieldMax);
38
+ return GainRange(
39
+ min,
40
+ max
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JGainRange::javaobject> fromCpp(const GainRange& value) {
50
+ using JSignature = JGainRange(double, double);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ value.min,
56
+ value.max
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,470 @@
1
+ ///
2
+ /// JHybridDownloadManagerSpec.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 "JHybridDownloadManagerSpec.hpp"
9
+
10
+ // Forward declaration of `DownloadConfig` to properly resolve imports.
11
+ namespace margelo::nitro::nitroplayer { struct DownloadConfig; }
12
+ // Forward declaration of `StorageLocation` to properly resolve imports.
13
+ namespace margelo::nitro::nitroplayer { enum class StorageLocation; }
14
+ // Forward declaration of `DownloadTask` to properly resolve imports.
15
+ namespace margelo::nitro::nitroplayer { struct DownloadTask; }
16
+ // Forward declaration of `DownloadState` to properly resolve imports.
17
+ namespace margelo::nitro::nitroplayer { enum class DownloadState; }
18
+ // Forward declaration of `DownloadProgress` to properly resolve imports.
19
+ namespace margelo::nitro::nitroplayer { struct DownloadProgress; }
20
+ // Forward declaration of `DownloadError` to properly resolve imports.
21
+ namespace margelo::nitro::nitroplayer { struct DownloadError; }
22
+ // Forward declaration of `DownloadErrorReason` to properly resolve imports.
23
+ namespace margelo::nitro::nitroplayer { enum class DownloadErrorReason; }
24
+ // Forward declaration of `DownloadQueueStatus` to properly resolve imports.
25
+ namespace margelo::nitro::nitroplayer { struct DownloadQueueStatus; }
26
+ // Forward declaration of `DownloadedTrack` to properly resolve imports.
27
+ namespace margelo::nitro::nitroplayer { struct DownloadedTrack; }
28
+ // Forward declaration of `TrackItem` to properly resolve imports.
29
+ namespace margelo::nitro::nitroplayer { struct TrackItem; }
30
+ // Forward declaration of `DownloadedPlaylist` to properly resolve imports.
31
+ namespace margelo::nitro::nitroplayer { struct DownloadedPlaylist; }
32
+ // Forward declaration of `Playlist` to properly resolve imports.
33
+ namespace margelo::nitro::nitroplayer { struct Playlist; }
34
+ // Forward declaration of `DownloadStorageInfo` to properly resolve imports.
35
+ namespace margelo::nitro::nitroplayer { struct DownloadStorageInfo; }
36
+ // Forward declaration of `PlaybackSource` to properly resolve imports.
37
+ namespace margelo::nitro::nitroplayer { enum class PlaybackSource; }
38
+
39
+ #include "DownloadConfig.hpp"
40
+ #include "JDownloadConfig.hpp"
41
+ #include "StorageLocation.hpp"
42
+ #include <optional>
43
+ #include "JStorageLocation.hpp"
44
+ #include <NitroModules/Null.hpp>
45
+ #include <string>
46
+ #include <variant>
47
+ #include "JVariant_NullType_String.hpp"
48
+ #include <NitroModules/JNull.hpp>
49
+ #include <NitroModules/Promise.hpp>
50
+ #include <NitroModules/JPromise.hpp>
51
+ #include <vector>
52
+ #include "DownloadTask.hpp"
53
+ #include "JVariant_NullType_DownloadTask.hpp"
54
+ #include "JDownloadTask.hpp"
55
+ #include "DownloadState.hpp"
56
+ #include "JDownloadState.hpp"
57
+ #include "DownloadProgress.hpp"
58
+ #include "JDownloadProgress.hpp"
59
+ #include "JVariant_NullType_Double.hpp"
60
+ #include "DownloadError.hpp"
61
+ #include "JVariant_NullType_DownloadError.hpp"
62
+ #include "JDownloadError.hpp"
63
+ #include "DownloadErrorReason.hpp"
64
+ #include "JDownloadErrorReason.hpp"
65
+ #include "DownloadQueueStatus.hpp"
66
+ #include "JDownloadQueueStatus.hpp"
67
+ #include "DownloadedTrack.hpp"
68
+ #include "JVariant_NullType_DownloadedTrack.hpp"
69
+ #include "JDownloadedTrack.hpp"
70
+ #include "TrackItem.hpp"
71
+ #include "JTrackItem.hpp"
72
+ #include <NitroModules/AnyMap.hpp>
73
+ #include <NitroModules/JAnyMap.hpp>
74
+ #include "DownloadedPlaylist.hpp"
75
+ #include "JVariant_NullType_DownloadedPlaylist.hpp"
76
+ #include "JDownloadedPlaylist.hpp"
77
+ #include "Playlist.hpp"
78
+ #include "JPlaylist.hpp"
79
+ #include "DownloadStorageInfo.hpp"
80
+ #include "JDownloadStorageInfo.hpp"
81
+ #include "PlaybackSource.hpp"
82
+ #include "JPlaybackSource.hpp"
83
+ #include <functional>
84
+ #include "JFunc_void_DownloadProgress.hpp"
85
+ #include <NitroModules/JNICallable.hpp>
86
+ #include "JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp"
87
+ #include "JFunc_void_DownloadedTrack.hpp"
88
+
89
+ namespace margelo::nitro::nitroplayer {
90
+
91
+ jni::local_ref<JHybridDownloadManagerSpec::jhybriddata> JHybridDownloadManagerSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
92
+ return makeCxxInstance(jThis);
93
+ }
94
+
95
+ void JHybridDownloadManagerSpec::registerNatives() {
96
+ registerHybrid({
97
+ makeNativeMethod("initHybrid", JHybridDownloadManagerSpec::initHybrid),
98
+ });
99
+ }
100
+
101
+ size_t JHybridDownloadManagerSpec::getExternalMemorySize() noexcept {
102
+ static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
103
+ return method(_javaPart);
104
+ }
105
+
106
+ void JHybridDownloadManagerSpec::dispose() noexcept {
107
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
108
+ method(_javaPart);
109
+ }
110
+
111
+ std::string JHybridDownloadManagerSpec::toString() {
112
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
113
+ auto javaString = method(_javaPart);
114
+ return javaString->toStdString();
115
+ }
116
+
117
+ // Properties
118
+
119
+
120
+ // Methods
121
+ void JHybridDownloadManagerSpec::configure(const DownloadConfig& config) {
122
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JDownloadConfig> /* config */)>("configure");
123
+ method(_javaPart, JDownloadConfig::fromCpp(config));
124
+ }
125
+ DownloadConfig JHybridDownloadManagerSpec::getConfig() {
126
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JDownloadConfig>()>("getConfig");
127
+ auto __result = method(_javaPart);
128
+ return __result->toCpp();
129
+ }
130
+ std::shared_ptr<Promise<std::string>> JHybridDownloadManagerSpec::downloadTrack(const TrackItem& track, const std::optional<std::string>& playlistId) {
131
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JTrackItem> /* track */, jni::alias_ref<jni::JString> /* playlistId */)>("downloadTrack");
132
+ auto __result = method(_javaPart, JTrackItem::fromCpp(track), playlistId.has_value() ? jni::make_jstring(playlistId.value()) : nullptr);
133
+ return [&]() {
134
+ auto __promise = Promise<std::string>::create();
135
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
136
+ auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
137
+ __promise->resolve(__result->toStdString());
138
+ });
139
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
140
+ jni::JniException __jniError(__throwable);
141
+ __promise->reject(std::make_exception_ptr(__jniError));
142
+ });
143
+ return __promise;
144
+ }();
145
+ }
146
+ std::shared_ptr<Promise<std::vector<std::string>>> JHybridDownloadManagerSpec::downloadPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks) {
147
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */)>("downloadPlaylist");
148
+ auto __result = method(_javaPart, jni::make_jstring(playlistId), [&]() {
149
+ size_t __size = tracks.size();
150
+ jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
151
+ for (size_t __i = 0; __i < __size; __i++) {
152
+ const auto& __element = tracks[__i];
153
+ auto __elementJni = JTrackItem::fromCpp(__element);
154
+ __array->setElement(__i, *__elementJni);
155
+ }
156
+ return __array;
157
+ }());
158
+ return [&]() {
159
+ auto __promise = Promise<std::vector<std::string>>::create();
160
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
161
+ auto __result = jni::static_ref_cast<jni::JArrayClass<jni::JString>>(__boxedResult);
162
+ __promise->resolve([&]() {
163
+ size_t __size = __result->size();
164
+ std::vector<std::string> __vector;
165
+ __vector.reserve(__size);
166
+ for (size_t __i = 0; __i < __size; __i++) {
167
+ auto __element = __result->getElement(__i);
168
+ __vector.push_back(__element->toStdString());
169
+ }
170
+ return __vector;
171
+ }());
172
+ });
173
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
174
+ jni::JniException __jniError(__throwable);
175
+ __promise->reject(std::make_exception_ptr(__jniError));
176
+ });
177
+ return __promise;
178
+ }();
179
+ }
180
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::pauseDownload(const std::string& downloadId) {
181
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* downloadId */)>("pauseDownload");
182
+ auto __result = method(_javaPart, jni::make_jstring(downloadId));
183
+ return [&]() {
184
+ auto __promise = Promise<void>::create();
185
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
186
+ __promise->resolve();
187
+ });
188
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
189
+ jni::JniException __jniError(__throwable);
190
+ __promise->reject(std::make_exception_ptr(__jniError));
191
+ });
192
+ return __promise;
193
+ }();
194
+ }
195
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::resumeDownload(const std::string& downloadId) {
196
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* downloadId */)>("resumeDownload");
197
+ auto __result = method(_javaPart, jni::make_jstring(downloadId));
198
+ return [&]() {
199
+ auto __promise = Promise<void>::create();
200
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
201
+ __promise->resolve();
202
+ });
203
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
204
+ jni::JniException __jniError(__throwable);
205
+ __promise->reject(std::make_exception_ptr(__jniError));
206
+ });
207
+ return __promise;
208
+ }();
209
+ }
210
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::cancelDownload(const std::string& downloadId) {
211
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* downloadId */)>("cancelDownload");
212
+ auto __result = method(_javaPart, jni::make_jstring(downloadId));
213
+ return [&]() {
214
+ auto __promise = Promise<void>::create();
215
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
216
+ __promise->resolve();
217
+ });
218
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
219
+ jni::JniException __jniError(__throwable);
220
+ __promise->reject(std::make_exception_ptr(__jniError));
221
+ });
222
+ return __promise;
223
+ }();
224
+ }
225
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::retryDownload(const std::string& downloadId) {
226
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* downloadId */)>("retryDownload");
227
+ auto __result = method(_javaPart, jni::make_jstring(downloadId));
228
+ return [&]() {
229
+ auto __promise = Promise<void>::create();
230
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
231
+ __promise->resolve();
232
+ });
233
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
234
+ jni::JniException __jniError(__throwable);
235
+ __promise->reject(std::make_exception_ptr(__jniError));
236
+ });
237
+ return __promise;
238
+ }();
239
+ }
240
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::pauseAllDownloads() {
241
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("pauseAllDownloads");
242
+ auto __result = method(_javaPart);
243
+ return [&]() {
244
+ auto __promise = Promise<void>::create();
245
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
246
+ __promise->resolve();
247
+ });
248
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
249
+ jni::JniException __jniError(__throwable);
250
+ __promise->reject(std::make_exception_ptr(__jniError));
251
+ });
252
+ return __promise;
253
+ }();
254
+ }
255
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::resumeAllDownloads() {
256
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("resumeAllDownloads");
257
+ auto __result = method(_javaPart);
258
+ return [&]() {
259
+ auto __promise = Promise<void>::create();
260
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
261
+ __promise->resolve();
262
+ });
263
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
264
+ jni::JniException __jniError(__throwable);
265
+ __promise->reject(std::make_exception_ptr(__jniError));
266
+ });
267
+ return __promise;
268
+ }();
269
+ }
270
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::cancelAllDownloads() {
271
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("cancelAllDownloads");
272
+ auto __result = method(_javaPart);
273
+ return [&]() {
274
+ auto __promise = Promise<void>::create();
275
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
276
+ __promise->resolve();
277
+ });
278
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
279
+ jni::JniException __jniError(__throwable);
280
+ __promise->reject(std::make_exception_ptr(__jniError));
281
+ });
282
+ return __promise;
283
+ }();
284
+ }
285
+ std::variant<nitro::NullType, DownloadTask> JHybridDownloadManagerSpec::getDownloadTask(const std::string& downloadId) {
286
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_DownloadTask>(jni::alias_ref<jni::JString> /* downloadId */)>("getDownloadTask");
287
+ auto __result = method(_javaPart, jni::make_jstring(downloadId));
288
+ return __result->toCpp();
289
+ }
290
+ std::vector<DownloadTask> JHybridDownloadManagerSpec::getActiveDownloads() {
291
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JDownloadTask>>()>("getActiveDownloads");
292
+ auto __result = method(_javaPart);
293
+ return [&]() {
294
+ size_t __size = __result->size();
295
+ std::vector<DownloadTask> __vector;
296
+ __vector.reserve(__size);
297
+ for (size_t __i = 0; __i < __size; __i++) {
298
+ auto __element = __result->getElement(__i);
299
+ __vector.push_back(__element->toCpp());
300
+ }
301
+ return __vector;
302
+ }();
303
+ }
304
+ DownloadQueueStatus JHybridDownloadManagerSpec::getQueueStatus() {
305
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JDownloadQueueStatus>()>("getQueueStatus");
306
+ auto __result = method(_javaPart);
307
+ return __result->toCpp();
308
+ }
309
+ bool JHybridDownloadManagerSpec::isDownloading(const std::string& trackId) {
310
+ static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* trackId */)>("isDownloading");
311
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
312
+ return static_cast<bool>(__result);
313
+ }
314
+ DownloadState JHybridDownloadManagerSpec::getDownloadState(const std::string& trackId) {
315
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JDownloadState>(jni::alias_ref<jni::JString> /* trackId */)>("getDownloadState");
316
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
317
+ return __result->toCpp();
318
+ }
319
+ bool JHybridDownloadManagerSpec::isTrackDownloaded(const std::string& trackId) {
320
+ static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* trackId */)>("isTrackDownloaded");
321
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
322
+ return static_cast<bool>(__result);
323
+ }
324
+ bool JHybridDownloadManagerSpec::isPlaylistDownloaded(const std::string& playlistId) {
325
+ static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* playlistId */)>("isPlaylistDownloaded");
326
+ auto __result = method(_javaPart, jni::make_jstring(playlistId));
327
+ return static_cast<bool>(__result);
328
+ }
329
+ bool JHybridDownloadManagerSpec::isPlaylistPartiallyDownloaded(const std::string& playlistId) {
330
+ static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* playlistId */)>("isPlaylistPartiallyDownloaded");
331
+ auto __result = method(_javaPart, jni::make_jstring(playlistId));
332
+ return static_cast<bool>(__result);
333
+ }
334
+ std::variant<nitro::NullType, DownloadedTrack> JHybridDownloadManagerSpec::getDownloadedTrack(const std::string& trackId) {
335
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_DownloadedTrack>(jni::alias_ref<jni::JString> /* trackId */)>("getDownloadedTrack");
336
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
337
+ return __result->toCpp();
338
+ }
339
+ std::vector<DownloadedTrack> JHybridDownloadManagerSpec::getAllDownloadedTracks() {
340
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JDownloadedTrack>>()>("getAllDownloadedTracks");
341
+ auto __result = method(_javaPart);
342
+ return [&]() {
343
+ size_t __size = __result->size();
344
+ std::vector<DownloadedTrack> __vector;
345
+ __vector.reserve(__size);
346
+ for (size_t __i = 0; __i < __size; __i++) {
347
+ auto __element = __result->getElement(__i);
348
+ __vector.push_back(__element->toCpp());
349
+ }
350
+ return __vector;
351
+ }();
352
+ }
353
+ std::variant<nitro::NullType, DownloadedPlaylist> JHybridDownloadManagerSpec::getDownloadedPlaylist(const std::string& playlistId) {
354
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_DownloadedPlaylist>(jni::alias_ref<jni::JString> /* playlistId */)>("getDownloadedPlaylist");
355
+ auto __result = method(_javaPart, jni::make_jstring(playlistId));
356
+ return __result->toCpp();
357
+ }
358
+ std::vector<DownloadedPlaylist> JHybridDownloadManagerSpec::getAllDownloadedPlaylists() {
359
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JDownloadedPlaylist>>()>("getAllDownloadedPlaylists");
360
+ auto __result = method(_javaPart);
361
+ return [&]() {
362
+ size_t __size = __result->size();
363
+ std::vector<DownloadedPlaylist> __vector;
364
+ __vector.reserve(__size);
365
+ for (size_t __i = 0; __i < __size; __i++) {
366
+ auto __element = __result->getElement(__i);
367
+ __vector.push_back(__element->toCpp());
368
+ }
369
+ return __vector;
370
+ }();
371
+ }
372
+ std::variant<nitro::NullType, std::string> JHybridDownloadManagerSpec::getLocalPath(const std::string& trackId) {
373
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>(jni::alias_ref<jni::JString> /* trackId */)>("getLocalPath");
374
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
375
+ return __result->toCpp();
376
+ }
377
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::deleteDownloadedTrack(const std::string& trackId) {
378
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("deleteDownloadedTrack");
379
+ auto __result = method(_javaPart, jni::make_jstring(trackId));
380
+ return [&]() {
381
+ auto __promise = Promise<void>::create();
382
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
383
+ __promise->resolve();
384
+ });
385
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
386
+ jni::JniException __jniError(__throwable);
387
+ __promise->reject(std::make_exception_ptr(__jniError));
388
+ });
389
+ return __promise;
390
+ }();
391
+ }
392
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::deleteDownloadedPlaylist(const std::string& playlistId) {
393
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */)>("deleteDownloadedPlaylist");
394
+ auto __result = method(_javaPart, jni::make_jstring(playlistId));
395
+ return [&]() {
396
+ auto __promise = Promise<void>::create();
397
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
398
+ __promise->resolve();
399
+ });
400
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
401
+ jni::JniException __jniError(__throwable);
402
+ __promise->reject(std::make_exception_ptr(__jniError));
403
+ });
404
+ return __promise;
405
+ }();
406
+ }
407
+ std::shared_ptr<Promise<void>> JHybridDownloadManagerSpec::deleteAllDownloads() {
408
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("deleteAllDownloads");
409
+ auto __result = method(_javaPart);
410
+ return [&]() {
411
+ auto __promise = Promise<void>::create();
412
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
413
+ __promise->resolve();
414
+ });
415
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
416
+ jni::JniException __jniError(__throwable);
417
+ __promise->reject(std::make_exception_ptr(__jniError));
418
+ });
419
+ return __promise;
420
+ }();
421
+ }
422
+ std::shared_ptr<Promise<DownloadStorageInfo>> JHybridDownloadManagerSpec::getStorageInfo() {
423
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getStorageInfo");
424
+ auto __result = method(_javaPart);
425
+ return [&]() {
426
+ auto __promise = Promise<DownloadStorageInfo>::create();
427
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
428
+ auto __result = jni::static_ref_cast<JDownloadStorageInfo>(__boxedResult);
429
+ __promise->resolve(__result->toCpp());
430
+ });
431
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
432
+ jni::JniException __jniError(__throwable);
433
+ __promise->reject(std::make_exception_ptr(__jniError));
434
+ });
435
+ return __promise;
436
+ }();
437
+ }
438
+ double JHybridDownloadManagerSpec::syncDownloads() {
439
+ static const auto method = javaClassStatic()->getMethod<double()>("syncDownloads");
440
+ auto __result = method(_javaPart);
441
+ return __result;
442
+ }
443
+ void JHybridDownloadManagerSpec::setPlaybackSourcePreference(PlaybackSource preference) {
444
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPlaybackSource> /* preference */)>("setPlaybackSourcePreference");
445
+ method(_javaPart, JPlaybackSource::fromCpp(preference));
446
+ }
447
+ PlaybackSource JHybridDownloadManagerSpec::getPlaybackSourcePreference() {
448
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPlaybackSource>()>("getPlaybackSourcePreference");
449
+ auto __result = method(_javaPart);
450
+ return __result->toCpp();
451
+ }
452
+ std::string JHybridDownloadManagerSpec::getEffectiveUrl(const TrackItem& track) {
453
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<JTrackItem> /* track */)>("getEffectiveUrl");
454
+ auto __result = method(_javaPart, JTrackItem::fromCpp(track));
455
+ return __result->toStdString();
456
+ }
457
+ void JHybridDownloadManagerSpec::onDownloadProgress(const std::function<void(const DownloadProgress& /* progress */)>& callback) {
458
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_DownloadProgress::javaobject> /* callback */)>("onDownloadProgress_cxx");
459
+ method(_javaPart, JFunc_void_DownloadProgress_cxx::fromCpp(callback));
460
+ }
461
+ void JHybridDownloadManagerSpec::onDownloadStateChange(const std::function<void(const std::string& /* downloadId */, const std::string& /* trackId */, DownloadState /* state */, const std::optional<DownloadError>& /* error */)>& callback) {
462
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_::javaobject> /* callback */)>("onDownloadStateChange_cxx");
463
+ method(_javaPart, JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError__cxx::fromCpp(callback));
464
+ }
465
+ void JHybridDownloadManagerSpec::onDownloadComplete(const std::function<void(const DownloadedTrack& /* downloadedTrack */)>& callback) {
466
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_DownloadedTrack::javaobject> /* callback */)>("onDownloadComplete_cxx");
467
+ method(_javaPart, JFunc_void_DownloadedTrack_cxx::fromCpp(callback));
468
+ }
469
+
470
+ } // namespace margelo::nitro::nitroplayer