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
@@ -8,42 +8,104 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
+ // Forward declaration of `CurrentPlayingType` to properly resolve imports.
12
+ namespace margelo::nitro::nitroplayer { enum class CurrentPlayingType; }
13
+ // Forward declaration of `DownloadConfig` to properly resolve imports.
14
+ namespace margelo::nitro::nitroplayer { struct DownloadConfig; }
15
+ // Forward declaration of `DownloadErrorReason` to properly resolve imports.
16
+ namespace margelo::nitro::nitroplayer { enum class DownloadErrorReason; }
17
+ // Forward declaration of `DownloadError` to properly resolve imports.
18
+ namespace margelo::nitro::nitroplayer { struct DownloadError; }
19
+ // Forward declaration of `DownloadProgress` to properly resolve imports.
20
+ namespace margelo::nitro::nitroplayer { struct DownloadProgress; }
21
+ // Forward declaration of `DownloadQueueStatus` to properly resolve imports.
22
+ namespace margelo::nitro::nitroplayer { struct DownloadQueueStatus; }
23
+ // Forward declaration of `DownloadState` to properly resolve imports.
24
+ namespace margelo::nitro::nitroplayer { enum class DownloadState; }
25
+ // Forward declaration of `DownloadStorageInfo` to properly resolve imports.
26
+ namespace margelo::nitro::nitroplayer { struct DownloadStorageInfo; }
27
+ // Forward declaration of `DownloadTask` to properly resolve imports.
28
+ namespace margelo::nitro::nitroplayer { struct DownloadTask; }
29
+ // Forward declaration of `DownloadedPlaylist` to properly resolve imports.
30
+ namespace margelo::nitro::nitroplayer { struct DownloadedPlaylist; }
31
+ // Forward declaration of `DownloadedTrack` to properly resolve imports.
32
+ namespace margelo::nitro::nitroplayer { struct DownloadedTrack; }
33
+ // Forward declaration of `EqualizerBand` to properly resolve imports.
34
+ namespace margelo::nitro::nitroplayer { struct EqualizerBand; }
35
+ // Forward declaration of `EqualizerPreset` to properly resolve imports.
36
+ namespace margelo::nitro::nitroplayer { struct EqualizerPreset; }
37
+ // Forward declaration of `EqualizerState` to properly resolve imports.
38
+ namespace margelo::nitro::nitroplayer { struct EqualizerState; }
39
+ // Forward declaration of `GainRange` to properly resolve imports.
40
+ namespace margelo::nitro::nitroplayer { struct GainRange; }
11
41
  // Forward declaration of `HybridAudioRoutePickerSpec` to properly resolve imports.
12
42
  namespace margelo::nitro::nitroplayer { class HybridAudioRoutePickerSpec; }
43
+ // Forward declaration of `HybridDownloadManagerSpec` to properly resolve imports.
44
+ namespace margelo::nitro::nitroplayer { class HybridDownloadManagerSpec; }
45
+ // Forward declaration of `HybridEqualizerSpec` to properly resolve imports.
46
+ namespace margelo::nitro::nitroplayer { class HybridEqualizerSpec; }
13
47
  // Forward declaration of `HybridPlayerQueueSpec` to properly resolve imports.
14
48
  namespace margelo::nitro::nitroplayer { class HybridPlayerQueueSpec; }
15
49
  // Forward declaration of `HybridTrackPlayerSpec` to properly resolve imports.
16
50
  namespace margelo::nitro::nitroplayer { class HybridTrackPlayerSpec; }
51
+ // Forward declaration of `PlaybackSource` to properly resolve imports.
52
+ namespace margelo::nitro::nitroplayer { enum class PlaybackSource; }
17
53
  // Forward declaration of `PlayerConfig` to properly resolve imports.
18
54
  namespace margelo::nitro::nitroplayer { struct PlayerConfig; }
19
55
  // Forward declaration of `PlayerState` to properly resolve imports.
20
56
  namespace margelo::nitro::nitroplayer { struct PlayerState; }
21
57
  // Forward declaration of `Playlist` to properly resolve imports.
22
58
  namespace margelo::nitro::nitroplayer { struct Playlist; }
59
+ // Forward declaration of `PresetType` to properly resolve imports.
60
+ namespace margelo::nitro::nitroplayer { enum class PresetType; }
23
61
  // Forward declaration of `QueueOperation` to properly resolve imports.
