react-native-audio-browser 0.1.1 → 0.2.0-next.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 (901) hide show
  1. package/AudioBrowser.podspec +1 -1
  2. package/README.md +180 -2
  3. package/android/build.gradle +10 -0
  4. package/android/gradle.properties +1 -1
  5. package/android/src/main/AndroidManifest.xml +15 -0
  6. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +401 -141
  7. package/android/src/main/java/com/audiobrowser/Callbacks.kt +4 -6
  8. package/android/src/main/java/com/audiobrowser/Service.kt +67 -18
  9. package/android/src/main/java/com/audiobrowser/browser/ArtworkResolutionRegistry.kt +37 -0
  10. package/android/src/main/java/com/audiobrowser/browser/BrowseArtworkRegistry.kt +34 -0
  11. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +443 -178
  12. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +300 -0
  13. package/android/src/main/java/com/audiobrowser/browser/JsonArtwork.kt +79 -0
  14. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +41 -4
  15. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +43 -0
  16. package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +4 -4
  17. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +35 -0
  18. package/android/src/main/java/com/audiobrowser/http/RequestConfigBuilder.kt +109 -97
  19. package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +6 -10
  20. package/android/src/main/java/com/audiobrowser/model/PlayerSetupOptions.kt +40 -8
  21. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +31 -37
  22. package/android/src/main/java/com/audiobrowser/player/AutomaticBufferManager.kt +4 -1
  23. package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +119 -0
  24. package/android/src/main/java/com/audiobrowser/player/DynamicLoadControl.kt +18 -1
  25. package/android/src/main/java/com/audiobrowser/player/EqualizerController.kt +153 -0
  26. package/android/src/main/java/com/audiobrowser/player/InterceptingPlayer.kt +141 -0
  27. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +15 -3
  28. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +415 -131
  29. package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +154 -276
  30. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +348 -0
  31. package/android/src/main/java/com/audiobrowser/player/PlaybackErrorClassifier.kt +129 -0
  32. package/android/src/main/java/com/audiobrowser/player/PlaybackStateMachine.kt +85 -0
  33. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +27 -5
  34. package/android/src/main/java/com/audiobrowser/player/PlaybackTimer.kt +56 -0
  35. package/android/src/main/java/com/audiobrowser/player/Player.kt +452 -576
  36. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +20 -0
  37. package/android/src/main/java/com/audiobrowser/player/PlayerEngineFactory.kt +130 -0
  38. package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +190 -67
  39. package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +117 -53
  40. package/android/src/main/java/com/audiobrowser/player/SleepTimer.kt +37 -3
  41. package/android/src/main/java/com/audiobrowser/player/SleepTimerManager.kt +80 -0
  42. package/android/src/main/java/com/audiobrowser/player/StuckRecoveryPolicy.kt +50 -0
  43. package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +84 -40
  44. package/android/src/main/java/com/audiobrowser/player/VolumeFader.kt +81 -0
  45. package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +141 -0
  46. package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +37 -0
  47. package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +41 -0
  48. package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +209 -0
  49. package/android/src/main/java/com/audiobrowser/util/ArtworkContentProvider.kt +161 -0
  50. package/android/src/main/java/com/audiobrowser/util/ArtworkUris.kt +28 -0
  51. package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +26 -0
  52. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +24 -0
  53. package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoader.kt +49 -0
  54. package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoaderHolder.kt +36 -0
  55. package/android/src/main/java/com/audiobrowser/util/CoilBitmapLoader.kt +23 -300
  56. package/android/src/main/java/com/audiobrowser/util/EqualizerManager.kt +13 -23
  57. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +2 -2
  58. package/android/src/main/java/com/audiobrowser/util/MetadataAdapter.kt +4 -3
  59. package/android/src/main/java/com/audiobrowser/util/OutputMonitor.kt +211 -0
  60. package/android/src/main/java/com/audiobrowser/util/OutputSwitcher.kt +58 -0
  61. package/android/src/main/java/com/audiobrowser/util/PlayingStateFactory.kt +2 -1
  62. package/android/src/main/java/com/audiobrowser/util/RatingFavorites.kt +14 -0
  63. package/android/src/main/java/com/audiobrowser/util/SvgArtworkRenderer.kt +6 -111
  64. package/android/src/main/java/com/audiobrowser/util/SystemVolumeMonitor.kt +22 -8
  65. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +111 -80
  66. package/android/src/main/res/values/strings.xml +4 -0
  67. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +166 -0
  68. package/android/src/test/java/com/audiobrowser/browser/ArtworkResolutionRegistryTest.kt +46 -0
  69. package/android/src/test/java/com/audiobrowser/browser/BrowseArtworkRegistryTest.kt +39 -0
  70. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerBuildApiRequestTest.kt +114 -0
  71. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +141 -0
  72. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +4 -0
  73. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +177 -0
  74. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +54 -0
  75. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +96 -0
  76. package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +1 -2
  77. package/android/src/test/java/com/audiobrowser/http/RequestConfigBuilderTest.kt +72 -0
  78. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +159 -0
  79. package/android/src/test/java/com/audiobrowser/player/DynamicLoadControlTest.kt +56 -0
  80. package/android/src/test/java/com/audiobrowser/player/EqualizerControllerTest.kt +216 -0
  81. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +442 -0
  82. package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +191 -0
  83. package/android/src/test/java/com/audiobrowser/player/PlaybackStateMachineTest.kt +198 -0
  84. package/android/src/test/java/com/audiobrowser/player/PlaybackTimerTest.kt +137 -0
  85. package/android/src/test/java/com/audiobrowser/player/PlayerEngineFactoryTest.kt +36 -0
  86. package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +268 -0
  87. package/android/src/test/java/com/audiobrowser/player/SessionErrorMaskTest.kt +68 -0
  88. package/android/src/test/java/com/audiobrowser/player/StuckRecoveryPolicyTest.kt +40 -0
  89. package/android/src/test/java/com/audiobrowser/player/TransformingDataSourceTest.kt +193 -0
  90. package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +107 -0
  91. package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +73 -0
  92. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherTest.kt +75 -0
  93. package/android/src/test/java/com/audiobrowser/tls/CertFixtures.kt +18 -0
  94. package/android/src/test/java/com/audiobrowser/util/ArtworkContentProviderTest.kt +163 -0
  95. package/android/src/test/java/com/audiobrowser/util/ArtworkUrisTest.kt +34 -0
  96. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +28 -0
  97. package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderHolderTest.kt +53 -0
  98. package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderTest.kt +58 -0
  99. package/android/src/test/java/com/audiobrowser/util/FakeImageLoader.kt +57 -0
  100. package/android/src/test/java/com/audiobrowser/util/PlayingStateFactoryTest.kt +40 -0
  101. package/android/src/test/java/com/audiobrowser/util/RatingFavoritesTest.kt +34 -0
  102. package/android/src/test/java/com/audiobrowser/util/TrackFactoryBrowseTest.kt +50 -0
  103. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +63 -0
  104. package/android/src/test/java/com/audiobrowser/util/TrackFactoryRatingTest.kt +35 -0
  105. package/android/src/test/resources/certs/isrg-root-x1.pem +31 -0
  106. package/android/src/test/resources/certs/letsencrypt-r13.der +0 -0
  107. package/android/src/test/resources/certs/letsencrypt-r13.pem +29 -0
  108. package/android/src/test/resources/certs/stationplaylist-leaf.pem +34 -0
  109. package/ios/Browser/BrowserConfig.swift +41 -11
  110. package/ios/Browser/BrowserManager+URLResolution.swift +213 -93
  111. package/ios/Browser/BrowserManager.swift +303 -110
  112. package/ios/Browser/BrowserPathHelper.swift +32 -3
  113. package/ios/Browser/JsonModels.swift +287 -66
  114. package/ios/Browser/MediaResolveComposer.swift +114 -0
  115. package/ios/Browser/SearchDrillIn.swift +44 -0
  116. package/ios/Browser/SectionScope.swift +35 -0
  117. package/ios/Browser/TabBarEntries.swift +15 -0
  118. package/ios/CarPlay/CPInterfaceController+Safe.swift +126 -0
  119. package/ios/CarPlay/CarPlayArtworkResolver.swift +6 -6
  120. package/ios/CarPlay/CarPlayController.swift +739 -149
  121. package/ios/CarPlay/CarPlayImageLoader.swift +57 -8
  122. package/ios/CarPlay/CarPlayListItemFactory.swift +44 -35
  123. package/ios/CarPlay/CarPlayNowPlayingManager.swift +180 -36
  124. package/ios/CarPlay/ImageRowItem+CarPlay.swift +19 -0
  125. package/ios/CarPlay/RNABAudioBrowser.h +15 -10
  126. package/ios/CarPlay/RNABAudioBrowser.m +15 -14
  127. package/ios/CarPlay/RNABCarPlaySceneDelegate.m +2 -0
  128. package/ios/CarPlay/RNABMediaAddHandler.swift +75 -0
  129. package/ios/CarPlay/RNABMediaAffinityHandler.swift +69 -0
  130. package/ios/CarPlay/RNABMediaIntentHandler.swift +53 -43
  131. package/ios/Extension/Capability+RemoteCommand.swift +7 -9
  132. package/ios/Extension/ChapterMetadata+AVFoundation.swift +1 -1
  133. package/ios/Extension/NavigationError+Conversion.swift +8 -1
  134. package/ios/Extension/PlayerCapabilities+Favorite.swift +20 -0
  135. package/ios/Extension/RequestConfig+Copying.swift +31 -0
  136. package/ios/Extension/ResolvedTrack+Copying.swift +10 -4
  137. package/ios/Extension/TimedMetadata+AVFoundation.swift +1 -1
  138. package/ios/Extension/Track+AVPlayer.swift +4 -4
  139. package/ios/Extension/Track+Copying.swift +9 -3
  140. package/ios/Extension/TrackMetadata+AVFoundation.swift +1 -1
  141. package/ios/Extension/Variant+Artwork.swift +49 -0
  142. package/ios/HybridAudioBrowser.swift +750 -173
  143. package/ios/Model/NitroTypeStubs.swift +299 -224
  144. package/ios/Model/PlayerUpdateOptions.swift +23 -23
  145. package/ios/Model/RemoteCommand.swift +6 -6
  146. package/ios/Model/TrackPlayerError.swift +82 -18
  147. package/ios/NowPlayingInfo/NowPlayingInfoController.swift +99 -121
  148. package/ios/NowPlayingInfo/SilentAudioPrimer.swift +73 -0
  149. package/ios/Observer/PlayerItemNotificationObserver.swift +45 -5
  150. package/ios/Observer/PlayerItemPropertyObserver.swift +27 -4
  151. package/ios/Observer/PlayerTimeObserver.swift +3 -53
  152. package/ios/Option/SessionCategories.swift +33 -11
  153. package/ios/Player/AirPlayStallJudgement.swift +25 -0
  154. package/ios/Player/EndOfTrackJudgement.swift +32 -0
  155. package/ios/Player/LoadSeekCoordinator.swift +16 -1
  156. package/ios/Player/MediaIntentCriteria.swift +139 -0
  157. package/ios/Player/MediaLoader.swift +28 -10
  158. package/ios/Player/NowPlayingUpdater.swift +119 -26
  159. package/ios/Player/PersistedPlaybackState.swift +11 -0
  160. package/ios/Player/PlaybackCoordinator.swift +282 -51
  161. package/ios/Player/PlaybackCoordinatorCallbacks.swift +6 -1
  162. package/ios/Player/PlaybackEffectHandler.swift +19 -9
  163. package/ios/Player/PlaybackErrorHandler.swift +97 -13
  164. package/ios/Player/PlaybackStateMachine.swift +18 -13
  165. package/ios/Player/PlaybackStateStore.swift +27 -0
  166. package/ios/Player/PlaybackTimer.swift +61 -0
  167. package/ios/Player/PlayingStateManager.swift +3 -2
  168. package/ios/Player/QueueManager.swift +67 -61
  169. package/ios/Player/RetryManager.swift +97 -21
  170. package/ios/Player/SleepTimerHandling.swift +8 -0
  171. package/ios/Player/SleepTimerManager.swift +38 -5
  172. package/ios/Player/VolumeFader.swift +77 -0
  173. package/ios/RemoteCommand/RemoteCommandController.swift +31 -15
  174. package/ios/Tests/AirPlayStallJudgementTests.swift +52 -0
  175. package/ios/Tests/BrowserPathHelperTests.swift +28 -0
  176. package/ios/Tests/CarPlayArtworkResolverTests.swift +39 -39
  177. package/ios/Tests/ChapterMetadataAVFoundationTests.swift +2 -2
  178. package/ios/Tests/EndOfTrackJudgementTests.swift +35 -0
  179. package/ios/Tests/JsonModelsTests.swift +58 -0
  180. package/ios/Tests/LoadSeekCoordinatorTests.swift +38 -7
  181. package/ios/Tests/MediaIntentCriteriaTests.swift +170 -0
  182. package/ios/Tests/MediaLoaderAssetOptionsTests.swift +46 -0
  183. package/ios/Tests/MediaLoaderTests.swift +23 -8
  184. package/ios/Tests/MediaResolveTests.swift +126 -0
  185. package/ios/Tests/OnceValueTests.swift +79 -0
  186. package/ios/Tests/PlaybackCoordinatorTests.swift +784 -13
  187. package/ios/Tests/PlaybackErrorHandlerTests.swift +380 -46
  188. package/ios/Tests/PlaybackStateMachineTests.swift +33 -8
  189. package/ios/Tests/PlaybackStateStoreTests.swift +48 -0
  190. package/ios/Tests/PlaybackTimerTests.swift +55 -0
  191. package/ios/Tests/PlayingStateManagerTests.swift +57 -0
  192. package/ios/Tests/QueueManagerTests.swift +149 -18
  193. package/ios/Tests/ResolvedTrackCopyingTests.swift +15 -8
  194. package/ios/Tests/RetryManagerTests.swift +89 -0
  195. package/ios/Tests/SearchDrillInTests.swift +63 -0
  196. package/ios/Tests/SectionScopeTests.swift +82 -0
  197. package/ios/Tests/SleepTimerManagerTests.swift +104 -0
  198. package/ios/Tests/Support/TestTypes.swift +61 -20
  199. package/ios/Tests/TabBarEntriesTests.swift +71 -0
  200. package/ios/Tests/TrackSelectorTests.swift +15 -15
  201. package/ios/TrackPlayer.swift +380 -58
  202. package/ios/TrackPlayerCallbacks.swift +0 -6
  203. package/ios/TrackSelector.swift +5 -5
  204. package/ios/Util/ArtworkImageFetcher.swift +4 -2
  205. package/ios/Util/NetworkMonitor.swift +7 -3
  206. package/ios/Util/OnceValue.swift +34 -0
  207. package/lib/commonjs/features/browser-config.js +227 -0
  208. package/lib/commonjs/features/browser-config.js.map +1 -0
  209. package/lib/commonjs/features/browser.js +59 -158
  210. package/lib/commonjs/features/browser.js.map +1 -1
  211. package/lib/commonjs/features/carConnection.js +42 -0
  212. package/lib/commonjs/features/carConnection.js.map +1 -0
  213. package/lib/commonjs/features/errors.js +34 -2
  214. package/lib/commonjs/features/errors.js.map +1 -1
  215. package/lib/commonjs/features/gate.js +149 -0
  216. package/lib/commonjs/features/gate.js.map +1 -0
  217. package/lib/commonjs/features/index.js +22 -0
  218. package/lib/commonjs/features/index.js.map +1 -1
  219. package/lib/commonjs/features/metadata.js.map +1 -1
  220. package/lib/commonjs/features/nowPlaying.js +35 -0
  221. package/lib/commonjs/features/nowPlaying.js.map +1 -1
  222. package/lib/commonjs/features/output.js +37 -23
  223. package/lib/commonjs/features/output.js.map +1 -1
  224. package/lib/commonjs/features/playback/controls.js +9 -0
  225. package/lib/commonjs/features/playback/controls.js.map +1 -1
  226. package/lib/commonjs/features/playback/index.js +11 -0
  227. package/lib/commonjs/features/playback/index.js.map +1 -1
  228. package/lib/commonjs/features/playback/progress.js +28 -12
  229. package/lib/commonjs/features/playback/progress.js.map +1 -1
  230. package/lib/commonjs/features/playback/trackPlaybackTime.js +92 -0
  231. package/lib/commonjs/features/playback/trackPlaybackTime.js.map +1 -0
  232. package/lib/commonjs/features/playback/volume.js +1 -1
  233. package/lib/commonjs/features/player/options.js +49 -13
  234. package/lib/commonjs/features/player/options.js.map +1 -1
  235. package/lib/commonjs/features/player/setup.js +249 -3
  236. package/lib/commonjs/features/player/setup.js.map +1 -1
  237. package/lib/commonjs/features/queue/queue.js +10 -3
  238. package/lib/commonjs/features/queue/queue.js.map +1 -1
  239. package/lib/commonjs/features/remoteControls.js +1 -12
  240. package/lib/commonjs/features/remoteControls.js.map +1 -1
  241. package/lib/commonjs/features/sleepTimer.js +9 -4
  242. package/lib/commonjs/features/sleepTimer.js.map +1 -1
  243. package/lib/commonjs/native.js +5 -0
  244. package/lib/commonjs/native.js.map +1 -1
  245. package/lib/commonjs/native.web.js +4 -1
  246. package/lib/commonjs/native.web.js.map +1 -1
  247. package/lib/commonjs/utils/LazyNativeEmitter.js +0 -3
  248. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  249. package/lib/commonjs/utils/NativeUpdatedValue.js +0 -3
  250. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  251. package/lib/commonjs/utils/artwork.js +31 -0
  252. package/lib/commonjs/utils/artwork.js.map +1 -0
  253. package/lib/commonjs/web/NativeAudioBrowser.js +301 -124
  254. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  255. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +71 -0
  256. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +1 -0
  257. package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js +34 -0
  258. package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js.map +1 -0
  259. package/lib/commonjs/web/TrackPlayer/Player.js +90 -26
  260. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
  261. package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js +21 -0
  262. package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js.map +1 -0
  263. package/lib/commonjs/web/TrackPlayer/QueueManager.js +273 -0
  264. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -0
  265. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +158 -0
  266. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +1 -0
  267. package/lib/commonjs/web/TrackPlayer/RepeatMode.js +1 -1
  268. package/lib/commonjs/web/TrackPlayer/RepeatMode.js.map +1 -1
  269. package/lib/commonjs/web/TrackPlayer/SleepTimer.js +34 -3
  270. package/lib/commonjs/web/TrackPlayer/SleepTimer.js.map +1 -1
  271. package/lib/commonjs/web/TrackPlayer/VolumeFader.js +75 -0
  272. package/lib/commonjs/web/TrackPlayer/VolumeFader.js.map +1 -0
  273. package/lib/commonjs/web/TrackPlayer/index.js +13 -5
  274. package/lib/commonjs/web/TrackPlayer/index.js.map +1 -1
  275. package/lib/commonjs/web/browser/BrowserManager.js +176 -50
  276. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  277. package/lib/commonjs/web/browser/NavigationErrorManager.js +3 -1
  278. package/lib/commonjs/web/browser/NavigationErrorManager.js.map +1 -1
  279. package/lib/commonjs/web/browser/SearchManager.js +11 -9
  280. package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
  281. package/lib/commonjs/web/browser/assertBrowsePageShape.js +22 -0
  282. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -0
  283. package/lib/commonjs/web/browser/classifyTrackNavigation.js +41 -0
  284. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -0
  285. package/lib/commonjs/web/browser/parseSearchResponse.js +20 -0
  286. package/lib/commonjs/web/browser/parseSearchResponse.js.map +1 -0
  287. package/lib/commonjs/web/http/HttpClient.js +4 -23
  288. package/lib/commonjs/web/http/HttpClient.js.map +1 -1
  289. package/lib/commonjs/web/http/RequestConfigBuilder.js +107 -58
  290. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
  291. package/lib/commonjs/web/playbackErrorKind.js +57 -0
  292. package/lib/commonjs/web/playbackErrorKind.js.map +1 -0
  293. package/lib/commonjs/web/player/MediaSessionManager.js +121 -0
  294. package/lib/commonjs/web/player/MediaSessionManager.js.map +1 -0
  295. package/lib/commonjs/web/player/NowPlayingManager.js +6 -5
  296. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  297. package/lib/commonjs/web/player/OptionsManager.js +9 -17
  298. package/lib/commonjs/web/player/OptionsManager.js.map +1 -1
  299. package/lib/commonjs/web/player/RemoteCommandController.js +96 -0
  300. package/lib/commonjs/web/player/RemoteCommandController.js.map +1 -0
  301. package/lib/module/features/browser-config.js +221 -0
  302. package/lib/module/features/browser-config.js.map +1 -0
  303. package/lib/module/features/browser.js +53 -156
  304. package/lib/module/features/browser.js.map +1 -1
  305. package/lib/module/features/carConnection.js +37 -0
  306. package/lib/module/features/carConnection.js.map +1 -0
  307. package/lib/module/features/errors.js +34 -2
  308. package/lib/module/features/errors.js.map +1 -1
  309. package/lib/module/features/gate.js +144 -0
  310. package/lib/module/features/gate.js.map +1 -0
  311. package/lib/module/features/index.js +2 -0
  312. package/lib/module/features/index.js.map +1 -1
  313. package/lib/module/features/metadata.js.map +1 -1
  314. package/lib/module/features/nowPlaying.js +33 -0
  315. package/lib/module/features/nowPlaying.js.map +1 -1
  316. package/lib/module/features/output.js +32 -19
  317. package/lib/module/features/output.js.map +1 -1
  318. package/lib/module/features/playback/controls.js +8 -0
  319. package/lib/module/features/playback/controls.js.map +1 -1
  320. package/lib/module/features/playback/index.js +1 -0
  321. package/lib/module/features/playback/index.js.map +1 -1
  322. package/lib/module/features/playback/progress.js +28 -12
  323. package/lib/module/features/playback/progress.js.map +1 -1
  324. package/lib/module/features/playback/trackPlaybackTime.js +88 -0
  325. package/lib/module/features/playback/trackPlaybackTime.js.map +1 -0
  326. package/lib/module/features/playback/volume.js +1 -1
  327. package/lib/module/features/player/options.js +48 -13
  328. package/lib/module/features/player/options.js.map +1 -1
  329. package/lib/module/features/player/setup.js +249 -3
  330. package/lib/module/features/player/setup.js.map +1 -1
  331. package/lib/module/features/queue/queue.js +10 -3
  332. package/lib/module/features/queue/queue.js.map +1 -1
  333. package/lib/module/features/remoteControls.js +0 -11
  334. package/lib/module/features/remoteControls.js.map +1 -1
  335. package/lib/module/features/sleepTimer.js +9 -4
  336. package/lib/module/features/sleepTimer.js.map +1 -1
  337. package/lib/module/native.js +5 -0
  338. package/lib/module/native.js.map +1 -1
  339. package/lib/module/native.web.js +4 -1
  340. package/lib/module/native.web.js.map +1 -1
  341. package/lib/module/utils/LazyNativeEmitter.js +0 -3
  342. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  343. package/lib/module/utils/NativeUpdatedValue.js +0 -3
  344. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  345. package/lib/module/utils/artwork.js +26 -0
  346. package/lib/module/utils/artwork.js.map +1 -0
  347. package/lib/module/web/NativeAudioBrowser.js +302 -125
  348. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  349. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +67 -0
  350. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +1 -0
  351. package/lib/module/web/TrackPlayer/PlaybackTimer.js +29 -0
  352. package/lib/module/web/TrackPlayer/PlaybackTimer.js.map +1 -0
  353. package/lib/module/web/TrackPlayer/Player.js +90 -26
  354. package/lib/module/web/TrackPlayer/Player.js.map +1 -1
  355. package/lib/module/web/TrackPlayer/PlayingStateFactory.js +17 -0
  356. package/lib/module/web/TrackPlayer/PlayingStateFactory.js.map +1 -0
  357. package/lib/module/web/TrackPlayer/QueueManager.js +269 -0
  358. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -0
  359. package/lib/module/web/TrackPlayer/QueuePlayer.js +154 -0
  360. package/lib/module/web/TrackPlayer/QueuePlayer.js.map +1 -0
  361. package/lib/module/web/TrackPlayer/RepeatMode.js +1 -1
  362. package/lib/module/web/TrackPlayer/RepeatMode.js.map +1 -1
  363. package/lib/module/web/TrackPlayer/SleepTimer.js +34 -3
  364. package/lib/module/web/TrackPlayer/SleepTimer.js.map +1 -1
  365. package/lib/module/web/TrackPlayer/VolumeFader.js +70 -0
  366. package/lib/module/web/TrackPlayer/VolumeFader.js.map +1 -0
  367. package/lib/module/web/TrackPlayer/index.js +2 -1
  368. package/lib/module/web/TrackPlayer/index.js.map +1 -1
  369. package/lib/module/web/browser/BrowserManager.js +176 -50
  370. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  371. package/lib/module/web/browser/NavigationErrorManager.js +3 -1
  372. package/lib/module/web/browser/NavigationErrorManager.js.map +1 -1
  373. package/lib/module/web/browser/SearchManager.js +11 -9
  374. package/lib/module/web/browser/SearchManager.js.map +1 -1
  375. package/lib/module/web/browser/assertBrowsePageShape.js +18 -0
  376. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -0
  377. package/lib/module/web/browser/classifyTrackNavigation.js +38 -0
  378. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -0
  379. package/lib/module/web/browser/parseSearchResponse.js +16 -0
  380. package/lib/module/web/browser/parseSearchResponse.js.map +1 -0
  381. package/lib/module/web/http/HttpClient.js +4 -23
  382. package/lib/module/web/http/HttpClient.js.map +1 -1
  383. package/lib/module/web/http/RequestConfigBuilder.js +107 -58
  384. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
  385. package/lib/module/web/playbackErrorKind.js +52 -0
  386. package/lib/module/web/playbackErrorKind.js.map +1 -0
  387. package/lib/module/web/player/MediaSessionManager.js +116 -0
  388. package/lib/module/web/player/MediaSessionManager.js.map +1 -0
  389. package/lib/module/web/player/NowPlayingManager.js +7 -5
  390. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  391. package/lib/module/web/player/OptionsManager.js +9 -17
  392. package/lib/module/web/player/OptionsManager.js.map +1 -1
  393. package/lib/module/web/player/RemoteCommandController.js +92 -0
  394. package/lib/module/web/player/RemoteCommandController.js.map +1 -0
  395. package/lib/typescript/src/features/browser-config.d.ts +12 -0
  396. package/lib/typescript/src/features/browser-config.d.ts.map +1 -0
  397. package/lib/typescript/src/features/browser.d.ts +40 -1
  398. package/lib/typescript/src/features/browser.d.ts.map +1 -1
  399. package/lib/typescript/src/features/carConnection.d.ts +20 -0
  400. package/lib/typescript/src/features/carConnection.d.ts.map +1 -0
  401. package/lib/typescript/src/features/errors.d.ts +58 -3
  402. package/lib/typescript/src/features/errors.d.ts.map +1 -1
  403. package/lib/typescript/src/features/gate.d.ts +77 -0
  404. package/lib/typescript/src/features/gate.d.ts.map +1 -0
  405. package/lib/typescript/src/features/index.d.ts +2 -0
  406. package/lib/typescript/src/features/index.d.ts.map +1 -1
  407. package/lib/typescript/src/features/metadata.d.ts +6 -4
  408. package/lib/typescript/src/features/metadata.d.ts.map +1 -1
  409. package/lib/typescript/src/features/nowPlaying.d.ts +27 -0
  410. package/lib/typescript/src/features/nowPlaying.d.ts.map +1 -1
  411. package/lib/typescript/src/features/output.d.ts +28 -18
  412. package/lib/typescript/src/features/output.d.ts.map +1 -1
  413. package/lib/typescript/src/features/playback/controls.d.ts +5 -0
  414. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  415. package/lib/typescript/src/features/playback/index.d.ts +1 -0
  416. package/lib/typescript/src/features/playback/index.d.ts.map +1 -1
  417. package/lib/typescript/src/features/playback/progress.d.ts +3 -0
  418. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  419. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +34 -0
  420. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -0
  421. package/lib/typescript/src/features/playback/volume.d.ts +1 -1
  422. package/lib/typescript/src/features/player/options.d.ts +92 -93
  423. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  424. package/lib/typescript/src/features/player/setup.d.ts +206 -167
  425. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  426. package/lib/typescript/src/features/queue/queue.d.ts +9 -2
  427. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  428. package/lib/typescript/src/features/remoteControls.d.ts +0 -13
  429. package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
  430. package/lib/typescript/src/features/sleepTimer.d.ts +18 -3
  431. package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -1
  432. package/lib/typescript/src/index.d.ts.map +1 -1
  433. package/lib/typescript/src/native.d.ts +1 -2
  434. package/lib/typescript/src/native.d.ts.map +1 -1
  435. package/lib/typescript/src/specs/audio-browser.nitro.d.ts +17 -225
  436. package/lib/typescript/src/specs/audio-browser.nitro.d.ts.map +1 -1
  437. package/lib/typescript/src/types/browser-native.d.ts +9 -3
  438. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  439. package/lib/typescript/src/types/browser-nodes.d.ts +145 -13
  440. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  441. package/lib/typescript/src/types/browser.d.ts +349 -85
  442. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  443. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +0 -2
  444. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  445. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +0 -2
  446. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  447. package/lib/typescript/src/utils/artwork.d.ts +19 -0
  448. package/lib/typescript/src/utils/artwork.d.ts.map +1 -0
  449. package/lib/typescript/src/utils/resolveAssetSource.d.ts.map +1 -1
  450. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +3 -1
  451. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +24 -10
  452. package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +6 -6
  453. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +1 -11
  454. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +33 -1
  455. package/nitrogen/generated/android/c++/JArtworkVariants.hpp +61 -0
  456. package/nitrogen/generated/android/c++/JBrowseResult.hpp +5 -0
  457. package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +3 -3
  458. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +6 -0
  459. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +58 -0
  460. package/nitrogen/generated/android/c++/JFavoritesMatchMode.hpp +58 -0
  461. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +100 -0
  462. package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +3 -2
  463. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.hpp +112 -0
  464. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +121 -0
  465. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +123 -0
  466. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +133 -0
  467. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +121 -0
  468. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.hpp +139 -0
  469. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +6 -0
  470. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.hpp +134 -0
  471. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -0
  472. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +6 -0
  473. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +131 -0
  474. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +6 -0
  475. package/nitrogen/generated/android/c++/JFunc_void_GateEvent.hpp +79 -0
  476. package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +0 -10
  477. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +9 -4
  478. package/nitrogen/generated/android/c++/JFunc_void_Output.hpp +80 -0
  479. package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +2 -0
  480. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +6 -0
  481. package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +2 -0
  482. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +10 -10
  483. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +6 -0
  484. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +6 -0
  485. package/nitrogen/generated/android/c++/JGate.hpp +62 -0
  486. package/nitrogen/generated/android/c++/JGateDecision.hpp +64 -0
  487. package/nitrogen/generated/android/c++/{JThumbsRating.hpp → JGateEvent.hpp} +16 -15
  488. package/nitrogen/generated/android/c++/JGateReason.hpp +58 -0
  489. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +236 -212
  490. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +25 -22
  491. package/nitrogen/generated/android/c++/JIOSOptions.hpp +95 -0
  492. package/nitrogen/generated/android/c++/JImageRowItem.hpp +33 -3
  493. package/nitrogen/generated/android/c++/JMediaReference.hpp +58 -0
  494. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +33 -1
  495. package/nitrogen/generated/android/c++/{JPartialAndroidSetupPlayerOptions.hpp → JNativeAndroidSetupOptions.hpp} +10 -10
  496. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +61 -28
  497. package/nitrogen/generated/android/c++/JNativeGateRequest.hpp +74 -0
  498. package/nitrogen/generated/android/c++/{JPartialIOSSetupPlayerOptions.hpp → JNativeIOSSetupOptions.hpp} +10 -10
  499. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +20 -9
  500. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +182 -0
  501. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +16 -19
  502. package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +6 -0
  503. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +1 -11
  504. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +96 -0
  505. package/nitrogen/generated/android/c++/JNotificationButton.hpp +3 -3
  506. package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +3 -17
  507. package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +7 -3
  508. package/nitrogen/generated/android/c++/JOptions.hpp +14 -9
  509. package/nitrogen/generated/android/c++/{JIosOutput.hpp → JOutput.hpp} +15 -15
  510. package/nitrogen/generated/android/c++/JOutputType.hpp +82 -0
  511. package/nitrogen/generated/android/c++/JPlayback.hpp +2 -0
  512. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +6 -0
  513. package/nitrogen/generated/android/c++/JPlaybackError.hpp +18 -3
  514. package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +2 -0
  515. package/nitrogen/generated/android/c++/JPlaybackErrorKind.hpp +76 -0
  516. package/nitrogen/generated/android/c++/JPlaybackState.hpp +3 -3
  517. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +11 -5
  518. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +23 -5
  519. package/nitrogen/generated/android/c++/JRetryConfig.hpp +11 -7
  520. package/nitrogen/generated/android/c++/JSearchMode.hpp +27 -9
  521. package/nitrogen/generated/android/c++/JSearchParams.hpp +9 -3
  522. package/nitrogen/generated/android/c++/JStallReason.hpp +58 -0
  523. package/nitrogen/generated/android/c++/JTrack.hpp +23 -5
  524. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +6 -0
  525. package/nitrogen/generated/android/c++/JTrackRequest.hpp +93 -0
  526. package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +14 -1
  527. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +26 -0
  528. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +71 -0
  529. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.cpp +41 -0
  530. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +121 -0
  531. package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.cpp +26 -0
  532. package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.hpp +70 -0
  533. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +4 -4
  534. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +2 -8
  535. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +10 -4
  536. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkVariants.kt +41 -0
  537. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +3 -3
  538. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{ThumbsRating.kt → FavoriteConfig.kt} +6 -6
  539. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{RatingType.kt → FavoritesMatchMode.kt} +5 -10
  540. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNowPlayingParams.kt +50 -0
  541. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +2 -2
  542. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.kt +80 -0
  543. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +80 -0
  544. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___Track.kt +80 -0
  545. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.kt +80 -0
  546. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_std__string____Track.kt +80 -0
  547. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.kt +80 -0
  548. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.kt +80 -0
  549. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt → Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.kt} +12 -12
  550. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_RemoteSetRatingEvent.kt → Func_void_GateEvent.kt} +9 -9
  551. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_IosOutput.kt → Func_void_Output.kt} +9 -9
  552. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +9 -9
  553. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{HeartRating.kt → Gate.kt} +9 -6
  554. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PercentageRating.kt → GateDecision.kt} +9 -6
  555. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{StarRating.kt → GateEvent.kt} +6 -6
  556. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GateReason.kt +23 -0
  557. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +103 -109
  558. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +44 -0
  559. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +24 -3
  560. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaReference.kt +23 -0
  561. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +10 -4
  562. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PartialAndroidSetupPlayerOptions.kt → NativeAndroidSetupOptions.kt} +5 -5
  563. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +18 -6
  564. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{RemoteSetRatingEvent.kt → NativeGateRequest.kt} +12 -6
  565. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PartialIOSSetupPlayerOptions.kt → NativeIOSSetupOptions.kt} +5 -5
  566. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +4 -4
  567. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeSetupPlayerOptions.kt +66 -0
  568. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +6 -6
  569. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +3 -1
  570. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +2 -8
  571. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +44 -0
  572. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButton.kt +5 -5
  573. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +3 -6
  574. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +6 -3
  575. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +3 -3
  576. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{IosOutput.kt → Output.kt} +6 -6
  577. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/OutputType.kt +31 -0
  578. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +12 -3
  579. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorKind.kt +29 -0
  580. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +6 -6
  581. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  582. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -3
  583. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +7 -4
  584. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +12 -6
  585. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +6 -3
  586. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StallReason.kt +23 -0
  587. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +12 -3
  588. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackRequest.kt +44 -0
  589. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +7 -4
  590. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +53 -0
  591. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.kt +65 -0
  592. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_String_ArtworkVariants.kt +53 -0
  593. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +139 -28
  594. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +1098 -447
  595. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +60 -39
  596. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +170 -112
  597. package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +8 -8
  598. package/nitrogen/generated/ios/swift/AndroidOptions.swift +2 -12
  599. package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +95 -1
  600. package/nitrogen/generated/ios/swift/ArtworkVariants.swift +34 -0
  601. package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +4 -4
  602. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +29 -0
  603. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +40 -0
  604. package/nitrogen/generated/ios/swift/FormatNowPlayingParams.swift +67 -0
  605. package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +17 -4
  606. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.swift +54 -0
  607. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +69 -0
  608. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___Track.swift +54 -0
  609. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.swift +60 -0
  610. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_std__string____Track.swift +60 -0
  611. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.swift +61 -0
  612. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.swift +61 -0
  613. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.swift +77 -0
  614. package/nitrogen/generated/ios/swift/Func_void_GateDecision.swift +46 -0
  615. package/nitrogen/generated/ios/swift/{Func_void_RemoteSetRatingEvent.swift → Func_void_GateEvent.swift} +10 -10
  616. package/nitrogen/generated/ios/swift/{Func_void_IosOutput.swift → Func_void_Output.swift} +10 -10
  617. package/nitrogen/generated/ios/swift/Func_void_TransformableRequestConfig.swift +46 -0
  618. package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
  619. package/nitrogen/generated/ios/swift/Func_void_std__optional_NowPlayingUpdate_.swift +46 -0
  620. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +53 -0
  621. package/nitrogen/generated/ios/swift/{Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift → Func_void_std__shared_ptr_Promise_GateDecision__.swift} +17 -17
  622. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_TransformableRequestConfig__.swift +66 -0
  623. package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError____.swift +81 -0
  624. package/nitrogen/generated/ios/swift/Gate.swift +47 -0
  625. package/nitrogen/generated/ios/swift/GateDecision.swift +40 -0
  626. package/nitrogen/generated/ios/swift/GateEvent.swift +29 -0
  627. package/nitrogen/generated/ios/swift/GateReason.swift +40 -0
  628. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +20 -14
  629. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +230 -197
  630. package/nitrogen/generated/ios/swift/IOSOptions.swift +51 -0
  631. package/nitrogen/generated/ios/swift/ImageRowItem.swift +121 -2
  632. package/nitrogen/generated/ios/swift/MediaReference.swift +40 -0
  633. package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +107 -1
  634. package/nitrogen/generated/ios/swift/{PartialAndroidSetupPlayerOptions.swift → NativeAndroidSetupOptions.swift} +5 -5
  635. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +161 -22
  636. package/nitrogen/generated/ios/swift/NativeGateRequest.swift +58 -0
  637. package/nitrogen/generated/ios/swift/{PartialIOSSetupPlayerOptions.swift → NativeIOSSetupOptions.swift} +5 -5
  638. package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +19 -19
  639. package/nitrogen/generated/ios/swift/NativeSetupPlayerOptions.swift +206 -0
  640. package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +12 -25
  641. package/nitrogen/generated/ios/swift/NavigationErrorType.swift +8 -0
  642. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +1 -30
  643. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +90 -0
  644. package/nitrogen/generated/ios/swift/NotificationButton.swift +4 -4
  645. package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +1 -48
  646. package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +19 -1
  647. package/nitrogen/generated/ios/swift/Options.swift +10 -4
  648. package/nitrogen/generated/ios/swift/{IosOutput.swift → Output.swift} +7 -7
  649. package/nitrogen/generated/ios/swift/OutputType.swift +72 -0
  650. package/nitrogen/generated/ios/swift/PlaybackError.swift +43 -2
  651. package/nitrogen/generated/ios/swift/PlaybackErrorKind.swift +64 -0
  652. package/nitrogen/generated/ios/swift/PlaybackState.swift +4 -4
  653. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +27 -8
  654. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +74 -8
  655. package/nitrogen/generated/ios/swift/RetryConfig.swift +35 -4
  656. package/nitrogen/generated/ios/swift/SearchMode.swift +36 -12
  657. package/nitrogen/generated/ios/swift/SearchParams.swift +7 -2
  658. package/nitrogen/generated/ios/swift/StallReason.swift +40 -0
  659. package/nitrogen/generated/ios/swift/Track.swift +74 -8
  660. package/nitrogen/generated/ios/swift/TrackRequest.swift +106 -0
  661. package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +60 -1
  662. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +18 -0
  663. package/nitrogen/generated/ios/swift/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.swift +19 -0
  664. package/nitrogen/generated/ios/swift/Variant_String_ArtworkVariants.swift +18 -0
  665. package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +10 -10
  666. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +1 -12
  667. package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +10 -2
  668. package/nitrogen/generated/shared/c++/ArtworkVariants.hpp +87 -0
  669. package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +6 -6
  670. package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +0 -2
  671. package/nitrogen/generated/shared/c++/{StarRating.hpp → FavoriteConfig.hpp} +18 -17
  672. package/nitrogen/generated/shared/c++/FavoritesMatchMode.hpp +76 -0
  673. package/nitrogen/generated/shared/c++/FormatNowPlayingParams.hpp +110 -0
  674. package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +6 -5
  675. package/nitrogen/generated/shared/c++/{HeartRating.hpp → Gate.hpp} +21 -16
  676. package/nitrogen/generated/shared/c++/{ThumbsRating.hpp → GateDecision.hpp} +23 -17
  677. package/nitrogen/generated/shared/c++/{PercentageRating.hpp → GateEvent.hpp} +18 -17
  678. package/nitrogen/generated/shared/c++/GateReason.hpp +76 -0
  679. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +21 -18
  680. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +44 -35
  681. package/nitrogen/generated/shared/c++/IOSOptions.hpp +91 -0
  682. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +33 -2
  683. package/nitrogen/generated/shared/c++/MediaReference.hpp +76 -0
  684. package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +10 -2
  685. package/nitrogen/generated/shared/c++/{PartialAndroidSetupPlayerOptions.hpp → NativeAndroidSetupOptions.hpp} +11 -11
  686. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +31 -15
  687. package/nitrogen/generated/shared/c++/NativeGateRequest.hpp +97 -0
  688. package/nitrogen/generated/shared/c++/{PartialIOSSetupPlayerOptions.hpp → NativeIOSSetupOptions.hpp} +11 -11
  689. package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +5 -5
  690. package/nitrogen/generated/shared/c++/NativeSetupPlayerOptions.hpp +138 -0
  691. package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +9 -7
  692. package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +8 -0
  693. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +1 -12
  694. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +92 -0
  695. package/nitrogen/generated/shared/c++/NotificationButton.hpp +8 -8
  696. package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +3 -19
  697. package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +6 -2
  698. package/nitrogen/generated/shared/c++/Options.hpp +8 -8
  699. package/nitrogen/generated/shared/c++/{IosOutput.hpp → Output.hpp} +18 -18
  700. package/nitrogen/generated/shared/c++/OutputType.hpp +108 -0
  701. package/nitrogen/generated/shared/c++/PlaybackError.hpp +18 -3
  702. package/nitrogen/generated/shared/c++/PlaybackErrorKind.hpp +100 -0
  703. package/nitrogen/generated/shared/c++/PlaybackState.hpp +9 -9
  704. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +9 -6
  705. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +24 -5
  706. package/nitrogen/generated/shared/c++/RetryConfig.hpp +10 -6
  707. package/nitrogen/generated/shared/c++/SearchMode.hpp +39 -15
  708. package/nitrogen/generated/shared/c++/SearchParams.hpp +9 -2
  709. package/nitrogen/generated/shared/c++/StallReason.hpp +76 -0
  710. package/nitrogen/generated/shared/c++/Track.hpp +24 -5
  711. package/nitrogen/generated/shared/c++/TrackRequest.hpp +93 -0
  712. package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +6 -2
  713. package/package.json +11 -6
  714. package/src/codegen-no-config-variant.test.ts +70 -0
  715. package/src/features/browser-config.test.ts +110 -0
  716. package/src/features/browser-config.ts +293 -0
  717. package/src/features/browser.test.ts +19 -0
  718. package/src/features/browser.ts +58 -201
  719. package/src/features/carConnection.ts +36 -0
  720. package/src/features/errors.ts +68 -2
  721. package/src/features/gate.test.ts +72 -0
  722. package/src/features/gate.ts +155 -0
  723. package/src/features/index.ts +2 -0
  724. package/src/features/metadata.ts +6 -12
  725. package/src/features/nowPlaying.ts +36 -0
  726. package/src/features/output.ts +35 -22
  727. package/src/features/playback/controls.ts +8 -0
  728. package/src/features/playback/index.ts +1 -0
  729. package/src/features/playback/progress.ts +31 -12
  730. package/src/features/playback/trackPlaybackTime.test.ts +66 -0
  731. package/src/features/playback/trackPlaybackTime.ts +106 -0
  732. package/src/features/playback/volume.ts +1 -1
  733. package/src/features/player/options.test.ts +38 -0
  734. package/src/features/player/options.ts +140 -75
  735. package/src/features/player/setup.test.ts +117 -0
  736. package/src/features/player/setup.ts +390 -175
  737. package/src/features/queue/queue.test.ts +36 -0
  738. package/src/features/queue/queue.ts +15 -4
  739. package/src/features/remoteControls.ts +0 -23
  740. package/src/features/sleepTimer.ts +23 -4
  741. package/src/native.ts +5 -0
  742. package/src/native.web.ts +4 -1
  743. package/src/specs/audio-browser.nitro.ts +131 -41
  744. package/src/types/browser-native.ts +19 -6
  745. package/src/types/browser-nodes.ts +160 -13
  746. package/src/types/browser.ts +377 -89
  747. package/src/utils/LazyNativeEmitter.ts +0 -2
  748. package/src/utils/NativeUpdatedValue.ts +0 -2
  749. package/src/utils/artwork.ts +30 -0
  750. package/src/web/NativeAudioBrowser.playWhenReady.test.ts +301 -0
  751. package/src/web/NativeAudioBrowser.ts +365 -158
  752. package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +139 -0
  753. package/src/web/TrackPlayer/PlaybackStateMachine.ts +82 -0
  754. package/src/web/TrackPlayer/PlaybackTimer.test.ts +67 -0
  755. package/src/web/TrackPlayer/PlaybackTimer.ts +33 -0
  756. package/src/web/TrackPlayer/Player.dispatch.test.ts +229 -0
  757. package/src/web/TrackPlayer/Player.load.test.ts +86 -0
  758. package/src/web/TrackPlayer/Player.ts +113 -39
  759. package/src/web/TrackPlayer/PlayingStateFactory.test.ts +51 -0
  760. package/src/web/TrackPlayer/PlayingStateFactory.ts +24 -0
  761. package/src/web/TrackPlayer/QueueManager.test.ts +289 -0
  762. package/src/web/TrackPlayer/QueueManager.ts +302 -0
  763. package/src/web/TrackPlayer/QueuePlayer.ts +188 -0
  764. package/src/web/TrackPlayer/RepeatMode.ts +1 -1
  765. package/src/web/TrackPlayer/SleepTimer.ts +38 -3
  766. package/src/web/TrackPlayer/VolumeFader.ts +74 -0
  767. package/src/web/TrackPlayer/index.ts +2 -1
  768. package/src/web/browser/BrowserManager.ts +231 -62
  769. package/src/web/browser/NavigationErrorManager.ts +3 -1
  770. package/src/web/browser/SearchManager.ts +11 -15
  771. package/src/web/browser/__tests__/layer-resolver.test.ts +69 -0
  772. package/src/web/browser/assertBrowsePageShape.test.ts +27 -0
  773. package/src/web/browser/assertBrowsePageShape.ts +27 -0
  774. package/src/web/browser/classifyTrackNavigation.test.ts +41 -0
  775. package/src/web/browser/classifyTrackNavigation.ts +35 -0
  776. package/src/web/browser/parseSearchResponse.test.ts +25 -0
  777. package/src/web/browser/parseSearchResponse.ts +15 -0
  778. package/src/web/http/HttpClient.ts +5 -35
  779. package/src/web/http/RequestConfigBuilder.test.ts +59 -0
  780. package/src/web/http/RequestConfigBuilder.ts +120 -63
  781. package/src/web/playbackErrorKind.test.ts +55 -0
  782. package/src/web/playbackErrorKind.ts +56 -0
  783. package/src/web/player/MediaSessionManager.test.ts +220 -0
  784. package/src/web/player/MediaSessionManager.ts +151 -0
  785. package/src/web/player/NowPlayingManager.test.ts +46 -0
  786. package/src/web/player/NowPlayingManager.ts +6 -5
  787. package/src/web/player/OptionsManager.ts +12 -18
  788. package/src/web/player/RemoteCommandController.test.ts +171 -0
  789. package/src/web/player/RemoteCommandController.ts +166 -0
  790. package/android/src/main/java/com/audiobrowser/player/PlaybackProgressUpdateManager.kt +0 -59
  791. package/android/src/main/java/com/audiobrowser/util/RatingFactory.kt +0 -72
  792. package/android/src/main/java/com/audiobrowser/util/ResolvedTrackFactory.kt +0 -36
  793. package/android/src/test/java/com/audiobrowser/player/PlaybackProgressUpdateManagerTest.kt +0 -146
  794. package/ios/CarPlay/Track+CarPlay.swift +0 -63
  795. package/ios/NowPlayingInfo/NowPlayingInfoCenter.swift +0 -9
  796. package/ios/Player/PlaybackProgressUpdateManager.swift +0 -68
  797. package/ios/Tests/PlaybackProgressUpdateManagerTests.swift +0 -166
  798. package/lib/commonjs/features/rating.js +0 -2
  799. package/lib/commonjs/features/rating.js.map +0 -1
  800. package/lib/commonjs/types/player.js +0 -2
  801. package/lib/commonjs/types/player.js.map +0 -1
  802. package/lib/commonjs/web/SimpleRouter.test.js +0 -174
  803. package/lib/commonjs/web/SimpleRouter.test.js.map +0 -1
  804. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js +0 -293
  805. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js.map +0 -1
  806. package/lib/module/features/rating.js +0 -2
  807. package/lib/module/features/rating.js.map +0 -1
  808. package/lib/module/types/player.js +0 -2
  809. package/lib/module/types/player.js.map +0 -1
  810. package/lib/module/web/SimpleRouter.test.js +0 -174
  811. package/lib/module/web/SimpleRouter.test.js.map +0 -1
  812. package/lib/module/web/TrackPlayer/PlaylistPlayer.js +0 -288
  813. package/lib/module/web/TrackPlayer/PlaylistPlayer.js.map +0 -1
  814. package/lib/typescript/src/features/rating.d.ts +0 -14
  815. package/lib/typescript/src/features/rating.d.ts.map +0 -1
  816. package/lib/typescript/src/native.web.d.ts +0 -3
  817. package/lib/typescript/src/native.web.d.ts.map +0 -1
  818. package/lib/typescript/src/types/player.d.ts +0 -64
  819. package/lib/typescript/src/types/player.d.ts.map +0 -1
  820. package/lib/typescript/src/web/NativeAudioBrowser.d.ts +0 -188
  821. package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +0 -1
  822. package/lib/typescript/src/web/SimpleRouter.d.ts +0 -40
  823. package/lib/typescript/src/web/SimpleRouter.d.ts.map +0 -1
  824. package/lib/typescript/src/web/SimpleRouter.test.d.ts +0 -2
  825. package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +0 -1
  826. package/lib/typescript/src/web/TrackPlayer/Event.d.ts +0 -11
  827. package/lib/typescript/src/web/TrackPlayer/Event.d.ts.map +0 -1
  828. package/lib/typescript/src/web/TrackPlayer/Player.d.ts +0 -59
  829. package/lib/typescript/src/web/TrackPlayer/Player.d.ts.map +0 -1
  830. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts +0 -39
  831. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts.map +0 -1
  832. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts +0 -6
  833. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts.map +0 -1
  834. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts +0 -4
  835. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts.map +0 -1
  836. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts +0 -34
  837. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts.map +0 -1
  838. package/lib/typescript/src/web/TrackPlayer/State.d.ts +0 -13
  839. package/lib/typescript/src/web/TrackPlayer/State.d.ts.map +0 -1
  840. package/lib/typescript/src/web/TrackPlayer/index.d.ts +0 -5
  841. package/lib/typescript/src/web/TrackPlayer/index.d.ts.map +0 -1
  842. package/lib/typescript/src/web/browser/BrowserManager.d.ts +0 -154
  843. package/lib/typescript/src/web/browser/BrowserManager.d.ts.map +0 -1
  844. package/lib/typescript/src/web/browser/FavoriteManager.d.ts +0 -42
  845. package/lib/typescript/src/web/browser/FavoriteManager.d.ts.map +0 -1
  846. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts +0 -40
  847. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts.map +0 -1
  848. package/lib/typescript/src/web/browser/SearchManager.d.ts +0 -22
  849. package/lib/typescript/src/web/browser/SearchManager.d.ts.map +0 -1
  850. package/lib/typescript/src/web/http/HttpClient.d.ts +0 -25
  851. package/lib/typescript/src/web/http/HttpClient.d.ts.map +0 -1
  852. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts +0 -98
  853. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts.map +0 -1
  854. package/lib/typescript/src/web/player/NowPlayingManager.d.ts +0 -34
  855. package/lib/typescript/src/web/player/NowPlayingManager.d.ts.map +0 -1
  856. package/lib/typescript/src/web/player/OptionsManager.d.ts +0 -32
  857. package/lib/typescript/src/web/player/OptionsManager.d.ts.map +0 -1
  858. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts +0 -69
  859. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts.map +0 -1
  860. package/lib/typescript/src/web/util/shuffle.d.ts +0 -8
  861. package/lib/typescript/src/web/util/shuffle.d.ts.map +0 -1
  862. package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +0 -86
  863. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +0 -147
  864. package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +0 -80
  865. package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +0 -87
  866. package/nitrogen/generated/android/c++/JHeartRating.hpp +0 -57
  867. package/nitrogen/generated/android/c++/JIosOutputType.hpp +0 -85
  868. package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +0 -96
  869. package/nitrogen/generated/android/c++/JPercentageRating.hpp +0 -57
  870. package/nitrogen/generated/android/c++/JRatingType.hpp +0 -73
  871. package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +0 -66
  872. package/nitrogen/generated/android/c++/JStarRating.hpp +0 -57
  873. package/nitrogen/generated/android/c++/JUpdateOptions.hpp +0 -105
  874. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +0 -34
  875. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +0 -105
  876. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +0 -50
  877. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +0 -32
  878. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +0 -47
  879. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +0 -53
  880. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +0 -77
  881. package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +0 -119
  882. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +0 -68
  883. package/nitrogen/generated/ios/swift/HeartRating.swift +0 -29
  884. package/nitrogen/generated/ios/swift/IosOutputType.swift +0 -76
  885. package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +0 -101
  886. package/nitrogen/generated/ios/swift/PercentageRating.swift +0 -29
  887. package/nitrogen/generated/ios/swift/RatingType.swift +0 -60
  888. package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +0 -58
  889. package/nitrogen/generated/ios/swift/StarRating.swift +0 -29
  890. package/nitrogen/generated/ios/swift/ThumbsRating.swift +0 -29
  891. package/nitrogen/generated/ios/swift/UpdateOptions.swift +0 -143
  892. package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +0 -20
  893. package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +0 -109
  894. package/nitrogen/generated/shared/c++/IosOutputType.hpp +0 -112
  895. package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +0 -104
  896. package/nitrogen/generated/shared/c++/RatingType.hpp +0 -96
  897. package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +0 -94
  898. package/nitrogen/generated/shared/c++/UpdateOptions.hpp +0 -111
  899. package/src/features/rating.ts +0 -17
  900. package/src/types/player.ts +0 -69
  901. package/src/web/TrackPlayer/PlaylistPlayer.ts +0 -346
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// PercentageRating.hpp
2
+ /// GateEvent.hpp
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
@@ -28,43 +28,44 @@
28
28
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
29
  #endif
