react-native-queue-player 1.1.2 → 2.0.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 (367) hide show
  1. package/QueuePlayer.podspec +14 -9
  2. package/README.md +3 -3
  3. package/android/build.gradle +7 -0
  4. package/android/consumer-rules.pro +72 -3
  5. package/android/src/main/cpp/airplay2_control.c +4 -4
  6. package/android/src/main/cpp/airplay2_control.h +4 -4
  7. package/android/src/main/cpp/airplay2_jni.cpp +26 -22
  8. package/android/src/main/cpp/airplay2_pair.c +7 -7
  9. package/android/src/main/cpp/airplay2_pair.h +2 -2
  10. package/android/src/main/cpp/airplay2_rtsp.c +8 -8
  11. package/android/src/main/cpp/airplay2_session.c +2 -2
  12. package/android/src/main/cpp/airplay_jni.cpp +20 -72
  13. package/android/src/main/java/com/margelo/nitro/queueplayer/AirPlayEngine.kt +7 -16
  14. package/android/src/main/java/com/margelo/nitro/queueplayer/CacheMimeTypes.kt +1 -1
  15. package/android/src/main/java/com/margelo/nitro/queueplayer/CastManager.kt +2 -14
  16. package/android/src/main/java/com/margelo/nitro/queueplayer/CellularTransportMonitor.kt +77 -0
  17. package/android/src/main/java/com/margelo/nitro/queueplayer/CrossfadeEngine.kt +187 -52
  18. package/android/src/main/java/com/margelo/nitro/queueplayer/Equalizer.kt +27 -7
  19. package/android/src/main/java/com/margelo/nitro/queueplayer/EqualizerEngine.kt +33 -12
  20. package/android/src/main/java/com/margelo/nitro/queueplayer/EqualizerLegacyEngine.kt +31 -8
  21. package/android/src/main/java/com/margelo/nitro/queueplayer/FFTProcessorTee.kt +45 -30
  22. package/android/src/main/java/com/margelo/nitro/queueplayer/FifoCacheEvictor.kt +111 -15
  23. package/android/src/main/java/com/margelo/nitro/queueplayer/GaplessEngine.kt +60 -33
  24. package/android/src/main/java/com/margelo/nitro/queueplayer/HeadlessJsMediaService.kt +1 -1
  25. package/android/src/main/java/com/margelo/nitro/queueplayer/IEqualizerEngine.kt +3 -1
  26. package/android/src/main/java/com/margelo/nitro/queueplayer/LookaheadCache.kt +103 -29
  27. package/android/src/main/java/com/margelo/nitro/queueplayer/LookaheadCacheWriter.kt +77 -29
  28. package/android/src/main/java/com/margelo/nitro/queueplayer/MediaItemBuilder.kt +6 -6
  29. package/android/src/main/java/com/margelo/nitro/queueplayer/NowPlayingFormatExtractor.kt +48 -1
  30. package/android/src/main/java/com/margelo/nitro/queueplayer/PitchCorrection.kt +3 -2
  31. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackEngine.kt +71 -76
  32. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackErrorMapping.kt +3 -3
  33. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackModeStateMachine.kt +2 -2
  34. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackService.kt +68 -46
  35. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackServiceCallback.kt +6 -5
  36. package/android/src/main/java/com/margelo/nitro/queueplayer/QueueMutationArithmetic.kt +5 -6
  37. package/android/src/main/java/com/margelo/nitro/queueplayer/QueueSkipArithmetic.kt +11 -8
  38. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainAudioProcessor.kt +26 -6
  39. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainData.kt +22 -3
  40. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainExtractor.kt +38 -12
  41. package/android/src/main/java/com/margelo/nitro/queueplayer/ReplayGainGain.kt +17 -13
  42. package/android/src/main/java/com/margelo/nitro/queueplayer/SuppliedReplayGain.kt +66 -0
  43. package/android/src/main/java/com/margelo/nitro/queueplayer/TrackPlayer.kt +870 -278
  44. package/android/src/main/java/com/margelo/nitro/queueplayer/Visualizer.kt +4 -8
  45. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastBackend.kt +4 -3
  46. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastEventBridge.kt +1 -10
  47. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastSession.kt +17 -3
  48. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/CastTransportRouter.kt +19 -0
  49. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/RemotePlaybackStateMapping.kt +18 -0
  50. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlay2JNI.kt +0 -2
  51. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlay2Session.kt +23 -12
  52. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayBackend.kt +16 -9
  53. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayMetadataSync.kt +58 -21
  54. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayRenderersFactory.kt +6 -14
  55. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlaySession.kt +26 -14
  56. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirplayJNI.kt +1 -13
  57. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/MetadataSyncTarget.kt +20 -0
  58. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/MulticastLockHolder.kt +1 -1
  59. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/chromecast/ChromecastBackend.kt +3 -3
  60. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/chromecast/ChromecastSession.kt +73 -13
  61. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/LocalMediaServer.kt +11 -35
  62. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/MediaServerHandle.kt +0 -5
  63. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/MediaTokenRegistry.kt +0 -6
  64. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/net/LocalAddressMonitor.kt +32 -33
  65. package/android/src/test/java/androidx/media3/session/{MediaSessionControllerRequestTestSeam.kt → MediaSessionControllerRequestTestSupport.kt} +1 -1
  66. package/android/src/test/java/com/margelo/nitro/queueplayer/AvrcpMetadataTest.kt +12 -0
  67. package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineFocusLossTest.kt +115 -0
  68. package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineLifecycleTest.kt +45 -0
  69. package/android/src/test/java/com/margelo/nitro/queueplayer/EngineEndSignalOrderTest.kt +70 -0
  70. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerEngineTest.kt +23 -12
  71. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerKtTest.kt +0 -6
  72. package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerLegacyEngineTest.kt +43 -15
  73. package/android/src/test/java/com/margelo/nitro/queueplayer/FFTProcessorTeeTest.kt +15 -0
  74. package/android/src/test/java/com/margelo/nitro/queueplayer/FifoCacheEvictorTest.kt +135 -4
  75. package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineLifecycleTest.kt +1 -0
  76. package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineReplayGainTest.kt +36 -2
  77. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheTest.kt +24 -18
  78. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheWriterCancelTest.kt +85 -0
  79. package/android/src/test/java/com/margelo/nitro/queueplayer/LookaheadCacheWriterTest.kt +112 -1
  80. package/android/src/test/java/com/margelo/nitro/queueplayer/MediaItemBuilderTest.kt +5 -3
  81. package/android/src/test/java/com/margelo/nitro/queueplayer/NowPlayingFormatExtractorTest.kt +45 -0
  82. package/android/src/test/java/com/margelo/nitro/queueplayer/PitchAwareAudioProcessorChainTest.kt +1 -1
  83. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackSearchTest.kt +47 -0
  84. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackTest.kt +53 -29
  85. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceLifecycleTest.kt +8 -8
  86. package/android/src/test/java/com/margelo/nitro/queueplayer/QueueSkipArithmeticTest.kt +33 -1
  87. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainAudioProcessorTest.kt +128 -5
  88. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainExtractorTest.kt +209 -14
  89. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainGainTest.kt +150 -10
  90. package/android/src/test/java/com/margelo/nitro/queueplayer/ReplayGainMergeTest.kt +258 -0
  91. package/android/src/test/java/com/margelo/nitro/queueplayer/RobolectricServiceBindHelper.kt +8 -4
  92. package/android/src/test/java/com/margelo/nitro/queueplayer/SessionCommandForwardingPlayerTest.kt +2 -2
  93. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowDynamicsProcessingRejectingEnable.kt +19 -0
  94. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowEqualizer.kt +68 -0
  95. package/android/src/test/java/com/margelo/nitro/queueplayer/ShadowEqualizerRejectingBandWrites.kt +27 -0
  96. package/android/src/test/java/com/margelo/nitro/queueplayer/SuppliedReplayGainTest.kt +61 -0
  97. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAirPlayMetadataWiringTest.kt +4 -4
  98. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAudioFocusTest.kt +1 -1
  99. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerCastCommandRoutingTest.kt +163 -0
  100. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerCastStateTest.kt +123 -0
  101. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerEventsTest.kt +88 -38
  102. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLifecycleTest.kt +205 -27
  103. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLookaheadConfigTest.kt +277 -38
  104. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerMutationTest.kt +5 -3
  105. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerProgressThrottleTest.kt +2 -1
  106. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueChangeTest.kt +85 -3
  107. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueTest.kt +11 -7
  108. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerReadersTest.kt +2 -1
  109. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipCapabilityTest.kt +90 -4
  110. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipTest.kt +8 -26
  111. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerTransportTest.kt +3 -3
  112. package/android/src/test/java/com/margelo/nitro/queueplayer/VisualizerKtTest.kt +0 -4
  113. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/FakeRemotePlayer.kt +27 -11
  114. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlayMetadataSyncTest.kt +303 -0
  115. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/net/LocalAddressMonitorTest.kt +173 -0
  116. package/android/src/test/java/com/margelo/nitro/queueplayer/cast/net/ShadowConnectivityManagerRecordingRequests.kt +27 -0
  117. package/app.plugin.js +17 -1
  118. package/ios/AVPlayerItemQueueItemId.swift +26 -12
  119. package/ios/AVQueueBuilder.swift +120 -85
  120. package/ios/ArtworkLoader.swift +0 -7
  121. package/ios/ArtworkResolver.swift +22 -4
  122. package/ios/AssetReplayGainReader.swift +118 -0
  123. package/ios/AudioSession.swift +67 -16
  124. package/ios/AudioTapProvider.swift +284 -149
  125. package/ios/CarPlayBridge.swift +0 -12
  126. package/ios/CarPlayCoordinator.swift +18 -2
  127. package/ios/CarPlaySceneDelegate.swift +2 -2
  128. package/ios/Cast/AirPlayRouteState.swift +9 -8
  129. package/ios/Cast/Chromecast/ChromecastSession.swift +90 -11
  130. package/ios/Cast/Core/CastEventBridge.swift +66 -26
  131. package/ios/Cast/Core/CastNowPlayingController.swift +38 -16
  132. package/ios/Cast/Core/CastSession.swift +11 -0
  133. package/ios/Cast/Core/CastTransportRouter.swift +21 -9
  134. package/ios/Cast/Core/LocalMediaServer.swift +41 -52
  135. package/ios/Cast/Core/LocalNetworkPermissionProbe.swift +32 -11
  136. package/ios/Cast/Core/MediaServerHandle.swift +0 -4
  137. package/ios/Cast/Core/MediaTokenRegistry.swift +0 -6
  138. package/ios/CastManager.swift +1 -1
  139. package/ios/CrossfadeEngine.swift +660 -226
  140. package/ios/EQTap.swift +20 -17
  141. package/ios/Equalizer.swift +1 -1
  142. package/ios/FLACStreamInfo.swift +65 -0
  143. package/ios/GaplessEngine.swift +57 -30
  144. package/ios/InputGuards.swift +35 -5
  145. package/ios/LookaheadCache.swift +202 -58
  146. package/ios/LookaheadCachePrefetcher.swift +48 -36
  147. package/ios/MediaServer/MediaHTTPConnection.swift +691 -0
  148. package/ios/NetworkRecoveryPolicy.swift +32 -0
  149. package/ios/NowPlayingFormatExtractor.swift +25 -18
  150. package/ios/NowPlayingInfo.swift +84 -48
  151. package/ios/OutputRouteMonitor.swift +16 -3
  152. package/ios/PendingBrowseRequests.swift +1 -1
  153. package/ios/PlaceholderArtwork.swift +9 -5
  154. package/ios/PlaybackEngine.swift +165 -76
  155. package/ios/PlaybackErrorMapping.swift +3 -3
  156. package/ios/PlaybackModeStateMachine.swift +2 -2
  157. package/ios/PlaybackNetworkMonitor.swift +73 -0
  158. package/ios/PlayerStateDerivation.swift +6 -6
  159. package/ios/QueueMutationArithmetic.swift +25 -0
  160. package/ios/QueueSkipArithmetic.swift +5 -3
  161. package/ios/QueueWindowArithmetic.swift +152 -0
  162. package/ios/ReadThroughServer.swift +283 -0
  163. package/ios/RemoteCommands.swift +44 -4
  164. package/ios/ReplayGainData.swift +22 -3
  165. package/ios/ReplayGainExtractor.swift +70 -27
  166. package/ios/Siri/VoiceDonation.swift +14 -9
  167. package/ios/StreamingBitrateProbe.swift +22 -68
  168. package/ios/SuppliedReplayGain.swift +83 -0
  169. package/ios/Tests/AVQueueBuilderTests.swift +158 -221
  170. package/ios/Tests/ActiveItemEngineStub.swift +44 -0
  171. package/ios/Tests/AssetReplayGainReaderTests.swift +228 -0
  172. package/ios/Tests/AudioTapProviderDispatchTargetTests.swift +158 -0
  173. package/ios/Tests/AudioTapProviderReplayGainTests.swift +122 -10
  174. package/ios/Tests/BitrateReresolveBudgetTests.swift +71 -0
  175. package/ios/Tests/CastMediaItemTranslationTests.swift +72 -0
  176. package/ios/Tests/CastNowPlayingControllerTests.swift +5 -0
  177. package/ios/Tests/CrossfadeAdvanceWithoutFadeTests.swift +120 -0
  178. package/ios/Tests/CrossfadeEngineIncomingMixTests.swift +122 -0
  179. package/ios/Tests/CrossfadeEngineTests.swift +164 -0
  180. package/ios/Tests/CrossfadeMixReapplyTests.swift +66 -0
  181. package/ios/Tests/CrossfadePlaybackIntentTests.swift +81 -0
  182. package/ios/Tests/EngineSwapTests.swift +91 -0
  183. package/ios/Tests/EqualizerAudioMixProviderTests.swift +46 -0
  184. package/ios/Tests/EqualizerHybridTests.swift +5 -2
  185. package/ios/Tests/FLACStreamInfoTests.swift +88 -0
  186. package/ios/Tests/GaplessEngineLifecycleTests.swift +4 -4
  187. package/ios/Tests/InputGuardsTests.swift +41 -0
  188. package/ios/Tests/InterruptionIntentTests.swift +77 -0
  189. package/ios/Tests/LookaheadCacheCellularAccessTests.swift +185 -0
  190. package/ios/Tests/LookaheadCachePrefetcherTests.swift +53 -30
  191. package/ios/Tests/LookaheadCacheRuntimeConfigTests.swift +160 -1
  192. package/ios/Tests/LookaheadCacheTests.swift +44 -18
  193. package/ios/Tests/MediaHTTPConnectionTests.swift +79 -0
  194. package/ios/Tests/MutationDeferralTests.swift +220 -0
  195. package/ios/Tests/NowPlayingInfoTests.swift +86 -99
  196. package/ios/Tests/NowPlayingSnapshotTests.swift +127 -0
  197. package/ios/Tests/OriginRestartStitcherTests.swift +60 -0
  198. package/ios/Tests/PlaybackNetworkMonitorTests.swift +95 -0
  199. package/ios/Tests/PlaybackStateRouterTests.swift +1 -0
  200. package/ios/Tests/PlayerFixtures.swift +48 -0
  201. package/ios/Tests/PlayerStateDerivationTests.swift +10 -10
  202. package/ios/Tests/QueueMutationGenerationTests.swift +141 -0
  203. package/ios/Tests/QueueRebuildPrefixTests.swift +317 -0
  204. package/ios/Tests/QueueStateTests.swift +3 -1
  205. package/ios/Tests/QueueWindowArithmeticTests.swift +56 -0
  206. package/ios/Tests/QueueWindowSliceTests.swift +162 -0
  207. package/ios/Tests/ReadThroughRoutingLifecycleTests.swift +63 -0
  208. package/ios/Tests/ReadThroughServerTests.swift +345 -0
  209. package/ios/Tests/RemoteCommandsTests.swift +28 -0
  210. package/ios/Tests/ReplayGainExtractorTests.swift +216 -6
  211. package/ios/Tests/ReplayGainMergeTests.swift +230 -0
  212. package/ios/Tests/RetryRecoveryTests.swift +303 -0
  213. package/ios/Tests/SkipCapabilityTests.swift +233 -8
  214. package/ios/Tests/SkipIndexTests.swift +32 -2
  215. package/ios/Tests/SleepTimerPauseIntentTests.swift +43 -0
  216. package/ios/Tests/StallRecoveryTests.swift +97 -0
  217. package/ios/Tests/StreamingBitrateProbeTests.swift +17 -20
  218. package/ios/Tests/TopUpWindowGateTests.swift +394 -0
  219. package/ios/Tests/TrackPlayer+TestHops.swift +14 -0
  220. package/ios/Tests/TrackPlayerCallOrderTests.swift +93 -0
  221. package/ios/Tests/TrackPlayerCastStateTests.swift +78 -0
  222. package/ios/Tests/TrackPlayerConfigureTeardownTests.swift +86 -0
  223. package/ios/Tests/TrackPlayerEndVerdictTests.swift +165 -0
  224. package/ios/Tests/TrackPlayerSeekTests.swift +137 -0
  225. package/ios/Tests/TrackPlayerThreadingTests.swift +127 -0
  226. package/ios/Tests/TrackSourceClassifierTests.swift +33 -7
  227. package/ios/Tests/VoiceVocabularyOptInTests.swift +38 -0
  228. package/ios/TrackPlayer+Automotive.swift +101 -0
  229. package/ios/TrackPlayer+Cache.swift +232 -0
  230. package/ios/TrackPlayer+Config.swift +291 -0
  231. package/ios/TrackPlayer+EngineDelegate.swift +209 -0
  232. package/ios/TrackPlayer+EventsAPI.swift +111 -0
  233. package/ios/TrackPlayer+EventsDispatch.swift +968 -0
  234. package/ios/TrackPlayer+EventsWiring.swift +173 -0
  235. package/ios/TrackPlayer+Lifecycle.swift +930 -0
  236. package/ios/TrackPlayer+NowPlayingFormat.swift +258 -0
  237. package/ios/TrackPlayer+Queue.swift +940 -0
  238. package/ios/TrackPlayer+Recovery.swift +196 -0
  239. package/ios/TrackPlayer+Skip.swift +455 -0
  240. package/ios/TrackPlayer+SleepTimer.swift +175 -0
  241. package/ios/TrackPlayer+State.swift +108 -0
  242. package/ios/TrackPlayer+Threading.swift +135 -0
  243. package/ios/TrackPlayer+Transport.swift +267 -0
  244. package/ios/TrackPlayer+Window.swift +195 -0
  245. package/ios/TrackPlayer.swift +305 -4610
  246. package/ios/Visualizer.swift +6 -5
  247. package/ios/tests-harness/Podfile +1 -1
  248. package/ios/tests-harness/TestHost.xcodeproj/project.pbxproj +19 -11
  249. package/ios/tests-harness/scripts/seed-xcodeproj.rb +2 -2
  250. package/lib/module/hooks/useActiveTrack.js +29 -22
  251. package/lib/module/hooks/useActiveTrack.js.map +1 -1
  252. package/lib/module/hooks/useCast.js +8 -26
  253. package/lib/module/hooks/useCast.js.map +1 -1
  254. package/lib/module/hooks/useEqualizer.js +19 -12
  255. package/lib/module/hooks/useEqualizer.js.map +1 -1
  256. package/lib/module/hooks/useLookaheadCache.js +3 -7
  257. package/lib/module/hooks/useLookaheadCache.js.map +1 -1
  258. package/lib/module/hooks/useQueue.js +66 -19
  259. package/lib/module/hooks/useQueue.js.map +1 -1
  260. package/lib/module/index.js +6 -3
  261. package/lib/module/index.js.map +1 -1
  262. package/lib/module/queueDelta.js +41 -0
  263. package/lib/module/queueDelta.js.map +1 -0
  264. package/lib/module/types.js +28 -5
  265. package/lib/module/types.js.map +1 -1
  266. package/lib/typescript/TrackPlayer.nitro.d.ts +53 -28
  267. package/lib/typescript/TrackPlayer.nitro.d.ts.map +1 -1
  268. package/lib/typescript/hooks/useActiveTrack.d.ts +5 -7
  269. package/lib/typescript/hooks/useActiveTrack.d.ts.map +1 -1
  270. package/lib/typescript/hooks/useCast.d.ts +6 -1
  271. package/lib/typescript/hooks/useCast.d.ts.map +1 -1
  272. package/lib/typescript/hooks/useEqualizer.d.ts +2 -1
  273. package/lib/typescript/hooks/useEqualizer.d.ts.map +1 -1
  274. package/lib/typescript/hooks/useLookaheadCache.d.ts.map +1 -1
  275. package/lib/typescript/hooks/useQueue.d.ts +4 -4
  276. package/lib/typescript/hooks/useQueue.d.ts.map +1 -1
  277. package/lib/typescript/index.d.ts +2 -1
  278. package/lib/typescript/index.d.ts.map +1 -1
  279. package/lib/typescript/queueDelta.d.ts +10 -0
  280. package/lib/typescript/queueDelta.d.ts.map +1 -0
  281. package/lib/typescript/types.d.ts +168 -12
  282. package/lib/typescript/types.d.ts.map +1 -1
  283. package/nitrogen/generated/android/c++/JFunc_void_QueueChangeDelta_double_QueueChangeReason.hpp +85 -0
  284. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +45 -19
  285. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +3 -3
  286. package/nitrogen/generated/android/c++/JLookaheadCacheConfig.hpp +8 -4
  287. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +5 -1
  288. package/nitrogen/generated/android/c++/JQueueChangeDelta.hpp +128 -0
  289. package/nitrogen/generated/android/c++/JTrackItem.hpp +19 -3
  290. 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
  291. 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
  292. 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
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void.kt +0 -2
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_AudioRoute.kt +0 -2
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_BufferState.kt +0 -2
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CacheStatus.kt +0 -2
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastDiscoveryState.kt +0 -2
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastLocalNetworkPermissionEvent.kt +0 -2
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastRoute.kt +0 -2
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_CastSessionDiedEvent.kt +0 -2
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlaybackError.kt +0 -2
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlayerProgress.kt +0 -2
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_PlayerState_StateChangeReason.kt +0 -2
  304. 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
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_ServiceReadyReason.kt +0 -2
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_SkipCapability.kt +0 -2
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_SleepTimerState.kt +0 -2
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_VisualizerErrorReason.kt +0 -2
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_VisualizerFrame.kt +0 -2
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_bool.kt +0 -2
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_double_double.kt +0 -2
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__optional_TrackItem__double_TrackChangeReason_std__optional_double_.kt +0 -2
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__optional_std__variant_nitro__NullType__NowPlayingFormat__.kt +0 -2
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__vector_CastReceiver_.kt +0 -2
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/Func_void_std__vector_EqualizerBand_.kt +0 -2
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridCastManagerSpec.kt +2 -0
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridEqualizerSpec.kt +2 -0
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridTrackPlayerSpec.kt +6 -4
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridVisualizerSpec.kt +2 -0
  320. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/LookaheadCacheConfig.kt +9 -4
  321. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/PlayerConfig.kt +7 -2
  322. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/QueueChangeDelta.kt +86 -0
  323. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/TrackItem.kt +24 -4
  324. package/nitrogen/generated/android/queueplayerOnLoad.cpp +2 -2
  325. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Bridge.cpp +16 -16
  326. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Bridge.hpp +80 -65
  327. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Umbrella.hpp +3 -0
  328. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +6 -3
  329. package/nitrogen/generated/ios/swift/Func_void_CacheStatus.swift +5 -5
  330. package/nitrogen/generated/ios/swift/Func_void_QueueChangeDelta_double_QueueChangeReason.swift +46 -0
  331. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +3 -3
  332. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +32 -24
  333. package/nitrogen/generated/ios/swift/LookaheadCacheConfig.swift +20 -2
  334. package/nitrogen/generated/ios/swift/PlayerConfig.swift +19 -1
  335. package/nitrogen/generated/ios/swift/QueueChangeDelta.swift +82 -0
  336. package/nitrogen/generated/ios/swift/TrackItem.swift +73 -1
  337. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +6 -3
  338. package/nitrogen/generated/shared/c++/LookaheadCacheConfig.hpp +7 -3
  339. package/nitrogen/generated/shared/c++/PlayerConfig.hpp +5 -1
  340. package/nitrogen/generated/shared/c++/QueueChangeDelta.hpp +113 -0
  341. package/nitrogen/generated/shared/c++/TrackItem.hpp +18 -2
  342. package/package.json +8 -8
  343. package/src/TrackPlayer.nitro.ts +53 -27
  344. package/src/hooks/useActiveTrack.ts +29 -22
  345. package/src/hooks/useCast.ts +14 -15
  346. package/src/hooks/useEqualizer.ts +19 -12
  347. package/src/hooks/useLookaheadCache.ts +3 -7
  348. package/src/hooks/useQueue.ts +66 -17
  349. package/src/index.ts +13 -3
  350. package/src/queueDelta.ts +41 -0
  351. package/src/types.ts +169 -12
  352. package/android/src/main/java/com/margelo/nitro/queueplayer/PendingIntentBuffer.kt +0 -82
  353. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/airplay/AirPlay2MetadataSync.kt +0 -189
  354. package/android/src/main/java/com/margelo/nitro/queueplayer/cast/http/LocalMediaServerLifecycle.kt +0 -15
  355. package/android/src/test/java/com/margelo/nitro/queueplayer/PendingIntentBufferTest.kt +0 -192
  356. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackEngineInterfaceTest.kt +0 -135
  357. package/android/src/test/java/com/margelo/nitro/queueplayer/SmokeTest.kt +0 -27
  358. package/ios/Cast/Core/LocalAddressMonitor.swift +0 -110
  359. package/ios/Cast/Core/MediaHTTPConnection.swift +0 -349
  360. package/ios/MetadataReader.swift +0 -555
  361. package/ios/Tests/CrossfadeEngineStubTests.swift +0 -43
  362. package/ios/Tests/MetadataReaderTests.swift +0 -603
  363. package/ios/Tests/PlaybackEngineProtocolTests.swift +0 -92
  364. package/ios/Tests/VoiceDonationTests.swift +0 -26
  365. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double_QueueChangeReason.hpp +0 -101
  366. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__double_QueueChangeReason.swift +0 -46
  367. /package/ios/{Cast/Core → MediaServer}/MimeTypes.swift +0 -0