24
62
  namespace margelo::nitro::nitroplayer { enum class QueueOperation; }
25
63
  // Forward declaration of `Reason` to properly resolve imports.
26
64
  namespace margelo::nitro::nitroplayer { enum class Reason; }
27
65
  // Forward declaration of `RepeatMode` to properly resolve imports.
28
66
  namespace margelo::nitro::nitroplayer { enum class RepeatMode; }
67
+ // Forward declaration of `StorageLocation` to properly resolve imports.
68
+ namespace margelo::nitro::nitroplayer { enum class StorageLocation; }
29
69
  // Forward declaration of `TrackItem` to properly resolve imports.
30
70
  namespace margelo::nitro::nitroplayer { struct TrackItem; }
31
71
  // Forward declaration of `TrackPlayerState` to properly resolve imports.
32
72
  namespace margelo::nitro::nitroplayer { enum class TrackPlayerState; }
33
73
 
34
74
  // Include C++ defined types
75
+ #include "CurrentPlayingType.hpp"
76
+ #include "DownloadConfig.hpp"
77
+ #include "DownloadError.hpp"
78
+ #include "DownloadErrorReason.hpp"
79
+ #include "DownloadProgress.hpp"
80
+ #include "DownloadQueueStatus.hpp"
81
+ #include "DownloadState.hpp"
82
+ #include "DownloadStorageInfo.hpp"
83
+ #include "DownloadTask.hpp"
84
+ #include "DownloadedPlaylist.hpp"
85
+ #include "DownloadedTrack.hpp"
86
+ #include "EqualizerBand.hpp"
87
+ #include "EqualizerPreset.hpp"
88
+ #include "EqualizerState.hpp"
89
+ #include "GainRange.hpp"
35
90
  #include "HybridAudioRoutePickerSpec.hpp"
91
+ #include "HybridDownloadManagerSpec.hpp"
92
+ #include "HybridEqualizerSpec.hpp"
36
93
  #include "HybridPlayerQueueSpec.hpp"
37
94
  #include "HybridTrackPlayerSpec.hpp"
95
+ #include "PlaybackSource.hpp"
38
96
  #include "PlayerConfig.hpp"
39
97
  #include "PlayerState.hpp"
40
98
  #include "Playlist.hpp"
99
+ #include "PresetType.hpp"
41
100
  #include "QueueOperation.hpp"
42
101
  #include "Reason.hpp"
43
102
  #include "RepeatMode.hpp"
103
+ #include "StorageLocation.hpp"
44
104
  #include "TrackItem.hpp"
45
105
  #include "TrackPlayerState.hpp"
106
+ #include <NitroModules/AnyMap.hpp>
46
107
  #include <NitroModules/Null.hpp>
108
+ #include <NitroModules/Promise.hpp>
47
109
  #include <NitroModules/Result.hpp>
48
110
  #include <exception>
49
111
  #include <functional>
@@ -65,6 +127,10 @@ namespace margelo::nitro::nitroplayer { enum class TrackPlayerState; }
65
127
  // Forward declarations of Swift defined types
66
128
  // Forward declaration of `HybridAudioRoutePickerSpec_cxx` to properly resolve imports.
67
129
  namespace NitroPlayer { class HybridAudioRoutePickerSpec_cxx; }
130
+ // Forward declaration of `HybridDownloadManagerSpec_cxx` to properly resolve imports.
131
+ namespace NitroPlayer { class HybridDownloadManagerSpec_cxx; }
132
+ // Forward declaration of `HybridEqualizerSpec_cxx` to properly resolve imports.
133
+ namespace NitroPlayer { class HybridEqualizerSpec_cxx; }
68
134
  // Forward declaration of `HybridPlayerQueueSpec_cxx` to properly resolve imports.
69
135
  namespace NitroPlayer { class HybridPlayerQueueSpec_cxx; }
70
136
  // Forward declaration of `HybridTrackPlayerSpec_cxx` to properly resolve imports.
@@ -13,6 +13,8 @@
13
13
  #include "HybridPlayerQueueSpecSwift.hpp"
14
14
  #include "HybridTrackPlayerSpecSwift.hpp"
15
15
  #include "HybridAudioRoutePickerSpecSwift.hpp"
16
+ #include "HybridDownloadManagerSpecSwift.hpp"
17
+ #include "HybridEqualizerSpecSwift.hpp"
16
18
 
17
19
  @interface NitroPlayerAutolinking : NSObject
18
20
  @end