30
30
 
31
+ // Forward declaration of `GateReason` to properly resolve imports.
32
+ namespace margelo::nitro::audiobrowser { enum class GateReason; }
31
33
 
32
-
33
-
34
+ #include "GateReason.hpp"
34
35
 
35
36
  namespace margelo::nitro::audiobrowser {
36
37
 
37
38
  /**
38
- * A struct which can be represented as a JavaScript object (PercentageRating).
39
+ * A struct which can be represented as a JavaScript object (GateEvent).
39
40
  */
40
- struct PercentageRating final {
41
+ struct GateEvent final {
41
42
  public:
42
- double percentage SWIFT_PRIVATE;
43
+ GateReason reason SWIFT_PRIVATE;
43
44
 
44
45
  public:
45
- PercentageRating() = default;
46
- explicit PercentageRating(double percentage): percentage(percentage) {}
46
+ GateEvent() = default;
47
+ explicit GateEvent(GateReason reason): reason(reason) {}
47
48
 
48
49
  public:
49
- friend bool operator==(const PercentageRating& lhs, const PercentageRating& rhs) = default;
50
+ friend bool operator==(const GateEvent& lhs, const GateEvent& rhs) = default;
50
51
  };
51
52
 
52
53
  } // namespace margelo::nitro::audiobrowser
53
54
 
54
55
  namespace margelo::nitro {
55
56
 
56
- // C++ PercentageRating <> JS PercentageRating (object)
57
+ // C++ GateEvent <> JS GateEvent (object)
57
58
  template <>
58
- struct JSIConverter<margelo::nitro::audiobrowser::PercentageRating> final {
59
- static inline margelo::nitro::audiobrowser::PercentageRating fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
59
+ struct JSIConverter<margelo::nitro::audiobrowser::GateEvent> final {
60
+ static inline margelo::nitro::audiobrowser::GateEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
60
61
  jsi::Object obj = arg.asObject(runtime);
61
- return margelo::nitro::audiobrowser::PercentageRating(
62
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "percentage")))
62
+ return margelo::nitro::audiobrowser::GateEvent(
63
+ JSIConverter<margelo::nitro::audiobrowser::GateReason>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "reason")))
63
64
  );