@@ -0,0 +1,128 @@
1
+ ///
2
+ /// JQueueChangeDelta.hpp
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
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "QueueChangeDelta.hpp"
12
+
13
+ #include "JTrackItem.hpp"
14
+ #include "TrackItem.hpp"
15
+ #include <optional>
16
+ #include <string>
17
+ #include <unordered_map>
18
+ #include <vector>
19
+
20
+ namespace margelo::nitro::queueplayer {
21
+
22
+ using namespace facebook;
23
+
24
+ /**
25
+ * The C++ JNI bridge between the C++ struct "QueueChangeDelta" and the Kotlin data class "QueueChangeDelta".
26
+ */
27
+ struct JQueueChangeDelta final: public jni::JavaClass<JQueueChangeDelta> {
28
+ public:
29
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/queueplayer/QueueChangeDelta;";
30
+
31
+ public:
32
+ /**
33
+ * Convert this Java/Kotlin-based struct to the C++ struct QueueChangeDelta by copying all values to C++.
34
+ */
35
+ [[maybe_unused]]
36
+ [[nodiscard]]
37
+ QueueChangeDelta toCpp() const {
38
+ static const auto clazz = javaClassStatic();
39
+ static const auto fieldRevision = clazz->getField<double>("revision");
40
+ double revision = this->getFieldValue(fieldRevision);
41
+ static const auto fieldLength = clazz->getField<double>("length");
42
+ double length = this->getFieldValue(fieldLength);
43
+ static const auto fieldInserted = clazz->getField<jni::JArrayClass<JTrackItem>>("inserted");
44
+ jni::local_ref<jni::JArrayClass<JTrackItem>> inserted = this->getFieldValue(fieldInserted);
45
+ static const auto fieldInsertedAt = clazz->getField<double>("insertedAt");
46
+ double insertedAt = this->getFieldValue(fieldInsertedAt);
47
+ static const auto fieldRemoved = clazz->getField<jni::JArrayDouble>("removed");
48
+ jni::local_ref<jni::JArrayDouble> removed = this->getFieldValue(fieldRemoved);
49
+ static const auto fieldMovedFrom = clazz->getField<double>("movedFrom");
50
+ double movedFrom = this->getFieldValue(fieldMovedFrom);
51
+ static const auto fieldMovedTo = clazz->getField<double>("movedTo");
52
+ double movedTo = this->getFieldValue(fieldMovedTo);
53
+ static const auto fieldOrder = clazz->getField<jni::JArrayDouble>("order");
54
+ jni::local_ref<jni::JArrayDouble> order = this->getFieldValue(fieldOrder);
55
+ return QueueChangeDelta(
56
+ revision,
57
+ length,
58
+ [&](auto&& __input) {
59
+ size_t __size = __input->size();
60
+ std::vector<TrackItem> __vector;
61
+ __vector.reserve(__size);
62
+ for (size_t __i = 0; __i < __size; __i++) {
63
+ auto __element = __input->getElement(__i);
64
+ __vector.push_back(__element->toCpp());
65
+ }
66
+ return __vector;
67
+ }(inserted),
68
+ insertedAt,
69
+ [&]() {
70
+ size_t __size = removed->size();
71
+ std::vector<double> __vector(__size);
72
+ removed->getRegion(0, __size, __vector.data());
73
+ return __vector;
74
+ }(),
75
+ movedFrom,
76
+ movedTo,
77
+ [&]() {
78
+ size_t __size = order->size();
79
+ std::vector<double> __vector(__size);
80
+ order->getRegion(0, __size, __vector.data());
81
+ return __vector;
82
+ }()
83
+ );
84
+ }
85
+
86
+ public:
87
+ /**
88
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
89
+ */
90
+ [[maybe_unused]]
91
+ static jni::local_ref<JQueueChangeDelta::javaobject> fromCpp(const QueueChangeDelta& value) {
92
+ using JSignature = JQueueChangeDelta(double, double, jni::alias_ref<jni::JArrayClass<JTrackItem>>, double, jni::alias_ref<jni::JArrayDouble>, double, double, jni::alias_ref<jni::JArrayDouble>);
93
+ static const auto clazz = javaClassStatic();
94
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
95
+ return create(
96
+ clazz,
97
+ value.revision,
98
+ value.length,
99
+ [&](auto&& __input) {
100
+ size_t __size = __input.size();
101
+ jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
102
+ for (size_t __i = 0; __i < __size; __i++) {
103
+ const auto& __element = __input[__i];
104
+ auto __elementJni = JTrackItem::fromCpp(__element);
105
+ __array->setElement(__i, *__elementJni);
106
+ }
107
+ return __array;
108
+ }(value.inserted),
109
+ value.insertedAt,
110
+ [&]() {
111
+ size_t __size = value.removed.size();
112
+ jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
113
+ __array->setRegion(0, __size, value.removed.data());
114
+ return __array;
115
+ }(),
116
+ value.movedFrom,
117
+ value.movedTo,
118
+ [&]() {
119
+ size_t __size = value.order.size();
120
+ jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
121
+ __array->setRegion(0, __size, value.order.data());
122
+ return __array;
123
+ }()
124
+ );
125
+ }
126
+ };
127
+
128
+ } // namespace margelo::nitro::queueplayer
@@ -49,6 +49,14 @@ namespace margelo::nitro::queueplayer {
49
49
  jni::local_ref<jni::JString> artworkUrl = this->getFieldValue(fieldArtworkUrl);
50
50
  static const auto fieldExtras = clazz->getField<jni::JMap<jni::JString, jni::JString>>("extras");
51
51
  jni::local_ref<jni::JMap<jni::JString, jni::JString>> extras = this->getFieldValue(fieldExtras);
52
+ static const auto fieldReplayGainTrackGain = clazz->getField<jni::JDouble>("replayGainTrackGain");
53
+ jni::local_ref<jni::JDouble> replayGainTrackGain = this->getFieldValue(fieldReplayGainTrackGain);
54
+ static const auto fieldReplayGainTrackPeak = clazz->getField<jni::JDouble>("replayGainTrackPeak");
55
+ jni::local_ref<jni::JDouble> replayGainTrackPeak = this->getFieldValue(fieldReplayGainTrackPeak);
56
+ static const auto fieldReplayGainAlbumGain = clazz->getField<jni::JDouble>("replayGainAlbumGain");
57
+ jni::local_ref<jni::JDouble> replayGainAlbumGain = this->getFieldValue(fieldReplayGainAlbumGain);
58
+ static const auto fieldReplayGainAlbumPeak = clazz->getField<jni::JDouble>("replayGainAlbumPeak");
59
+ jni::local_ref<jni::JDouble> replayGainAlbumPeak = this->getFieldValue(fieldReplayGainAlbumPeak);
52
60
  return TrackItem(
53
61
  id != nullptr ? std::make_optional(id->toStdString()) : std::nullopt,
54
62
  url->toStdString(),
@@ -64,7 +72,11 @@ namespace margelo::nitro::queueplayer {
64
72
  __map.emplace(__entry.first->toStdString(), __entry.second->toStdString());
65
73
  }
66
74
  return __map;
67
- }()) : std::nullopt
75
+ }()) : std::nullopt,
76
+ replayGainTrackGain != nullptr ? std::make_optional(replayGainTrackGain->value()) : std::nullopt,
77
+ replayGainTrackPeak != nullptr ? std::make_optional(replayGainTrackPeak->value()) : std::nullopt,
78
+ replayGainAlbumGain != nullptr ? std::make_optional(replayGainAlbumGain->value()) : std::nullopt,
79
+ replayGainAlbumPeak != nullptr ? std::make_optional(replayGainAlbumPeak->value()) : std::nullopt
68
80
  );
