react-native-nitro-player 0.3.0-alpha.9 → 0.4.1-alpha.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 (262) 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 +944 -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 +996 -288
  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/callbackManager.d.ts +18 -0
  31. package/lib/hooks/callbackManager.js +66 -0
  32. package/lib/hooks/downloadCallbackManager.d.ts +36 -0
  33. package/lib/hooks/downloadCallbackManager.js +108 -0
  34. package/lib/hooks/equalizerCallbackManager.d.ts +37 -0
  35. package/lib/hooks/equalizerCallbackManager.js +109 -0
  36. package/lib/hooks/index.d.ts +16 -0
  37. package/lib/hooks/index.js +10 -0
  38. package/lib/hooks/useActualQueue.d.ts +48 -0
  39. package/lib/hooks/useActualQueue.js +98 -0
  40. package/lib/hooks/useDownloadActions.d.ts +26 -0
  41. package/lib/hooks/useDownloadActions.js +117 -0
  42. package/lib/hooks/useDownloadProgress.d.ts +25 -0
  43. package/lib/hooks/useDownloadProgress.js +79 -0
  44. package/lib/hooks/useDownloadStorage.d.ts +19 -0
  45. package/lib/hooks/useDownloadStorage.js +60 -0
  46. package/lib/hooks/useDownloadedTracks.d.ts +25 -0
  47. package/lib/hooks/useDownloadedTracks.js +69 -0
  48. package/lib/hooks/useEqualizer.d.ts +25 -0
  49. package/lib/hooks/useEqualizer.js +124 -0
  50. package/lib/hooks/useEqualizerPresets.d.ts +22 -0
  51. package/lib/hooks/useEqualizerPresets.js +96 -0
  52. package/lib/hooks/useNowPlaying.js +32 -19
  53. package/lib/hooks/useOnChangeTrack.js +15 -12
  54. package/lib/hooks/useOnPlaybackProgressChange.js +2 -2
  55. package/lib/hooks/useOnPlaybackStateChange.js +16 -13
  56. package/lib/hooks/usePlaylist.d.ts +48 -0
  57. package/lib/hooks/usePlaylist.js +136 -0
  58. package/lib/index.d.ts +6 -0
  59. package/lib/index.js +6 -0
  60. package/lib/specs/DownloadManager.nitro.d.ts +152 -0
  61. package/lib/specs/DownloadManager.nitro.js +1 -0
  62. package/lib/specs/Equalizer.nitro.d.ts +43 -0
  63. package/lib/specs/Equalizer.nitro.js +1 -0
  64. package/lib/specs/TrackPlayer.nitro.d.ts +6 -2
  65. package/lib/types/DownloadTypes.d.ts +110 -0
  66. package/lib/types/DownloadTypes.js +1 -0
  67. package/lib/types/EqualizerTypes.d.ts +52 -0
  68. package/lib/types/EqualizerTypes.js +1 -0
  69. package/lib/types/PlayerQueue.d.ts +4 -0
  70. package/nitro.json +8 -0
  71. package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +10 -1
  72. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +32 -2
  73. package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +65 -0
  74. package/nitrogen/generated/android/c++/JDownloadConfig.hpp +92 -0
  75. package/nitrogen/generated/android/c++/JDownloadError.hpp +71 -0
  76. package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +74 -0
  77. package/nitrogen/generated/android/c++/JDownloadProgress.hpp +79 -0
  78. package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +81 -0
  79. package/nitrogen/generated/android/c++/JDownloadState.hpp +71 -0
  80. package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +73 -0
  81. package/nitrogen/generated/android/c++/JDownloadTask.hpp +108 -0
  82. package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +111 -0
  83. package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +92 -0
  84. package/nitrogen/generated/android/c++/JEqualizerBand.hpp +69 -0
  85. package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +78 -0
  86. package/nitrogen/generated/android/c++/JEqualizerState.hpp +91 -0
  87. package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +80 -0
  88. package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +89 -0
  89. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -0
  90. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +81 -0
  91. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -0
  92. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +83 -0
  93. package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +97 -0
  94. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -0
  95. package/nitrogen/generated/android/c++/JGainRange.hpp +61 -0
  96. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +470 -0
  97. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +99 -0
  98. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +204 -0
  99. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +82 -0
  100. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +2 -0
  101. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +117 -15
  102. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +6 -2
  103. package/nitrogen/generated/android/c++/JPlaybackSource.hpp +62 -0
  104. package/nitrogen/generated/android/c++/JPlayerState.hpp +11 -3
  105. package/nitrogen/generated/android/c++/JPlaylist.hpp +2 -0
  106. package/nitrogen/generated/android/c++/JPresetType.hpp +59 -0
  107. package/nitrogen/generated/android/c++/JStorageLocation.hpp +59 -0
  108. package/nitrogen/generated/android/c++/JTrackItem.hpp +9 -3
  109. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +3 -3
  110. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  111. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  112. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +26 -0
  113. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +74 -0
  114. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +26 -0
  115. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +84 -0
  116. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +26 -0
  117. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +85 -0
  118. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +26 -0
  119. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +80 -0
  120. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +2 -0
  121. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +2 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +23 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +59 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +47 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +26 -0
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +53 -0
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +56 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +25 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +50 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +65 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +53 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +56 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +47 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +44 -0
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +44 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +80 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +80 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +80 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +80 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +41 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +210 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +141 -0
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +19 -2
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +22 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +6 -3
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +21 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +21 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +7 -3
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +2 -2
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +59 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +59 -0
  153. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +59 -0
  154. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +59 -0
  155. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +59 -0
  156. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +138 -8
  157. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +1046 -121
  158. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +66 -0
  159. package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +16 -0
  160. package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +30 -0
  161. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +11 -0
  162. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +386 -0
  163. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +11 -0
  164. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +223 -0
  165. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +1 -0
  166. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +46 -6
  167. package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +48 -0
  168. package/nitrogen/generated/ios/swift/DownloadConfig.swift +270 -0
  169. package/nitrogen/generated/ios/swift/DownloadError.swift +69 -0
  170. package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +60 -0
  171. package/nitrogen/generated/ios/swift/DownloadProgress.swift +91 -0
  172. package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +102 -0
  173. package/nitrogen/generated/ios/swift/DownloadState.swift +56 -0
  174. package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +80 -0
  175. package/nitrogen/generated/ios/swift/DownloadTask.swift +315 -0
  176. package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +103 -0
  177. package/nitrogen/generated/ios/swift/DownloadedTrack.swift +147 -0
  178. package/nitrogen/generated/ios/swift/EqualizerBand.swift +69 -0
  179. package/nitrogen/generated/ios/swift/EqualizerPreset.swift +70 -0
  180. package/nitrogen/generated/ios/swift/EqualizerState.swift +115 -0
  181. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  182. package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +47 -0
  183. package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +47 -0
  184. package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +47 -0
  185. package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +47 -0
  186. package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
  187. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  188. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +66 -0
  189. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  190. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +47 -0
  191. package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +47 -0
  192. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +47 -0
  193. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
  194. package/nitrogen/generated/ios/swift/GainRange.swift +47 -0
  195. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +90 -0
  196. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +705 -0
  197. package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +73 -0
  198. package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +396 -0
  199. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +6 -2
  200. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +105 -8
  201. package/nitrogen/generated/ios/swift/PlaybackSource.swift +44 -0
  202. package/nitrogen/generated/ios/swift/PlayerState.swift +13 -2
  203. package/nitrogen/generated/ios/swift/PresetType.swift +40 -0
  204. package/nitrogen/generated/ios/swift/StorageLocation.swift +40 -0
  205. package/nitrogen/generated/ios/swift/TrackItem.swift +31 -1
  206. package/nitrogen/generated/ios/swift/TrackPlayerState.swift +4 -4
  207. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  208. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +18 -0
  209. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +18 -0
  210. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +18 -0
  211. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +18 -0
  212. package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +84 -0
  213. package/nitrogen/generated/shared/c++/DownloadConfig.hpp +108 -0
  214. package/nitrogen/generated/shared/c++/DownloadError.hpp +89 -0
  215. package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +96 -0
  216. package/nitrogen/generated/shared/c++/DownloadProgress.hpp +97 -0
  217. package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +99 -0
  218. package/nitrogen/generated/shared/c++/DownloadState.hpp +92 -0
  219. package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +91 -0
  220. package/nitrogen/generated/shared/c++/DownloadTask.hpp +122 -0
  221. package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +101 -0
  222. package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +107 -0
  223. package/nitrogen/generated/shared/c++/EqualizerBand.hpp +87 -0
  224. package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +86 -0
  225. package/nitrogen/generated/shared/c++/EqualizerState.hpp +89 -0
  226. package/nitrogen/generated/shared/c++/GainRange.hpp +79 -0
  227. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +55 -0
  228. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +134 -0
  229. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +38 -0
  230. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +95 -0
  231. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +4 -0
  232. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +11 -5
  233. package/nitrogen/generated/shared/c++/PlaybackSource.hpp +80 -0
  234. package/nitrogen/generated/shared/c++/PlayerState.hpp +9 -2
  235. package/nitrogen/generated/shared/c++/PresetType.hpp +76 -0
  236. package/nitrogen/generated/shared/c++/StorageLocation.hpp +76 -0
  237. package/nitrogen/generated/shared/c++/TrackItem.hpp +7 -2
  238. package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +5 -5
  239. package/package.json +1 -1
  240. package/src/hooks/callbackManager.ts +87 -0
  241. package/src/hooks/downloadCallbackManager.ts +149 -0
  242. package/src/hooks/equalizerCallbackManager.ts +138 -0
  243. package/src/hooks/index.ts +23 -0
  244. package/src/hooks/useActualQueue.ts +116 -0
  245. package/src/hooks/useDownloadActions.ts +179 -0
  246. package/src/hooks/useDownloadProgress.ts +126 -0
  247. package/src/hooks/useDownloadStorage.ts +84 -0
  248. package/src/hooks/useDownloadedTracks.ts +138 -0
  249. package/src/hooks/useEqualizer.ts +173 -0
  250. package/src/hooks/useEqualizerPresets.ts +140 -0
  251. package/src/hooks/useNowPlaying.ts +33 -20
  252. package/src/hooks/useOnChangeTrack.ts +15 -11
  253. package/src/hooks/useOnPlaybackProgressChange.ts +2 -2
  254. package/src/hooks/useOnPlaybackStateChange.ts +19 -15
  255. package/src/hooks/usePlaylist.ts +161 -0
  256. package/src/index.ts +12 -0
  257. package/src/specs/DownloadManager.nitro.ts +203 -0
  258. package/src/specs/Equalizer.nitro.ts +69 -0
  259. package/src/specs/TrackPlayer.nitro.ts +6 -2
  260. package/src/types/DownloadTypes.ts +135 -0
  261. package/src/types/EqualizerTypes.ts +72 -0
  262. package/src/types/PlayerQueue.ts +9 -0
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// JDownloadConfig.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 "DownloadConfig.hpp"
12
+
13
+ #include "JStorageLocation.hpp"
14
+ #include "JVariant_NullType_String.hpp"
15
+ #include "StorageLocation.hpp"
16
+ #include <NitroModules/JNull.hpp>
17
+ #include <NitroModules/Null.hpp>
18
+ #include <optional>
19
+ #include <string>
20
+ #include <variant>
21
+
22
+ namespace margelo::nitro::nitroplayer {
23
+
24
+ using namespace facebook;
25
+
26
+ /**
27
+ * The C++ JNI bridge between the C++ struct "DownloadConfig" and the the Kotlin data class "DownloadConfig".
28
+ */
29
+ struct JDownloadConfig final: public jni::JavaClass<JDownloadConfig> {
30
+ public:
31
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadConfig;";
32
+
33
+ public:
34
+ /**
35
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadConfig by copying all values to C++.
36
+ */
37
+ [[maybe_unused]]
38
+ [[nodiscard]]
39
+ DownloadConfig toCpp() const {
40
+ static const auto clazz = javaClassStatic();
41
+ static const auto fieldStorageLocation = clazz->getField<JStorageLocation>("storageLocation");
42
+ jni::local_ref<JStorageLocation> storageLocation = this->getFieldValue(fieldStorageLocation);
43
+ static const auto fieldMaxConcurrentDownloads = clazz->getField<jni::JDouble>("maxConcurrentDownloads");
44
+ jni::local_ref<jni::JDouble> maxConcurrentDownloads = this->getFieldValue(fieldMaxConcurrentDownloads);
45
+ static const auto fieldAutoRetry = clazz->getField<jni::JBoolean>("autoRetry");
46
+ jni::local_ref<jni::JBoolean> autoRetry = this->getFieldValue(fieldAutoRetry);
47
+ static const auto fieldMaxRetryAttempts = clazz->getField<jni::JDouble>("maxRetryAttempts");
48
+ jni::local_ref<jni::JDouble> maxRetryAttempts = this->getFieldValue(fieldMaxRetryAttempts);
49
+ static const auto fieldBackgroundDownloadsEnabled = clazz->getField<jni::JBoolean>("backgroundDownloadsEnabled");
50
+ jni::local_ref<jni::JBoolean> backgroundDownloadsEnabled = this->getFieldValue(fieldBackgroundDownloadsEnabled);
51
+ static const auto fieldDownloadArtwork = clazz->getField<jni::JBoolean>("downloadArtwork");
52
+ jni::local_ref<jni::JBoolean> downloadArtwork = this->getFieldValue(fieldDownloadArtwork);
53
+ static const auto fieldCustomDownloadPath = clazz->getField<JVariant_NullType_String>("customDownloadPath");
54
+ jni::local_ref<JVariant_NullType_String> customDownloadPath = this->getFieldValue(fieldCustomDownloadPath);
55
+ static const auto fieldWifiOnlyDownloads = clazz->getField<jni::JBoolean>("wifiOnlyDownloads");
56
+ jni::local_ref<jni::JBoolean> wifiOnlyDownloads = this->getFieldValue(fieldWifiOnlyDownloads);
57
+ return DownloadConfig(
58
+ storageLocation != nullptr ? std::make_optional(storageLocation->toCpp()) : std::nullopt,
59
+ maxConcurrentDownloads != nullptr ? std::make_optional(maxConcurrentDownloads->value()) : std::nullopt,
60
+ autoRetry != nullptr ? std::make_optional(static_cast<bool>(autoRetry->value())) : std::nullopt,
61
+ maxRetryAttempts != nullptr ? std::make_optional(maxRetryAttempts->value()) : std::nullopt,
62
+ backgroundDownloadsEnabled != nullptr ? std::make_optional(static_cast<bool>(backgroundDownloadsEnabled->value())) : std::nullopt,
63
+ downloadArtwork != nullptr ? std::make_optional(static_cast<bool>(downloadArtwork->value())) : std::nullopt,
64
+ customDownloadPath != nullptr ? std::make_optional(customDownloadPath->toCpp()) : std::nullopt,
65
+ wifiOnlyDownloads != nullptr ? std::make_optional(static_cast<bool>(wifiOnlyDownloads->value())) : std::nullopt
66
+ );
67
+ }
68
+
69
+ public:
70
+ /**
71
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
72
+ */
73
+ [[maybe_unused]]
74
+ static jni::local_ref<JDownloadConfig::javaobject> fromCpp(const DownloadConfig& value) {
75
+ using JSignature = JDownloadConfig(jni::alias_ref<JStorageLocation>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<jni::JBoolean>);
76
+ static const auto clazz = javaClassStatic();
77
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
78
+ return create(
79
+ clazz,
80
+ value.storageLocation.has_value() ? JStorageLocation::fromCpp(value.storageLocation.value()) : nullptr,
81
+ value.maxConcurrentDownloads.has_value() ? jni::JDouble::valueOf(value.maxConcurrentDownloads.value()) : nullptr,
82
+ value.autoRetry.has_value() ? jni::JBoolean::valueOf(value.autoRetry.value()) : nullptr,
83
+ value.maxRetryAttempts.has_value() ? jni::JDouble::valueOf(value.maxRetryAttempts.value()) : nullptr,
84
+ value.backgroundDownloadsEnabled.has_value() ? jni::JBoolean::valueOf(value.backgroundDownloadsEnabled.value()) : nullptr,
85
+ value.downloadArtwork.has_value() ? jni::JBoolean::valueOf(value.downloadArtwork.value()) : nullptr,
86
+ value.customDownloadPath.has_value() ? JVariant_NullType_String::fromCpp(value.customDownloadPath.value()) : nullptr,
87
+ value.wifiOnlyDownloads.has_value() ? jni::JBoolean::valueOf(value.wifiOnlyDownloads.value()) : nullptr
88
+ );
89
+ }
90
+ };
91
+
92
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// JDownloadError.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 "DownloadError.hpp"
12
+
13
+ #include "DownloadErrorReason.hpp"
14
+ #include "JDownloadErrorReason.hpp"
15
+ #include <string>
16
+
17
+ namespace margelo::nitro::nitroplayer {
18
+
19
+ using namespace facebook;
20
+
21
+ /**
22
+ * The C++ JNI bridge between the C++ struct "DownloadError" and the the Kotlin data class "DownloadError".
23
+ */
24
+ struct JDownloadError final: public jni::JavaClass<JDownloadError> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadError;";
27
+
28
+ public:
29
+ /**
30
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadError by copying all values to C++.
31
+ */
32
+ [[maybe_unused]]
33
+ [[nodiscard]]
34
+ DownloadError toCpp() const {
35
+ static const auto clazz = javaClassStatic();
36
+ static const auto fieldCode = clazz->getField<jni::JString>("code");
37
+ jni::local_ref<jni::JString> code = this->getFieldValue(fieldCode);
38
+ static const auto fieldMessage = clazz->getField<jni::JString>("message");
39
+ jni::local_ref<jni::JString> message = this->getFieldValue(fieldMessage);
40
+ static const auto fieldReason = clazz->getField<JDownloadErrorReason>("reason");
41
+ jni::local_ref<JDownloadErrorReason> reason = this->getFieldValue(fieldReason);
42
+ static const auto fieldIsRetryable = clazz->getField<jboolean>("isRetryable");
43
+ jboolean isRetryable = this->getFieldValue(fieldIsRetryable);
44
+ return DownloadError(
45
+ code->toStdString(),
46
+ message->toStdString(),
47
+ reason->toCpp(),
48
+ static_cast<bool>(isRetryable)
49
+ );
50
+ }
51
+
52
+ public:
53
+ /**
54
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
55
+ */
56
+ [[maybe_unused]]
57
+ static jni::local_ref<JDownloadError::javaobject> fromCpp(const DownloadError& value) {
58
+ using JSignature = JDownloadError(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JDownloadErrorReason>, jboolean);
59
+ static const auto clazz = javaClassStatic();
60
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
61
+ return create(
62
+ clazz,
63
+ jni::make_jstring(value.code),
64
+ jni::make_jstring(value.message),
65
+ JDownloadErrorReason::fromCpp(value.reason),
66
+ value.isRetryable
67
+ );
68
+ }
69
+ };
70
+
71
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,74 @@
1
+ ///
2
+ /// JDownloadErrorReason.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 "DownloadErrorReason.hpp"
12
+
13
+ namespace margelo::nitro::nitroplayer {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "DownloadErrorReason" and the the Kotlin enum "DownloadErrorReason".
19
+ */
20
+ struct JDownloadErrorReason final: public jni::JavaClass<JDownloadErrorReason> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadErrorReason;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum DownloadErrorReason.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ DownloadErrorReason toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<DownloadErrorReason>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JDownloadErrorReason> fromCpp(DownloadErrorReason value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldNETWORK_ERROR = clazz->getStaticField<JDownloadErrorReason>("NETWORK_ERROR");
45
+ static const auto fieldSTORAGE_FULL = clazz->getStaticField<JDownloadErrorReason>("STORAGE_FULL");
46
+ static const auto fieldFILE_NOT_FOUND = clazz->getStaticField<JDownloadErrorReason>("FILE_NOT_FOUND");
47
+ static const auto fieldPERMISSION_DENIED = clazz->getStaticField<JDownloadErrorReason>("PERMISSION_DENIED");
48
+ static const auto fieldINVALID_URL = clazz->getStaticField<JDownloadErrorReason>("INVALID_URL");
49
+ static const auto fieldTIMEOUT = clazz->getStaticField<JDownloadErrorReason>("TIMEOUT");
50
+ static const auto fieldUNKNOWN = clazz->getStaticField<JDownloadErrorReason>("UNKNOWN");
51
+
52
+ switch (value) {
53
+ case DownloadErrorReason::NETWORK_ERROR:
54
+ return clazz->getStaticFieldValue(fieldNETWORK_ERROR);
55
+ case DownloadErrorReason::STORAGE_FULL:
56
+ return clazz->getStaticFieldValue(fieldSTORAGE_FULL);
57
+ case DownloadErrorReason::FILE_NOT_FOUND:
58
+ return clazz->getStaticFieldValue(fieldFILE_NOT_FOUND);
59
+ case DownloadErrorReason::PERMISSION_DENIED:
60
+ return clazz->getStaticFieldValue(fieldPERMISSION_DENIED);
61
+ case DownloadErrorReason::INVALID_URL:
62
+ return clazz->getStaticFieldValue(fieldINVALID_URL);
63
+ case DownloadErrorReason::TIMEOUT:
64
+ return clazz->getStaticFieldValue(fieldTIMEOUT);
65
+ case DownloadErrorReason::UNKNOWN:
66
+ return clazz->getStaticFieldValue(fieldUNKNOWN);
67
+ default:
68
+ std::string stringValue = std::to_string(static_cast<int>(value));
69
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
70
+ }
71
+ }
72
+ };
73
+
74
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,79 @@
1
+ ///
2
+ /// JDownloadProgress.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 "DownloadProgress.hpp"
12
+
13
+ #include "DownloadState.hpp"
14
+ #include "JDownloadState.hpp"
15
+ #include <string>
16
+
17
+ namespace margelo::nitro::nitroplayer {
18
+
19
+ using namespace facebook;
20
+
21
+ /**
22
+ * The C++ JNI bridge between the C++ struct "DownloadProgress" and the the Kotlin data class "DownloadProgress".
23
+ */
24
+ struct JDownloadProgress final: public jni::JavaClass<JDownloadProgress> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadProgress;";
27
+
28
+ public:
29
+ /**
30
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadProgress by copying all values to C++.
31
+ */
32
+ [[maybe_unused]]
33
+ [[nodiscard]]
34
+ DownloadProgress toCpp() const {
35
+ static const auto clazz = javaClassStatic();
36
+ static const auto fieldTrackId = clazz->getField<jni::JString>("trackId");
37
+ jni::local_ref<jni::JString> trackId = this->getFieldValue(fieldTrackId);
38
+ static const auto fieldDownloadId = clazz->getField<jni::JString>("downloadId");
39
+ jni::local_ref<jni::JString> downloadId = this->getFieldValue(fieldDownloadId);
40
+ static const auto fieldBytesDownloaded = clazz->getField<double>("bytesDownloaded");
41
+ double bytesDownloaded = this->getFieldValue(fieldBytesDownloaded);
42
+ static const auto fieldTotalBytes = clazz->getField<double>("totalBytes");
43
+ double totalBytes = this->getFieldValue(fieldTotalBytes);
44
+ static const auto fieldProgress = clazz->getField<double>("progress");
45
+ double progress = this->getFieldValue(fieldProgress);
46
+ static const auto fieldState = clazz->getField<JDownloadState>("state");
47
+ jni::local_ref<JDownloadState> state = this->getFieldValue(fieldState);
48
+ return DownloadProgress(
49
+ trackId->toStdString(),
50
+ downloadId->toStdString(),
51
+ bytesDownloaded,
52
+ totalBytes,
53
+ progress,
54
+ state->toCpp()
55
+ );
56
+ }
57
+
58
+ public:
59
+ /**
60
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
61
+ */
62
+ [[maybe_unused]]
63
+ static jni::local_ref<JDownloadProgress::javaobject> fromCpp(const DownloadProgress& value) {
64
+ using JSignature = JDownloadProgress(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, double, double, jni::alias_ref<JDownloadState>);
65
+ static const auto clazz = javaClassStatic();
66
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
67
+ return create(
68
+ clazz,
69
+ jni::make_jstring(value.trackId),
70
+ jni::make_jstring(value.downloadId),
71
+ value.bytesDownloaded,
72
+ value.totalBytes,
73
+ value.progress,
74
+ JDownloadState::fromCpp(value.state)
75
+ );
76
+ }
77
+ };
78
+
79
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,81 @@
1
+ ///
2
+ /// JDownloadQueueStatus.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 "DownloadQueueStatus.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 "DownloadQueueStatus" and the the Kotlin data class "DownloadQueueStatus".
21
+ */
22
+ struct JDownloadQueueStatus final: public jni::JavaClass<JDownloadQueueStatus> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadQueueStatus;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadQueueStatus by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ DownloadQueueStatus toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldPendingCount = clazz->getField<double>("pendingCount");
35
+ double pendingCount = this->getFieldValue(fieldPendingCount);
36
+ static const auto fieldActiveCount = clazz->getField<double>("activeCount");
37
+ double activeCount = this->getFieldValue(fieldActiveCount);
38
+ static const auto fieldCompletedCount = clazz->getField<double>("completedCount");
39
+ double completedCount = this->getFieldValue(fieldCompletedCount);
40
+ static const auto fieldFailedCount = clazz->getField<double>("failedCount");
41
+ double failedCount = this->getFieldValue(fieldFailedCount);
42
+ static const auto fieldTotalBytesToDownload = clazz->getField<double>("totalBytesToDownload");
43
+ double totalBytesToDownload = this->getFieldValue(fieldTotalBytesToDownload);
44
+ static const auto fieldTotalBytesDownloaded = clazz->getField<double>("totalBytesDownloaded");
45
+ double totalBytesDownloaded = this->getFieldValue(fieldTotalBytesDownloaded);
46
+ static const auto fieldOverallProgress = clazz->getField<double>("overallProgress");
47
+ double overallProgress = this->getFieldValue(fieldOverallProgress);
48
+ return DownloadQueueStatus(
49
+ pendingCount,
50
+ activeCount,
51
+ completedCount,
52
+ failedCount,
53
+ totalBytesToDownload,
54
+ totalBytesDownloaded,
55
+ overallProgress
56
+ );
57
+ }
58
+
59
+ public:
60
+ /**
61
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
62
+ */
63
+ [[maybe_unused]]
64
+ static jni::local_ref<JDownloadQueueStatus::javaobject> fromCpp(const DownloadQueueStatus& value) {
65
+ using JSignature = JDownloadQueueStatus(double, double, double, double, double, double, double);
66
+ static const auto clazz = javaClassStatic();
67
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
68
+ return create(
69
+ clazz,
70
+ value.pendingCount,
71
+ value.activeCount,
72
+ value.completedCount,
73
+ value.failedCount,
74
+ value.totalBytesToDownload,
75
+ value.totalBytesDownloaded,
76
+ value.overallProgress
77
+ );
78
+ }
79
+ };
80
+
81
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// JDownloadState.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 "DownloadState.hpp"
12
+
13
+ namespace margelo::nitro::nitroplayer {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "DownloadState" and the the Kotlin enum "DownloadState".
19
+ */
20
+ struct JDownloadState final: public jni::JavaClass<JDownloadState> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadState;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum DownloadState.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ DownloadState toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<DownloadState>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JDownloadState> fromCpp(DownloadState value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldPENDING = clazz->getStaticField<JDownloadState>("PENDING");
45
+ static const auto fieldDOWNLOADING = clazz->getStaticField<JDownloadState>("DOWNLOADING");
46
+ static const auto fieldPAUSED = clazz->getStaticField<JDownloadState>("PAUSED");
47
+ static const auto fieldCOMPLETED = clazz->getStaticField<JDownloadState>("COMPLETED");
48
+ static const auto fieldFAILED = clazz->getStaticField<JDownloadState>("FAILED");
49
+ static const auto fieldCANCELLED = clazz->getStaticField<JDownloadState>("CANCELLED");
50
+
51
+ switch (value) {
52
+ case DownloadState::PENDING:
53
+ return clazz->getStaticFieldValue(fieldPENDING);
54
+ case DownloadState::DOWNLOADING:
55
+ return clazz->getStaticFieldValue(fieldDOWNLOADING);
56
+ case DownloadState::PAUSED:
57
+ return clazz->getStaticFieldValue(fieldPAUSED);
58
+ case DownloadState::COMPLETED:
59
+ return clazz->getStaticFieldValue(fieldCOMPLETED);
60
+ case DownloadState::FAILED:
61
+ return clazz->getStaticFieldValue(fieldFAILED);
62
+ case DownloadState::CANCELLED:
63
+ return clazz->getStaticFieldValue(fieldCANCELLED);
64
+ default:
65
+ std::string stringValue = std::to_string(static_cast<int>(value));
66
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
67
+ }
68
+ }
69
+ };
70
+
71
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,73 @@
1
+ ///
2
+ /// JDownloadStorageInfo.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 "DownloadStorageInfo.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 "DownloadStorageInfo" and the the Kotlin data class "DownloadStorageInfo".
21
+ */
22
+ struct JDownloadStorageInfo final: public jni::JavaClass<JDownloadStorageInfo> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadStorageInfo;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadStorageInfo by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ DownloadStorageInfo toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldTotalDownloadedSize = clazz->getField<double>("totalDownloadedSize");
35
+ double totalDownloadedSize = this->getFieldValue(fieldTotalDownloadedSize);
36
+ static const auto fieldTrackCount = clazz->getField<double>("trackCount");
37
+ double trackCount = this->getFieldValue(fieldTrackCount);
38
+ static const auto fieldPlaylistCount = clazz->getField<double>("playlistCount");
39
+ double playlistCount = this->getFieldValue(fieldPlaylistCount);
40
+ static const auto fieldAvailableSpace = clazz->getField<double>("availableSpace");
41
+ double availableSpace = this->getFieldValue(fieldAvailableSpace);
42
+ static const auto fieldTotalSpace = clazz->getField<double>("totalSpace");
43
+ double totalSpace = this->getFieldValue(fieldTotalSpace);
44
+ return DownloadStorageInfo(
45
+ totalDownloadedSize,
46
+ trackCount,
47
+ playlistCount,
48
+ availableSpace,
49
+ totalSpace
50
+ );
51
+ }
52
+
53
+ public:
54
+ /**
55
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
56
+ */
57
+ [[maybe_unused]]
58
+ static jni::local_ref<JDownloadStorageInfo::javaobject> fromCpp(const DownloadStorageInfo& value) {
59
+ using JSignature = JDownloadStorageInfo(double, double, double, double, double);
60
+ static const auto clazz = javaClassStatic();
61
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
62
+ return create(
63
+ clazz,
64
+ value.totalDownloadedSize,
65
+ value.trackCount,
66
+ value.playlistCount,
67
+ value.availableSpace,
68
+ value.totalSpace
69
+ );
70
+ }
71
+ };
72
+
73
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,108 @@
1
+ ///
2
+ /// JDownloadTask.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 "DownloadTask.hpp"
12
+
13
+ #include "DownloadError.hpp"
14
+ #include "DownloadErrorReason.hpp"
15
+ #include "DownloadProgress.hpp"
16
+ #include "DownloadState.hpp"
17
+ #include "JDownloadError.hpp"
18
+ #include "JDownloadErrorReason.hpp"
19
+ #include "JDownloadProgress.hpp"
20
+ #include "JDownloadState.hpp"
21
+ #include "JVariant_NullType_Double.hpp"
22
+ #include "JVariant_NullType_DownloadError.hpp"
23
+ #include "JVariant_NullType_String.hpp"
24
+ #include <NitroModules/JNull.hpp>
25
+ #include <NitroModules/Null.hpp>
26
+ #include <optional>
27
+ #include <string>
28
+ #include <variant>
29
+
30
+ namespace margelo::nitro::nitroplayer {
31
+
32
+ using namespace facebook;
33
+
34
+ /**
35
+ * The C++ JNI bridge between the C++ struct "DownloadTask" and the the Kotlin data class "DownloadTask".
36
+ */
37
+ struct JDownloadTask final: public jni::JavaClass<JDownloadTask> {
38
+ public:
39
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadTask;";
40
+
41
+ public:
42
+ /**
43
+ * Convert this Java/Kotlin-based struct to the C++ struct DownloadTask by copying all values to C++.
44
+ */
45
+ [[maybe_unused]]
46
+ [[nodiscard]]
47
+ DownloadTask toCpp() const {
48
+ static const auto clazz = javaClassStatic();
49
+ static const auto fieldDownloadId = clazz->getField<jni::JString>("downloadId");
50
+ jni::local_ref<jni::JString> downloadId = this->getFieldValue(fieldDownloadId);
51
+ static const auto fieldTrackId = clazz->getField<jni::JString>("trackId");
52
+ jni::local_ref<jni::JString> trackId = this->getFieldValue(fieldTrackId);
53
+ static const auto fieldPlaylistId = clazz->getField<JVariant_NullType_String>("playlistId");
54
+ jni::local_ref<JVariant_NullType_String> playlistId = this->getFieldValue(fieldPlaylistId);
55
+ static const auto fieldState = clazz->getField<JDownloadState>("state");
56
+ jni::local_ref<JDownloadState> state = this->getFieldValue(fieldState);
57
+ static const auto fieldProgress = clazz->getField<JDownloadProgress>("progress");
58
+ jni::local_ref<JDownloadProgress> progress = this->getFieldValue(fieldProgress);
59
+ static const auto fieldCreatedAt = clazz->getField<double>("createdAt");
60
+ double createdAt = this->getFieldValue(fieldCreatedAt);
61
+ static const auto fieldStartedAt = clazz->getField<JVariant_NullType_Double>("startedAt");
62
+ jni::local_ref<JVariant_NullType_Double> startedAt = this->getFieldValue(fieldStartedAt);
63
+ static const auto fieldCompletedAt = clazz->getField<JVariant_NullType_Double>("completedAt");
64
+ jni::local_ref<JVariant_NullType_Double> completedAt = this->getFieldValue(fieldCompletedAt);
65
+ static const auto fieldError = clazz->getField<JVariant_NullType_DownloadError>("error");
66
+ jni::local_ref<JVariant_NullType_DownloadError> error = this->getFieldValue(fieldError);
67
+ static const auto fieldRetryCount = clazz->getField<double>("retryCount");
68
+ double retryCount = this->getFieldValue(fieldRetryCount);
69
+ return DownloadTask(
70
+ downloadId->toStdString(),
71
+ trackId->toStdString(),
72
+ playlistId != nullptr ? std::make_optional(playlistId->toCpp()) : std::nullopt,
73
+ state->toCpp(),
74
+ progress->toCpp(),
75
+ createdAt,
76
+ startedAt != nullptr ? std::make_optional(startedAt->toCpp()) : std::nullopt,
77
+ completedAt != nullptr ? std::make_optional(completedAt->toCpp()) : std::nullopt,
78
+ error != nullptr ? std::make_optional(error->toCpp()) : std::nullopt,
79
+ retryCount
80
+ );
81
+ }
82
+
83
+ public:
84
+ /**
85
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
86
+ */
87
+ [[maybe_unused]]
88
+ static jni::local_ref<JDownloadTask::javaobject> fromCpp(const DownloadTask& value) {
89
+ using JSignature = JDownloadTask(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<JDownloadState>, jni::alias_ref<JDownloadProgress>, double, jni::alias_ref<JVariant_NullType_Double>, jni::alias_ref<JVariant_NullType_Double>, jni::alias_ref<JVariant_NullType_DownloadError>, double);
90
+ static const auto clazz = javaClassStatic();
91
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
92
+ return create(
93
+ clazz,
94
+ jni::make_jstring(value.downloadId),
95
+ jni::make_jstring(value.trackId),
96
+ value.playlistId.has_value() ? JVariant_NullType_String::fromCpp(value.playlistId.value()) : nullptr,
97
+ JDownloadState::fromCpp(value.state),
98
+ JDownloadProgress::fromCpp(value.progress),
99
+ value.createdAt,
100
+ value.startedAt.has_value() ? JVariant_NullType_Double::fromCpp(value.startedAt.value()) : nullptr,
101
+ value.completedAt.has_value() ? JVariant_NullType_Double::fromCpp(value.completedAt.value()) : nullptr,
102
+ value.error.has_value() ? JVariant_NullType_DownloadError::fromCpp(value.error.value()) : nullptr,
103
+ value.retryCount
104
+ );
105
+ }
106
+ };
107
+
108
+ } // namespace margelo::nitro::nitroplayer