react-native-queue-player 1.2.0 → 2.0.1

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 (362) hide show
  1. package/QueuePlayer.podspec +14 -9
  2. package/README.md +3 -3
  3. package/android/consumer-rules.pro +1 -1
  4. package/android/src/main/cpp/airplay2_control.c +4 -4
  5. package/android/src/main/cpp/airplay2_control.h +4 -4
  6. package/android/src/main/cpp/airplay2_jni.cpp +3 -19
  7. package/android/src/main/cpp/airplay2_pair.c +7 -7
  8. package/android/src/main/cpp/airplay2_pair.h +2 -2
  9. package/android/src/main/cpp/airplay2_rtsp.c +8 -8
  10. package/android/src/main/cpp/airplay2_session.c +2 -2
  11. package/android/src/main/cpp/airplay_jni.cpp +8 -69
  12. package/android/src/main/java/com/margelo/nitro/queueplayer/AirPlayEngine.kt +7 -16
  13. package/android/src/main/java/com/margelo/nitro/queueplayer/CacheMimeTypes.kt +1 -1
  14. package/android/src/main/java/com/margelo/nitro/queueplayer/CastManager.kt +2 -14
  15. package/android/src/main/java/com/margelo/nitro/queueplayer/CellularTransportMonitor.kt +77 -0
  16. package/android/src/main/java/com/margelo/nitro/queueplayer/CrossfadeEngine.kt +187 -52
  17. package/android/src/main/java/com/margelo/nitro/queueplayer/Equalizer.kt +27 -7
  18. package/android/src/main/java/com/margelo/nitro/queueplayer/EqualizerEngine.kt +33 -12
  19. package/android/src/main/java/com/margelo/nitro/queueplayer/EqualizerLegacyEngine.kt +31 -8
  20. package/android/src/main/java/com/margelo/nitro/queueplayer/FFTProcessorTee.kt +45 -30
  21. package/android/src/main/java/com/margelo/nitro/queueplayer/FifoCacheEvictor.kt +111 -15
  22. package/android/src/main/java/com/margelo/nitro/queueplayer/GaplessEngine.kt +60 -33
  23. package/android/src/main/java/com/margelo/nitro/queueplayer/HeadlessJsMediaService.kt +1 -1
  24. package/android/src/main/java/com/margelo/nitro/queueplayer/IEqualizerEngine.kt +3 -1
  25. package/android/src/main/java/com/margelo/nitro/queueplayer/LookaheadCache.kt +111 -29
  26. package/android/src/main/java/com/margelo/nitro/queueplayer/LookaheadCacheWriter.kt +78 -30
  27. package/android/src/main/java/com/margelo/nitro/queueplayer/MediaItemBuilder.kt +6 -6
  28. package/android/src/main/java/com/margelo/nitro/queueplayer/MediaResponseCheck.kt +156 -0
  29. package/android/src/main/java/com/margelo/nitro/queueplayer/MediaValidatingDataSource.kt +165 -0
  30. package/android/src/main/java/com/margelo/nitro/queueplayer/MimeCapturingDataSource.kt +18 -9
  31. package/android/src/main/java/com/margelo/nitro/queueplayer/NowPlayingFormatExtractor.kt +48 -1
  32. package/android/src/main/java/com/margelo/nitro/queueplayer/PitchCorrection.kt +3 -2
  33. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackEngine.kt +71 -76
  34. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackErrorMapping.kt +13 -5
  35. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackModeStateMachine.kt +2 -2
  36. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackService.kt +68 -46
  37. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackServiceCallback.kt +6 -5
  38. package/android/src/main/java/com/margelo/nitro/queueplayer/QueueMutationArithmetic.kt +5 -6
  39. package/android/src/main/java/com/margelo/nitro/queueplayer/QueueSkipArithmetic.kt +11 -8
  40. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainAudioProcessor.kt +26 -6
  41. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainData.kt +22 -3
  42. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainExtractor.kt +38 -12
  43. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainGain.kt +17 -13
  44. package/android/src/main/java/com/margelo/nitro/queueplayer/SuppliedReplayGain.kt +66 -0
  45. package/android/src/main/java/com/margelo/nitro/queueplayer/TrackPlayer.kt +985 -276
  46. package/android/src/main/java/com/margelo/nitro/queueplayer/Visualizer.kt +4 -8
  47. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastBackend.kt +4 -3
  48. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastSession.kt +5 -4
  49. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlay2JNI.kt +0 -2
  50. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlay2Session.kt +4 -2
  51. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayBackend.kt +16 -9
  52. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayMetadataSync.kt +1 -1
  53. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayRenderersFactory.kt +6 -14
  54. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirplayJNI.kt +1 -13
  55. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/MulticastLockHolder.kt +1 -1
  56. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/chromecast/ChromecastBackend.kt +3 -3
  57. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/LocalMediaServer.kt +11 -35
  58. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/MediaServerHandle.kt +0 -5
  59. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/MediaTokenRegistry.kt +0 -6
  60. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/net/LocalAddressMonitor.kt +32 -33
  61. package/android/src/test/java/androidx/media3/session/{MediaSessionControllerRequestTestSeam.kt → MediaSessionControllerRequestTestSupport.kt} +1 -1
  62. package/android/src/test/java/com/margelo/nitro/queueplayer/AvrcpMetadataTest.kt +12 -0
  63. package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineFocusLossTest.kt +115 -0
  64. package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineLifecycleTest.kt +45 -0
  65. package/android/src/test/java/com/margelo/nitro/queueplayer/EngineEndSignalOrderTest.kt +70 -0
  66. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerEngineTest.kt +17 -0
  67. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerKtTest.kt +0 -6
  68. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerLegacyEngineTest.kt +17 -0
  69. package/android/src/test/java/com/margelo/nitro/queueplayer/FFTProcessorTeeTest.kt +15 -0
  70. package/android/src/test/java/com/margelo/nitro/queueplayer/FifoCacheEvictorTest.kt +135 -4
  71. package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineLifecycleTest.kt +1 -0
  72. package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineReplayGainTest.kt +36 -2
  73. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheTest.kt +84 -18
  74. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheWriterCancelTest.kt +85 -0
  75. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheWriterTest.kt +112 -1
  76. package/android/src/test/java/com/margelo/nitro/queueplayer/MediaItemBuilderTest.kt +5 -3
  77. package/android/src/test/java/com/margelo/nitro/queueplayer/MediaResponseCheckTest.kt +163 -0
  78. package/android/src/test/java/com/margelo/nitro/queueplayer/MediaValidatingDataSourceTest.kt +189 -0
  79. package/android/src/test/java/com/margelo/nitro/queueplayer/NowPlayingFormatExtractorTest.kt +45 -0
  80. package/android/src/test/java/com/margelo/nitro/queueplayer/PitchAwareAudioProcessorChainTest.kt +1 -1
  81. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackSearchTest.kt +47 -0
  82. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackTest.kt +53 -29
  83. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceLifecycleTest.kt +8 -8
  84. package/android/src/test/java/com/margelo/nitro/queueplayer/QueueSkipArithmeticTest.kt +33 -1
  85. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainAudioProcessorTest.kt +128 -5
  86. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainExtractorTest.kt +209 -14
  87. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainGainTest.kt +150 -10
  88. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainMergeTest.kt +258 -0
  89. package/android/src/test/java/com/margelo/nitro/queueplayer/RobolectricServiceBindHelper.kt +2 -2
  90. package/android/src/test/java/com/margelo/nitro/queueplayer/SessionCommandForwardingPlayerTest.kt +2 -2
  91. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowDynamicsProcessingRejectingEnable.kt +19 -0
  92. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowEqualizer.kt +1 -1
  93. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowEqualizerRejectingBandWrites.kt +27 -0
  94. package/android/src/test/java/com/margelo/nitro/queueplayer/SuppliedReplayGainTest.kt +61 -0
  95. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAirPlayMetadataWiringTest.kt +4 -4
  96. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAudioFocusTest.kt +1 -1
  97. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerCastCommandRoutingTest.kt +2 -1
  98. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerCastStateTest.kt +2 -1
  99. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerEventsTest.kt +122 -38
  100. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLifecycleTest.kt +291 -27
  101. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLookaheadConfigTest.kt +277 -38
  102. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerMutationTest.kt +5 -3
  103. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerProgressThrottleTest.kt +2 -1
  104. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueChangeTest.kt +85 -3
  105. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueTest.kt +11 -7
  106. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerReadersTest.kt +2 -1
  107. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipCapabilityTest.kt +90 -4
  108. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipTest.kt +8 -26
  109. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerTransportTest.kt +3 -3
  110. package/android/src/test/java/com/margelo/nitro/queueplayer/VisualizerKtTest.kt +0 -4
  111. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/FakeRemotePlayer.kt +2 -2
  112. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/net/LocalAddressMonitorTest.kt +173 -0
  113. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/net/ShadowConnectivityManagerRecordingRequests.kt +27 -0
  114. package/app.plugin.js +17 -1
  115. package/ios/AVPlayerItemQueueItemId.swift +26 -12
  116. package/ios/AVQueueBuilder.swift +120 -85
  117. package/ios/ArtworkLoader.swift +0 -7
  118. package/ios/ArtworkResolver.swift +22 -4
  119. package/ios/AssetReplayGainReader.swift +118 -0
  120. package/ios/AudioSession.swift +67 -16
  121. package/ios/AudioTapProvider.swift +284 -149
  122. package/ios/CarPlayBridge.swift +0 -12
  123. package/ios/CarPlayCoordinator.swift +18 -2
  124. package/ios/CarPlaySceneDelegate.swift +2 -2
  125. package/ios/Cast/AirPlayRouteState.swift +9 -8
  126. package/ios/Cast/Core/CastEventBridge.swift +66 -26
  127. package/ios/Cast/Core/CastNowPlayingController.swift +38 -16
  128. package/ios/Cast/Core/CastSession.swift +2 -2
  129. package/ios/Cast/Core/CastTransportRouter.swift +21 -9
  130. package/ios/Cast/Core/LocalMediaServer.swift +41 -52
  131. package/ios/Cast/Core/LocalNetworkPermissionProbe.swift +32 -11
  132. package/ios/Cast/Core/MediaServerHandle.swift +0 -4
  133. package/ios/Cast/Core/MediaTokenRegistry.swift +0 -6
  134. package/ios/CastManager.swift +1 -1
  135. package/ios/CrossfadeEngine.swift +672 -226
  136. package/ios/EQTap.swift +20 -17
  137. package/ios/Equalizer.swift +1 -1
  138. package/ios/FLACStreamInfo.swift +65 -0
  139. package/ios/GaplessEngine.swift +57 -30
  140. package/ios/InputGuards.swift +35 -5
  141. package/ios/LookaheadCache.swift +229 -58
  142. package/ios/LookaheadCachePrefetcher.swift +48 -36
  143. package/ios/MediaResponseCheck.swift +122 -0
  144. package/ios/MediaServer/MediaHTTPConnection.swift +691 -0
  145. package/ios/NetworkRecoveryPolicy.swift +32 -0
  146. package/ios/NowPlayingFormatExtractor.swift +25 -18
  147. package/ios/NowPlayingInfo.swift +84 -48
  148. package/ios/OutputRouteMonitor.swift +16 -3
  149. package/ios/PendingBrowseRequests.swift +1 -1
  150. package/ios/PlaceholderArtwork.swift +9 -5
  151. package/ios/PlaybackEngine.swift +165 -76
  152. package/ios/PlaybackErrorMapping.swift +3 -3
  153. package/ios/PlaybackModeStateMachine.swift +2 -2
  154. package/ios/PlaybackNetworkMonitor.swift +73 -0
  155. package/ios/PlayerStateDerivation.swift +6 -6
  156. package/ios/QueueMutationArithmetic.swift +25 -0
  157. package/ios/QueueSkipArithmetic.swift +5 -3
  158. package/ios/QueueWindowArithmetic.swift +152 -0
  159. package/ios/ReadThroughServer.swift +283 -0
  160. package/ios/RemoteCommands.swift +44 -4
  161. package/ios/ReplayGainData.swift +22 -3
  162. package/ios/ReplayGainExtractor.swift +70 -27
  163. package/ios/Siri/VoiceDonation.swift +14 -9
  164. package/ios/StreamingBitrateProbe.swift +22 -68
  165. package/ios/SuppliedReplayGain.swift +83 -0
  166. package/ios/Tests/AVQueueBuilderTests.swift +158 -221
  167. package/ios/Tests/ActiveItemEngineStub.swift +44 -0
  168. package/ios/Tests/AssetReplayGainReaderTests.swift +228 -0
  169. package/ios/Tests/AudioTapProviderDispatchTargetTests.swift +158 -0
  170. package/ios/Tests/AudioTapProviderReplayGainTests.swift +122 -10
  171. package/ios/Tests/BitrateReresolveBudgetTests.swift +71 -0
  172. package/ios/Tests/CastMediaItemTranslationTests.swift +72 -0
  173. package/ios/Tests/CastNowPlayingControllerTests.swift +1 -1
  174. package/ios/Tests/CrossfadeAdvanceWithoutFadeTests.swift +120 -0
  175. package/ios/Tests/CrossfadeEngineIncomingMixTests.swift +122 -0
  176. package/ios/Tests/CrossfadeEngineTests.swift +164 -0
  177. package/ios/Tests/CrossfadeMixReapplyTests.swift +66 -0
  178. package/ios/Tests/CrossfadePlaybackIntentTests.swift +81 -0
  179. package/ios/Tests/EngineSwapTests.swift +91 -0
  180. package/ios/Tests/EqualizerAudioMixProviderTests.swift +46 -0
  181. package/ios/Tests/EqualizerHybridTests.swift +5 -2
  182. package/ios/Tests/FLACStreamInfoTests.swift +88 -0
  183. package/ios/Tests/GaplessEngineLifecycleTests.swift +4 -4
  184. package/ios/Tests/InputGuardsTests.swift +41 -0
  185. package/ios/Tests/InterruptionIntentTests.swift +77 -0
  186. package/ios/Tests/LookaheadCacheCellularAccessTests.swift +185 -0
  187. package/ios/Tests/LookaheadCachePrefetcherTests.swift +53 -30
  188. package/ios/Tests/LookaheadCacheRuntimeConfigTests.swift +160 -1
  189. package/ios/Tests/LookaheadCacheTests.swift +44 -18
  190. package/ios/Tests/MediaHTTPConnectionTests.swift +79 -0
  191. package/ios/Tests/MediaResponseCheckTests.swift +128 -0
  192. package/ios/Tests/MutationDeferralTests.swift +220 -0
  193. package/ios/Tests/NowPlayingInfoTests.swift +86 -99
  194. package/ios/Tests/NowPlayingSnapshotTests.swift +127 -0
  195. package/ios/Tests/OriginRestartStitcherTests.swift +60 -0
  196. package/ios/Tests/PlaybackNetworkMonitorTests.swift +95 -0
  197. package/ios/Tests/PlayerFixtures.swift +48 -0
  198. package/ios/Tests/PlayerStateDerivationTests.swift +10 -10
  199. package/ios/Tests/QueueMutationGenerationTests.swift +141 -0
  200. package/ios/Tests/QueueRebuildPrefixTests.swift +317 -0
  201. package/ios/Tests/QueueStateTests.swift +3 -1
  202. package/ios/Tests/QueueWindowArithmeticTests.swift +56 -0
  203. package/ios/Tests/QueueWindowSliceTests.swift +162 -0
  204. package/ios/Tests/ReadThroughRoutingLifecycleTests.swift +63 -0
  205. package/ios/Tests/ReadThroughServerTests.swift +345 -0
  206. package/ios/Tests/RemoteCommandsTests.swift +28 -0
  207. package/ios/Tests/ReplayGainExtractorTests.swift +216 -6
  208. package/ios/Tests/ReplayGainMergeTests.swift +230 -0
  209. package/ios/Tests/RetryRecoveryTests.swift +418 -0
  210. package/ios/Tests/SkipCapabilityTests.swift +233 -8
  211. package/ios/Tests/SkipIndexTests.swift +32 -2
  212. package/ios/Tests/SleepTimerPauseIntentTests.swift +43 -0
  213. package/ios/Tests/StallRecoveryTests.swift +97 -0
  214. package/ios/Tests/StreamingBitrateProbeTests.swift +17 -20
  215. package/ios/Tests/TopUpWindowGateTests.swift +441 -0
  216. package/ios/Tests/TrackPlayer+TestHops.swift +14 -0
  217. package/ios/Tests/TrackPlayerCallOrderTests.swift +93 -0
  218. package/ios/Tests/TrackPlayerConfigureTeardownTests.swift +86 -0
  219. package/ios/Tests/TrackPlayerEndVerdictTests.swift +206 -0
  220. package/ios/Tests/TrackPlayerSeekTests.swift +137 -0
  221. package/ios/Tests/TrackPlayerThreadingTests.swift +127 -0
  222. package/ios/Tests/TrackSourceClassifierTests.swift +33 -7
  223. package/ios/Tests/VoiceVocabularyOptInTests.swift +38 -0
  224. package/ios/TrackPlayer+Automotive.swift +101 -0
  225. package/ios/TrackPlayer+Cache.swift +232 -0
  226. package/ios/TrackPlayer+Config.swift +291 -0
  227. package/ios/TrackPlayer+EngineDelegate.swift +209 -0
  228. package/ios/TrackPlayer+EventsAPI.swift +111 -0
  229. package/ios/TrackPlayer+EventsDispatch.swift +1042 -0
  230. package/ios/TrackPlayer+EventsWiring.swift +173 -0
  231. package/ios/TrackPlayer+Lifecycle.swift +982 -0
  232. package/ios/TrackPlayer+NowPlayingFormat.swift +258 -0
  233. package/ios/TrackPlayer+Queue.swift +951 -0
  234. package/ios/TrackPlayer+Recovery.swift +213 -0
  235. package/ios/TrackPlayer+Skip.swift +465 -0
  236. package/ios/TrackPlayer+SleepTimer.swift +175 -0
  237. package/ios/TrackPlayer+State.swift +108 -0
  238. package/ios/TrackPlayer+Threading.swift +135 -0
  239. package/ios/TrackPlayer+Transport.swift +272 -0
  240. package/ios/TrackPlayer+Window.swift +227 -0
  241. package/ios/TrackPlayer.swift +331 -4619
  242. package/ios/Visualizer.swift +6 -5
  243. package/ios/tests-harness/Podfile +1 -1
  244. package/ios/tests-harness/TestHost.xcodeproj/project.pbxproj +19 -11
  245. package/ios/tests-harness/scripts/seed-xcodeproj.rb +2 -2
  246. package/lib/module/hooks/useActiveTrack.js +29 -22
  247. package/lib/module/hooks/useActiveTrack.js.map +1 -1
  248. package/lib/module/hooks/useCast.js +8 -26
  249. package/lib/module/hooks/useCast.js.map +1 -1
  250. package/lib/module/hooks/useEqualizer.js +19 -12
  251. package/lib/module/hooks/useEqualizer.js.map +1 -1
  252. package/lib/module/hooks/useLookaheadCache.js +3 -7
  253. package/lib/module/hooks/useLookaheadCache.js.map +1 -1
  254. package/lib/module/hooks/useQueue.js +66 -19
  255. package/lib/module/hooks/useQueue.js.map +1 -1
  256. package/lib/module/index.js +6 -3
  257. package/lib/module/index.js.map +1 -1
  258. package/lib/module/queueDelta.js +41 -0
  259. package/lib/module/queueDelta.js.map +1 -0
  260. package/lib/module/types.js +28 -5
  261. package/lib/module/types.js.map +1 -1
  262. package/lib/typescript/TrackPlayer.nitro.d.ts +53 -28
  263. package/lib/typescript/TrackPlayer.nitro.d.ts.map +1 -1
  264. package/lib/typescript/hooks/useActiveTrack.d.ts +5 -7
  265. package/lib/typescript/hooks/useActiveTrack.d.ts.map +1 -1
  266. package/lib/typescript/hooks/useCast.d.ts +6 -1
  267. package/lib/typescript/hooks/useCast.d.ts.map +1 -1
  268. package/lib/typescript/hooks/useEqualizer.d.ts +2 -1
  269. package/lib/typescript/hooks/useEqualizer.d.ts.map +1 -1
  270. package/lib/typescript/hooks/useLookaheadCache.d.ts.map +1 -1
  271. package/lib/typescript/hooks/useQueue.d.ts +4 -4
  272. package/lib/typescript/hooks/useQueue.d.ts.map +1 -1
  273. package/lib/typescript/index.d.ts +2 -1
  274. package/lib/typescript/index.d.ts.map +1 -1
  275. package/lib/typescript/queueDelta.d.ts +10 -0
  276. package/lib/typescript/queueDelta.d.ts.map +1 -0
  277. package/lib/typescript/types.d.ts +168 -12
  278. package/lib/typescript/types.d.ts.map +1 -1
  279. package/nitrogen/generated/android/c++/JFunc_void_QueueChangeDelta_double_QueueChangeReason.hpp +85 -0
  280. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +45 -19
  281. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +3 -3
  282. package/nitrogen/generated/android/c++/JLookaheadCacheConfig.hpp +8 -4
  283. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +5 -1
  284. package/nitrogen/generated/android/c++/JQueueChangeDelta.hpp +128 -0
  285. package/nitrogen/generated/android/c++/JTrackItem.hpp +19 -3
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_BrowseItem______std__string.kt +0 -2
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem______MediaSearchRequest.kt +0 -2
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem______std__string.kt +0 -2
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void.kt +0 -2
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_AudioRoute.kt +0 -2
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_BufferState.kt +0 -2
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CacheStatus.kt +0 -2
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastDiscoveryState.kt +0 -2
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastLocalNetworkPermissionEvent.kt +0 -2
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastRoute.kt +0 -2
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastSessionDiedEvent.kt +0 -2
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlaybackError.kt +0 -2
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlayerProgress.kt +0 -2
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlayerState_StateChangeReason.kt +0 -2
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/{Func_void_std__vector_TrackItem__double_QueueChangeReason.kt → Func_void_QueueChangeDelta_double_QueueChangeReason.kt} +14 -16
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_ServiceReadyReason.kt +0 -2
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_SkipCapability.kt +0 -2
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_SleepTimerState.kt +0 -2
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_VisualizerErrorReason.kt +0 -2
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_VisualizerFrame.kt +0 -2
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_bool.kt +0 -2
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_double_double.kt +0 -2
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__optional_TrackItem__double_TrackChangeReason_std__optional_double_.kt +0 -2
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__optional_std__variant_nitro__NullType__NowPlayingFormat__.kt +0 -2
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__vector_CastReceiver_.kt +0 -2
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__vector_EqualizerBand_.kt +0 -2
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridCastManagerSpec.kt +2 -0
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridEqualizerSpec.kt +2 -0
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridTrackPlayerSpec.kt +6 -4
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridVisualizerSpec.kt +2 -0
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/LookaheadCacheConfig.kt +9 -4
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/PlayerConfig.kt +7 -2
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/QueueChangeDelta.kt +86 -0
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/TrackItem.kt +24 -4
  320. package/nitrogen/generated/android/queueplayerOnLoad.cpp +2 -2
  321. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Bridge.cpp +16 -16
  322. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Bridge.hpp +80 -65
  323. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Umbrella.hpp +3 -0
  324. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +6 -3
  325. package/nitrogen/generated/ios/swift/Func_void_CacheStatus.swift +5 -5
  326. package/nitrogen/generated/ios/swift/Func_void_QueueChangeDelta_double_QueueChangeReason.swift +46 -0
  327. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +3 -3
  328. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +32 -24
  329. package/nitrogen/generated/ios/swift/LookaheadCacheConfig.swift +20 -2
  330. package/nitrogen/generated/ios/swift/PlayerConfig.swift +19 -1
  331. package/nitrogen/generated/ios/swift/QueueChangeDelta.swift +82 -0
  332. package/nitrogen/generated/ios/swift/TrackItem.swift +73 -1
  333. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +6 -3
  334. package/nitrogen/generated/shared/c++/LookaheadCacheConfig.hpp +7 -3
  335. package/nitrogen/generated/shared/c++/PlayerConfig.hpp +5 -1
  336. package/nitrogen/generated/shared/c++/QueueChangeDelta.hpp +113 -0
  337. package/nitrogen/generated/shared/c++/TrackItem.hpp +18 -2
  338. package/package.json +8 -8
  339. package/src/TrackPlayer.nitro.ts +53 -27
  340. package/src/hooks/useActiveTrack.ts +29 -22
  341. package/src/hooks/useCast.ts +14 -15
  342. package/src/hooks/useEqualizer.ts +19 -12
  343. package/src/hooks/useLookaheadCache.ts +3 -7
  344. package/src/hooks/useQueue.ts +66 -17
  345. package/src/index.ts +13 -3
  346. package/src/queueDelta.ts +41 -0
  347. package/src/types.ts +169 -12
  348. package/android/src/main/java/com/margelo/nitro/queueplayer/PendingIntentBuffer.kt +0 -82
  349. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/LocalMediaServerLifecycle.kt +0 -15
  350. package/android/src/test/java/com/margelo/nitro/queueplayer/PendingIntentBufferTest.kt +0 -192
  351. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackEngineInterfaceTest.kt +0 -135
  352. package/android/src/test/java/com/margelo/nitro/queueplayer/SmokeTest.kt +0 -27
  353. package/ios/Cast/Core/LocalAddressMonitor.swift +0 -110
  354. package/ios/Cast/Core/MediaHTTPConnection.swift +0 -349
  355. package/ios/MetadataReader.swift +0 -555
  356. package/ios/Tests/CrossfadeEngineStubTests.swift +0 -43
  357. package/ios/Tests/MetadataReaderTests.swift +0 -603
  358. package/ios/Tests/PlaybackEngineProtocolTests.swift +0 -92
  359. package/ios/Tests/VoiceDonationTests.swift +0 -26
  360. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double_QueueChangeReason.hpp +0 -101
  361. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__double_QueueChangeReason.swift +0 -46
  362. /package/ios/{Cast/Core → MediaServer}/MimeTypes.swift +0 -0