69
81
  }
70
82
 
@@ -74,7 +86,7 @@ namespace margelo::nitro::queueplayer {
74
86
  */
75
87
  [[maybe_unused]]
76
88
  static jni::local_ref<JTrackItem::javaobject> fromCpp(const TrackItem& value) {
77
- using JSignature = JTrackItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JMap<jni::JString, jni::JString>>);
89
+ using JSignature = JTrackItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JMap<jni::JString, jni::JString>>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>);
78
90
  static const auto clazz = javaClassStatic();
79
91
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
80
92
  return create(
@@ -92,7 +104,11 @@ namespace margelo::nitro::queueplayer {
92
104
  __map->put(jni::make_jstring(__entry.first), jni::make_jstring(__entry.second));
93
105
  }
94
106
  return __map;
95
- }() : nullptr
107
+ }() : nullptr,
108
+ value.replayGainTrackGain.has_value() ? jni::JDouble::valueOf(value.replayGainTrackGain.value()) : nullptr,
109
+ value.replayGainTrackPeak.has_value() ? jni::JDouble::valueOf(value.replayGainTrackPeak.value()) : nullptr,
110
+ value.replayGainAlbumGain.has_value() ? jni::JDouble::valueOf(value.replayGainAlbumGain.value()) : nullptr,
111
+ value.replayGainAlbumPeak.has_value() ? jni::JDouble::valueOf(value.replayGainAlbumPeak.value()) : nullptr
96
112
  );
