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,73 @@
1
+ ///
2
+ /// HybridEqualizerSpec.swift
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
+ import Foundation
9
+ import NitroModules
10
+
11
+ /// See ``HybridEqualizerSpec``
12
+ public protocol HybridEqualizerSpec_protocol: HybridObject {
13
+ // Properties
14
+
15
+
16
+ // Methods
17
+ func setEnabled(enabled: Bool) throws -> Bool
18
+ func isEnabled() throws -> Bool
19
+ func getBands() throws -> [EqualizerBand]
20
+ func setBandGain(bandIndex: Double, gainDb: Double) throws -> Bool
21
+ func setAllBandGains(gains: [Double]) throws -> Bool
22
+ func getBandRange() throws -> GainRange
23
+ func getPresets() throws -> [EqualizerPreset]
24
+ func getBuiltInPresets() throws -> [EqualizerPreset]
25
+ func getCustomPresets() throws -> [EqualizerPreset]
26
+ func applyPreset(presetName: String) throws -> Bool
27
+ func getCurrentPresetName() throws -> Variant_NullType_String
28
+ func saveCustomPreset(name: String) throws -> Bool
29
+ func deleteCustomPreset(name: String) throws -> Bool
30
+ func getState() throws -> EqualizerState
31
+ func reset() throws -> Void
32
+ func onEnabledChange(callback: @escaping (_ enabled: Bool) -> Void) throws -> Void
33
+ func onBandChange(callback: @escaping (_ bands: [EqualizerBand]) -> Void) throws -> Void
34
+ func onPresetChange(callback: @escaping (_ presetName: Variant_NullType_String?) -> Void) throws -> Void
35
+ }
36
+
37
+ public extension HybridEqualizerSpec_protocol {
38
+ /// Default implementation of ``HybridObject.toString``
39
+ func toString() -> String {
40
+ return "[HybridObject Equalizer]"
41
+ }
42
+ }
43
+
44
+ /// See ``HybridEqualizerSpec``
45
+ open class HybridEqualizerSpec_base {
46
+ private weak var cxxWrapper: HybridEqualizerSpec_cxx? = nil
47
+ public init() { }
48
+ public func getCxxWrapper() -> HybridEqualizerSpec_cxx {
49
+ #if DEBUG
50
+ guard self is HybridEqualizerSpec else {
51
+ fatalError("`self` is not a `HybridEqualizerSpec`! Did you accidentally inherit from `HybridEqualizerSpec_base` instead of `HybridEqualizerSpec`?")
52
+ }
53
+ #endif
54
+ if let cxxWrapper = self.cxxWrapper {
55
+ return cxxWrapper
56
+ } else {
57
+ let cxxWrapper = HybridEqualizerSpec_cxx(self as! HybridEqualizerSpec)
58
+ self.cxxWrapper = cxxWrapper
59
+ return cxxWrapper
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * A Swift base-protocol representing the Equalizer HybridObject.
66
+ * Implement this protocol to create Swift-based instances of Equalizer.
67
+ * ```swift
68
+ * class HybridEqualizer : HybridEqualizerSpec {
69
+ * // ...
70
+ * }
71
+ * ```
72
+ */
73
+ public typealias HybridEqualizerSpec = HybridEqualizerSpec_protocol & HybridEqualizerSpec_base
@@ -0,0 +1,396 @@
1
+ ///
2
+ /// HybridEqualizerSpec_cxx.swift
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
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * A class implementation that bridges HybridEqualizerSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ *
15
+ * Also, some Swift types need to be bridged with special handling:
16
+ * - Enums need to be wrapped in Structs, otherwise they cannot be accessed bi-directionally (Swift bug: https://github.com/swiftlang/swift/issues/75330)
17
+ * - Other HybridObjects need to be wrapped/unwrapped from the Swift TCxx wrapper
18
+ * - Throwing methods need to be wrapped with a Result<T, Error> type, as exceptions cannot be propagated to C++
19
+ */
20
+ open class HybridEqualizerSpec_cxx {
21
+ /**
22
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::nitroplayer::bridge::swift`)
23
+ * from `NitroPlayer-Swift-Cxx-Bridge.hpp`.
24
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
25
+ */
26
+ public typealias bridge = margelo.nitro.nitroplayer.bridge.swift
27
+
28
+ /**
29
+ * Holds an instance of the `HybridEqualizerSpec` Swift protocol.
30
+ */
31
+ private var __implementation: any HybridEqualizerSpec
32
+
33
+ /**
34
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
35
+ */
36
+ private var __cxxPart: bridge.std__weak_ptr_HybridEqualizerSpec_
37
+
38
+ /**
39
+ * Create a new `HybridEqualizerSpec_cxx` that wraps the given `HybridEqualizerSpec`.
40
+ * All properties and methods bridge to C++ types.
41
+ */
42
+ public init(_ implementation: any HybridEqualizerSpec) {
43
+ self.__implementation = implementation
44
+ self.__cxxPart = .init()
45
+ /* no base class */
46
+ }
47
+
48
+ /**
49
+ * Get the actual `HybridEqualizerSpec` instance this class wraps.
50
+ */
51
+ @inline(__always)
52
+ public func getHybridEqualizerSpec() -> any HybridEqualizerSpec {
53
+ return __implementation
54
+ }
55
+
56
+ /**
57
+ * Casts this instance to a retained unsafe raw pointer.
58
+ * This acquires one additional strong reference on the object!
59
+ */
60
+ public func toUnsafe() -> UnsafeMutableRawPointer {
61
+ return Unmanaged.passRetained(self).toOpaque()
62
+ }
63
+
64
+ /**
65
+ * Casts an unsafe pointer to a `HybridEqualizerSpec_cxx`.
66
+ * The pointer has to be a retained opaque `Unmanaged<HybridEqualizerSpec_cxx>`.
67
+ * This removes one strong reference from the object!
68
+ */
69
+ public class func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> HybridEqualizerSpec_cxx {
70
+ return Unmanaged<HybridEqualizerSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
71
+ }
72
+
73
+ /**
74
+ * Gets (or creates) the C++ part of this Hybrid Object.
75
+ * The C++ part is a `std::shared_ptr<HybridEqualizerSpec>`.
76
+ */
77
+ public func getCxxPart() -> bridge.std__shared_ptr_HybridEqualizerSpec_ {
78
+ let cachedCxxPart = self.__cxxPart.lock()
79
+ if Bool(fromCxx: cachedCxxPart) {
80
+ return cachedCxxPart
81
+ } else {
82
+ let newCxxPart = bridge.create_std__shared_ptr_HybridEqualizerSpec_(self.toUnsafe())
83
+ __cxxPart = bridge.weakify_std__shared_ptr_HybridEqualizerSpec_(newCxxPart)
84
+ return newCxxPart
85
+ }
86
+ }
87
+
88
+
89
+
90
+ /**
91
+ * Get the memory size of the Swift class (plus size of any other allocations)
92
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
93
+ */
94
+ @inline(__always)
95
+ public var memorySize: Int {
96
+ return MemoryHelper.getSizeOf(self.__implementation) + self.__implementation.memorySize
97
+ }
98
+
99
+ /**
100
+ * Call dispose() on the Swift class.
101
+ * This _may_ be called manually from JS.
102
+ */
103
+ @inline(__always)
104
+ public func dispose() {
105
+ self.__implementation.dispose()
106
+ }
107
+
108
+ /**
109
+ * Call toString() on the Swift class.
110
+ */
111
+ @inline(__always)
112
+ public func toString() -> String {
113
+ return self.__implementation.toString()
114
+ }
115
+
116
+ // Properties
117
+
118
+
119
+ // Methods
120
+ @inline(__always)
121
+ public final func setEnabled(enabled: Bool) -> bridge.Result_bool_ {
122
+ do {
123
+ let __result = try self.__implementation.setEnabled(enabled: enabled)
124
+ let __resultCpp = __result
125
+ return bridge.create_Result_bool_(__resultCpp)
126
+ } catch (let __error) {
127
+ let __exceptionPtr = __error.toCpp()
128
+ return bridge.create_Result_bool_(__exceptionPtr)
129
+ }
130
+ }
131
+
132
+ @inline(__always)
133
+ public final func isEnabled() -> bridge.Result_bool_ {
134
+ do {
135
+ let __result = try self.__implementation.isEnabled()
136
+ let __resultCpp = __result
137
+ return bridge.create_Result_bool_(__resultCpp)
138
+ } catch (let __error) {
139
+ let __exceptionPtr = __error.toCpp()
140
+ return bridge.create_Result_bool_(__exceptionPtr)
141
+ }
142
+ }
143
+
144
+ @inline(__always)
145
+ public final func getBands() -> bridge.Result_std__vector_EqualizerBand__ {
146
+ do {
147
+ let __result = try self.__implementation.getBands()
148
+ let __resultCpp = { () -> bridge.std__vector_EqualizerBand_ in
149
+ var __vector = bridge.create_std__vector_EqualizerBand_(__result.count)
150
+ for __item in __result {
151
+ __vector.push_back(__item)
152
+ }
153
+ return __vector
154
+ }()
155
+ return bridge.create_Result_std__vector_EqualizerBand__(__resultCpp)
156
+ } catch (let __error) {
157
+ let __exceptionPtr = __error.toCpp()
158
+ return bridge.create_Result_std__vector_EqualizerBand__(__exceptionPtr)
159
+ }
160
+ }
161
+
162
+ @inline(__always)
163
+ public final func setBandGain(bandIndex: Double, gainDb: Double) -> bridge.Result_bool_ {
164
+ do {
165
+ let __result = try self.__implementation.setBandGain(bandIndex: bandIndex, gainDb: gainDb)
166
+ let __resultCpp = __result
167
+ return bridge.create_Result_bool_(__resultCpp)
168
+ } catch (let __error) {
169
+ let __exceptionPtr = __error.toCpp()
170
+ return bridge.create_Result_bool_(__exceptionPtr)
171
+ }
172
+ }
173
+
174
+ @inline(__always)
175
+ public final func setAllBandGains(gains: bridge.std__vector_double_) -> bridge.Result_bool_ {
176
+ do {
177
+ let __result = try self.__implementation.setAllBandGains(gains: gains.map({ __item in __item }))
178
+ let __resultCpp = __result
179
+ return bridge.create_Result_bool_(__resultCpp)
180
+ } catch (let __error) {
181
+ let __exceptionPtr = __error.toCpp()
182
+ return bridge.create_Result_bool_(__exceptionPtr)
183
+ }
184
+ }
185
+
186
+ @inline(__always)
187
+ public final func getBandRange() -> bridge.Result_GainRange_ {
188
+ do {
189
+ let __result = try self.__implementation.getBandRange()
190
+ let __resultCpp = __result
191
+ return bridge.create_Result_GainRange_(__resultCpp)
192
+ } catch (let __error) {
193
+ let __exceptionPtr = __error.toCpp()
194
+ return bridge.create_Result_GainRange_(__exceptionPtr)
195
+ }
196
+ }
197
+
198
+ @inline(__always)
199
+ public final func getPresets() -> bridge.Result_std__vector_EqualizerPreset__ {
200
+ do {
201
+ let __result = try self.__implementation.getPresets()
202
+ let __resultCpp = { () -> bridge.std__vector_EqualizerPreset_ in
203
+ var __vector = bridge.create_std__vector_EqualizerPreset_(__result.count)
204
+ for __item in __result {
205
+ __vector.push_back(__item)
206
+ }
207
+ return __vector
208
+ }()
209
+ return bridge.create_Result_std__vector_EqualizerPreset__(__resultCpp)
210
+ } catch (let __error) {
211
+ let __exceptionPtr = __error.toCpp()
212
+ return bridge.create_Result_std__vector_EqualizerPreset__(__exceptionPtr)
213
+ }
214
+ }
215
+
216
+ @inline(__always)
217
+ public final func getBuiltInPresets() -> bridge.Result_std__vector_EqualizerPreset__ {
218
+ do {
219
+ let __result = try self.__implementation.getBuiltInPresets()
220
+ let __resultCpp = { () -> bridge.std__vector_EqualizerPreset_ in
221
+ var __vector = bridge.create_std__vector_EqualizerPreset_(__result.count)
222
+ for __item in __result {
223
+ __vector.push_back(__item)
224
+ }
225
+ return __vector
226
+ }()
227
+ return bridge.create_Result_std__vector_EqualizerPreset__(__resultCpp)
228
+ } catch (let __error) {
229
+ let __exceptionPtr = __error.toCpp()
230
+ return bridge.create_Result_std__vector_EqualizerPreset__(__exceptionPtr)
231
+ }
232
+ }
233
+
234
+ @inline(__always)
235
+ public final func getCustomPresets() -> bridge.Result_std__vector_EqualizerPreset__ {
236
+ do {
237
+ let __result = try self.__implementation.getCustomPresets()
238
+ let __resultCpp = { () -> bridge.std__vector_EqualizerPreset_ in
239
+ var __vector = bridge.create_std__vector_EqualizerPreset_(__result.count)
240
+ for __item in __result {
241
+ __vector.push_back(__item)
242
+ }
243
+ return __vector
244
+ }()
245
+ return bridge.create_Result_std__vector_EqualizerPreset__(__resultCpp)
246
+ } catch (let __error) {
247
+ let __exceptionPtr = __error.toCpp()
248
+ return bridge.create_Result_std__vector_EqualizerPreset__(__exceptionPtr)
249
+ }
250
+ }
251
+
252
+ @inline(__always)
253
+ public final func applyPreset(presetName: std.string) -> bridge.Result_bool_ {
254
+ do {
255
+ let __result = try self.__implementation.applyPreset(presetName: String(presetName))
256
+ let __resultCpp = __result
257
+ return bridge.create_Result_bool_(__resultCpp)
258
+ } catch (let __error) {
259
+ let __exceptionPtr = __error.toCpp()
260
+ return bridge.create_Result_bool_(__exceptionPtr)
261
+ }
262
+ }
263
+
264
+ @inline(__always)
265
+ public final func getCurrentPresetName() -> bridge.Result_std__variant_nitro__NullType__std__string__ {
266
+ do {
267
+ let __result = try self.__implementation.getCurrentPresetName()
268
+ let __resultCpp = { () -> bridge.std__variant_nitro__NullType__std__string_ in
269
+ switch __result {
270
+ case .first(let __value):
271
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
272
+ case .second(let __value):
273
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
274
+ }
275
+ }().variant
276
+ return bridge.create_Result_std__variant_nitro__NullType__std__string__(__resultCpp)
277
+ } catch (let __error) {
278
+ let __exceptionPtr = __error.toCpp()
279
+ return bridge.create_Result_std__variant_nitro__NullType__std__string__(__exceptionPtr)
280
+ }
281
+ }
282
+
283
+ @inline(__always)
284
+ public final func saveCustomPreset(name: std.string) -> bridge.Result_bool_ {
285
+ do {
286
+ let __result = try self.__implementation.saveCustomPreset(name: String(name))
287
+ let __resultCpp = __result
288
+ return bridge.create_Result_bool_(__resultCpp)
289
+ } catch (let __error) {
290
+ let __exceptionPtr = __error.toCpp()
291
+ return bridge.create_Result_bool_(__exceptionPtr)
292
+ }
293
+ }
294
+
295
+ @inline(__always)
296
+ public final func deleteCustomPreset(name: std.string) -> bridge.Result_bool_ {
297
+ do {
298
+ let __result = try self.__implementation.deleteCustomPreset(name: String(name))
299
+ let __resultCpp = __result
300
+ return bridge.create_Result_bool_(__resultCpp)
301
+ } catch (let __error) {
302
+ let __exceptionPtr = __error.toCpp()
303
+ return bridge.create_Result_bool_(__exceptionPtr)
304
+ }
305
+ }
306
+
307
+ @inline(__always)
308
+ public final func getState() -> bridge.Result_EqualizerState_ {
309
+ do {
310
+ let __result = try self.__implementation.getState()
311
+ let __resultCpp = __result
312
+ return bridge.create_Result_EqualizerState_(__resultCpp)
313
+ } catch (let __error) {
314
+ let __exceptionPtr = __error.toCpp()
315
+ return bridge.create_Result_EqualizerState_(__exceptionPtr)
316
+ }
317
+ }
318
+
319
+ @inline(__always)
320
+ public final func reset() -> bridge.Result_void_ {
321
+ do {
322
+ try self.__implementation.reset()
323
+ return bridge.create_Result_void_()
324
+ } catch (let __error) {
325
+ let __exceptionPtr = __error.toCpp()
326
+ return bridge.create_Result_void_(__exceptionPtr)
327
+ }
328
+ }
329
+
330
+ @inline(__always)
331
+ public final func onEnabledChange(callback: bridge.Func_void_bool) -> bridge.Result_void_ {
332
+ do {
333
+ try self.__implementation.onEnabledChange(callback: { () -> (Bool) -> Void in
334
+ let __wrappedFunction = bridge.wrap_Func_void_bool(callback)
335
+ return { (__enabled: Bool) -> Void in
336
+ __wrappedFunction.call(__enabled)
337
+ }
338
+ }())
339
+ return bridge.create_Result_void_()
340
+ } catch (let __error) {
341
+ let __exceptionPtr = __error.toCpp()
342
+ return bridge.create_Result_void_(__exceptionPtr)
343
+ }
344
+ }
345
+
346
+ @inline(__always)
347
+ public final func onBandChange(callback: bridge.Func_void_std__vector_EqualizerBand_) -> bridge.Result_void_ {
348
+ do {
349
+ try self.__implementation.onBandChange(callback: { () -> ([EqualizerBand]) -> Void in
350
+ let __wrappedFunction = bridge.wrap_Func_void_std__vector_EqualizerBand_(callback)
351
+ return { (__bands: [EqualizerBand]) -> Void in
352
+ __wrappedFunction.call({ () -> bridge.std__vector_EqualizerBand_ in
353
+ var __vector = bridge.create_std__vector_EqualizerBand_(__bands.count)
354
+ for __item in __bands {
355
+ __vector.push_back(__item)
356
+ }
357
+ return __vector
358
+ }())
359
+ }
360
+ }())
361
+ return bridge.create_Result_void_()
362
+ } catch (let __error) {
363
+ let __exceptionPtr = __error.toCpp()
364
+ return bridge.create_Result_void_(__exceptionPtr)
365
+ }
366
+ }
367
+
368
+ @inline(__always)
369
+ public final func onPresetChange(callback: bridge.Func_void_std__optional_std__variant_nitro__NullType__std__string__) -> bridge.Result_void_ {
370
+ do {
371
+ try self.__implementation.onPresetChange(callback: { () -> (Variant_NullType_String?) -> Void in
372
+ let __wrappedFunction = bridge.wrap_Func_void_std__optional_std__variant_nitro__NullType__std__string__(callback)
373
+ return { (__presetName: Variant_NullType_String?) -> Void in
374
+ __wrappedFunction.call({ () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
375
+ if let __unwrappedValue = __presetName {
376
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
377
+ switch __unwrappedValue {
378
+ case .first(let __value):
379
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
380
+ case .second(let __value):
381
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
382
+ }
383
+ }().variant)
384
+ } else {
385
+ return .init()
386
+ }
387
+ }())
388
+ }
389
+ }())
390
+ return bridge.create_Result_void_()
391
+ } catch (let __error) {
392
+ let __exceptionPtr = __error.toCpp()
393
+ return bridge.create_Result_void_(__exceptionPtr)
394
+ }
395
+ }
396
+ }
@@ -16,11 +16,15 @@ public protocol HybridTrackPlayerSpec_protocol: HybridObject {
16
16
  // Methods
17
17
  func play() throws -> Void
18
18
  func pause() throws -> Void
19
- func playSong(songId: String, fromPlaylist: String?) throws -> Void
19
+ func playSong(songId: String, fromPlaylist: String?) throws -> Promise<Void>
20
20
  func skipToNext() throws -> Void
21
+ func skipToIndex(index: Double) throws -> Promise<Bool>
21
22
  func skipToPrevious() throws -> Void
22
23
  func seek(position: Double) throws -> Void
23
- func getState() throws -> PlayerState
24
+ func addToUpNext(trackId: String) throws -> Promise<Void>
25
+ func playNext(trackId: String) throws -> Promise<Void>
26
+ func getActualQueue() throws -> Promise<[TrackItem]>
27
+ func getState() throws -> Promise<PlayerState>
24
28
  func setRepeatMode(mode: RepeatMode) throws -> Bool
25
29
  func configure(config: PlayerConfig) throws -> Void
26
30
  func onChangeTrack(callback: @escaping (_ track: TrackItem, _ reason: Reason?) -> Void) throws -> Void
@@ -140,9 +140,9 @@ open class HybridTrackPlayerSpec_cxx {
140
140
  }
141
141
 
142
142
  @inline(__always)
143
- public final func playSong(songId: std.string, fromPlaylist: bridge.std__optional_std__string_) -> bridge.Result_void_ {
143
+ public final func playSong(songId: std.string, fromPlaylist: bridge.std__optional_std__string_) -> bridge.Result_std__shared_ptr_Promise_void___ {
144
144
  do {
145
- try self.__implementation.playSong(songId: String(songId), fromPlaylist: { () -> String? in
145
+ let __result = try self.__implementation.playSong(songId: String(songId), fromPlaylist: { () -> String? in
146
146
  if bridge.has_value_std__optional_std__string_(fromPlaylist) {
147
147
  let __unwrapped = bridge.get_std__optional_std__string_(fromPlaylist)
148
148
  return String(__unwrapped)
@@ -150,10 +150,18 @@ open class HybridTrackPlayerSpec_cxx {
150
150
  return nil
151
151
  }
152
152
  }())
153
- return bridge.create_Result_void_()
153
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_void__ in
154
+ let __promise = bridge.create_std__shared_ptr_Promise_void__()
155
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_void__(__promise)
156
+ __result
157
+ .then({ __result in __promiseHolder.resolve() })
158
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
159
+ return __promise
160
+ }()
161
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__resultCpp)
154
162
  } catch (let __error) {
155
163
  let __exceptionPtr = __error.toCpp()
156
- return bridge.create_Result_void_(__exceptionPtr)
164
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__exceptionPtr)
157
165
  }
158
166
  }
159
167
 
@@ -168,6 +176,25 @@ open class HybridTrackPlayerSpec_cxx {
168
176
  }
169
177
  }
170
178
 
179
+ @inline(__always)
180
+ public final func skipToIndex(index: Double) -> bridge.Result_std__shared_ptr_Promise_bool___ {
181
+ do {
182
+ let __result = try self.__implementation.skipToIndex(index: index)
183
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_bool__ in
184
+ let __promise = bridge.create_std__shared_ptr_Promise_bool__()
185
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_bool__(__promise)
186
+ __result
187
+ .then({ __result in __promiseHolder.resolve(__result) })
188
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
189
+ return __promise
190
+ }()
191
+ return bridge.create_Result_std__shared_ptr_Promise_bool___(__resultCpp)
192
+ } catch (let __error) {
193
+ let __exceptionPtr = __error.toCpp()
194
+ return bridge.create_Result_std__shared_ptr_Promise_bool___(__exceptionPtr)
195
+ }
196
+ }
197
+
171
198
  @inline(__always)
172
199
  public final func skipToPrevious() -> bridge.Result_void_ {
173
200
  do {
@@ -191,14 +218,84 @@ open class HybridTrackPlayerSpec_cxx {
191
218
  }
192
219
 
193
220
  @inline(__always)
194
- public final func getState() -> bridge.Result_PlayerState_ {
221
+ public final func addToUpNext(trackId: std.string) -> bridge.Result_std__shared_ptr_Promise_void___ {
222
+ do {
223
+ let __result = try self.__implementation.addToUpNext(trackId: String(trackId))
224
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_void__ in
225
+ let __promise = bridge.create_std__shared_ptr_Promise_void__()
226
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_void__(__promise)
227
+ __result
228
+ .then({ __result in __promiseHolder.resolve() })
229
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
230
+ return __promise
231
+ }()
232
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__resultCpp)
233
+ } catch (let __error) {
234
+ let __exceptionPtr = __error.toCpp()
235
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__exceptionPtr)
236
+ }
237
+ }
238
+
239
+ @inline(__always)
240
+ public final func playNext(trackId: std.string) -> bridge.Result_std__shared_ptr_Promise_void___ {
241
+ do {
242
+ let __result = try self.__implementation.playNext(trackId: String(trackId))
243
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_void__ in
244
+ let __promise = bridge.create_std__shared_ptr_Promise_void__()
245
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_void__(__promise)
246
+ __result
247
+ .then({ __result in __promiseHolder.resolve() })
248
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
249
+ return __promise
250
+ }()
251
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__resultCpp)
252
+ } catch (let __error) {
253
+ let __exceptionPtr = __error.toCpp()
254
+ return bridge.create_Result_std__shared_ptr_Promise_void___(__exceptionPtr)
255
+ }
256
+ }
257
+
258
+ @inline(__always)
259
+ public final func getActualQueue() -> bridge.Result_std__shared_ptr_Promise_std__vector_TrackItem____ {
260
+ do {
261
+ let __result = try self.__implementation.getActualQueue()
262
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_std__vector_TrackItem___ in
263
+ let __promise = bridge.create_std__shared_ptr_Promise_std__vector_TrackItem___()
264
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_std__vector_TrackItem___(__promise)
265
+ __result
266
+ .then({ __result in __promiseHolder.resolve({ () -> bridge.std__vector_TrackItem_ in
267
+ var __vector = bridge.create_std__vector_TrackItem_(__result.count)
268
+ for __item in __result {
269
+ __vector.push_back(__item)
270
+ }
271
+ return __vector
272
+ }()) })
273
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
274
+ return __promise
275
+ }()
276
+ return bridge.create_Result_std__shared_ptr_Promise_std__vector_TrackItem____(__resultCpp)
277
+ } catch (let __error) {
278
+ let __exceptionPtr = __error.toCpp()
279
+ return bridge.create_Result_std__shared_ptr_Promise_std__vector_TrackItem____(__exceptionPtr)
280
+ }
281
+ }
282
+
283
+ @inline(__always)
284
+ public final func getState() -> bridge.Result_std__shared_ptr_Promise_PlayerState___ {
195
285
  do {
196
286
  let __result = try self.__implementation.getState()
197
- let __resultCpp = __result
198
- return bridge.create_Result_PlayerState_(__resultCpp)
287
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_PlayerState__ in
288
+ let __promise = bridge.create_std__shared_ptr_Promise_PlayerState__()
289
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_PlayerState__(__promise)
290
+ __result
291
+ .then({ __result in __promiseHolder.resolve(__result) })
292
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
293
+ return __promise
294
+ }()
295
+ return bridge.create_Result_std__shared_ptr_Promise_PlayerState___(__resultCpp)
199
296
  } catch (let __error) {
200
297
  let __exceptionPtr = __error.toCpp()
201
- return bridge.create_Result_PlayerState_(__exceptionPtr)
298
+ return bridge.create_Result_std__shared_ptr_Promise_PlayerState___(__exceptionPtr)
202
299
  }
203
300
  }
204
301
 
@@ -0,0 +1,44 @@
1
+ ///
2
+ /// PlaybackSource.swift
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
+ /**
9
+ * Represents the JS union `PlaybackSource`, backed by a C++ enum.
10
+ */
11
+ public typealias PlaybackSource = margelo.nitro.nitroplayer.PlaybackSource
12
+
13
+ public extension PlaybackSource {
14
+ /**
15
+ * Get a PlaybackSource for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "auto":
21
+ self = .auto
22
+ case "download":
23
+ self = .download
24
+ case "network":
25
+ self = .network
26
+ default:
27
+ return nil
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Get the String value this PlaybackSource represents.
33
+ */
34
+ var stringValue: String {
35
+ switch self {
36
+ case .auto:
37
+ return "auto"
38
+ case .download:
39
+ return "download"
40
+ case .network:
41
+ return "network"
42
+ }
43
+ }
44
+ }