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
+ /// DownloadProgress.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ // Forward declaration of `DownloadState` to properly resolve imports.
27
+ namespace margelo::nitro::nitroplayer { enum class DownloadState; }
28
+
29
+ #include <string>
30
+ #include "DownloadState.hpp"
31
+
32
+ namespace margelo::nitro::nitroplayer {
33
+
34
+ /**
35
+ * A struct which can be represented as a JavaScript object (DownloadProgress).
36
+ */
37
+ struct DownloadProgress {
38
+ public:
39
+ std::string trackId SWIFT_PRIVATE;
40
+ std::string downloadId SWIFT_PRIVATE;
41
+ double bytesDownloaded SWIFT_PRIVATE;
42
+ double totalBytes SWIFT_PRIVATE;
43
+ double progress SWIFT_PRIVATE;
44
+ DownloadState state SWIFT_PRIVATE;
45
+
46
+ public:
47
+ DownloadProgress() = default;
48
+ explicit DownloadProgress(std::string trackId, std::string downloadId, double bytesDownloaded, double totalBytes, double progress, DownloadState state): trackId(trackId), downloadId(downloadId), bytesDownloaded(bytesDownloaded), totalBytes(totalBytes), progress(progress), state(state) {}
49
+ };
50
+
51
+ } // namespace margelo::nitro::nitroplayer
52
+
53
+ namespace margelo::nitro {
54
+
55
+ // C++ DownloadProgress <> JS DownloadProgress (object)
56
+ template <>
57
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadProgress> final {
58
+ static inline margelo::nitro::nitroplayer::DownloadProgress fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
59
+ jsi::Object obj = arg.asObject(runtime);
60
+ return margelo::nitro::nitroplayer::DownloadProgress(
61
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trackId")),
62
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "downloadId")),
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "bytesDownloaded")),
64
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytes")),
65
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "progress")),
66
+ JSIConverter<margelo::nitro::nitroplayer::DownloadState>::fromJSI(runtime, obj.getProperty(runtime, "state"))
67
+ );
68
+ }
69
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadProgress& arg) {
70
+ jsi::Object obj(runtime);
71
+ obj.setProperty(runtime, "trackId", JSIConverter<std::string>::toJSI(runtime, arg.trackId));
72
+ obj.setProperty(runtime, "downloadId", JSIConverter<std::string>::toJSI(runtime, arg.downloadId));
73
+ obj.setProperty(runtime, "bytesDownloaded", JSIConverter<double>::toJSI(runtime, arg.bytesDownloaded));
74
+ obj.setProperty(runtime, "totalBytes", JSIConverter<double>::toJSI(runtime, arg.totalBytes));
75
+ obj.setProperty(runtime, "progress", JSIConverter<double>::toJSI(runtime, arg.progress));
76
+ obj.setProperty(runtime, "state", JSIConverter<margelo::nitro::nitroplayer::DownloadState>::toJSI(runtime, arg.state));
77
+ return obj;
78
+ }
79
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
80
+ if (!value.isObject()) {
81
+ return false;
82
+ }
83
+ jsi::Object obj = value.getObject(runtime);
84
+ if (!nitro::isPlainObject(runtime, obj)) {
85
+ return false;
86
+ }
87
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trackId"))) return false;
88
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "downloadId"))) return false;
89
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "bytesDownloaded"))) return false;
90
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytes"))) return false;
91
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "progress"))) return false;
92
+ if (!JSIConverter<margelo::nitro::nitroplayer::DownloadState>::canConvert(runtime, obj.getProperty(runtime, "state"))) return false;
93
+ return true;
94
+ }
95
+ };
96
+
97
+ } // namespace margelo::nitro
@@ -0,0 +1,99 @@
1
+ ///
2
+ /// DownloadQueueStatus.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+
29
+
30
+ namespace margelo::nitro::nitroplayer {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (DownloadQueueStatus).
34
+ */
35
+ struct DownloadQueueStatus {
36
+ public:
37
+ double pendingCount SWIFT_PRIVATE;
38
+ double activeCount SWIFT_PRIVATE;
39
+ double completedCount SWIFT_PRIVATE;
40
+ double failedCount SWIFT_PRIVATE;
41
+ double totalBytesToDownload SWIFT_PRIVATE;
42
+ double totalBytesDownloaded SWIFT_PRIVATE;
43
+ double overallProgress SWIFT_PRIVATE;
44
+
45
+ public:
46
+ DownloadQueueStatus() = default;
47
+ explicit DownloadQueueStatus(double pendingCount, double activeCount, double completedCount, double failedCount, double totalBytesToDownload, double totalBytesDownloaded, double overallProgress): pendingCount(pendingCount), activeCount(activeCount), completedCount(completedCount), failedCount(failedCount), totalBytesToDownload(totalBytesToDownload), totalBytesDownloaded(totalBytesDownloaded), overallProgress(overallProgress) {}
48
+ };
49
+
50
+ } // namespace margelo::nitro::nitroplayer
51
+
52
+ namespace margelo::nitro {
53
+
54
+ // C++ DownloadQueueStatus <> JS DownloadQueueStatus (object)
55
+ template <>
56
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadQueueStatus> final {
57
+ static inline margelo::nitro::nitroplayer::DownloadQueueStatus fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
58
+ jsi::Object obj = arg.asObject(runtime);
59
+ return margelo::nitro::nitroplayer::DownloadQueueStatus(
60
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pendingCount")),
61
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "activeCount")),
62
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "completedCount")),
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "failedCount")),
64
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytesToDownload")),
65
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytesDownloaded")),
66
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "overallProgress"))
67
+ );
68
+ }
69
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadQueueStatus& arg) {
70
+ jsi::Object obj(runtime);
71
+ obj.setProperty(runtime, "pendingCount", JSIConverter<double>::toJSI(runtime, arg.pendingCount));
72
+ obj.setProperty(runtime, "activeCount", JSIConverter<double>::toJSI(runtime, arg.activeCount));
73
+ obj.setProperty(runtime, "completedCount", JSIConverter<double>::toJSI(runtime, arg.completedCount));
74
+ obj.setProperty(runtime, "failedCount", JSIConverter<double>::toJSI(runtime, arg.failedCount));
75
+ obj.setProperty(runtime, "totalBytesToDownload", JSIConverter<double>::toJSI(runtime, arg.totalBytesToDownload));
76
+ obj.setProperty(runtime, "totalBytesDownloaded", JSIConverter<double>::toJSI(runtime, arg.totalBytesDownloaded));
77
+ obj.setProperty(runtime, "overallProgress", JSIConverter<double>::toJSI(runtime, arg.overallProgress));
78
+ return obj;
79
+ }
80
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
81
+ if (!value.isObject()) {
82
+ return false;
83
+ }
84
+ jsi::Object obj = value.getObject(runtime);
85
+ if (!nitro::isPlainObject(runtime, obj)) {
86
+ return false;
87
+ }
88
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pendingCount"))) return false;
89
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "activeCount"))) return false;
90
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "completedCount"))) return false;
91
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "failedCount"))) return false;
92
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytesToDownload"))) return false;
93
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytesDownloaded"))) return false;
94
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "overallProgress"))) return false;
95
+ return true;
96
+ }
97
+ };
98
+
99
+ } // namespace margelo::nitro
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// DownloadState.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitroplayer {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (DownloadState).
30
+ */
31
+ enum class DownloadState {
32
+ PENDING SWIFT_NAME(pending) = 0,
33
+ DOWNLOADING SWIFT_NAME(downloading) = 1,
34
+ PAUSED SWIFT_NAME(paused) = 2,
35
+ COMPLETED SWIFT_NAME(completed) = 3,
36
+ FAILED SWIFT_NAME(failed) = 4,
37
+ CANCELLED SWIFT_NAME(cancelled) = 5,
38
+ } CLOSED_ENUM;
39
+
40
+ } // namespace margelo::nitro::nitroplayer
41
+
42
+ namespace margelo::nitro {
43
+
44
+ // C++ DownloadState <> JS DownloadState (union)
45
+ template <>
46
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadState> final {
47
+ static inline margelo::nitro::nitroplayer::DownloadState fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
48
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
49
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
50
+ case hashString("pending"): return margelo::nitro::nitroplayer::DownloadState::PENDING;
51
+ case hashString("downloading"): return margelo::nitro::nitroplayer::DownloadState::DOWNLOADING;
52
+ case hashString("paused"): return margelo::nitro::nitroplayer::DownloadState::PAUSED;
53
+ case hashString("completed"): return margelo::nitro::nitroplayer::DownloadState::COMPLETED;
54
+ case hashString("failed"): return margelo::nitro::nitroplayer::DownloadState::FAILED;
55
+ case hashString("cancelled"): return margelo::nitro::nitroplayer::DownloadState::CANCELLED;
56
+ default: [[unlikely]]
57
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum DownloadState - invalid value!");
58
+ }
59
+ }
60
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitroplayer::DownloadState arg) {
61
+ switch (arg) {
62
+ case margelo::nitro::nitroplayer::DownloadState::PENDING: return JSIConverter<std::string>::toJSI(runtime, "pending");
63
+ case margelo::nitro::nitroplayer::DownloadState::DOWNLOADING: return JSIConverter<std::string>::toJSI(runtime, "downloading");
64
+ case margelo::nitro::nitroplayer::DownloadState::PAUSED: return JSIConverter<std::string>::toJSI(runtime, "paused");
65
+ case margelo::nitro::nitroplayer::DownloadState::COMPLETED: return JSIConverter<std::string>::toJSI(runtime, "completed");
66
+ case margelo::nitro::nitroplayer::DownloadState::FAILED: return JSIConverter<std::string>::toJSI(runtime, "failed");
67
+ case margelo::nitro::nitroplayer::DownloadState::CANCELLED: return JSIConverter<std::string>::toJSI(runtime, "cancelled");
68
+ default: [[unlikely]]
69
+ throw std::invalid_argument("Cannot convert DownloadState to JS - invalid value: "
70
+ + std::to_string(static_cast<int>(arg)) + "!");
71
+ }
72
+ }
73
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
74
+ if (!value.isString()) {
75
+ return false;
76
+ }
77
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
78
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
79
+ case hashString("pending"):
80
+ case hashString("downloading"):
81
+ case hashString("paused"):
82
+ case hashString("completed"):
83
+ case hashString("failed"):
84
+ case hashString("cancelled"):
85
+ return true;
86
+ default:
87
+ return false;
88
+ }
89
+ }
90
+ };
91
+
92
+ } // namespace margelo::nitro
@@ -0,0 +1,91 @@
1
+ ///
2
+ /// DownloadStorageInfo.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+
29
+
30
+ namespace margelo::nitro::nitroplayer {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (DownloadStorageInfo).
34
+ */
35
+ struct DownloadStorageInfo {
36
+ public:
37
+ double totalDownloadedSize SWIFT_PRIVATE;
38
+ double trackCount SWIFT_PRIVATE;
39
+ double playlistCount SWIFT_PRIVATE;
40
+ double availableSpace SWIFT_PRIVATE;
41
+ double totalSpace SWIFT_PRIVATE;
42
+
43
+ public:
44
+ DownloadStorageInfo() = default;
45
+ explicit DownloadStorageInfo(double totalDownloadedSize, double trackCount, double playlistCount, double availableSpace, double totalSpace): totalDownloadedSize(totalDownloadedSize), trackCount(trackCount), playlistCount(playlistCount), availableSpace(availableSpace), totalSpace(totalSpace) {}
46
+ };
47
+
48
+ } // namespace margelo::nitro::nitroplayer
49
+
50
+ namespace margelo::nitro {
51
+
52
+ // C++ DownloadStorageInfo <> JS DownloadStorageInfo (object)
53
+ template <>
54
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadStorageInfo> final {
55
+ static inline margelo::nitro::nitroplayer::DownloadStorageInfo fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
56
+ jsi::Object obj = arg.asObject(runtime);
57
+ return margelo::nitro::nitroplayer::DownloadStorageInfo(
58
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalDownloadedSize")),
59
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "trackCount")),
60
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "playlistCount")),
61
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "availableSpace")),
62
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalSpace"))
63
+ );
64
+ }
65
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadStorageInfo& arg) {
66
+ jsi::Object obj(runtime);
67
+ obj.setProperty(runtime, "totalDownloadedSize", JSIConverter<double>::toJSI(runtime, arg.totalDownloadedSize));
68
+ obj.setProperty(runtime, "trackCount", JSIConverter<double>::toJSI(runtime, arg.trackCount));
69
+ obj.setProperty(runtime, "playlistCount", JSIConverter<double>::toJSI(runtime, arg.playlistCount));
70
+ obj.setProperty(runtime, "availableSpace", JSIConverter<double>::toJSI(runtime, arg.availableSpace));
71
+ obj.setProperty(runtime, "totalSpace", JSIConverter<double>::toJSI(runtime, arg.totalSpace));
72
+ return obj;
73
+ }
74
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
75
+ if (!value.isObject()) {
76
+ return false;
77
+ }
78
+ jsi::Object obj = value.getObject(runtime);
79
+ if (!nitro::isPlainObject(runtime, obj)) {
80
+ return false;
81
+ }
82
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalDownloadedSize"))) return false;
83
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "trackCount"))) return false;
84
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "playlistCount"))) return false;
85
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "availableSpace"))) return false;
86
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalSpace"))) return false;
87
+ return true;
88
+ }
89
+ };
90
+
91
+ } // namespace margelo::nitro
@@ -0,0 +1,122 @@
1
+ ///
2
+ /// DownloadTask.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ // Forward declaration of `DownloadState` to properly resolve imports.
27
+ namespace margelo::nitro::nitroplayer { enum class DownloadState; }
28
+ // Forward declaration of `DownloadProgress` to properly resolve imports.
29
+ namespace margelo::nitro::nitroplayer { struct DownloadProgress; }
30
+ // Forward declaration of `DownloadError` to properly resolve imports.
31
+ namespace margelo::nitro::nitroplayer { struct DownloadError; }
32
+
33
+ #include <string>
34
+ #include <NitroModules/Null.hpp>
35
+ #include <variant>
36
+ #include <optional>
37
+ #include "DownloadState.hpp"
38
+ #include "DownloadProgress.hpp"
39
+ #include "DownloadError.hpp"
40
+
41
+ namespace margelo::nitro::nitroplayer {
42
+
43
+ /**
44
+ * A struct which can be represented as a JavaScript object (DownloadTask).
45
+ */
46
+ struct DownloadTask {
47
+ public:
48
+ std::string downloadId SWIFT_PRIVATE;
49
+ std::string trackId SWIFT_PRIVATE;
50
+ std::optional<std::variant<nitro::NullType, std::string>> playlistId SWIFT_PRIVATE;
51
+ DownloadState state SWIFT_PRIVATE;
52
+ DownloadProgress progress SWIFT_PRIVATE;
53
+ double createdAt SWIFT_PRIVATE;
54
+ std::optional<std::variant<nitro::NullType, double>> startedAt SWIFT_PRIVATE;
55
+ std::optional<std::variant<nitro::NullType, double>> completedAt SWIFT_PRIVATE;
56
+ std::optional<std::variant<nitro::NullType, DownloadError>> error SWIFT_PRIVATE;
57
+ double retryCount SWIFT_PRIVATE;
58
+
59
+ public:
60
+ DownloadTask() = default;
61
+ explicit DownloadTask(std::string downloadId, std::string trackId, std::optional<std::variant<nitro::NullType, std::string>> playlistId, DownloadState state, DownloadProgress progress, double createdAt, std::optional<std::variant<nitro::NullType, double>> startedAt, std::optional<std::variant<nitro::NullType, double>> completedAt, std::optional<std::variant<nitro::NullType, DownloadError>> error, double retryCount): downloadId(downloadId), trackId(trackId), playlistId(playlistId), state(state), progress(progress), createdAt(createdAt), startedAt(startedAt), completedAt(completedAt), error(error), retryCount(retryCount) {}
62
+ };
63
+
64
+ } // namespace margelo::nitro::nitroplayer
65
+
66
+ namespace margelo::nitro {
67
+
68
+ // C++ DownloadTask <> JS DownloadTask (object)
69
+ template <>
70
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadTask> final {
71
+ static inline margelo::nitro::nitroplayer::DownloadTask fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
72
+ jsi::Object obj = arg.asObject(runtime);
73
+ return margelo::nitro::nitroplayer::DownloadTask(
74
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "downloadId")),
75
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trackId")),
76
+ JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "playlistId")),
77
+ JSIConverter<margelo::nitro::nitroplayer::DownloadState>::fromJSI(runtime, obj.getProperty(runtime, "state")),
78
+ JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::fromJSI(runtime, obj.getProperty(runtime, "progress")),
79
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "createdAt")),
80
+ JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, "startedAt")),
81
+ JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, "completedAt")),
82
+ JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::fromJSI(runtime, obj.getProperty(runtime, "error")),
83
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "retryCount"))
84
+ );
85
+ }
86
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadTask& arg) {
87
+ jsi::Object obj(runtime);
88
+ obj.setProperty(runtime, "downloadId", JSIConverter<std::string>::toJSI(runtime, arg.downloadId));
89
+ obj.setProperty(runtime, "trackId", JSIConverter<std::string>::toJSI(runtime, arg.trackId));
90
+ obj.setProperty(runtime, "playlistId", JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.playlistId));
91
+ obj.setProperty(runtime, "state", JSIConverter<margelo::nitro::nitroplayer::DownloadState>::toJSI(runtime, arg.state));
92
+ obj.setProperty(runtime, "progress", JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::toJSI(runtime, arg.progress));
93
+ obj.setProperty(runtime, "createdAt", JSIConverter<double>::toJSI(runtime, arg.createdAt));
94
+ obj.setProperty(runtime, "startedAt", JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.startedAt));
95
+ obj.setProperty(runtime, "completedAt", JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.completedAt));
96
+ obj.setProperty(runtime, "error", JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::toJSI(runtime, arg.error));
97
+ obj.setProperty(runtime, "retryCount", JSIConverter<double>::toJSI(runtime, arg.retryCount));
98
+ return obj;
99
+ }
100
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
101
+ if (!value.isObject()) {
102
+ return false;
103
+ }
104
+ jsi::Object obj = value.getObject(runtime);
105
+ if (!nitro::isPlainObject(runtime, obj)) {
106
+ return false;
107
+ }
108
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "downloadId"))) return false;
109
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trackId"))) return false;
110
+ if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, "playlistId"))) return false;
111
+ if (!JSIConverter<margelo::nitro::nitroplayer::DownloadState>::canConvert(runtime, obj.getProperty(runtime, "state"))) return false;
112
+ if (!JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::canConvert(runtime, obj.getProperty(runtime, "progress"))) return false;
113
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "createdAt"))) return false;
114
+ if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, "startedAt"))) return false;
115
+ if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, "completedAt"))) return false;
116
+ if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::canConvert(runtime, obj.getProperty(runtime, "error"))) return false;
117
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "retryCount"))) return false;
118
+ return true;
119
+ }
120
+ };
121
+
122
+ } // namespace margelo::nitro
@@ -0,0 +1,101 @@
1
+ ///
2
+ /// DownloadedPlaylist.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ // Forward declaration of `Playlist` to properly resolve imports.
27
+ namespace margelo::nitro::nitroplayer { struct Playlist; }
28
+ // Forward declaration of `DownloadedTrack` to properly resolve imports.
29
+ namespace margelo::nitro::nitroplayer { struct DownloadedTrack; }
30
+
31
+ #include <string>
32
+ #include "Playlist.hpp"
33
+ #include "DownloadedTrack.hpp"
34
+ #include <vector>
35
+
36
+ namespace margelo::nitro::nitroplayer {
37
+
38
+ /**
39
+ * A struct which can be represented as a JavaScript object (DownloadedPlaylist).
40
+ */
41
+ struct DownloadedPlaylist {
42
+ public:
43
+ std::string playlistId SWIFT_PRIVATE;
44
+ Playlist originalPlaylist SWIFT_PRIVATE;
45
+ std::vector<DownloadedTrack> downloadedTracks SWIFT_PRIVATE;
46
+ double totalSize SWIFT_PRIVATE;
47
+ double downloadedAt SWIFT_PRIVATE;
48
+ bool isComplete SWIFT_PRIVATE;
49
+
50
+ public:
51
+ DownloadedPlaylist() = default;
52
+ explicit DownloadedPlaylist(std::string playlistId, Playlist originalPlaylist, std::vector<DownloadedTrack> downloadedTracks, double totalSize, double downloadedAt, bool isComplete): playlistId(playlistId), originalPlaylist(originalPlaylist), downloadedTracks(downloadedTracks), totalSize(totalSize), downloadedAt(downloadedAt), isComplete(isComplete) {}
53
+ };
54
+
55
+ } // namespace margelo::nitro::nitroplayer
56
+
57
+ namespace margelo::nitro {
58
+
59
+ // C++ DownloadedPlaylist <> JS DownloadedPlaylist (object)
60
+ template <>
61
+ struct JSIConverter<margelo::nitro::nitroplayer::DownloadedPlaylist> final {
62
+ static inline margelo::nitro::nitroplayer::DownloadedPlaylist fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
63
+ jsi::Object obj = arg.asObject(runtime);
64
+ return margelo::nitro::nitroplayer::DownloadedPlaylist(
65
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "playlistId")),
66
+ JSIConverter<margelo::nitro::nitroplayer::Playlist>::fromJSI(runtime, obj.getProperty(runtime, "originalPlaylist")),
67
+ JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::fromJSI(runtime, obj.getProperty(runtime, "downloadedTracks")),
68
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalSize")),
69
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "downloadedAt")),
70
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isComplete"))
71
+ );
72
+ }
73
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadedPlaylist& arg) {
74
+ jsi::Object obj(runtime);
75
+ obj.setProperty(runtime, "playlistId", JSIConverter<std::string>::toJSI(runtime, arg.playlistId));
76
+ obj.setProperty(runtime, "originalPlaylist", JSIConverter<margelo::nitro::nitroplayer::Playlist>::toJSI(runtime, arg.originalPlaylist));
77
+ obj.setProperty(runtime, "downloadedTracks", JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::toJSI(runtime, arg.downloadedTracks));
78
+ obj.setProperty(runtime, "totalSize", JSIConverter<double>::toJSI(runtime, arg.totalSize));
79
+ obj.setProperty(runtime, "downloadedAt", JSIConverter<double>::toJSI(runtime, arg.downloadedAt));
80
+ obj.setProperty(runtime, "isComplete", JSIConverter<bool>::toJSI(runtime, arg.isComplete));
81
+ return obj;
82
+ }
83
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
84
+ if (!value.isObject()) {
85
+ return false;
86
+ }
87
+ jsi::Object obj = value.getObject(runtime);
88
+ if (!nitro::isPlainObject(runtime, obj)) {
89
+ return false;
90
+ }
91
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "playlistId"))) return false;
92
+ if (!JSIConverter<margelo::nitro::nitroplayer::Playlist>::canConvert(runtime, obj.getProperty(runtime, "originalPlaylist"))) return false;
93
+ if (!JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::canConvert(runtime, obj.getProperty(runtime, "downloadedTracks"))) return false;
94
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalSize"))) return false;
95
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "downloadedAt"))) return false;
96
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isComplete"))) return false;
97
+ return true;
98
+ }
99
+ };
100
+
101
+ } // namespace margelo::nitro