97
113
  }
98
114
  };
@@ -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
  import com.margelo.nitro.core.Promise
15
14
 
16
15
  /**
@@ -59,7 +58,6 @@ class Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_BrowseIte
59
58
  override fun invoke(parentId: String): Promise<Promise<Array<BrowseItem>>>
60
59
  = invoke_cxx(parentId)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(parentId: String): Promise<Promise<Array<BrowseItem>>>
64
62
  }
65
63
 
@@ -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
  import com.margelo.nitro.core.Promise
15
14
 
16
15
  /**
@@ -59,7 +58,6 @@ class Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem
59
58
  override fun invoke(request: MediaSearchRequest): Promise<Promise<Array<TrackItem>>>
60
59
  = invoke_cxx(request)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(request: MediaSearchRequest): Promise<Promise<Array<TrackItem>>>
64
62
  }
65
63
 
@@ -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
  import com.margelo.nitro.core.Promise
15
14
 
16
15
  /**
@@ -59,7 +58,6 @@ class Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_TrackItem
59
58
  override fun invoke(mediaId: String): Promise<Promise<Array<TrackItem>>>
60
59
  = invoke_cxx(mediaId)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(mediaId: String): Promise<Promise<Array<TrackItem>>>
64
62
  }
65
63
 
@@ -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_cxx: Func_void {
59
58
  override fun invoke(): Unit
60
59
  = invoke_cxx()
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(): Unit
64
62
  }
65
63
 
@@ -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_AudioRoute_cxx: Func_void_AudioRoute {
59
58
  override fun invoke(route: AudioRoute): Unit
60
59
  = invoke_cxx(route)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(route: AudioRoute): Unit
64
62
  }
65
63
 
@@ -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_BufferState_cxx: Func_void_BufferState {
59
58
  override fun invoke(state: BufferState): Unit
60
59
  = invoke_cxx(state)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(state: BufferState): Unit
64
62
  }
65
63
 
@@ -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_CacheStatus_cxx: Func_void_CacheStatus {
59
58
  override fun invoke(status: CacheStatus): Unit
60
59
  = invoke_cxx(status)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(status: CacheStatus): Unit
64
62
  }
65
63
 
@@ -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_CastDiscoveryState_cxx: Func_void_CastDiscoveryState {
59
58
  override fun invoke(state: CastDiscoveryState): Unit
60
59
  = invoke_cxx(state)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(state: CastDiscoveryState): Unit
64
62
  }
65
63
 
@@ -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_CastLocalNetworkPermissionEvent_cxx: Func_void_CastLocalNetworkP
59
58
  override fun invoke(event: CastLocalNetworkPermissionEvent): Unit
60
59
  = invoke_cxx(event)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(event: CastLocalNetworkPermissionEvent): Unit
64
62
  }
65
63
 
@@ -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_CastRoute_cxx: Func_void_CastRoute {
59
58
  override fun invoke(route: CastRoute): Unit
60
59
  = invoke_cxx(route)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(route: CastRoute): Unit
64
62
  }
65
63
 
@@ -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_CastSessionDiedEvent_cxx: Func_void_CastSessionDiedEvent {
59
58
  override fun invoke(event: CastSessionDiedEvent): Unit
60
59
  = invoke_cxx(event)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(event: CastSessionDiedEvent): Unit
64
62
  }
65
63
 
@@ -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_PlaybackError_cxx: Func_void_PlaybackError {
59
58
  override fun invoke(error: PlaybackError): Unit
60
59
  = invoke_cxx(error)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(error: PlaybackError): Unit
64
62
  }
65
63
 
@@ -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_PlayerProgress_cxx: Func_void_PlayerProgress {
59
58
  override fun invoke(progress: PlayerProgress): Unit
60
59
  = invoke_cxx(progress)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(progress: PlayerProgress): Unit
64
62
  }
65
63
 
@@ -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_PlayerState_StateChangeReason_cxx: Func_void_PlayerState_StateCh
59
58
  override fun invoke(state: PlayerState, reason: StateChangeReason): Unit
60
59
  = invoke_cxx(state,reason)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(state: PlayerState, reason: StateChangeReason): Unit
64
62
  }
65
63
 
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// Func_void_std__vector_TrackItem__double_QueueChangeReason.kt
2
+ /// Func_void_QueueChangeDelta_double_QueueChangeReason.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -10,29 +10,28 @@ 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
  /**
17
- * Represents the JavaScript callback `(queue: array, currentIndex: number, reason: enum) => void`.
16
+ * Represents the JavaScript callback `(delta: struct, currentIndex: number, reason: enum) => void`.
18
17
  * This can be either implemented in C++ (in which case it might be a callback coming from JS),
19
18
  * or in Kotlin/Java (in which case it is a native callback).
20
19
  */