@@ -10,7 +10,6 @@ package com.margelo.nitro.queueplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
- import dalvik.annotation.optimization.FastNative
14
13
 
15
14
 
16
15
  /**
@@ -59,7 +58,6 @@ class Func_void_std__vector_EqualizerBand__cxx: Func_void_std__vector_EqualizerB
59
58
  override fun invoke(bands: Array<EqualizerBand>): Unit
60
59
  = invoke_cxx(bands)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(bands: Array<EqualizerBand>): Unit
64
62
  }
65
63
 
@@ -10,6 +10,7 @@ package com.margelo.nitro.queueplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
13
14
  import com.margelo.nitro.core.Promise
14
15
  import com.margelo.nitro.core.HybridObject
15
16
 
@@ -157,6 +158,7 @@ abstract class HybridCastManagerSpec: HybridObject() {
157
158
  @Keep
158
159
  protected open class CxxPart(javaPart: HybridCastManagerSpec): HybridObject.CxxPart(javaPart) {
159
160
  // C++ JHybridCastManagerSpec::CxxPart::initHybrid(...)
161
+ @FastNative
160
162
  external override fun initHybrid(): HybridData
161
163
  }
162
164
  override fun createCxxPart(): CxxPart {
@@ -10,6 +10,7 @@ package com.margelo.nitro.queueplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
13
14
  import com.margelo.nitro.core.Promise
14
15
  import com.margelo.nitro.core.HybridObject
15
16
 
@@ -97,6 +98,7 @@ abstract class HybridEqualizerSpec: HybridObject() {
97
98
  @Keep
98
99
  protected open class CxxPart(javaPart: HybridEqualizerSpec): HybridObject.CxxPart(javaPart) {
99
100
  // C++ JHybridEqualizerSpec::CxxPart::initHybrid(...)
101
+ @FastNative
100
102
  external override fun initHybrid(): HybridData
101
103
  }
102
104
  override fun createCxxPart(): CxxPart {
@@ -10,6 +10,7 @@ package com.margelo.nitro.queueplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
13
14
  import com.margelo.nitro.core.Promise
14
15
  import com.margelo.nitro.core.NullType
15
16
  import com.margelo.nitro.core.HybridObject
@@ -56,7 +57,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
56
57
 
57
58
  @DoNotStrip
58
59
  @Keep
59
- abstract fun getQueue(): Array<TrackItem>
60
+ abstract fun getQueue(): Promise<Array<TrackItem>>
60
61
 
61
62
  @DoNotStrip
62
63
  @Keep
@@ -212,11 +213,11 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
212
213
  return Func_void_java(__result)
213
214
  }
214
215
 
215
- abstract fun onQueueChange(callback: (queue: Array<TrackItem>, currentIndex: Double, reason: QueueChangeReason) -> Unit): () -> Unit
216
+ abstract fun onQueueChange(callback: (delta: QueueChangeDelta, currentIndex: Double, reason: QueueChangeReason) -> Unit): () -> Unit
216
217
 
217
218
  @DoNotStrip
218
219
  @Keep
219
- private fun onQueueChange_cxx(callback: Func_void_std__vector_TrackItem__double_QueueChangeReason): Func_void {
220
+ private fun onQueueChange_cxx(callback: Func_void_QueueChangeDelta_double_QueueChangeReason): Func_void {
220
221
  val __result = onQueueChange(callback)
221
222
  return Func_void_java(__result)
222
223
  }
@@ -374,7 +375,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
374
375
 
375
376
  @DoNotStrip
376
377
  @Keep
377
- abstract fun getLookaheadCacheStatus(): CacheStatus
378
+ abstract fun getLookaheadCacheStatus(): Promise<CacheStatus>
378
379
 
379
380
  @DoNotStrip
380
381
  @Keep
@@ -420,6 +421,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
420
421
  @Keep
421
422
  protected open class CxxPart(javaPart: HybridTrackPlayerSpec): HybridObject.CxxPart(javaPart) {
422
423
  // C++ JHybridTrackPlayerSpec::CxxPart::initHybrid(...)
424
+ @FastNative
423
425
  external override fun initHybrid(): HybridData
424
426
  }
425
427
  override fun createCxxPart(): CxxPart {
@@ -10,6 +10,7 @@ package com.margelo.nitro.queueplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
13
14
  import com.margelo.nitro.core.HybridObject
14
15
 
15
16
  /**
@@ -51,6 +52,7 @@ abstract class HybridVisualizerSpec: HybridObject() {
51
52
  @Keep
52
53
  protected open class CxxPart(javaPart: HybridVisualizerSpec): HybridObject.CxxPart(javaPart) {
53
54
  // C++ JHybridVisualizerSpec::CxxPart::initHybrid(...)
55
+ @FastNative
54
56
  external override fun initHybrid(): HybridData
55
57
  }
56
58
  override fun createCxxPart(): CxxPart {
@@ -23,7 +23,10 @@ data class LookaheadCacheConfig(
23
23
  val enabled: Boolean,
24
24
  @DoNotStrip
25
25
  @Keep
26
- val lookaheadCount: Double
26
+ val lookaheadCount: Double,
27
+ @DoNotStrip
28
+ @Keep
29
+ val allowsCellularAccess: Boolean?
27
30
  ) {
28
31
  /* primary constructor */