64
65
  }
65
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::PercentageRating& arg) {
66
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::GateEvent& arg) {
66
67
  jsi::Object obj(runtime);
67
- obj.setProperty(runtime, PropNameIDCache::get(runtime, "percentage"), JSIConverter<double>::toJSI(runtime, arg.percentage));
68
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "reason"), JSIConverter<margelo::nitro::audiobrowser::GateReason>::toJSI(runtime, arg.reason));
68
69
  return obj;
69
70
  }
70
71
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -75,7 +76,7 @@ namespace margelo::nitro {
75
76
  if (!nitro::isPlainObject(runtime, obj)) {
76
77
  return false;
77
78
  }
78
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "percentage")))) return false;
79
+ if (!JSIConverter<margelo::nitro::audiobrowser::GateReason>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "reason")))) return false;
79
80
  return true;
80
81
  }
81
82
  };
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// GateReason.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::audiobrowser {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (GateReason).
30
+ */
31
+ enum class GateReason {
32
+ BROWSE SWIFT_NAME(browse) = 0,
33
+ SEARCH SWIFT_NAME(search) = 1,
34
+ } CLOSED_ENUM;
35
+
36
+ } // namespace margelo::nitro::audiobrowser
37
+
38
+ namespace margelo::nitro {
39
+
40
+ // C++ GateReason <> JS GateReason (union)
41
+ template <>
42
+ struct JSIConverter<margelo::nitro::audiobrowser::GateReason> final {
43
+ static inline margelo::nitro::audiobrowser::GateReason fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
44
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
45
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
46
+ case hashString("browse"): return margelo::nitro::audiobrowser::GateReason::BROWSE;
47
+ case hashString("search"): return margelo::nitro::audiobrowser::GateReason::SEARCH;
48
+ default: [[unlikely]]
49
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum GateReason - invalid value!");
50
+ }
51
+ }
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::GateReason arg) {
53
+ switch (arg) {
54
+ case margelo::nitro::audiobrowser::GateReason::BROWSE: return JSIConverter<std::string>::toJSI(runtime, "browse");
55
+ case margelo::nitro::audiobrowser::GateReason::SEARCH: return JSIConverter<std::string>::toJSI(runtime, "search");
56
+ default: [[unlikely]]
57
+ throw std::invalid_argument("Cannot convert GateReason to JS - invalid value: "
58
+ + std::to_string(static_cast<int>(arg)) + "!");
59
+ }
60
+ }
61
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
62
+ if (!value.isString()) {
63
+ return false;
64
+ }
65
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
66
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
67
+ case hashString("browse"):
68
+ case hashString("search"):
69
+ return true;
70
+ default:
71
+ return false;
72
+ }
73
+ }
74
+ };
75
+
76
+ } // namespace margelo::nitro
@@ -30,6 +30,12 @@ namespace margelo::nitro::audiobrowser {
30
30
  prototype.registerHybridSetter("onFormattedNavigationError", &HybridAudioBrowserSpec::setOnFormattedNavigationError);
31
31
  prototype.registerHybridGetter("configuration", &HybridAudioBrowserSpec::getConfiguration);
32
32
  prototype.registerHybridSetter("configuration", &HybridAudioBrowserSpec::setConfiguration);
33
+ prototype.registerHybridGetter("resolveGate", &HybridAudioBrowserSpec::getResolveGate);
34
+ prototype.registerHybridSetter("resolveGate", &HybridAudioBrowserSpec::setResolveGate);
35
+ prototype.registerHybridGetter("onGate", &HybridAudioBrowserSpec::getOnGate);
36
+ prototype.registerHybridSetter("onGate", &HybridAudioBrowserSpec::setOnGate);
37
+ prototype.registerHybridGetter("onCarConnectedChanged", &HybridAudioBrowserSpec::getOnCarConnectedChanged);
38
+ prototype.registerHybridSetter("onCarConnectedChanged", &HybridAudioBrowserSpec::setOnCarConnectedChanged);
33
39
  prototype.registerHybridGetter("onChapterMetadata", &HybridAudioBrowserSpec::getOnChapterMetadata);
34
40
  prototype.registerHybridSetter("onChapterMetadata", &HybridAudioBrowserSpec::setOnChapterMetadata);
35
41
  prototype.registerHybridGetter("onTrackMetadata", &HybridAudioBrowserSpec::getOnTrackMetadata);
@@ -46,6 +52,8 @@ namespace margelo::nitro::audiobrowser {
46
52
  prototype.registerHybridSetter("onPlaybackPlayingState", &HybridAudioBrowserSpec::setOnPlaybackPlayingState);
47
53
  prototype.registerHybridGetter("onPlaybackProgressUpdated", &HybridAudioBrowserSpec::getOnPlaybackProgressUpdated);
48
54
  prototype.registerHybridSetter("onPlaybackProgressUpdated", &HybridAudioBrowserSpec::setOnPlaybackProgressUpdated);
55
+ prototype.registerHybridGetter("onPlaybackInterval", &HybridAudioBrowserSpec::getOnPlaybackInterval);
56
+ prototype.registerHybridSetter("onPlaybackInterval", &HybridAudioBrowserSpec::setOnPlaybackInterval);
49
57
  prototype.registerHybridGetter("onPlaybackQueueEnded", &HybridAudioBrowserSpec::getOnPlaybackQueueEnded);
50
58
  prototype.registerHybridSetter("onPlaybackQueueEnded", &HybridAudioBrowserSpec::setOnPlaybackQueueEnded);
51
59
  prototype.registerHybridGetter("onPlaybackQueueChanged", &HybridAudioBrowserSpec::getOnPlaybackQueueChanged);
@@ -58,16 +66,10 @@ namespace margelo::nitro::audiobrowser {
58
66
  prototype.registerHybridSetter("onSleepTimerChanged", &HybridAudioBrowserSpec::setOnSleepTimerChanged);
59
67
  prototype.registerHybridGetter("onPlaybackChanged", &HybridAudioBrowserSpec::getOnPlaybackChanged);
60
68
  prototype.registerHybridSetter("onPlaybackChanged", &HybridAudioBrowserSpec::setOnPlaybackChanged);
61
- prototype.registerHybridGetter("onRemoteBookmark", &HybridAudioBrowserSpec::getOnRemoteBookmark);
62
- prototype.registerHybridSetter("onRemoteBookmark", &HybridAudioBrowserSpec::setOnRemoteBookmark);
63
- prototype.registerHybridGetter("onRemoteDislike", &HybridAudioBrowserSpec::getOnRemoteDislike);
64
- prototype.registerHybridSetter("onRemoteDislike", &HybridAudioBrowserSpec::setOnRemoteDislike);
65
69
  prototype.registerHybridGetter("onRemoteJumpBackward", &HybridAudioBrowserSpec::getOnRemoteJumpBackward);
66
70
  prototype.registerHybridSetter("onRemoteJumpBackward", &HybridAudioBrowserSpec::setOnRemoteJumpBackward);
67
71
  prototype.registerHybridGetter("onRemoteJumpForward", &HybridAudioBrowserSpec::getOnRemoteJumpForward);
68
72
  prototype.registerHybridSetter("onRemoteJumpForward", &HybridAudioBrowserSpec::setOnRemoteJumpForward);
69
- prototype.registerHybridGetter("onRemoteLike", &HybridAudioBrowserSpec::getOnRemoteLike);
70
- prototype.registerHybridSetter("onRemoteLike", &HybridAudioBrowserSpec::setOnRemoteLike);
71
73
  prototype.registerHybridGetter("onRemoteNext", &HybridAudioBrowserSpec::getOnRemoteNext);
72
74
  prototype.registerHybridSetter("onRemoteNext", &HybridAudioBrowserSpec::setOnRemoteNext);
73
75
  prototype.registerHybridGetter("onRemotePause", &HybridAudioBrowserSpec::getOnRemotePause);
@@ -82,8 +84,6 @@ namespace margelo::nitro::audiobrowser {
82
84
  prototype.registerHybridSetter("onRemotePrevious", &HybridAudioBrowserSpec::setOnRemotePrevious);
83
85
  prototype.registerHybridGetter("onRemoteSeek", &HybridAudioBrowserSpec::getOnRemoteSeek);
84
86
  prototype.registerHybridSetter("onRemoteSeek", &HybridAudioBrowserSpec::setOnRemoteSeek);
85
- prototype.registerHybridGetter("onRemoteSetRating", &HybridAudioBrowserSpec::getOnRemoteSetRating);
86
- prototype.registerHybridSetter("onRemoteSetRating", &HybridAudioBrowserSpec::setOnRemoteSetRating);
87
87
  prototype.registerHybridGetter("onRemoteSkip", &HybridAudioBrowserSpec::getOnRemoteSkip);
88
88
  prototype.registerHybridSetter("onRemoteSkip", &HybridAudioBrowserSpec::setOnRemoteSkip);
89
89
  prototype.registerHybridGetter("onRemoteStop", &HybridAudioBrowserSpec::getOnRemoteStop);
@@ -94,16 +94,10 @@ namespace margelo::nitro::audiobrowser {
94
94
  prototype.registerHybridSetter("onFavoriteChanged", &HybridAudioBrowserSpec::setOnFavoriteChanged);
95
95
  prototype.registerHybridGetter("onNowPlayingChanged", &HybridAudioBrowserSpec::getOnNowPlayingChanged);
96
96
  prototype.registerHybridSetter("onNowPlayingChanged", &HybridAudioBrowserSpec::setOnNowPlayingChanged);
97
- prototype.registerHybridGetter("handleRemoteBookmark", &HybridAudioBrowserSpec::getHandleRemoteBookmark);
98
- prototype.registerHybridSetter("handleRemoteBookmark", &HybridAudioBrowserSpec::setHandleRemoteBookmark);
99
- prototype.registerHybridGetter("handleRemoteDislike", &HybridAudioBrowserSpec::getHandleRemoteDislike);
100
- prototype.registerHybridSetter("handleRemoteDislike", &HybridAudioBrowserSpec::setHandleRemoteDislike);
101
97
  prototype.registerHybridGetter("handleRemoteJumpBackward", &HybridAudioBrowserSpec::getHandleRemoteJumpBackward);
102
98
  prototype.registerHybridSetter("handleRemoteJumpBackward", &HybridAudioBrowserSpec::setHandleRemoteJumpBackward);
103
99
  prototype.registerHybridGetter("handleRemoteJumpForward", &HybridAudioBrowserSpec::getHandleRemoteJumpForward);
104
100
  prototype.registerHybridSetter("handleRemoteJumpForward", &HybridAudioBrowserSpec::setHandleRemoteJumpForward);
105
- prototype.registerHybridGetter("handleRemoteLike", &HybridAudioBrowserSpec::getHandleRemoteLike);
106
- prototype.registerHybridSetter("handleRemoteLike", &HybridAudioBrowserSpec::setHandleRemoteLike);
107
101
  prototype.registerHybridGetter("handleRemoteNext", &HybridAudioBrowserSpec::getHandleRemoteNext);
108
102
  prototype.registerHybridSetter("handleRemoteNext", &HybridAudioBrowserSpec::setHandleRemoteNext);
109
103
  prototype.registerHybridGetter("handleRemotePause", &HybridAudioBrowserSpec::getHandleRemotePause);
@@ -126,8 +120,8 @@ namespace margelo::nitro::audiobrowser {
126
120
  prototype.registerHybridSetter("onOnlineChanged", &HybridAudioBrowserSpec::setOnOnlineChanged);
127
121
  prototype.registerHybridGetter("onSystemVolumeChanged", &HybridAudioBrowserSpec::getOnSystemVolumeChanged);
128
122
  prototype.registerHybridSetter("onSystemVolumeChanged", &HybridAudioBrowserSpec::setOnSystemVolumeChanged);
129
- prototype.registerHybridGetter("onIosOutputChanged", &HybridAudioBrowserSpec::getOnIosOutputChanged);
130
- prototype.registerHybridSetter("onIosOutputChanged", &HybridAudioBrowserSpec::setOnIosOutputChanged);
123
+ prototype.registerHybridGetter("onOutputChanged", &HybridAudioBrowserSpec::getOnOutputChanged);
124
+ prototype.registerHybridSetter("onOutputChanged", &HybridAudioBrowserSpec::setOnOutputChanged);
131
125
  prototype.registerHybridGetter("onEqualizerChanged", &HybridAudioBrowserSpec::getOnEqualizerChanged);
132
126
  prototype.registerHybridSetter("onEqualizerChanged", &HybridAudioBrowserSpec::setOnEqualizerChanged);
133
127
  prototype.registerHybridGetter("onBatteryWarningPendingChanged", &HybridAudioBrowserSpec::getOnBatteryWarningPendingChanged);
@@ -141,7 +135,11 @@ namespace margelo::nitro::audiobrowser {
141
135
  prototype.registerHybridMethod("getNavigationError", &HybridAudioBrowserSpec::getNavigationError);
142
136
  prototype.registerHybridMethod("getFormattedNavigationError", &HybridAudioBrowserSpec::getFormattedNavigationError);
143
137
  prototype.registerHybridMethod("notifyContentChanged", &HybridAudioBrowserSpec::notifyContentChanged);
138
+ prototype.registerHybridMethod("invalidateAllContent", &HybridAudioBrowserSpec::invalidateAllContent);
144
139
  prototype.registerHybridMethod("setFavorites", &HybridAudioBrowserSpec::setFavorites);
140
+ prototype.registerHybridMethod("setGate", &HybridAudioBrowserSpec::setGate);
141
+ prototype.registerHybridMethod("clearGate", &HybridAudioBrowserSpec::clearGate);
142
+ prototype.registerHybridMethod("isCarConnected", &HybridAudioBrowserSpec::isCarConnected);
145
143
  prototype.registerHybridMethod("setupPlayer", &HybridAudioBrowserSpec::setupPlayer);
146
144
  prototype.registerHybridMethod("updateOptions", &HybridAudioBrowserSpec::updateOptions);
147
145
  prototype.registerHybridMethod("getOptions", &HybridAudioBrowserSpec::getOptions);
@@ -155,11 +153,13 @@ namespace margelo::nitro::audiobrowser {
155
153
  prototype.registerHybridMethod("getPlayWhenReady", &HybridAudioBrowserSpec::getPlayWhenReady);
156
154
  prototype.registerHybridMethod("seekTo", &HybridAudioBrowserSpec::seekTo);
157
155
  prototype.registerHybridMethod("seekBy", &HybridAudioBrowserSpec::seekBy);
156
+ prototype.registerHybridMethod("seekToLiveEdge", &HybridAudioBrowserSpec::seekToLiveEdge);
158
157
  prototype.registerHybridMethod("setVolume", &HybridAudioBrowserSpec::setVolume);
159
158
  prototype.registerHybridMethod("getVolume", &HybridAudioBrowserSpec::getVolume);
160
159
  prototype.registerHybridMethod("setRate", &HybridAudioBrowserSpec::setRate);
161
160
  prototype.registerHybridMethod("getRate", &HybridAudioBrowserSpec::getRate);
162
161
  prototype.registerHybridMethod("getProgress", &HybridAudioBrowserSpec::getProgress);
162
+ prototype.registerHybridMethod("setPlaybackIntervalEnabled", &HybridAudioBrowserSpec::setPlaybackIntervalEnabled);
163
163
  prototype.registerHybridMethod("getPlayback", &HybridAudioBrowserSpec::getPlayback);
164
164
  prototype.registerHybridMethod("getPlayingState", &HybridAudioBrowserSpec::getPlayingState);
165
165
  prototype.registerHybridMethod("getRepeatMode", &HybridAudioBrowserSpec::getRepeatMode);
@@ -187,12 +187,15 @@ namespace margelo::nitro::audiobrowser {
187
187
  prototype.registerHybridMethod("getActiveTrackIndex", &HybridAudioBrowserSpec::getActiveTrackIndex);
188
188
  prototype.registerHybridMethod("getActiveTrack", &HybridAudioBrowserSpec::getActiveTrack);
189
189
  prototype.registerHybridMethod("updateNowPlaying", &HybridAudioBrowserSpec::updateNowPlaying);
190
+ prototype.registerHybridMethod("flashNowPlaying", &HybridAudioBrowserSpec::flashNowPlaying);
191
+ prototype.registerHybridMethod("clearNowPlayingFlash", &HybridAudioBrowserSpec::clearNowPlayingFlash);
190
192
  prototype.registerHybridMethod("getNowPlaying", &HybridAudioBrowserSpec::getNowPlaying);
191
193
  prototype.registerHybridMethod("getOnline", &HybridAudioBrowserSpec::getOnline);
192
194
  prototype.registerHybridMethod("getSystemVolume", &HybridAudioBrowserSpec::getSystemVolume);
193
195
  prototype.registerHybridMethod("setSystemVolume", &HybridAudioBrowserSpec::setSystemVolume);
194
- prototype.registerHybridMethod("getIosOutput", &HybridAudioBrowserSpec::getIosOutput);
195
- prototype.registerHybridMethod("openIosOutputPicker", &HybridAudioBrowserSpec::openIosOutputPicker);
196
+ prototype.registerHybridMethod("getOutput", &HybridAudioBrowserSpec::getOutput);
197
+ prototype.registerHybridMethod("openOutputPicker", &HybridAudioBrowserSpec::openOutputPicker);
198
+ prototype.registerHybridMethod("supportsOutputSwitcher", &HybridAudioBrowserSpec::supportsOutputSwitcher);
196
199
  prototype.registerHybridMethod("getEqualizerSettings", &HybridAudioBrowserSpec::getEqualizerSettings);
197
200
  prototype.registerHybridMethod("setEqualizerEnabled", &HybridAudioBrowserSpec::setEqualizerEnabled);
198
201
  prototype.registerHybridMethod("setEqualizerPreset", &HybridAudioBrowserSpec::setEqualizerPreset);
@@ -23,6 +23,12 @@ namespace margelo::nitro::audiobrowser { struct NavigationErrorEvent; }
23
23
  namespace margelo::nitro::audiobrowser { struct FormattedNavigationError; }
24
24
  // Forward declaration of `NativeBrowserConfiguration` to properly resolve imports.
25
25
  namespace margelo::nitro::audiobrowser { struct NativeBrowserConfiguration; }
26
+ // Forward declaration of `GateDecision` to properly resolve imports.
27
+ namespace margelo::nitro::audiobrowser { struct GateDecision; }
28
+ // Forward declaration of `NativeGateRequest` to properly resolve imports.
29
+ namespace margelo::nitro::audiobrowser { struct NativeGateRequest; }
30
+ // Forward declaration of `GateEvent` to properly resolve imports.
31
+ namespace margelo::nitro::audiobrowser { struct GateEvent; }
26
32
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
27
33
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
28
34
  // Forward declaration of `TrackMetadata` to properly resolve imports.
@@ -59,8 +65,6 @@ namespace margelo::nitro::audiobrowser { struct RemotePlayIdEvent; }
59
65
  namespace margelo::nitro::audiobrowser { struct RemotePlaySearchEvent; }
60
66
  // Forward declaration of `RemoteSeekEvent` to properly resolve imports.
61
67
  namespace margelo::nitro::audiobrowser { struct RemoteSeekEvent; }
62
- // Forward declaration of `RemoteSetRatingEvent` to properly resolve imports.
63
- namespace margelo::nitro::audiobrowser { struct RemoteSetRatingEvent; }
64
68
  // Forward declaration of `RemoteSkipEvent` to properly resolve imports.
65
69
  namespace margelo::nitro::audiobrowser { struct RemoteSkipEvent; }
66
70
  // Forward declaration of `Options` to properly resolve imports.
@@ -69,8 +73,8 @@ namespace margelo::nitro::audiobrowser { struct Options; }
69
73
  namespace margelo::nitro::audiobrowser { struct FavoriteChangedEvent; }
70
74
  // Forward declaration of `NowPlayingMetadata` to properly resolve imports.
71
75
  namespace margelo::nitro::audiobrowser { struct NowPlayingMetadata; }
72
- // Forward declaration of `IosOutput` to properly resolve imports.
73
- namespace margelo::nitro::audiobrowser { struct IosOutput; }
76
+ // Forward declaration of `Output` to properly resolve imports.
77
+ namespace margelo::nitro::audiobrowser { struct Output; }
74
78
  // Forward declaration of `EqualizerSettings` to properly resolve imports.
75
79
  namespace margelo::nitro::audiobrowser { struct EqualizerSettings; }
76
80
  // Forward declaration of `BatteryWarningPendingChangedEvent` to properly resolve imports.
@@ -79,12 +83,12 @@ namespace margelo::nitro::audiobrowser { struct BatteryWarningPendingChangedEven
79
83
  namespace margelo::nitro::audiobrowser { struct BatteryOptimizationStatusChangedEvent; }
80
84
  // Forward declaration of `NavigationError` to properly resolve imports.
81
85
  namespace margelo::nitro::audiobrowser { struct NavigationError; }
82
- // Forward declaration of `PartialSetupPlayerOptions` to properly resolve imports.
83
- namespace margelo::nitro::audiobrowser { struct PartialSetupPlayerOptions; }
86
+ // Forward declaration of `Gate` to properly resolve imports.
87
+ namespace margelo::nitro::audiobrowser { struct Gate; }
88
+ // Forward declaration of `NativeSetupPlayerOptions` to properly resolve imports.
89
+ namespace margelo::nitro::audiobrowser { struct NativeSetupPlayerOptions; }
84
90
  // Forward declaration of `NativeUpdateOptions` to properly resolve imports.
85
91
  namespace margelo::nitro::audiobrowser { struct NativeUpdateOptions; }
86
- // Forward declaration of `UpdateOptions` to properly resolve imports.
87
- namespace margelo::nitro::audiobrowser { struct UpdateOptions; }
88
92
  // Forward declaration of `Progress` to properly resolve imports.
89
93
  namespace margelo::nitro::audiobrowser { struct Progress; }
90
94
  // Forward declaration of `RepeatMode` to properly resolve imports.
@@ -105,6 +109,10 @@ namespace margelo::nitro::audiobrowser { enum class BatteryOptimizationStatus; }
105
109
  #include "NavigationErrorEvent.hpp"
106
110
  #include "FormattedNavigationError.hpp"
107
111
  #include "NativeBrowserConfiguration.hpp"
112
+ #include "GateDecision.hpp"
113
+ #include <NitroModules/Promise.hpp>
114
+ #include "NativeGateRequest.hpp"
115
+ #include "GateEvent.hpp"
108
116
  #include "ChapterMetadata.hpp"
109
117
  #include "TrackMetadata.hpp"
110
118
  #include "TimedMetadata.hpp"
@@ -125,20 +133,18 @@ namespace margelo::nitro::audiobrowser { enum class BatteryOptimizationStatus; }
125
133
  #include "RemotePlayIdEvent.hpp"
126
134
  #include "RemotePlaySearchEvent.hpp"
127
135
  #include "RemoteSeekEvent.hpp"
128
- #include "RemoteSetRatingEvent.hpp"
129
136
  #include "RemoteSkipEvent.hpp"
130
137
  #include "Options.hpp"
131
138
  #include "FavoriteChangedEvent.hpp"
132
139
  #include "NowPlayingMetadata.hpp"
133
- #include "IosOutput.hpp"
140
+ #include "Output.hpp"
134
141
  #include "EqualizerSettings.hpp"
135
142
  #include "BatteryWarningPendingChangedEvent.hpp"
136
143
  #include "BatteryOptimizationStatusChangedEvent.hpp"
137
- #include <NitroModules/Promise.hpp>
138
144
  #include "NavigationError.hpp"
139
- #include "PartialSetupPlayerOptions.hpp"
145
+ #include "Gate.hpp"
146
+ #include "NativeSetupPlayerOptions.hpp"
140
147
  #include "NativeUpdateOptions.hpp"
141
- #include "UpdateOptions.hpp"
142
148
  #include "Progress.hpp"
143
149
  #include "RepeatMode.hpp"
144
150
  #include "PlaybackError.hpp"
@@ -188,6 +194,12 @@ namespace margelo::nitro::audiobrowser {
188
194
  virtual void setOnFormattedNavigationError(const std::function<void(const std::optional<FormattedNavigationError>& /* formattedError */)>& onFormattedNavigationError) = 0;
189
195
  virtual NativeBrowserConfiguration getConfiguration() = 0;
190
196
  virtual void setConfiguration(const NativeBrowserConfiguration& configuration) = 0;
197
+ virtual std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<GateDecision>>>>(const NativeGateRequest& /* request */)> getResolveGate() = 0;
198
+ virtual void setResolveGate(const std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<GateDecision>>>>(const NativeGateRequest& /* request */)>& resolveGate) = 0;
199
+ virtual std::function<void(const GateEvent& /* event */)> getOnGate() = 0;
200
+ virtual void setOnGate(const std::function<void(const GateEvent& /* event */)>& onGate) = 0;
201
+ virtual std::function<void(bool /* connected */)> getOnCarConnectedChanged() = 0;
202
+ virtual void setOnCarConnectedChanged(const std::function<void(bool /* connected */)>& onCarConnectedChanged) = 0;
191
203
  virtual std::function<void(const std::vector<ChapterMetadata>& /* chapters */)> getOnChapterMetadata() = 0;
192
204
  virtual void setOnChapterMetadata(const std::function<void(const std::vector<ChapterMetadata>& /* chapters */)>& onChapterMetadata) = 0;
193
205
  virtual std::function<void(const TrackMetadata& /* metadata */)> getOnTrackMetadata() = 0;
@@ -204,6 +216,8 @@ namespace margelo::nitro::audiobrowser {
204
216
  virtual void setOnPlaybackPlayingState(const std::function<void(const PlayingState& /* data */)>& onPlaybackPlayingState) = 0;
205
217
  virtual std::function<void(const PlaybackProgressUpdatedEvent& /* data */)> getOnPlaybackProgressUpdated() = 0;
206
218
  virtual void setOnPlaybackProgressUpdated(const std::function<void(const PlaybackProgressUpdatedEvent& /* data */)>& onPlaybackProgressUpdated) = 0;
219
+ virtual std::function<void()> getOnPlaybackInterval() = 0;
220
+ virtual void setOnPlaybackInterval(const std::function<void()>& onPlaybackInterval) = 0;
207
221
  virtual std::function<void(const PlaybackQueueEndedEvent& /* data */)> getOnPlaybackQueueEnded() = 0;
208
222
  virtual void setOnPlaybackQueueEnded(const std::function<void(const PlaybackQueueEndedEvent& /* data */)>& onPlaybackQueueEnded) = 0;
209
223
  virtual std::function<void(const std::vector<Track>& /* queue */)> getOnPlaybackQueueChanged() = 0;
@@ -216,16 +230,10 @@ namespace margelo::nitro::audiobrowser {
216
230
  virtual void setOnSleepTimerChanged(const std::function<void(const std::optional<std::variant<nitro::NullType, SleepTimerTime, SleepTimerEndOfTrack>>& /* data */)>& onSleepTimerChanged) = 0;
217
231
  virtual std::function<void(const Playback& /* data */)> getOnPlaybackChanged() = 0;
218
232
  virtual void setOnPlaybackChanged(const std::function<void(const Playback& /* data */)>& onPlaybackChanged) = 0;
219
- virtual std::function<void()> getOnRemoteBookmark() = 0;
220
- virtual void setOnRemoteBookmark(const std::function<void()>& onRemoteBookmark) = 0;
221
- virtual std::function<void()> getOnRemoteDislike() = 0;
222
- virtual void setOnRemoteDislike(const std::function<void()>& onRemoteDislike) = 0;
223
233
  virtual std::function<void(const RemoteJumpBackwardEvent& /* event */)> getOnRemoteJumpBackward() = 0;
224
234
  virtual void setOnRemoteJumpBackward(const std::function<void(const RemoteJumpBackwardEvent& /* event */)>& onRemoteJumpBackward) = 0;
225
235
  virtual std::function<void(const RemoteJumpForwardEvent& /* event */)> getOnRemoteJumpForward() = 0;
226
236
  virtual void setOnRemoteJumpForward(const std::function<void(const RemoteJumpForwardEvent& /* event */)>& onRemoteJumpForward) = 0;
227
- virtual std::function<void()> getOnRemoteLike() = 0;
228
- virtual void setOnRemoteLike(const std::function<void()>& onRemoteLike) = 0;
229
237
  virtual std::function<void()> getOnRemoteNext() = 0;
230
238
  virtual void setOnRemoteNext(const std::function<void()>& onRemoteNext) = 0;
231
239
  virtual std::function<void()> getOnRemotePause() = 0;
@@ -240,8 +248,6 @@ namespace margelo::nitro::audiobrowser {
240
248
  virtual void setOnRemotePrevious(const std::function<void()>& onRemotePrevious) = 0;
241
249
  virtual std::function<void(const RemoteSeekEvent& /* event */)> getOnRemoteSeek() = 0;
242
250
  virtual void setOnRemoteSeek(const std::function<void(const RemoteSeekEvent& /* event */)>& onRemoteSeek) = 0;
243
- virtual std::function<void(const RemoteSetRatingEvent& /* event */)> getOnRemoteSetRating() = 0;
244
- virtual void setOnRemoteSetRating(const std::function<void(const RemoteSetRatingEvent& /* event */)>& onRemoteSetRating) = 0;
245
251
  virtual std::function<void(const RemoteSkipEvent& /* event */)> getOnRemoteSkip() = 0;
246
252
  virtual void setOnRemoteSkip(const std::function<void(const RemoteSkipEvent& /* event */)>& onRemoteSkip) = 0;
247
253
  virtual std::function<void()> getOnRemoteStop() = 0;
@@ -252,16 +258,10 @@ namespace margelo::nitro::audiobrowser {
252
258
  virtual void setOnFavoriteChanged(const std::function<void(const FavoriteChangedEvent& /* event */)>& onFavoriteChanged) = 0;
253
259
  virtual std::function<void(const NowPlayingMetadata& /* metadata */)> getOnNowPlayingChanged() = 0;
254
260
  virtual void setOnNowPlayingChanged(const std::function<void(const NowPlayingMetadata& /* metadata */)>& onNowPlayingChanged) = 0;
255
- virtual std::optional<std::function<void()>> getHandleRemoteBookmark() = 0;
256
- virtual void setHandleRemoteBookmark(const std::optional<std::function<void()>>& handleRemoteBookmark) = 0;
257
- virtual std::optional<std::function<void()>> getHandleRemoteDislike() = 0;
258
- virtual void setHandleRemoteDislike(const std::optional<std::function<void()>>& handleRemoteDislike) = 0;
259
261
  virtual std::optional<std::function<void(const RemoteJumpBackwardEvent& /* event */)>> getHandleRemoteJumpBackward() = 0;
260
262
  virtual void setHandleRemoteJumpBackward(const std::optional<std::function<void(const RemoteJumpBackwardEvent& /* event */)>>& handleRemoteJumpBackward) = 0;
261
263
  virtual std::optional<std::function<void(const RemoteJumpForwardEvent& /* event */)>> getHandleRemoteJumpForward() = 0;
262
264
  virtual void setHandleRemoteJumpForward(const std::optional<std::function<void(const RemoteJumpForwardEvent& /* event */)>>& handleRemoteJumpForward) = 0;
263
- virtual std::optional<std::function<void()>> getHandleRemoteLike() = 0;
264
- virtual void setHandleRemoteLike(const std::optional<std::function<void()>>& handleRemoteLike) = 0;
265
265
  virtual std::optional<std::function<void()>> getHandleRemoteNext() = 0;
266
266
  virtual void setHandleRemoteNext(const std::optional<std::function<void()>>& handleRemoteNext) = 0;
267
267
  virtual std::optional<std::function<void()>> getHandleRemotePause() = 0;
@@ -284,8 +284,8 @@ namespace margelo::nitro::audiobrowser {
284
284
  virtual void setOnOnlineChanged(const std::function<void(bool /* online */)>& onOnlineChanged) = 0;
285
285
  virtual std::function<void(double /* volume */)> getOnSystemVolumeChanged() = 0;
286
286
  virtual void setOnSystemVolumeChanged(const std::function<void(double /* volume */)>& onSystemVolumeChanged) = 0;
287
- virtual std::function<void(const IosOutput& /* output */)> getOnIosOutputChanged() = 0;
288
- virtual void setOnIosOutputChanged(const std::function<void(const IosOutput& /* output */)>& onIosOutputChanged) = 0;
287
+ virtual std::function<void(const Output& /* output */)> getOnOutputChanged() = 0;
288
+ virtual void setOnOutputChanged(const std::function<void(const Output& /* output */)>& onOutputChanged) = 0;
289
289
  virtual std::function<void(const EqualizerSettings& /* settings */)> getOnEqualizerChanged() = 0;
290
290
  virtual void setOnEqualizerChanged(const std::function<void(const EqualizerSettings& /* settings */)>& onEqualizerChanged) = 0;
291
291
  virtual std::function<void(const BatteryWarningPendingChangedEvent& /* event */)> getOnBatteryWarningPendingChanged() = 0;
@@ -302,10 +302,14 @@ namespace margelo::nitro::audiobrowser {
302
302
  virtual std::optional<NavigationError> getNavigationError() = 0;
303
303
  virtual std::optional<FormattedNavigationError> getFormattedNavigationError() = 0;
304
304
  virtual void notifyContentChanged(const std::string& path) = 0;
305
+ virtual void invalidateAllContent() = 0;
305
306
  virtual void setFavorites(const std::vector<std::string>& favorites) = 0;
306
- virtual std::shared_ptr<Promise<void>> setupPlayer(const PartialSetupPlayerOptions& options) = 0;
307
+ virtual void setGate(const std::optional<Gate>& gate, bool hasResolver) = 0;
308
+ virtual void clearGate() = 0;
309
+ virtual bool isCarConnected() = 0;
310
+ virtual std::shared_ptr<Promise<void>> setupPlayer(const NativeSetupPlayerOptions& options) = 0;
307
311
  virtual void updateOptions(const NativeUpdateOptions& options) = 0;
308
- virtual UpdateOptions getOptions() = 0;
312
+ virtual Options getOptions() = 0;
309
313
  virtual void load(const Track& track) = 0;
310
314
  virtual void reset() = 0;
311
315
  virtual void play() = 0;
@@ -316,11 +320,13 @@ namespace margelo::nitro::audiobrowser {
316
320
  virtual bool getPlayWhenReady() = 0;
317
321
  virtual void seekTo(double position) = 0;
318
322
  virtual void seekBy(double offset) = 0;
323
+ virtual void seekToLiveEdge() = 0;
319
324
  virtual void setVolume(double level) = 0;
320
325
  virtual double getVolume() = 0;
321
326
  virtual void setRate(double rate) = 0;
322
327
  virtual double getRate() = 0;
323
328
  virtual Progress getProgress() = 0;
329
+ virtual void setPlaybackIntervalEnabled(bool enabled) = 0;
324
330
  virtual Playback getPlayback() = 0;
325
331
  virtual PlayingState getPlayingState() = 0;
326
332
  virtual RepeatMode getRepeatMode() = 0;
@@ -330,7 +336,7 @@ namespace margelo::nitro::audiobrowser {
330
336
  virtual std::optional<PlaybackError> getPlaybackError() = 0;
331
337
  virtual void retry() = 0;
332
338
  virtual std::variant<nitro::NullType, SleepTimerTime, SleepTimerEndOfTrack> getSleepTimer() = 0;
333
- virtual void setSleepTimer(double seconds) = 0;
339
+ virtual void setSleepTimer(double seconds, std::optional<double> fadeDuration) = 0;
334
340
  virtual void setSleepTimerToEndOfTrack() = 0;
335
341
  virtual bool clearSleepTimer() = 0;
336
342
  virtual void add(const std::vector<Track>& tracks, std::optional<double> insertBeforeIndex) = 0;
@@ -342,18 +348,21 @@ namespace margelo::nitro::audiobrowser {
342
348
  virtual void skipToPrevious(std::optional<double> initialPosition) = 0;
343
349
  virtual void setActiveTrackFavorited(bool favorited) = 0;
344
350
  virtual void toggleActiveTrackFavorited() = 0;
345
- virtual void setQueue(const std::vector<Track>& tracks, std::optional<double> startIndex, std::optional<double> startPositionMs) = 0;
351
+ virtual void setQueue(const std::vector<Track>& tracks, std::optional<double> startIndex, std::optional<double> startPosition) = 0;
346
352
  virtual std::vector<Track> getQueue() = 0;
347
353
  virtual std::optional<Track> getTrack(double index) = 0;
348
354
  virtual std::optional<double> getActiveTrackIndex() = 0;
349
355
  virtual std::optional<Track> getActiveTrack() = 0;
350
356
  virtual void updateNowPlaying(const std::optional<NowPlayingUpdate>& update) = 0;
357
+ virtual void flashNowPlaying(const NowPlayingUpdate& update, double durationMs) = 0;
358
+ virtual void clearNowPlayingFlash() = 0;
351
359
  virtual std::optional<NowPlayingMetadata> getNowPlaying() = 0;
352
360
  virtual bool getOnline() = 0;
353
361
  virtual double getSystemVolume() = 0;
354
362
  virtual void setSystemVolume(double volume) = 0;
355
- virtual std::optional<IosOutput> getIosOutput() = 0;
356
- virtual void openIosOutputPicker() = 0;
363
+ virtual std::optional<Output> getOutput() = 0;
364
+ virtual void openOutputPicker() = 0;
365
+ virtual bool supportsOutputSwitcher() = 0;
357
366
  virtual std::optional<EqualizerSettings> getEqualizerSettings() = 0;
358
367
  virtual void setEqualizerEnabled(bool enabled) = 0;
359
368
  virtual void setEqualizerPreset(const std::string& preset) = 0;
@@ -0,0 +1,91 @@
1
+ ///
2
+ /// IOSOptions.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
30
+
31
+ // Forward declaration of `CarPlayNowPlayingButton` to properly resolve imports.
32
+ namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
33
+
34
+ #include <vector>
35
+ #include "CarPlayNowPlayingButton.hpp"
36
+
37
+ namespace margelo::nitro::audiobrowser {
38
+
39
+ /**
40
+ * A struct which can be represented as a JavaScript object (IOSOptions).
41
+ */
42
+ struct IOSOptions final {
43
+ public:
44
+ std::vector<double> playbackRates SWIFT_PRIVATE;
45
+ bool carPlayUpNextButton SWIFT_PRIVATE;
46
+ std::vector<CarPlayNowPlayingButton> carPlayNowPlayingButtons SWIFT_PRIVATE;
47
+
48
+ public:
49
+ IOSOptions() = default;
50
+ explicit IOSOptions(std::vector<double> playbackRates, bool carPlayUpNextButton, std::vector<CarPlayNowPlayingButton> carPlayNowPlayingButtons): playbackRates(playbackRates), carPlayUpNextButton(carPlayUpNextButton), carPlayNowPlayingButtons(carPlayNowPlayingButtons) {}
51
+
52
+ };
53
+
54
+ } // namespace margelo::nitro::audiobrowser
55
+
56
+ namespace margelo::nitro {
57
+
58
+ // C++ IOSOptions <> JS IOSOptions (object)
59
+ template <>
60
+ struct JSIConverter<margelo::nitro::audiobrowser::IOSOptions> final {
61
+ static inline margelo::nitro::audiobrowser::IOSOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
62
+ jsi::Object obj = arg.asObject(runtime);
63
+ return margelo::nitro::audiobrowser::IOSOptions(
64
+ JSIConverter<std::vector<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "playbackRates"))),
65
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "carPlayUpNextButton"))),
66
+ JSIConverter<std::vector<margelo::nitro::audiobrowser::CarPlayNowPlayingButton>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "carPlayNowPlayingButtons")))
67
+ );
68
+ }
69
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::IOSOptions& arg) {
70
+ jsi::Object obj(runtime);
71
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "playbackRates"), JSIConverter<std::vector<double>>::toJSI(runtime, arg.playbackRates));
72
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "carPlayUpNextButton"), JSIConverter<bool>::toJSI(runtime, arg.carPlayUpNextButton));
73
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "carPlayNowPlayingButtons"), JSIConverter<std::vector<margelo::nitro::audiobrowser::CarPlayNowPlayingButton>>::toJSI(runtime, arg.carPlayNowPlayingButtons));
74
+ return obj;
75
+ }
76
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
77
+ if (!value.isObject()) {
78
+ return false;
79
+ }
80
+ jsi::Object obj = value.getObject(runtime);
81
+ if (!nitro::isPlainObject(runtime, obj)) {
82
+ return false;
83
+ }
84
+ if (!JSIConverter<std::vector<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "playbackRates")))) return false;
85
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "carPlayUpNextButton")))) return false;
86
+ if (!JSIConverter<std::vector<margelo::nitro::audiobrowser::CarPlayNowPlayingButton>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "carPlayNowPlayingButtons")))) return false;
87
+ return true;
88
+ }
89
+ };
90
+
91
+ } // namespace margelo::nitro