@@ -44,6 +46,20 @@
44
46
  return hybridObject;
45
47
  }
46
48
  );
49
+ HybridObjectRegistry::registerHybridObjectConstructor(
50
+ "DownloadManager",
51
+ []() -> std::shared_ptr<HybridObject> {
52
+ std::shared_ptr<HybridDownloadManagerSpec> hybridObject = NitroPlayer::NitroPlayerAutolinking::createDownloadManager();
53
+ return hybridObject;
54
+ }
55
+ );
56
+ HybridObjectRegistry::registerHybridObjectConstructor(
57
+ "Equalizer",
58
+ []() -> std::shared_ptr<HybridObject> {
59
+ std::shared_ptr<HybridEqualizerSpec> hybridObject = NitroPlayer::NitroPlayerAutolinking::createEqualizer();
60
+ return hybridObject;
61
+ }
62
+ );
47
63
  }
48
64
 
49
65
  @end
@@ -52,4 +52,34 @@ public final class NitroPlayerAutolinking {
52
52
  return __cxxWrapped.getCxxPart()
53
53
  }()
54
54
  }
55
+
56
+ /**
57
+ * Creates an instance of a Swift class that implements `HybridDownloadManagerSpec`,
58
+ * and wraps it in a Swift class that can directly interop with C++ (`HybridDownloadManagerSpec_cxx`)
59
+ *
60
+ * This is generated by Nitrogen and will initialize the class specified
61
+ * in the `"autolinking"` property of `nitro.json` (in this case, `HybridDownloadManager`).
62
+ */
63
+ public static func createDownloadManager() -> bridge.std__shared_ptr_HybridDownloadManagerSpec_ {
64
+ let hybridObject = HybridDownloadManager()
65
+ return { () -> bridge.std__shared_ptr_HybridDownloadManagerSpec_ in
66
+ let __cxxWrapped = hybridObject.getCxxWrapper()
67
+ return __cxxWrapped.getCxxPart()
68
+ }()
69
+ }
70
+
71
+ /**
72
+ * Creates an instance of a Swift class that implements `HybridEqualizerSpec`,
73
+ * and wraps it in a Swift class that can directly interop with C++ (`HybridEqualizerSpec_cxx`)
74
+ *
75
+ * This is generated by Nitrogen and will initialize the class specified
76
+ * in the `"autolinking"` property of `nitro.json` (in this case, `HybridEqualizer`).
77
+ */
78
+ public static func createEqualizer() -> bridge.std__shared_ptr_HybridEqualizerSpec_ {
79
+ let hybridObject = HybridEqualizer()
80
+ return { () -> bridge.std__shared_ptr_HybridEqualizerSpec_ in
81
+ let __cxxWrapped = hybridObject.getCxxWrapper()
82
+ return __cxxWrapped.getCxxPart()
83
+ }()
84
+ }
55
85
  }
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridDownloadManagerSpecSwift.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridDownloadManagerSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::nitroplayer {
11
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,386 @@
1
+ ///
2
+ /// HybridDownloadManagerSpecSwift.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 "HybridDownloadManagerSpec.hpp"
11
+
12
+ // Forward declaration of `HybridDownloadManagerSpec_cxx` to properly resolve imports.
13
+ namespace NitroPlayer { class HybridDownloadManagerSpec_cxx; }
14
+
15
+ // Forward declaration of `DownloadConfig` to properly resolve imports.
16
+ namespace margelo::nitro::nitroplayer { struct DownloadConfig; }
17
+ // Forward declaration of `StorageLocation` to properly resolve imports.
18
+ namespace margelo::nitro::nitroplayer { enum class StorageLocation; }
19
+ // Forward declaration of `TrackItem` to properly resolve imports.
20
+ namespace margelo::nitro::nitroplayer { struct TrackItem; }
21
+ // Forward declaration of `DownloadTask` to properly resolve imports.
22
+ namespace margelo::nitro::nitroplayer { struct DownloadTask; }
23
+ // Forward declaration of `DownloadState` to properly resolve imports.
24
+ namespace margelo::nitro::nitroplayer { enum class DownloadState; }
25
+ // Forward declaration of `DownloadProgress` to properly resolve imports.
26
+ namespace margelo::nitro::nitroplayer { struct DownloadProgress; }
27
+ // Forward declaration of `DownloadError` to properly resolve imports.
28
+ namespace margelo::nitro::nitroplayer { struct DownloadError; }
29
+ // Forward declaration of `DownloadErrorReason` to properly resolve imports.
30
+ namespace margelo::nitro::nitroplayer { enum class DownloadErrorReason; }
31
+ // Forward declaration of `DownloadQueueStatus` to properly resolve imports.
32
+ namespace margelo::nitro::nitroplayer { struct DownloadQueueStatus; }
33
+ // Forward declaration of `DownloadedTrack` to properly resolve imports.
34
+ namespace margelo::nitro::nitroplayer { struct DownloadedTrack; }
35
+ // Forward declaration of `DownloadedPlaylist` to properly resolve imports.
36
+ namespace margelo::nitro::nitroplayer { struct DownloadedPlaylist; }
37
+ // Forward declaration of `Playlist` to properly resolve imports.
38
+ namespace margelo::nitro::nitroplayer { struct Playlist; }
39
+ // Forward declaration of `DownloadStorageInfo` to properly resolve imports.
40
+ namespace margelo::nitro::nitroplayer { struct DownloadStorageInfo; }
41
+ // Forward declaration of `PlaybackSource` to properly resolve imports.
42
+ namespace margelo::nitro::nitroplayer { enum class PlaybackSource; }
43
+
44
+ #include "DownloadConfig.hpp"
45
+ #include "StorageLocation.hpp"
46
+ #include <optional>
47
+ #include <NitroModules/Null.hpp>
48
+ #include <string>
49
+ #include <variant>
50
+ #include <NitroModules/Promise.hpp>
51
+ #include "TrackItem.hpp"
52
+ #include <NitroModules/AnyMap.hpp>
53
+ #include <vector>
54
+ #include "DownloadTask.hpp"
55
+ #include "DownloadState.hpp"
56
+ #include "DownloadProgress.hpp"
57
+ #include "DownloadError.hpp"
58
+ #include "DownloadErrorReason.hpp"
59
+ #include "DownloadQueueStatus.hpp"
60
+ #include "DownloadedTrack.hpp"
61
+ #include "DownloadedPlaylist.hpp"
62
+ #include "Playlist.hpp"
63
+ #include "DownloadStorageInfo.hpp"
64
+ #include "PlaybackSource.hpp"
65
+ #include <functional>
66
+
67
+ #include "NitroPlayer-Swift-Cxx-Umbrella.hpp"
68
+
69
+ namespace margelo::nitro::nitroplayer {
70
+
71
+ /**
72
+ * The C++ part of HybridDownloadManagerSpec_cxx.swift.
73
+ *
74
+ * HybridDownloadManagerSpecSwift (C++) accesses HybridDownloadManagerSpec_cxx (Swift), and might
75
+ * contain some additional bridging code for C++ <> Swift interop.
76
+ *
77
+ * Since this obviously introduces an overhead, I hope at some point in
78
+ * the future, HybridDownloadManagerSpec_cxx can directly inherit from the C++ class HybridDownloadManagerSpec
79
+ * to simplify the whole structure and memory management.
80
+ */
81
+ class HybridDownloadManagerSpecSwift: public virtual HybridDownloadManagerSpec {
82
+ public:
83
+ // Constructor from a Swift instance
84
+ explicit HybridDownloadManagerSpecSwift(const NitroPlayer::HybridDownloadManagerSpec_cxx& swiftPart):
85
+ HybridObject(HybridDownloadManagerSpec::TAG),
86
+ _swiftPart(swiftPart) { }
87
+
88
+ public:
89
+ // Get the Swift part
90
+ inline NitroPlayer::HybridDownloadManagerSpec_cxx& getSwiftPart() noexcept {
91
+ return _swiftPart;
92
+ }
93
+
94
+ public:
95
+ inline size_t getExternalMemorySize() noexcept override {
96
+ return _swiftPart.getMemorySize();
97
+ }
98
+ void dispose() noexcept override {
99
+ _swiftPart.dispose();
100
+ }
101
+ std::string toString() override {
102
+ return _swiftPart.toString();
103
+ }
104
+
105
+ public:
106
+ // Properties
107
+
108
+
109
+ public:
110
+ // Methods
111
+ inline void configure(const DownloadConfig& config) override {
112
+ auto __result = _swiftPart.configure(std::forward<decltype(config)>(config));
113
+ if (__result.hasError()) [[unlikely]] {
114
+ std::rethrow_exception(__result.error());
115
+ }
116
+ }
117
+ inline DownloadConfig getConfig() override {
118
+ auto __result = _swiftPart.getConfig();
119
+ if (__result.hasError()) [[unlikely]] {
120
+ std::rethrow_exception(__result.error());
121
+ }
122
+ auto __value = std::move(__result.value());
123
+ return __value;
124
+ }
125
+ inline std::shared_ptr<Promise<std::string>> downloadTrack(const TrackItem& track, const std::optional<std::string>& playlistId) override {
126
+ auto __result = _swiftPart.downloadTrack(std::forward<decltype(track)>(track), playlistId);
127
+ if (__result.hasError()) [[unlikely]] {
128
+ std::rethrow_exception(__result.error());
129
+ }
130
+ auto __value = std::move(__result.value());
131
+ return __value;
132
+ }
133
+ inline std::shared_ptr<Promise<std::vector<std::string>>> downloadPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks) override {
134
+ auto __result = _swiftPart.downloadPlaylist(playlistId, tracks);
135
+ if (__result.hasError()) [[unlikely]] {
136
+ std::rethrow_exception(__result.error());
137
+ }
138
+ auto __value = std::move(__result.value());
139
+ return __value;
140
+ }
141
+ inline std::shared_ptr<Promise<void>> pauseDownload(const std::string& downloadId) override {
142
+ auto __result = _swiftPart.pauseDownload(downloadId);
143
+ if (__result.hasError()) [[unlikely]] {
144
+ std::rethrow_exception(__result.error());
145
+ }
146
+ auto __value = std::move(__result.value());
147
+ return __value;
148
+ }
149
+ inline std::shared_ptr<Promise<void>> resumeDownload(const std::string& downloadId) override {
150
+ auto __result = _swiftPart.resumeDownload(downloadId);
151
+ if (__result.hasError()) [[unlikely]] {
152
+ std::rethrow_exception(__result.error());
153
+ }
154
+ auto __value = std::move(__result.value());
155
+ return __value;
156
+ }
157
+ inline std::shared_ptr<Promise<void>> cancelDownload(const std::string& downloadId) override {
158
+ auto __result = _swiftPart.cancelDownload(downloadId);
159
+ if (__result.hasError()) [[unlikely]] {
160
+ std::rethrow_exception(__result.error());
161
+ }
162
+ auto __value = std::move(__result.value());
163
+ return __value;
164
+ }
165
+ inline std::shared_ptr<Promise<void>> retryDownload(const std::string& downloadId) override {
166
+ auto __result = _swiftPart.retryDownload(downloadId);
167
+ if (__result.hasError()) [[unlikely]] {
168
+ std::rethrow_exception(__result.error());
169
+ }
170
+ auto __value = std::move(__result.value());
171
+ return __value;
172
+ }
173
+ inline std::shared_ptr<Promise<void>> pauseAllDownloads() override {
174
+ auto __result = _swiftPart.pauseAllDownloads();
175
+ if (__result.hasError()) [[unlikely]] {
176
+ std::rethrow_exception(__result.error());
177
+ }
178
+ auto __value = std::move(__result.value());
179
+ return __value;
180
+ }
181
+ inline std::shared_ptr<Promise<void>> resumeAllDownloads() override {
182
+ auto __result = _swiftPart.resumeAllDownloads();
183
+ if (__result.hasError()) [[unlikely]] {
184
+ std::rethrow_exception(__result.error());
185
+ }
186
+ auto __value = std::move(__result.value());
187
+ return __value;
188
+ }
189
+ inline std::shared_ptr<Promise<void>> cancelAllDownloads() override {
190
+ auto __result = _swiftPart.cancelAllDownloads();
191
+ if (__result.hasError()) [[unlikely]] {
192
+ std::rethrow_exception(__result.error());
193
+ }
194
+ auto __value = std::move(__result.value());
195
+ return __value;
196
+ }
197
+ inline std::variant<nitro::NullType, DownloadTask> getDownloadTask(const std::string& downloadId) override {
198
+ auto __result = _swiftPart.getDownloadTask(downloadId);
199
+ if (__result.hasError()) [[unlikely]] {
200
+ std::rethrow_exception(__result.error());
201
+ }
202
+ auto __value = std::move(__result.value());
203
+ return __value;
204
+ }
205
+ inline std::vector<DownloadTask> getActiveDownloads() override {
206
+ auto __result = _swiftPart.getActiveDownloads();
207
+ if (__result.hasError()) [[unlikely]] {
208
+ std::rethrow_exception(__result.error());
209
+ }
210
+ auto __value = std::move(__result.value());
211
+ return __value;
212
+ }
213
+ inline DownloadQueueStatus getQueueStatus() override {
214
+ auto __result = _swiftPart.getQueueStatus();
215
+ if (__result.hasError()) [[unlikely]] {
216
+ std::rethrow_exception(__result.error());
217
+ }
218
+ auto __value = std::move(__result.value());
219
+ return __value;
220
+ }
221
+ inline bool isDownloading(const std::string& trackId) override {
222
+ auto __result = _swiftPart.isDownloading(trackId);
223
+ if (__result.hasError()) [[unlikely]] {
224
+ std::rethrow_exception(__result.error());
225
+ }
226
+ auto __value = std::move(__result.value());
227
+ return __value;
228
+ }
229
+ inline DownloadState getDownloadState(const std::string& trackId) override {
230
+ auto __result = _swiftPart.getDownloadState(trackId);
231
+ if (__result.hasError()) [[unlikely]] {
232
+ std::rethrow_exception(__result.error());
233
+ }
234
+ auto __value = std::move(__result.value());
235
+ return __value;
236
+ }
237
+ inline bool isTrackDownloaded(const std::string& trackId) override {
238
+ auto __result = _swiftPart.isTrackDownloaded(trackId);
239
+ if (__result.hasError()) [[unlikely]] {
240
+ std::rethrow_exception(__result.error());
241
+ }
242
+ auto __value = std::move(__result.value());
243
+ return __value;
244
+ }
245
+ inline bool isPlaylistDownloaded(const std::string& playlistId) override {
246
+ auto __result = _swiftPart.isPlaylistDownloaded(playlistId);
247
+ if (__result.hasError()) [[unlikely]] {
248
+ std::rethrow_exception(__result.error());
249
+ }
250
+ auto __value = std::move(__result.value());
251
+ return __value;
252
+ }
253
+ inline bool isPlaylistPartiallyDownloaded(const std::string& playlistId) override {
254
+ auto __result = _swiftPart.isPlaylistPartiallyDownloaded(playlistId);
255
+ if (__result.hasError()) [[unlikely]] {
256
+ std::rethrow_exception(__result.error());
257
+ }
258
+ auto __value = std::move(__result.value());
259
+ return __value;
260
+ }
261
+ inline std::variant<nitro::NullType, DownloadedTrack> getDownloadedTrack(const std::string& trackId) override {
262
+ auto __result = _swiftPart.getDownloadedTrack(trackId);
263
+ if (__result.hasError()) [[unlikely]] {
264
+ std::rethrow_exception(__result.error());
265
+ }
266
+ auto __value = std::move(__result.value());
267
+ return __value;
268
+ }
269
+ inline std::vector<DownloadedTrack> getAllDownloadedTracks() override {
270
+ auto __result = _swiftPart.getAllDownloadedTracks();
271
+ if (__result.hasError()) [[unlikely]] {
272
+ std::rethrow_exception(__result.error());
273
+ }
274
+ auto __value = std::move(__result.value());
275
+ return __value;
276
+ }
277
+ inline std::variant<nitro::NullType, DownloadedPlaylist> getDownloadedPlaylist(const std::string& playlistId) override {
278
+ auto __result = _swiftPart.getDownloadedPlaylist(playlistId);
279
+ if (__result.hasError()) [[unlikely]] {
280
+ std::rethrow_exception(__result.error());
281
+ }
282
+ auto __value = std::move(__result.value());
283
+ return __value;
284
+ }
285
+ inline std::vector<DownloadedPlaylist> getAllDownloadedPlaylists() override {
286
+ auto __result = _swiftPart.getAllDownloadedPlaylists();
287
+ if (__result.hasError()) [[unlikely]] {
288
+ std::rethrow_exception(__result.error());
289
+ }
290
+ auto __value = std::move(__result.value());
291
+ return __value;
292
+ }
293
+ inline std::variant<nitro::NullType, std::string> getLocalPath(const std::string& trackId) override {
294
+ auto __result = _swiftPart.getLocalPath(trackId);
295
+ if (__result.hasError()) [[unlikely]] {
296
+ std::rethrow_exception(__result.error());
297
+ }
298
+ auto __value = std::move(__result.value());
299
+ return __value;
300
+ }
301
+ inline std::shared_ptr<Promise<void>> deleteDownloadedTrack(const std::string& trackId) override {
302
+ auto __result = _swiftPart.deleteDownloadedTrack(trackId);
303
+ if (__result.hasError()) [[unlikely]] {
304
+ std::rethrow_exception(__result.error());
305
+ }
306
+ auto __value = std::move(__result.value());
307
+ return __value;
308
+ }
309
+ inline std::shared_ptr<Promise<void>> deleteDownloadedPlaylist(const std::string& playlistId) override {
310
+ auto __result = _swiftPart.deleteDownloadedPlaylist(playlistId);
311
+ if (__result.hasError()) [[unlikely]] {
312
+ std::rethrow_exception(__result.error());
313
+ }
314
+ auto __value = std::move(__result.value());
315
+ return __value;
316
+ }
317
+ inline std::shared_ptr<Promise<void>> deleteAllDownloads() override {
318
+ auto __result = _swiftPart.deleteAllDownloads();
319
+ if (__result.hasError()) [[unlikely]] {
320
+ std::rethrow_exception(__result.error());
321
+ }
322
+ auto __value = std::move(__result.value());
323
+ return __value;
324
+ }
325
+ inline std::shared_ptr<Promise<DownloadStorageInfo>> getStorageInfo() override {
326
+ auto __result = _swiftPart.getStorageInfo();
327
+ if (__result.hasError()) [[unlikely]] {
328
+ std::rethrow_exception(__result.error());
329
+ }
330
+ auto __value = std::move(__result.value());
331
+ return __value;
332
+ }
333
+ inline double syncDownloads() override {
334
+ auto __result = _swiftPart.syncDownloads();
335
+ if (__result.hasError()) [[unlikely]] {
336
+ std::rethrow_exception(__result.error());
337
+ }
338
+ auto __value = std::move(__result.value());
339
+ return __value;
340
+ }
341
+ inline void setPlaybackSourcePreference(PlaybackSource preference) override {
342
+ auto __result = _swiftPart.setPlaybackSourcePreference(static_cast<int>(preference));
343
+ if (__result.hasError()) [[unlikely]] {
344
+ std::rethrow_exception(__result.error());
345
+ }
346
+ }
347
+ inline PlaybackSource getPlaybackSourcePreference() override {
348
+ auto __result = _swiftPart.getPlaybackSourcePreference();
349
+ if (__result.hasError()) [[unlikely]] {
350
+ std::rethrow_exception(__result.error());
351
+ }
352
+ auto __value = std::move(__result.value());
353
+ return __value;
354
+ }
355
+ inline std::string getEffectiveUrl(const TrackItem& track) override {
356
+ auto __result = _swiftPart.getEffectiveUrl(std::forward<decltype(track)>(track));
357
+ if (__result.hasError()) [[unlikely]] {
358
+ std::rethrow_exception(__result.error());
359
+ }
360
+ auto __value = std::move(__result.value());
361
+ return __value;
362
+ }
363
+ inline void onDownloadProgress(const std::function<void(const DownloadProgress& /* progress */)>& callback) override {
364
+ auto __result = _swiftPart.onDownloadProgress(callback);
365
+ if (__result.hasError()) [[unlikely]] {
366
+ std::rethrow_exception(__result.error());
367
+ }
368
+ }
369
+ inline void onDownloadStateChange(const std::function<void(const std::string& /* downloadId */, const std::string& /* trackId */, DownloadState /* state */, const std::optional<DownloadError>& /* error */)>& callback) override {
370
+ auto __result = _swiftPart.onDownloadStateChange(callback);
371
+ if (__result.hasError()) [[unlikely]] {
372
+ std::rethrow_exception(__result.error());
373
+ }
374
+ }
375
+ inline void onDownloadComplete(const std::function<void(const DownloadedTrack& /* downloadedTrack */)>& callback) override {
376
+ auto __result = _swiftPart.onDownloadComplete(callback);
377
+ if (__result.hasError()) [[unlikely]] {
378
+ std::rethrow_exception(__result.error());
379
+ }
380
+ }
381
+
382
+ private:
383
+ NitroPlayer::HybridDownloadManagerSpec_cxx _swiftPart;
384
+ };
385
+
386
+ } // namespace margelo::nitro::nitroplayer
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridEqualizerSpecSwift.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridEqualizerSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::nitroplayer {
11
+ } // namespace margelo::nitro::nitroplayer