29
32
 
@@ -32,12 +35,14 @@ data class LookaheadCacheConfig(
32
35
  if (other !is LookaheadCacheConfig) return false
33
36
  return Objects.deepEquals(this.enabled, other.enabled)
34
37
  && Objects.deepEquals(this.lookaheadCount, other.lookaheadCount)
38
+ && Objects.deepEquals(this.allowsCellularAccess, other.allowsCellularAccess)
35
39
  }
36
40
 
37
41
  override fun hashCode(): Int {
38
42
  return arrayOf<Any?>(
39
43
  enabled,
40
- lookaheadCount
44
+ lookaheadCount,
45
+ allowsCellularAccess
41
46
  ).contentDeepHashCode()
42
47
  }
43
48
 
@@ -49,8 +54,8 @@ data class LookaheadCacheConfig(
49
54
  @Keep
50
55
  @Suppress("unused")
51
56
  @JvmStatic
52
- private fun fromCpp(enabled: Boolean, lookaheadCount: Double): LookaheadCacheConfig {
53
- return LookaheadCacheConfig(enabled, lookaheadCount)
57
+ private fun fromCpp(enabled: Boolean, lookaheadCount: Double, allowsCellularAccess: Boolean?): LookaheadCacheConfig {
58
+ return LookaheadCacheConfig(enabled, lookaheadCount, allowsCellularAccess)
54
59
  }
55
60
  }
56
61
  }