21
20
  @DoNotStrip
22
21
  @Keep
23
22
  @Suppress("ClassName", "RedundantUnitReturnType")
24
- fun interface Func_void_std__vector_TrackItem__double_QueueChangeReason: (Array<TrackItem>, Double, QueueChangeReason) -> Unit {
23
+ fun interface Func_void_QueueChangeDelta_double_QueueChangeReason: (QueueChangeDelta, Double, QueueChangeReason) -> Unit {
25
24
  /**
26
25
  * Call the given JS callback.
27
26
  * @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
28
27
  */
29
28
  @DoNotStrip
30
29
  @Keep
31
- override fun invoke(queue: Array<TrackItem>, currentIndex: Double, reason: QueueChangeReason): Unit
30
+ override fun invoke(delta: QueueChangeDelta, currentIndex: Double, reason: QueueChangeReason): Unit
32
31
  }
33
32
 
34
33
  /**
35
- * Represents the JavaScript callback `(queue: array, currentIndex: number, reason: enum) => void`.
34
+ * Represents the JavaScript callback `(delta: struct, currentIndex: number, reason: enum) => void`.
36
35
  * This is implemented in C++, via a `std::function<...>`.
37
36
  * The callback might be coming from JS.
38
37
  */
@@ -43,7 +42,7 @@ fun interface Func_void_std__vector_TrackItem__double_QueueChangeReason: (Array<
43
42
  "RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
44
43
  "ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
45
44
  )
46
- class Func_void_std__vector_TrackItem__double_QueueChangeReason_cxx: Func_void_std__vector_TrackItem__double_QueueChangeReason {
45
+ class Func_void_QueueChangeDelta_double_QueueChangeReason_cxx: Func_void_QueueChangeDelta_double_QueueChangeReason {
47
46
  @DoNotStrip
48
47
  @Keep
49
48
  private val mHybridData: HybridData
@@ -56,25 +55,24 @@ class Func_void_std__vector_TrackItem__double_QueueChangeReason_cxx: Func_void_s
56
55
 
57
56
  @DoNotStrip
58
57
  @Keep
59
- override fun invoke(queue: Array<TrackItem>, currentIndex: Double, reason: QueueChangeReason): Unit
60
- = invoke_cxx(queue,currentIndex,reason)
58
+ override fun invoke(delta: QueueChangeDelta, currentIndex: Double, reason: QueueChangeReason): Unit
59
+ = invoke_cxx(delta,currentIndex,reason)
61
60
 
62
- @FastNative
63
- private external fun invoke_cxx(queue: Array<TrackItem>, currentIndex: Double, reason: QueueChangeReason): Unit
61
+ private external fun invoke_cxx(delta: QueueChangeDelta, currentIndex: Double, reason: QueueChangeReason): Unit
64
62
  }
65
63
 
66
64
  /**
67
- * Represents the JavaScript callback `(queue: array, currentIndex: number, reason: enum) => void`.
68
- * This is implemented in Java/Kotlin, via a `(Array<TrackItem>, Double, QueueChangeReason) -> Unit`.
65
+ * Represents the JavaScript callback `(delta: struct, currentIndex: number, reason: enum) => void`.
66
+ * This is implemented in Java/Kotlin, via a `(QueueChangeDelta, Double, QueueChangeReason) -> Unit`.
69
67
  * The callback is always coming from native.
70
68
  */
71
69
  @DoNotStrip
72
70
  @Keep
73
71
  @Suppress("ClassName", "RedundantUnitReturnType", "unused")
74
- class Func_void_std__vector_TrackItem__double_QueueChangeReason_java(private val function: (Array<TrackItem>, Double, QueueChangeReason) -> Unit): Func_void_std__vector_TrackItem__double_QueueChangeReason {
72
+ class Func_void_QueueChangeDelta_double_QueueChangeReason_java(private val function: (QueueChangeDelta, Double, QueueChangeReason) -> Unit): Func_void_QueueChangeDelta_double_QueueChangeReason {
75
73
  @DoNotStrip
76
74
  @Keep
77
- override fun invoke(queue: Array<TrackItem>, currentIndex: Double, reason: QueueChangeReason): Unit {
78
- return this.function(queue, currentIndex, reason)
75
+ override fun invoke(delta: QueueChangeDelta, currentIndex: Double, reason: QueueChangeReason): Unit {
76
+ return this.function(delta, currentIndex, reason)
79
77
  }
80
78
  }
@@ -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_ServiceReadyReason_cxx: Func_void_ServiceReadyReason {
59
58
  override fun invoke(reason: ServiceReadyReason): Unit
60
59
  = invoke_cxx(reason)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(reason: ServiceReadyReason): Unit
64
62
  }
65
63
 
@@ -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_SkipCapability_cxx: Func_void_SkipCapability {
59
58
  override fun invoke(capability: SkipCapability): Unit
60
59
  = invoke_cxx(capability)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(capability: SkipCapability): Unit
64
62
  }
65
63
 
@@ -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_SleepTimerState_cxx: Func_void_SleepTimerState {
59
58
  override fun invoke(state: SleepTimerState): Unit
60
59
  = invoke_cxx(state)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(state: SleepTimerState): Unit
64
62
  }
65
63
 
@@ -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_VisualizerErrorReason_cxx: Func_void_VisualizerErrorReason {
59
58
  override fun invoke(reason: VisualizerErrorReason): Unit
60
59
  = invoke_cxx(reason)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(reason: VisualizerErrorReason): Unit
64
62
  }
65
63
 
@@ -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_VisualizerFrame_cxx: Func_void_VisualizerFrame {
59
58
  override fun invoke(frame: VisualizerFrame): Unit
60
59
  = invoke_cxx(frame)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(frame: VisualizerFrame): Unit
64
62
  }
65
63
 
@@ -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_bool_cxx: Func_void_bool {
59
58
  override fun invoke(fullyBuffered: Boolean): Unit
60
59
  = invoke_cxx(fullyBuffered)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(fullyBuffered: Boolean): Unit
64
62
  }
65
63
 
@@ -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_double_double_cxx: Func_void_double_double {
59
58
  override fun invoke(milestone: Double, trackIndex: Double): Unit
60
59
  = invoke_cxx(milestone,trackIndex)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(milestone: Double, trackIndex: Double): Unit
64
62
  }
65
63
 
@@ -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__optional_TrackItem__double_TrackChangeReason_std__optional_
59
58
  override fun invoke(track: TrackItem?, index: Double, reason: TrackChangeReason, transitionGapMs: Double?): Unit
60
59
  = invoke_cxx(track,index,reason,transitionGapMs)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(track: TrackItem?, index: Double, reason: TrackChangeReason, transitionGapMs: Double?): Unit
64
62
  }
65
63
 
@@ -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
  import com.margelo.nitro.core.NullType
15
14
 
16
15
  /**
@@ -59,7 +58,6 @@ class Func_void_std__optional_std__variant_nitro__NullType__NowPlayingFormat___c
59
58
  override fun invoke(format: Variant_NullType_NowPlayingFormat?): Unit
60
59
  = invoke_cxx(format)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(format: Variant_NullType_NowPlayingFormat?): Unit
64
62
  }
65
63
 
@@ -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_CastReceiver__cxx: Func_void_std__vector_CastReceive
59
58
  override fun invoke(receivers: Array<CastReceiver>): Unit
60
59
  = invoke_cxx(receivers)
61
60
 
62
- @FastNative
63
61
  private external fun invoke_cxx(receivers: Array<CastReceiver>): Unit
64
62
  }
65
63