@@ -44,6 +44,9 @@ data class PlayerConfig(
44
44
  val audioCategoryOptions: AudioCategoryOptions?,
45
45
  @DoNotStrip
46
46
  @Keep
47
+ val voiceVocabularyDonationEnabled: Boolean?,
48
+ @DoNotStrip
49
+ @Keep
47
50
  val visualizationEnabled: Boolean?,
48
51
  @DoNotStrip
49
52
  @Keep
@@ -77,6 +80,7 @@ data class PlayerConfig(
77
80
  && Objects.deepEquals(this.networkTimeoutMs, other.networkTimeoutMs)
78
81
  && Objects.deepEquals(this.audioContentType, other.audioContentType)
79
82
  && Objects.deepEquals(this.audioCategoryOptions, other.audioCategoryOptions)
83
+ && Objects.deepEquals(this.voiceVocabularyDonationEnabled, other.voiceVocabularyDonationEnabled)
80
84
  && Objects.deepEquals(this.visualizationEnabled, other.visualizationEnabled)
81
85
  && Objects.deepEquals(this.clampSeekToBuffered, other.clampSeekToBuffered)
82
86
  && Objects.deepEquals(this.skipToPreviousBehavior, other.skipToPreviousBehavior)
@@ -96,6 +100,7 @@ data class PlayerConfig(
96
100
  networkTimeoutMs,
97
101
  audioContentType,
98
102
  audioCategoryOptions,
103
+ voiceVocabularyDonationEnabled,
99
104
  visualizationEnabled,
100
105
  clampSeekToBuffered,
101
106
  skipToPreviousBehavior,
@@ -114,8 +119,8 @@ data class PlayerConfig(
114
119
  @Keep
115
120
  @Suppress("unused")
116
121
  @JvmStatic
117
- private fun fromCpp(httpHeaders: Map<String, String>?, userAgent: String?, placeholderArtworkUri: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, visualizationEnabled: Boolean?, clampSeekToBuffered: Boolean?, skipToPreviousBehavior: SkipToPreviousBehavior?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?): PlayerConfig {
118
- return PlayerConfig(httpHeaders, userAgent, placeholderArtworkUri, autoRetries, retryBackoffMs, networkTimeoutMs, audioContentType, audioCategoryOptions, visualizationEnabled, clampSeekToBuffered, skipToPreviousBehavior, lookaheadCacheMaxSizeMb, lookaheadCacheEvictionPolicy, progressUpdateIntervalMs, backgroundProgressUpdateIntervalMs)
122
+ private fun fromCpp(httpHeaders: Map<String, String>?, userAgent: String?, placeholderArtworkUri: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, voiceVocabularyDonationEnabled: Boolean?, visualizationEnabled: Boolean?, clampSeekToBuffered: Boolean?, skipToPreviousBehavior: SkipToPreviousBehavior?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?): PlayerConfig {
123
+ return PlayerConfig(httpHeaders, userAgent, placeholderArtworkUri, autoRetries, retryBackoffMs, networkTimeoutMs, audioContentType, audioCategoryOptions, voiceVocabularyDonationEnabled, visualizationEnabled, clampSeekToBuffered, skipToPreviousBehavior, lookaheadCacheMaxSizeMb, lookaheadCacheEvictionPolicy, progressUpdateIntervalMs, backgroundProgressUpdateIntervalMs)
119
124
  }
120
125
  }
121
126
  }
@@ -0,0 +1,86 @@
1
+ ///
2
+ /// QueueChangeDelta.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.queueplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import java.util.Objects
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "QueueChangeDelta".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class QueueChangeDelta(
21
+ @DoNotStrip
22
+ @Keep
23
+ val revision: Double,
24
+ @DoNotStrip
25
+ @Keep
26
+ val length: Double,
27
+ @DoNotStrip
28
+ @Keep
29
+ val inserted: Array<TrackItem>,
30
+ @DoNotStrip
31
+ @Keep
32
+ val insertedAt: Double,
33
+ @DoNotStrip
34
+ @Keep
35
+ val removed: DoubleArray,
36
+ @DoNotStrip
37
+ @Keep
38
+ val movedFrom: Double,
39
+ @DoNotStrip
40
+ @Keep
41
+ val movedTo: Double,
42
+ @DoNotStrip
43
+ @Keep
44
+ val order: DoubleArray
45
+ ) {
46
+ /* primary constructor */
47
+
48
+ override fun equals(other: Any?): Boolean {
49
+ if (this === other) return true
50
+ if (other !is QueueChangeDelta) return false
51
+ return Objects.deepEquals(this.revision, other.revision)
52
+ && Objects.deepEquals(this.length, other.length)
53
+ && Objects.deepEquals(this.inserted, other.inserted)
54
+ && Objects.deepEquals(this.insertedAt, other.insertedAt)
55
+ && Objects.deepEquals(this.removed, other.removed)
56
+ && Objects.deepEquals(this.movedFrom, other.movedFrom)
57
+ && Objects.deepEquals(this.movedTo, other.movedTo)
58
+ && Objects.deepEquals(this.order, other.order)
59
+ }
60
+
61
+ override fun hashCode(): Int {
62
+ return arrayOf<Any?>(
63
+ revision,
64
+ length,
65
+ inserted,
66
+ insertedAt,
67
+ removed,
68
+ movedFrom,
69
+ movedTo,
70
+ order
71
+ ).contentDeepHashCode()
72
+ }
73
+
74
+ companion object {
75
+ /**
76
+ * Constructor called from C++
77
+ */
78
+ @DoNotStrip
79
+ @Keep
80
+ @Suppress("unused")
81
+ @JvmStatic
82
+ private fun fromCpp(revision: Double, length: Double, inserted: Array<TrackItem>, insertedAt: Double, removed: DoubleArray, movedFrom: Double, movedTo: Double, order: DoubleArray): QueueChangeDelta {
83
+ return QueueChangeDelta(revision, length, inserted, insertedAt, removed, movedFrom, movedTo, order)
84
+ }
85
+ }
86
+ }
@@ -41,7 +41,19 @@ data class TrackItem(
41
41
  val artworkUrl: String?,
42
42
  @DoNotStrip
43
43
  @Keep
44
- val extras: Map<String, String>?
44
+ val extras: Map<String, String>?,
45
+ @DoNotStrip
46
+ @Keep
47
+ val replayGainTrackGain: Double?,
48
+ @DoNotStrip
49
+ @Keep
50
+ val replayGainTrackPeak: Double?,
51
+ @DoNotStrip
52
+ @Keep
53
+ val replayGainAlbumGain: Double?,
54
+ @DoNotStrip
55
+ @Keep
56
+ val replayGainAlbumPeak: Double?
45
57
  ) {
46
58
  /* primary constructor */
47
59
 
@@ -56,6 +68,10 @@ data class TrackItem(
56
68
  && Objects.deepEquals(this.duration, other.duration)
57
69
  && Objects.deepEquals(this.artworkUrl, other.artworkUrl)
58
70
  && Objects.deepEquals(this.extras, other.extras)
71
+ && Objects.deepEquals(this.replayGainTrackGain, other.replayGainTrackGain)
72
+ && Objects.deepEquals(this.replayGainTrackPeak, other.replayGainTrackPeak)
73
+ && Objects.deepEquals(this.replayGainAlbumGain, other.replayGainAlbumGain)
74
+ && Objects.deepEquals(this.replayGainAlbumPeak, other.replayGainAlbumPeak)
59
75
  }
60
76
 
61
77
  override fun hashCode(): Int {
@@ -67,7 +83,11 @@ data class TrackItem(
67
83
  album,
68
84
  duration,
69
85
  artworkUrl,
70
- extras
86
+ extras,
87
+ replayGainTrackGain,
88
+ replayGainTrackPeak,
89
+ replayGainAlbumGain,
90
+ replayGainAlbumPeak
71
91
  ).contentDeepHashCode()
72
92
  }
73
93
 
@@ -79,8 +99,8 @@ data class TrackItem(
79
99
  @Keep
80
100
  @Suppress("unused")
81
101
  @JvmStatic
82
- private fun fromCpp(id: String?, url: String, title: String?, artist: String?, album: String?, duration: Double?, artworkUrl: String?, extras: Map<String, String>?): TrackItem {
83
- return TrackItem(id, url, title, artist, album, duration, artworkUrl, extras)
102
+ private fun fromCpp(id: String?, url: String, title: String?, artist: String?, album: String?, duration: Double?, artworkUrl: String?, extras: Map<String, String>?, replayGainTrackGain: Double?, replayGainTrackPeak: Double?, replayGainAlbumGain: Double?, replayGainAlbumPeak: Double?): TrackItem {
103
+ return TrackItem(id, url, title, artist, album, duration, artworkUrl, extras, replayGainTrackGain, replayGainTrackPeak, replayGainAlbumGain, replayGainAlbumPeak)
84
104
  }
85
105
  }
86
106
  }
@@ -29,7 +29,7 @@
29
29
  #include "JHybridTrackPlayerSpec.hpp"
30
30
  #include "JFunc_void_PlayerState_StateChangeReason.hpp"
31
31
  #include "JFunc_void_std__optional_TrackItem__double_TrackChangeReason_std__optional_double_.hpp"
32
- #include "JFunc_void_std__vector_TrackItem__double_QueueChangeReason.hpp"
32
+ #include "JFunc_void_QueueChangeDelta_double_QueueChangeReason.hpp"
33
33
  #include "JFunc_void_PlayerProgress.hpp"
34
34
  #include "JFunc_void_double_double.hpp"
35
35
  #include "JFunc_void_PlaybackError.hpp"
@@ -107,7 +107,7 @@ void registerAllNatives() {
107
107
  margelo::nitro::queueplayer::JHybridTrackPlayerSpec::CxxPart::registerNatives();
108
108
  margelo::nitro::queueplayer::JFunc_void_PlayerState_StateChangeReason_cxx::registerNatives();
109
109
  margelo::nitro::queueplayer::JFunc_void_std__optional_TrackItem__double_TrackChangeReason_std__optional_double__cxx::registerNatives();
110
- margelo::nitro::queueplayer::JFunc_void_std__vector_TrackItem__double_QueueChangeReason_cxx::registerNatives();
110
+ margelo::nitro::queueplayer::JFunc_void_QueueChangeDelta_double_QueueChangeReason_cxx::registerNatives();
111
111
  margelo::nitro::queueplayer::JFunc_void_PlayerProgress_cxx::registerNatives();
112
112
  margelo::nitro::queueplayer::JFunc_void_double_double_cxx::registerNatives();
113
113
  margelo::nitro::queueplayer::JFunc_void_PlaybackError_cxx::registerNatives();
@@ -137,6 +137,14 @@ namespace margelo::nitro::queueplayer::bridge::swift {
137
137
  return swiftPart.toUnsafe();
138
138
  }
139
139
 
140
+ // pragma MARK: std::function<void(const std::vector<TrackItem>& /* result */)>
141
+ Func_void_std__vector_TrackItem_ create_Func_void_std__vector_TrackItem_(void* NON_NULL swiftClosureWrapper) noexcept {
142
+ auto swiftClosure = QueuePlayer::Func_void_std__vector_TrackItem_::fromUnsafe(swiftClosureWrapper);
143
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<TrackItem>& result) mutable -> void {
144
+ swiftClosure.call(result);
145
+ };
146
+ }
147
+
140
148
  // pragma MARK: std::function<void(const ShuffleResult& /* result */)>
141
149
  Func_void_ShuffleResult create_Func_void_ShuffleResult(void* NON_NULL swiftClosureWrapper) noexcept {
142
150
  auto swiftClosure = QueuePlayer::Func_void_ShuffleResult::fromUnsafe(swiftClosureWrapper);
@@ -161,11 +169,11 @@ namespace margelo::nitro::queueplayer::bridge::swift {
161
169
  };
162
170
  }
163
171
 
164
- // pragma MARK: std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>
165
- Func_void_std__vector_TrackItem__double_QueueChangeReason create_Func_void_std__vector_TrackItem__double_QueueChangeReason(void* NON_NULL swiftClosureWrapper) noexcept {
166
- auto swiftClosure = QueuePlayer::Func_void_std__vector_TrackItem__double_QueueChangeReason::fromUnsafe(swiftClosureWrapper);
167
- return [swiftClosure = std::move(swiftClosure)](const std::vector<TrackItem>& queue, double currentIndex, QueueChangeReason reason) mutable -> void {
168
- swiftClosure.call(queue, currentIndex, static_cast<int>(reason));
172
+ // pragma MARK: std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>
173
+ Func_void_QueueChangeDelta_double_QueueChangeReason create_Func_void_QueueChangeDelta_double_QueueChangeReason(void* NON_NULL swiftClosureWrapper) noexcept {
174
+ auto swiftClosure = QueuePlayer::Func_void_QueueChangeDelta_double_QueueChangeReason::fromUnsafe(swiftClosureWrapper);
175
+ return [swiftClosure = std::move(swiftClosure)](const QueueChangeDelta& delta, double currentIndex, QueueChangeReason reason) mutable -> void {
176
+ swiftClosure.call(delta, currentIndex, static_cast<int>(reason));
169
177
  };
170
178
  }
171
179
 
@@ -242,14 +250,6 @@ namespace margelo::nitro::queueplayer::bridge::swift {
242
250
  };
243
251
  }
244
252
 
245
- // pragma MARK: std::function<void(const std::vector<TrackItem>& /* result */)>
246
- Func_void_std__vector_TrackItem_ create_Func_void_std__vector_TrackItem_(void* NON_NULL swiftClosureWrapper) noexcept {
247
- auto swiftClosure = QueuePlayer::Func_void_std__vector_TrackItem_::fromUnsafe(swiftClosureWrapper);
248
- return [swiftClosure = std::move(swiftClosure)](const std::vector<TrackItem>& result) mutable -> void {
249
- swiftClosure.call(result);
250
- };
251
- }
252
-
253
253
  // pragma MARK: std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<std::vector<TrackItem>>>>>(const MediaSearchRequest& /* request */)>
254
254
  Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem______MediaSearchRequest create_Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem______MediaSearchRequest(void* NON_NULL swiftClosureWrapper) noexcept {
255
255
  auto swiftClosure = QueuePlayer::Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem______MediaSearchRequest::fromUnsafe(swiftClosureWrapper);
@@ -284,11 +284,11 @@ namespace margelo::nitro::queueplayer::bridge::swift {
284
284
  };
285
285
  }
286
286
 
287
- // pragma MARK: std::function<void(const CacheStatus& /* status */)>
287
+ // pragma MARK: std::function<void(const CacheStatus& /* result */)>
288
288
  Func_void_CacheStatus create_Func_void_CacheStatus(void* NON_NULL swiftClosureWrapper) noexcept {
289
289
  auto swiftClosure = QueuePlayer::Func_void_CacheStatus::fromUnsafe(swiftClosureWrapper);
290
- return [swiftClosure = std::move(swiftClosure)](const CacheStatus& status) mutable -> void {
291
- swiftClosure.call(status);
290
+ return [swiftClosure = std::move(swiftClosure)](const CacheStatus& result) mutable -> void {
291
+ swiftClosure.call(result);
292
292
  };
293
293
  }
294
294
 
@@ -98,6 +98,8 @@ namespace margelo::nitro::queueplayer { struct PlaybackMode; }
98
98
  namespace margelo::nitro::queueplayer { struct PlayerProgress; }
99
99
  // Forward declaration of `PlayerState` to properly resolve imports.
100
100
  namespace margelo::nitro::queueplayer { enum class PlayerState; }
101
+ // Forward declaration of `QueueChangeDelta` to properly resolve imports.
102
+ namespace margelo::nitro::queueplayer { struct QueueChangeDelta; }
101
103
  // Forward declaration of `QueueChangeReason` to properly resolve imports.
102
104
  namespace margelo::nitro::queueplayer { enum class QueueChangeReason; }
103
105
  // Forward declaration of `RemoteControlOptions` to properly resolve imports.
@@ -184,6 +186,7 @@ namespace QueuePlayer { class HybridVisualizerSpec_cxx; }
184
186
  #include "PlaybackMode.hpp"
185
187
  #include "PlayerProgress.hpp"
186
188
  #include "PlayerState.hpp"
189
+ #include "QueueChangeDelta.hpp"
187
190
  #include "QueueChangeReason.hpp"
188
191
  #include "RemoteControlOptions.hpp"
189
192
  #include "ReplayGainMode.hpp"
@@ -829,6 +832,40 @@ namespace margelo::nitro::queueplayer::bridge::swift {
829
832
  return vector;
830
833
  }
831
834
 
835
+ // pragma MARK: std::shared_ptr<Promise<std::vector<TrackItem>>>
836
+ /**
837
+ * Specialized version of `std::shared_ptr<Promise<std::vector<TrackItem>>>`.
838
+ */
839
+ using std__shared_ptr_Promise_std__vector_TrackItem___ = std::shared_ptr<Promise<std::vector<TrackItem>>>;
840
+ inline std::shared_ptr<Promise<std::vector<TrackItem>>> create_std__shared_ptr_Promise_std__vector_TrackItem___() noexcept {
841
+ return Promise<std::vector<TrackItem>>::create();
842
+ }
843
+ inline PromiseHolder<std::vector<TrackItem>> wrap_std__shared_ptr_Promise_std__vector_TrackItem___(std::shared_ptr<Promise<std::vector<TrackItem>>> promise) noexcept {
844
+ return PromiseHolder<std::vector<TrackItem>>(std::move(promise));
845
+ }
846
+
847
+ // pragma MARK: std::function<void(const std::vector<TrackItem>& /* result */)>
848
+ /**
849
+ * Specialized version of `std::function<void(const std::vector<TrackItem>&)>`.
850
+ */
851
+ using Func_void_std__vector_TrackItem_ = std::function<void(const std::vector<TrackItem>& /* result */)>;
852
+ /**
853
+ * Wrapper class for a `std::function<void(const std::vector<TrackItem>& / * result * /)>`, this can be used from Swift.
854
+ */
855
+ class Func_void_std__vector_TrackItem__Wrapper final {
856
+ public:
857
+ explicit Func_void_std__vector_TrackItem__Wrapper(std::function<void(const std::vector<TrackItem>& /* result */)>&& func): _function(std::make_unique<std::function<void(const std::vector<TrackItem>& /* result */)>>(std::move(func))) {}
858
+ inline void call(std::vector<TrackItem> result) const noexcept {
859
+ _function->operator()(result);
860
+ }
861
+ private:
862
+ std::unique_ptr<std::function<void(const std::vector<TrackItem>& /* result */)>> _function;
863
+ } SWIFT_NONCOPYABLE;
864
+ Func_void_std__vector_TrackItem_ create_Func_void_std__vector_TrackItem_(void* NON_NULL swiftClosureWrapper) noexcept;
865
+ inline Func_void_std__vector_TrackItem__Wrapper wrap_Func_void_std__vector_TrackItem_(Func_void_std__vector_TrackItem_ value) noexcept {
866
+ return Func_void_std__vector_TrackItem__Wrapper(std::move(value));
867
+ }
868
+
832
869
  // pragma MARK: std::optional<TrackItem>
833
870
  /**
834
871
  * Specialized version of `std::optional<TrackItem>`.
@@ -937,26 +974,26 @@ namespace margelo::nitro::queueplayer::bridge::swift {
937
974
  return Func_void_std__optional_TrackItem__double_TrackChangeReason_std__optional_double__Wrapper(std::move(value));
938
975
  }
939
976
 
940
- // pragma MARK: std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>
977
+ // pragma MARK: std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>
941
978
  /**
942
- * Specialized version of `std::function<void(const std::vector<TrackItem>&, double, QueueChangeReason)>`.
979
+ * Specialized version of `std::function<void(const QueueChangeDelta&, double, QueueChangeReason)>`.
943
980
  */
944
- using Func_void_std__vector_TrackItem__double_QueueChangeReason = std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>;
981
+ using Func_void_QueueChangeDelta_double_QueueChangeReason = std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>;
945
982
  /**
946
- * Wrapper class for a `std::function<void(const std::vector<TrackItem>& / * queue * /, double / * currentIndex * /, QueueChangeReason / * reason * /)>`, this can be used from Swift.
983
+ * Wrapper class for a `std::function<void(const QueueChangeDelta& / * delta * /, double / * currentIndex * /, QueueChangeReason / * reason * /)>`, this can be used from Swift.
947
984
  */
948
- class Func_void_std__vector_TrackItem__double_QueueChangeReason_Wrapper final {
985
+ class Func_void_QueueChangeDelta_double_QueueChangeReason_Wrapper final {
949
986
  public:
950
- explicit Func_void_std__vector_TrackItem__double_QueueChangeReason_Wrapper(std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>&& func): _function(std::make_unique<std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>>(std::move(func))) {}
951
- inline void call(std::vector<TrackItem> queue, double currentIndex, int reason) const noexcept {
952
- _function->operator()(queue, currentIndex, static_cast<QueueChangeReason>(reason));
987
+ explicit Func_void_QueueChangeDelta_double_QueueChangeReason_Wrapper(std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>&& func): _function(std::make_unique<std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>>(std::move(func))) {}
988
+ inline void call(QueueChangeDelta delta, double currentIndex, int reason) const noexcept {
989
+ _function->operator()(delta, currentIndex, static_cast<QueueChangeReason>(reason));
953
990
  }
954
991
  private:
955
- std::unique_ptr<std::function<void(const std::vector<TrackItem>& /* queue */, double /* currentIndex */, QueueChangeReason /* reason */)>> _function;
992
+ std::unique_ptr<std::function<void(const QueueChangeDelta& /* delta */, double /* currentIndex */, QueueChangeReason /* reason */)>> _function;
956
993
  } SWIFT_NONCOPYABLE;
957
- Func_void_std__vector_TrackItem__double_QueueChangeReason create_Func_void_std__vector_TrackItem__double_QueueChangeReason(void* NON_NULL swiftClosureWrapper) noexcept;
958
- inline Func_void_std__vector_TrackItem__double_QueueChangeReason_Wrapper wrap_Func_void_std__vector_TrackItem__double_QueueChangeReason(Func_void_std__vector_TrackItem__double_QueueChangeReason value) noexcept {
959
- return Func_void_std__vector_TrackItem__double_QueueChangeReason_Wrapper(std::move(value));
994
+ Func_void_QueueChangeDelta_double_QueueChangeReason create_Func_void_QueueChangeDelta_double_QueueChangeReason(void* NON_NULL swiftClosureWrapper) noexcept;
995
+ inline Func_void_QueueChangeDelta_double_QueueChangeReason_Wrapper wrap_Func_void_QueueChangeDelta_double_QueueChangeReason(Func_void_QueueChangeDelta_double_QueueChangeReason value) noexcept {
996
+ return Func_void_QueueChangeDelta_double_QueueChangeReason_Wrapper(std::move(value));
960
997
  }
961
998
 
962
999
  // pragma MARK: std::function<void(const PlayerProgress& /* progress */)>
@@ -1219,40 +1256,6 @@ namespace margelo::nitro::queueplayer::bridge::swift {
1219
1256
  return Func_void_std__shared_ptr_Promise_std__vector_BrowseItem____Wrapper(std::move(value));
1220
1257
  }
1221
1258
 
1222
- // pragma MARK: std::shared_ptr<Promise<std::vector<TrackItem>>>
1223
- /**
1224
- * Specialized version of `std::shared_ptr<Promise<std::vector<TrackItem>>>`.
1225
- */
1226
- using std__shared_ptr_Promise_std__vector_TrackItem___ = std::shared_ptr<Promise<std::vector<TrackItem>>>;
1227
- inline std::shared_ptr<Promise<std::vector<TrackItem>>> create_std__shared_ptr_Promise_std__vector_TrackItem___() noexcept {
1228
- return Promise<std::vector<TrackItem>>::create();
1229
- }
1230
- inline PromiseHolder<std::vector<TrackItem>> wrap_std__shared_ptr_Promise_std__vector_TrackItem___(std::shared_ptr<Promise<std::vector<TrackItem>>> promise) noexcept {
1231
- return PromiseHolder<std::vector<TrackItem>>(std::move(promise));
1232
- }
1233
-
1234
- // pragma MARK: std::function<void(const std::vector<TrackItem>& /* result */)>
1235
- /**
1236
- * Specialized version of `std::function<void(const std::vector<TrackItem>&)>`.
1237
- */
1238
- using Func_void_std__vector_TrackItem_ = std::function<void(const std::vector<TrackItem>& /* result */)>;
1239
- /**
1240
- * Wrapper class for a `std::function<void(const std::vector<TrackItem>& / * result * /)>`, this can be used from Swift.
1241
- */
1242
- class Func_void_std__vector_TrackItem__Wrapper final {
1243
- public:
1244
- explicit Func_void_std__vector_TrackItem__Wrapper(std::function<void(const std::vector<TrackItem>& /* result */)>&& func): _function(std::make_unique<std::function<void(const std::vector<TrackItem>& /* result */)>>(std::move(func))) {}
1245
- inline void call(std::vector<TrackItem> result) const noexcept {
1246
- _function->operator()(result);
1247
- }
1248
- private:
1249
- std::unique_ptr<std::function<void(const std::vector<TrackItem>& /* result */)>> _function;
1250
- } SWIFT_NONCOPYABLE;
1251
- Func_void_std__vector_TrackItem_ create_Func_void_std__vector_TrackItem_(void* NON_NULL swiftClosureWrapper) noexcept;
1252
- inline Func_void_std__vector_TrackItem__Wrapper wrap_Func_void_std__vector_TrackItem_(Func_void_std__vector_TrackItem_ value) noexcept {
1253
- return Func_void_std__vector_TrackItem__Wrapper(std::move(value));
1254
- }
1255
-
1256
1259
  // pragma MARK: std::optional<MediaSearchType>
1257
1260
  /**
1258
1261
  * Specialized version of `std::optional<MediaSearchType>`.
@@ -1456,22 +1459,34 @@ namespace margelo::nitro::queueplayer::bridge::swift {
1456
1459
  return Func_void_ServiceReadyReason_Wrapper(std::move(value));
1457
1460
  }
1458
1461
 
1459
- // pragma MARK: std::function<void(const CacheStatus& /* status */)>
1462
+ // pragma MARK: std::shared_ptr<Promise<CacheStatus>>
1463
+ /**
1464
+ * Specialized version of `std::shared_ptr<Promise<CacheStatus>>`.
1465
+ */
1466
+ using std__shared_ptr_Promise_CacheStatus__ = std::shared_ptr<Promise<CacheStatus>>;
1467
+ inline std::shared_ptr<Promise<CacheStatus>> create_std__shared_ptr_Promise_CacheStatus__() noexcept {
1468
+ return Promise<CacheStatus>::create();
1469
+ }
1470
+ inline PromiseHolder<CacheStatus> wrap_std__shared_ptr_Promise_CacheStatus__(std::shared_ptr<Promise<CacheStatus>> promise) noexcept {
1471
+ return PromiseHolder<CacheStatus>(std::move(promise));
1472
+ }
1473
+
1474
+ // pragma MARK: std::function<void(const CacheStatus& /* result */)>
1460
1475
  /**
1461
1476
  * Specialized version of `std::function<void(const CacheStatus&)>`.
1462
1477
  */
1463
- using Func_void_CacheStatus = std::function<void(const CacheStatus& /* status */)>;
1478
+ using Func_void_CacheStatus = std::function<void(const CacheStatus& /* result */)>;
1464
1479
  /**
1465
- * Wrapper class for a `std::function<void(const CacheStatus& / * status * /)>`, this can be used from Swift.
1480
+ * Wrapper class for a `std::function<void(const CacheStatus& / * result * /)>`, this can be used from Swift.
1466
1481
  */
1467
1482
  class Func_void_CacheStatus_Wrapper final {
1468
1483
  public:
1469
- explicit Func_void_CacheStatus_Wrapper(std::function<void(const CacheStatus& /* status */)>&& func): _function(std::make_unique<std::function<void(const CacheStatus& /* status */)>>(std::move(func))) {}
1470
- inline void call(CacheStatus status) const noexcept {
1471
- _function->operator()(status);
1484
+ explicit Func_void_CacheStatus_Wrapper(std::function<void(const CacheStatus& /* result */)>&& func): _function(std::make_unique<std::function<void(const CacheStatus& /* result */)>>(std::move(func))) {}
1485
+ inline void call(CacheStatus result) const noexcept {
1486
+ _function->operator()(result);
1472
1487
  }
1473
1488
  private:
1474
- std::unique_ptr<std::function<void(const CacheStatus& /* status */)>> _function;
1489
+ std::unique_ptr<std::function<void(const CacheStatus& /* result */)>> _function;
1475
1490
  } SWIFT_NONCOPYABLE;
1476
1491
  Func_void_CacheStatus create_Func_void_CacheStatus(void* NON_NULL swiftClosureWrapper) noexcept;
1477
1492
  inline Func_void_CacheStatus_Wrapper wrap_Func_void_CacheStatus(Func_void_CacheStatus value) noexcept {
@@ -1674,13 +1689,13 @@ namespace margelo::nitro::queueplayer::bridge::swift {
1674
1689
  using std__weak_ptr_HybridTrackPlayerSpec_ = std::weak_ptr<HybridTrackPlayerSpec>;
1675
1690
  inline std__weak_ptr_HybridTrackPlayerSpec_ weakify_std__shared_ptr_HybridTrackPlayerSpec_(const std::shared_ptr<HybridTrackPlayerSpec>& strong) noexcept { return strong; }
1676
1691
 
1677
- // pragma MARK: Result<std::vector<TrackItem>>
1678
- using Result_std__vector_TrackItem__ = Result<std::vector<TrackItem>>;
1679
- inline Result_std__vector_TrackItem__ create_Result_std__vector_TrackItem__(const std::vector<TrackItem>& value) noexcept {
1680
- return Result<std::vector<TrackItem>>::withValue(value);
1692
+ // pragma MARK: Result<std::shared_ptr<Promise<std::vector<TrackItem>>>>
1693
+ using Result_std__shared_ptr_Promise_std__vector_TrackItem____ = Result<std::shared_ptr<Promise<std::vector<TrackItem>>>>;
1694
+ inline Result_std__shared_ptr_Promise_std__vector_TrackItem____ create_Result_std__shared_ptr_Promise_std__vector_TrackItem____(const std::shared_ptr<Promise<std::vector<TrackItem>>>& value) noexcept {
1695
+ return Result<std::shared_ptr<Promise<std::vector<TrackItem>>>>::withValue(value);
1681
1696
  }
1682
- inline Result_std__vector_TrackItem__ create_Result_std__vector_TrackItem__(const std::exception_ptr& error) noexcept {
1683
- return Result<std::vector<TrackItem>>::withError(error);
1697
+ inline Result_std__shared_ptr_Promise_std__vector_TrackItem____ create_Result_std__shared_ptr_Promise_std__vector_TrackItem____(const std::exception_ptr& error) noexcept {
1698
+ return Result<std::shared_ptr<Promise<std::vector<TrackItem>>>>::withError(error);
1684
1699
  }
1685
1700
 
1686
1701
  // pragma MARK: Result<PlaybackMode>
@@ -1773,13 +1788,13 @@ namespace margelo::nitro::queueplayer::bridge::swift {
1773
1788
  return Result<void>::withError(error);
1774
1789
  }
1775
1790
 
1776
- // pragma MARK: Result<CacheStatus>
1777
- using Result_CacheStatus_ = Result<CacheStatus>;
1778
- inline Result_CacheStatus_ create_Result_CacheStatus_(const CacheStatus& value) noexcept {
1779
- return Result<CacheStatus>::withValue(value);
1791
+ // pragma MARK: Result<std::shared_ptr<Promise<CacheStatus>>>
1792
+ using Result_std__shared_ptr_Promise_CacheStatus___ = Result<std::shared_ptr<Promise<CacheStatus>>>;
1793
+ inline Result_std__shared_ptr_Promise_CacheStatus___ create_Result_std__shared_ptr_Promise_CacheStatus___(const std::shared_ptr<Promise<CacheStatus>>& value) noexcept {
1794
+ return Result<std::shared_ptr<Promise<CacheStatus>>>::withValue(value);
1780
1795
  }
1781
- inline Result_CacheStatus_ create_Result_CacheStatus_(const std::exception_ptr& error) noexcept {
1782
- return Result<CacheStatus>::withError(error);
1796
+ inline Result_std__shared_ptr_Promise_CacheStatus___ create_Result_std__shared_ptr_Promise_CacheStatus___(const std::exception_ptr& error) noexcept {
1797
+ return Result<std::shared_ptr<Promise<CacheStatus>>>::withError(error);
1783
1798
  }
1784
1799
 
1785
1800
  // pragma MARK: Result<ReplayGainMode>