react-native-audio-browser 0.0.1 → 0.1.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 (1147) hide show
  1. package/AudioBrowser.podspec +45 -0
  2. package/LICENSE +21 -0
  3. package/README.md +3 -1
  4. package/android/CMakeLists.txt +32 -0
  5. package/android/build.gradle +214 -0
  6. package/android/fix-prefab.gradle +51 -0
  7. package/android/gradle.properties +6 -0
  8. package/android/src/main/AndroidManifest.xml +36 -0
  9. package/android/src/main/cpp/cpp-adapter.cpp +9 -0
  10. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +1197 -0
  11. package/android/src/main/java/com/audiobrowser/AudioBrowserPackage.kt +21 -0
  12. package/android/src/main/java/com/audiobrowser/Callbacks.kt +92 -0
  13. package/android/src/main/java/com/audiobrowser/HeadlessTaskService.kt +59 -0
  14. package/android/src/main/java/com/audiobrowser/Service.kt +334 -0
  15. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +1174 -0
  16. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +134 -0
  17. package/android/src/main/java/com/audiobrowser/browser/RouteMatch.kt +9 -0
  18. package/android/src/main/java/com/audiobrowser/browser/SimpleRouter.kt +154 -0
  19. package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +45 -0
  20. package/android/src/main/java/com/audiobrowser/extension/EnumExtensions.kt +5 -0
  21. package/android/src/main/java/com/audiobrowser/extension/NumberExt.kt +13 -0
  22. package/android/src/main/java/com/audiobrowser/http/HttpClient.kt +171 -0
  23. package/android/src/main/java/com/audiobrowser/http/RequestConfigBuilder.kt +251 -0
  24. package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +80 -0
  25. package/android/src/main/java/com/audiobrowser/model/PlayerSetupOptions.kt +101 -0
  26. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +125 -0
  27. package/android/src/main/java/com/audiobrowser/player/AutomaticBufferManager.kt +256 -0
  28. package/android/src/main/java/com/audiobrowser/player/DynamicLoadControl.kt +162 -0
  29. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +117 -0
  30. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +596 -0
  31. package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +578 -0
  32. package/android/src/main/java/com/audiobrowser/player/PlaybackProgressUpdateManager.kt +59 -0
  33. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +246 -0
  34. package/android/src/main/java/com/audiobrowser/player/Player.kt +1510 -0
  35. package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +230 -0
  36. package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +191 -0
  37. package/android/src/main/java/com/audiobrowser/player/SleepTimer.kt +80 -0
  38. package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +147 -0
  39. package/android/src/main/java/com/audiobrowser/util/AndroidAudioContentTypeFactory.kt +17 -0
  40. package/android/src/main/java/com/audiobrowser/util/BatteryOptimizationHelper.kt +95 -0
  41. package/android/src/main/java/com/audiobrowser/util/BatteryWarningStore.kt +38 -0
  42. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +155 -0
  43. package/android/src/main/java/com/audiobrowser/util/CoilBitmapLoader.kt +390 -0
  44. package/android/src/main/java/com/audiobrowser/util/EqualizerManager.kt +197 -0
  45. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +75 -0
  46. package/android/src/main/java/com/audiobrowser/util/MetadataAdapter.kt +97 -0
  47. package/android/src/main/java/com/audiobrowser/util/NetworkConnectivityMonitor.kt +121 -0
  48. package/android/src/main/java/com/audiobrowser/util/PlayingStateFactory.kt +25 -0
  49. package/android/src/main/java/com/audiobrowser/util/RatingFactory.kt +72 -0
  50. package/android/src/main/java/com/audiobrowser/util/RepeatModeFactory.kt +22 -0
  51. package/android/src/main/java/com/audiobrowser/util/ResolvedTrackFactory.kt +36 -0
  52. package/android/src/main/java/com/audiobrowser/util/SvgArtworkRenderer.kt +130 -0
  53. package/android/src/main/java/com/audiobrowser/util/SystemVolumeMonitor.kt +50 -0
  54. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +125 -0
  55. package/android/src/main/res/values/strings.xml +6 -0
  56. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +63 -0
  57. package/android/src/test/java/com/audiobrowser/browser/SimpleBrowserTest.kt +38 -0
  58. package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +165 -0
  59. package/android/src/test/java/com/audiobrowser/http/RequestConfigBuilderTest.kt +240 -0
  60. package/android/src/test/java/com/audiobrowser/player/PlaybackProgressUpdateManagerTest.kt +146 -0
  61. package/android/src/test/resources/robolectric.properties +1 -0
  62. package/ios/Bridge.h +8 -0
  63. package/ios/Browser/BrowserConfig.swift +111 -0
  64. package/ios/Browser/BrowserManager+URLResolution.swift +260 -0
  65. package/ios/Browser/BrowserManager.swift +630 -0
  66. package/ios/Browser/BrowserPathHelper.swift +190 -0
  67. package/ios/Browser/JsonModels.swift +202 -0
  68. package/ios/Browser/SimpleRouter.swift +184 -0
  69. package/ios/CarPlay/CarPlayArtworkResolver.swift +107 -0
  70. package/ios/CarPlay/CarPlayController.swift +771 -0
  71. package/ios/CarPlay/CarPlayImageLoader.swift +180 -0
  72. package/ios/CarPlay/CarPlayListItemFactory.swift +209 -0
  73. package/ios/CarPlay/CarPlayNowPlayingManager.swift +302 -0
  74. package/ios/CarPlay/RNABAudioBrowser.h +23 -0
  75. package/ios/CarPlay/RNABAudioBrowser.m +22 -0
  76. package/ios/CarPlay/RNABCarPlaySceneDelegate.h +15 -0
  77. package/ios/CarPlay/RNABCarPlaySceneDelegate.m +59 -0
  78. package/ios/CarPlay/RNABMediaIntentHandler.swift +60 -0
  79. package/ios/CarPlay/Track+CarPlay.swift +63 -0
  80. package/ios/Extension/Capability+RemoteCommand.swift +76 -0
  81. package/ios/Extension/ChapterMetadata+AVFoundation.swift +40 -0
  82. package/ios/Extension/CxxVectorConformances.swift +20 -0
  83. package/ios/Extension/NavigationError+Conversion.swift +49 -0
  84. package/ios/Extension/ResolvedTrack+Copying.swift +59 -0
  85. package/ios/Extension/TimedMetadata+AVFoundation.swift +129 -0
  86. package/ios/Extension/Track+AVPlayer.swift +33 -0
  87. package/ios/Extension/Track+Copying.swift +53 -0
  88. package/ios/Extension/TrackMetadata+AVFoundation.swift +131 -0
  89. package/ios/Http/HttpClient.swift +237 -0
  90. package/ios/HybridAudioBrowser.swift +1292 -0
  91. package/ios/Model/MediaURL.swift +67 -0
  92. package/ios/Model/NitroTypeStubs.swift +228 -0
  93. package/ios/Model/PlayerUpdateOptions.swift +116 -0
  94. package/ios/Model/RemoteCommand.swift +71 -0
  95. package/ios/Model/SourceType.swift +6 -0
  96. package/ios/Model/TrackPlayerError.swift +73 -0
  97. package/ios/NowPlayingInfo/MediaItemProperty.swift +78 -0
  98. package/ios/NowPlayingInfo/NowPlayingInfoCenter.swift +9 -0
  99. package/ios/NowPlayingInfo/NowPlayingInfoController.swift +191 -0
  100. package/ios/NowPlayingInfo/NowPlayingInfoKeyValue.swift +6 -0
  101. package/ios/NowPlayingInfo/NowPlayingInfoProperty.swift +220 -0
  102. package/ios/Observer/PlayerItemNotificationObserver.swift +79 -0
  103. package/ios/Observer/PlayerItemPropertyObserver.swift +110 -0
  104. package/ios/Observer/PlayerStateObserver.swift +50 -0
  105. package/ios/Observer/PlayerTimeObserver.swift +105 -0
  106. package/ios/Option/PitchAlgorithms.swift +17 -0
  107. package/ios/Option/SessionCategories.swift +100 -0
  108. package/ios/Option/TimeEventFrequency.swift +18 -0
  109. package/ios/PlaybackEvent.swift +15 -0
  110. package/ios/Player/LoadSeekCoordinator.swift +84 -0
  111. package/ios/Player/MediaLoader.swift +197 -0
  112. package/ios/Player/MediaLoaderDelegate.swift +11 -0
  113. package/ios/Player/NowPlayingUpdater.swift +106 -0
  114. package/ios/Player/PlaybackCoordinator.swift +520 -0
  115. package/ios/Player/PlaybackCoordinatorCallbacks.swift +19 -0
  116. package/ios/Player/PlaybackEffectHandler.swift +44 -0
  117. package/ios/Player/PlaybackErrorHandler.swift +91 -0
  118. package/ios/Player/PlaybackProgressUpdateManager.swift +68 -0
  119. package/ios/Player/PlaybackStateMachine.swift +31 -0
  120. package/ios/Player/PlayerStatusTypes.swift +9 -0
  121. package/ios/Player/PlayingStateManager.swift +32 -0
  122. package/ios/Player/QueueManager.swift +320 -0
  123. package/ios/Player/RetryManager.swift +246 -0
  124. package/ios/Player/SeekCompletionHandler.swift +3 -0
  125. package/ios/Player/ShuffleOrder.swift +191 -0
  126. package/ios/Player/SleepTimerHandling.swift +7 -0
  127. package/ios/Player/SleepTimerManager.swift +131 -0
  128. package/ios/RemoteCommand/RemoteCommandController.swift +406 -0
  129. package/ios/Support/RNTrackPlayer-Bridging-Header.h +7 -0
  130. package/ios/Tests/BrowserPathHelperTests.swift +110 -0
  131. package/ios/Tests/CarPlayArtworkResolverTests.swift +413 -0
  132. package/ios/Tests/ChapterMetadataAVFoundationTests.swift +88 -0
  133. package/ios/Tests/EmitterTests.swift +122 -0
  134. package/ios/Tests/LoadSeekCoordinatorTests.swift +294 -0
  135. package/ios/Tests/MediaLoaderTests.swift +228 -0
  136. package/ios/Tests/PlaybackCoordinatorTests.swift +486 -0
  137. package/ios/Tests/PlaybackErrorHandlerTests.swift +213 -0
  138. package/ios/Tests/PlaybackProgressUpdateManagerTests.swift +166 -0
  139. package/ios/Tests/PlaybackStateMachineTests.swift +137 -0
  140. package/ios/Tests/QueueManagerTests.swift +880 -0
  141. package/ios/Tests/ResolvedTrackCopyingTests.swift +245 -0
  142. package/ios/Tests/SimpleRouterTests.swift +139 -0
  143. package/ios/Tests/Support/TestTypes.swift +180 -0
  144. package/ios/Tests/TimedMetadataAVFoundationTests.swift +152 -0
  145. package/ios/Tests/TrackMetadataAVFoundationTests.swift +176 -0
  146. package/ios/Tests/TrackSelectorTests.swift +268 -0
  147. package/ios/TrackPlayer.swift +692 -0
  148. package/ios/TrackPlayerCallbacks.swift +92 -0
  149. package/ios/TrackSelector.swift +141 -0
  150. package/ios/Util/ArtworkImageFetcher.swift +35 -0
  151. package/ios/Util/Emitter.swift +68 -0
  152. package/ios/Util/LRUCache.swift +182 -0
  153. package/ios/Util/MetadataAdapter.swift +131 -0
  154. package/ios/Util/NetworkMonitor.swift +65 -0
  155. package/ios/Util/OnceValue.swift +70 -0
  156. package/ios/Util/SFSymbolRenderer.swift +142 -0
  157. package/ios/Util/SVGProcessor.swift +56 -0
  158. package/lib/commonjs/AudioBrowser.js +50 -0
  159. package/lib/commonjs/AudioBrowser.js.map +1 -0
  160. package/lib/commonjs/features/battery.js +154 -0
  161. package/lib/commonjs/features/battery.js.map +1 -0
  162. package/lib/commonjs/features/browser.js +272 -0
  163. package/lib/commonjs/features/browser.js.map +1 -0
  164. package/lib/commonjs/features/equalizer.js +69 -0
  165. package/lib/commonjs/features/equalizer.js.map +1 -0
  166. package/lib/commonjs/features/errors.js +165 -0
  167. package/lib/commonjs/features/errors.js.map +1 -0
  168. package/lib/commonjs/features/favorites.js +101 -0
  169. package/lib/commonjs/features/favorites.js.map +1 -0
  170. package/lib/commonjs/features/index.js +160 -0
  171. package/lib/commonjs/features/index.js.map +1 -0
  172. package/lib/commonjs/features/metadata.js +54 -0
  173. package/lib/commonjs/features/metadata.js.map +1 -0
  174. package/lib/commonjs/features/network.js +40 -0
  175. package/lib/commonjs/features/network.js.map +1 -0
  176. package/lib/commonjs/features/nowPlaying.js +61 -0
  177. package/lib/commonjs/features/nowPlaying.js.map +1 -0
  178. package/lib/commonjs/features/output.js +54 -0
  179. package/lib/commonjs/features/output.js.map +1 -0
  180. package/lib/commonjs/features/playback/controls.js +79 -0
  181. package/lib/commonjs/features/playback/controls.js.map +1 -0
  182. package/lib/commonjs/features/playback/index.js +83 -0
  183. package/lib/commonjs/features/playback/index.js.map +1 -0
  184. package/lib/commonjs/features/playback/playWhenReady.js +55 -0
  185. package/lib/commonjs/features/playback/playWhenReady.js.map +1 -0
  186. package/lib/commonjs/features/playback/playing.js +41 -0
  187. package/lib/commonjs/features/playback/playing.js.map +1 -0
  188. package/lib/commonjs/features/playback/progress.js +104 -0
  189. package/lib/commonjs/features/playback/progress.js.map +1 -0
  190. package/lib/commonjs/features/playback/rate.js +29 -0
  191. package/lib/commonjs/features/playback/rate.js.map +1 -0
  192. package/lib/commonjs/features/playback/state.js +62 -0
  193. package/lib/commonjs/features/playback/state.js.map +1 -0
  194. package/lib/commonjs/features/playback/volume.js +68 -0
  195. package/lib/commonjs/features/playback/volume.js.map +1 -0
  196. package/lib/commonjs/features/player/index.js +28 -0
  197. package/lib/commonjs/features/player/index.js.map +1 -0
  198. package/lib/commonjs/features/player/options.js +182 -0
  199. package/lib/commonjs/features/player/options.js.map +1 -0
  200. package/lib/commonjs/features/player/setup.js +143 -0
  201. package/lib/commonjs/features/player/setup.js.map +1 -0
  202. package/lib/commonjs/features/queue/activeTrack.js +52 -0
  203. package/lib/commonjs/features/queue/activeTrack.js.map +1 -0
  204. package/lib/commonjs/features/queue/index.js +50 -0
  205. package/lib/commonjs/features/queue/index.js.map +1 -0
  206. package/lib/commonjs/features/queue/queue.js +177 -0
  207. package/lib/commonjs/features/queue/queue.js.map +1 -0
  208. package/lib/commonjs/features/queue/repeatMode.js +58 -0
  209. package/lib/commonjs/features/queue/repeatMode.js.map +1 -0
  210. package/lib/commonjs/features/queue/shuffle.js +57 -0
  211. package/lib/commonjs/features/queue/shuffle.js.map +1 -0
  212. package/lib/commonjs/features/rating.js +2 -0
  213. package/lib/commonjs/features/rating.js.map +1 -0
  214. package/lib/commonjs/features/remoteControls.js +286 -0
  215. package/lib/commonjs/features/remoteControls.js.map +1 -0
  216. package/lib/commonjs/features/sleepTimer.js +164 -0
  217. package/lib/commonjs/features/sleepTimer.js.map +1 -0
  218. package/lib/commonjs/index.js +22 -0
  219. package/lib/commonjs/index.js.map +1 -0
  220. package/lib/commonjs/native.js +9 -0
  221. package/lib/commonjs/native.js.map +1 -0
  222. package/lib/commonjs/native.web.js +10 -0
  223. package/lib/commonjs/native.web.js.map +1 -0
  224. package/lib/commonjs/package.json +1 -0
  225. package/lib/commonjs/specs/audio-browser.nitro.js +6 -0
  226. package/lib/commonjs/specs/audio-browser.nitro.js.map +1 -0
  227. package/lib/commonjs/types/browser-native.js +6 -0
  228. package/lib/commonjs/types/browser-native.js.map +1 -0
  229. package/lib/commonjs/types/browser-nodes.js +6 -0
  230. package/lib/commonjs/types/browser-nodes.js.map +1 -0
  231. package/lib/commonjs/types/browser.js +6 -0
  232. package/lib/commonjs/types/browser.js.map +1 -0
  233. package/lib/commonjs/types/index.js +28 -0
  234. package/lib/commonjs/types/index.js.map +1 -0
  235. package/lib/commonjs/types/player.js +2 -0
  236. package/lib/commonjs/types/player.js.map +1 -0
  237. package/lib/commonjs/utils/LazyNativeEmitter.js +58 -0
  238. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -0
  239. package/lib/commonjs/utils/NativeUpdatedValue.js +59 -0
  240. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -0
  241. package/lib/commonjs/utils/resolveAssetSource.js +11 -0
  242. package/lib/commonjs/utils/resolveAssetSource.js.map +1 -0
  243. package/lib/commonjs/utils/useDebug.js +221 -0
  244. package/lib/commonjs/utils/useDebug.js.map +1 -0
  245. package/lib/commonjs/utils/useNativeUpdatedValue.js +44 -0
  246. package/lib/commonjs/utils/useNativeUpdatedValue.js.map +1 -0
  247. package/lib/commonjs/utils/validation.js +23 -0
  248. package/lib/commonjs/utils/validation.js.map +1 -0
  249. package/lib/commonjs/web/NativeAudioBrowser.js +731 -0
  250. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -0
  251. package/lib/commonjs/web/SimpleRouter.js +146 -0
  252. package/lib/commonjs/web/SimpleRouter.js.map +1 -0
  253. package/lib/commonjs/web/SimpleRouter.test.js +174 -0
  254. package/lib/commonjs/web/SimpleRouter.test.js.map +1 -0
  255. package/lib/commonjs/web/TrackPlayer/Event.js +19 -0
  256. package/lib/commonjs/web/TrackPlayer/Event.js.map +1 -0
  257. package/lib/commonjs/web/TrackPlayer/Player.js +301 -0
  258. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -0
  259. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js +293 -0
  260. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js.map +1 -0
  261. package/lib/commonjs/web/TrackPlayer/RepeatMode.js +12 -0
  262. package/lib/commonjs/web/TrackPlayer/RepeatMode.js.map +1 -0
  263. package/lib/commonjs/web/TrackPlayer/SetupNotCalledError.js +13 -0
  264. package/lib/commonjs/web/TrackPlayer/SetupNotCalledError.js.map +1 -0
  265. package/lib/commonjs/web/TrackPlayer/SleepTimer.js +75 -0
  266. package/lib/commonjs/web/TrackPlayer/SleepTimer.js.map +1 -0
  267. package/lib/commonjs/web/TrackPlayer/State.js +18 -0
  268. package/lib/commonjs/web/TrackPlayer/State.js.map +1 -0
  269. package/lib/commonjs/web/TrackPlayer/index.js +52 -0
  270. package/lib/commonjs/web/TrackPlayer/index.js.map +1 -0
  271. package/lib/commonjs/web/browser/BrowserManager.js +587 -0
  272. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -0
  273. package/lib/commonjs/web/browser/FavoriteManager.js +80 -0
  274. package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -0
  275. package/lib/commonjs/web/browser/NavigationErrorManager.js +106 -0
  276. package/lib/commonjs/web/browser/NavigationErrorManager.js.map +1 -0
  277. package/lib/commonjs/web/browser/SearchManager.js +80 -0
  278. package/lib/commonjs/web/browser/SearchManager.js.map +1 -0
  279. package/lib/commonjs/web/http/HttpClient.js +94 -0
  280. package/lib/commonjs/web/http/HttpClient.js.map +1 -0
  281. package/lib/commonjs/web/http/RequestConfigBuilder.js +294 -0
  282. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -0
  283. package/lib/commonjs/web/player/NowPlayingManager.js +79 -0
  284. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -0
  285. package/lib/commonjs/web/player/OptionsManager.js +88 -0
  286. package/lib/commonjs/web/player/OptionsManager.js.map +1 -0
  287. package/lib/commonjs/web/util/BrowserPathHelper.js +138 -0
  288. package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -0
  289. package/lib/commonjs/web/util/shuffle.js +21 -0
  290. package/lib/commonjs/web/util/shuffle.js.map +1 -0
  291. package/lib/module/AudioBrowser.js +7 -0
  292. package/lib/module/AudioBrowser.js.map +1 -0
  293. package/lib/module/features/battery.js +144 -0
  294. package/lib/module/features/battery.js.map +1 -0
  295. package/lib/module/features/browser.js +258 -0
  296. package/lib/module/features/browser.js.map +1 -0
  297. package/lib/module/features/equalizer.js +60 -0
  298. package/lib/module/features/equalizer.js.map +1 -0
  299. package/lib/module/features/errors.js +156 -0
  300. package/lib/module/features/errors.js.map +1 -0
  301. package/lib/module/features/favorites.js +95 -0
  302. package/lib/module/features/favorites.js.map +1 -0
  303. package/lib/module/features/index.js +26 -0
  304. package/lib/module/features/index.js.map +1 -0
  305. package/lib/module/features/metadata.js +51 -0
  306. package/lib/module/features/metadata.js.map +1 -0
  307. package/lib/module/features/network.js +35 -0
  308. package/lib/module/features/network.js.map +1 -0
  309. package/lib/module/features/nowPlaying.js +55 -0
  310. package/lib/module/features/nowPlaying.js.map +1 -0
  311. package/lib/module/features/output.js +47 -0
  312. package/lib/module/features/output.js.map +1 -0
  313. package/lib/module/features/playback/controls.js +69 -0
  314. package/lib/module/features/playback/controls.js.map +1 -0
  315. package/lib/module/features/playback/index.js +10 -0
  316. package/lib/module/features/playback/index.js.map +1 -0
  317. package/lib/module/features/playback/playWhenReady.js +49 -0
  318. package/lib/module/features/playback/playWhenReady.js.map +1 -0
  319. package/lib/module/features/playback/playing.js +36 -0
  320. package/lib/module/features/playback/playing.js.map +1 -0
  321. package/lib/module/features/playback/progress.js +98 -0
  322. package/lib/module/features/playback/progress.js.map +1 -0
  323. package/lib/module/features/playback/rate.js +25 -0
  324. package/lib/module/features/playback/rate.js.map +1 -0
  325. package/lib/module/features/playback/state.js +57 -0
  326. package/lib/module/features/playback/state.js.map +1 -0
  327. package/lib/module/features/playback/volume.js +60 -0
  328. package/lib/module/features/playback/volume.js.map +1 -0
  329. package/lib/module/features/player/index.js +5 -0
  330. package/lib/module/features/player/index.js.map +1 -0
  331. package/lib/module/features/player/options.js +176 -0
  332. package/lib/module/features/player/options.js.map +1 -0
  333. package/lib/module/features/player/setup.js +140 -0
  334. package/lib/module/features/player/setup.js.map +1 -0
  335. package/lib/module/features/queue/activeTrack.js +46 -0
  336. package/lib/module/features/queue/activeTrack.js.map +1 -0
  337. package/lib/module/features/queue/index.js +7 -0
  338. package/lib/module/features/queue/index.js.map +1 -0
  339. package/lib/module/features/queue/queue.js +162 -0
  340. package/lib/module/features/queue/queue.js.map +1 -0
  341. package/lib/module/features/queue/repeatMode.js +52 -0
  342. package/lib/module/features/queue/repeatMode.js.map +1 -0
  343. package/lib/module/features/queue/shuffle.js +50 -0
  344. package/lib/module/features/queue/shuffle.js.map +1 -0
  345. package/lib/module/features/rating.js +2 -0
  346. package/lib/module/features/rating.js.map +1 -0
  347. package/lib/module/features/remoteControls.js +275 -0
  348. package/lib/module/features/remoteControls.js.map +1 -0
  349. package/lib/module/features/sleepTimer.js +155 -0
  350. package/lib/module/features/sleepTimer.js.map +1 -0
  351. package/lib/module/index.js +6 -0
  352. package/lib/module/index.js.map +1 -0
  353. package/lib/module/native.js +5 -0
  354. package/lib/module/native.js.map +1 -0
  355. package/lib/module/native.web.js +7 -0
  356. package/lib/module/native.web.js.map +1 -0
  357. package/lib/module/package.json +1 -0
  358. package/lib/module/specs/audio-browser.nitro.js +4 -0
  359. package/lib/module/specs/audio-browser.nitro.js.map +1 -0
  360. package/lib/module/types/browser-native.js +4 -0
  361. package/lib/module/types/browser-native.js.map +1 -0
  362. package/lib/module/types/browser-nodes.js +4 -0
  363. package/lib/module/types/browser-nodes.js.map +1 -0
  364. package/lib/module/types/browser.js +4 -0
  365. package/lib/module/types/browser.js.map +1 -0
  366. package/lib/module/types/index.js +5 -0
  367. package/lib/module/types/index.js.map +1 -0
  368. package/lib/module/types/player.js +2 -0
  369. package/lib/module/types/player.js.map +1 -0
  370. package/lib/module/utils/LazyNativeEmitter.js +53 -0
  371. package/lib/module/utils/LazyNativeEmitter.js.map +1 -0
  372. package/lib/module/utils/NativeUpdatedValue.js +54 -0
  373. package/lib/module/utils/NativeUpdatedValue.js.map +1 -0
  374. package/lib/module/utils/resolveAssetSource.js +7 -0
  375. package/lib/module/utils/resolveAssetSource.js.map +1 -0
  376. package/lib/module/utils/useDebug.js +218 -0
  377. package/lib/module/utils/useDebug.js.map +1 -0
  378. package/lib/module/utils/useNativeUpdatedValue.js +40 -0
  379. package/lib/module/utils/useNativeUpdatedValue.js.map +1 -0
  380. package/lib/module/utils/validation.js +18 -0
  381. package/lib/module/utils/validation.js.map +1 -0
  382. package/lib/module/web/NativeAudioBrowser.js +727 -0
  383. package/lib/module/web/NativeAudioBrowser.js.map +1 -0
  384. package/lib/module/web/SimpleRouter.js +141 -0
  385. package/lib/module/web/SimpleRouter.js.map +1 -0
  386. package/lib/module/web/SimpleRouter.test.js +174 -0
  387. package/lib/module/web/SimpleRouter.test.js.map +1 -0
  388. package/lib/module/web/TrackPlayer/Event.js +15 -0
  389. package/lib/module/web/TrackPlayer/Event.js.map +1 -0
  390. package/lib/module/web/TrackPlayer/Player.js +296 -0
  391. package/lib/module/web/TrackPlayer/Player.js.map +1 -0
  392. package/lib/module/web/TrackPlayer/PlaylistPlayer.js +288 -0
  393. package/lib/module/web/TrackPlayer/PlaylistPlayer.js.map +1 -0
  394. package/lib/module/web/TrackPlayer/RepeatMode.js +8 -0
  395. package/lib/module/web/TrackPlayer/RepeatMode.js.map +1 -0
  396. package/lib/module/web/TrackPlayer/SetupNotCalledError.js +8 -0
  397. package/lib/module/web/TrackPlayer/SetupNotCalledError.js.map +1 -0
  398. package/lib/module/web/TrackPlayer/SleepTimer.js +70 -0
  399. package/lib/module/web/TrackPlayer/SleepTimer.js.map +1 -0
  400. package/lib/module/web/TrackPlayer/State.js +14 -0
  401. package/lib/module/web/TrackPlayer/State.js.map +1 -0
  402. package/lib/module/web/TrackPlayer/index.js +7 -0
  403. package/lib/module/web/TrackPlayer/index.js.map +1 -0
  404. package/lib/module/web/browser/BrowserManager.js +583 -0
  405. package/lib/module/web/browser/BrowserManager.js.map +1 -0
  406. package/lib/module/web/browser/FavoriteManager.js +75 -0
  407. package/lib/module/web/browser/FavoriteManager.js.map +1 -0
  408. package/lib/module/web/browser/NavigationErrorManager.js +101 -0
  409. package/lib/module/web/browser/NavigationErrorManager.js.map +1 -0
  410. package/lib/module/web/browser/SearchManager.js +76 -0
  411. package/lib/module/web/browser/SearchManager.js.map +1 -0
  412. package/lib/module/web/http/HttpClient.js +89 -0
  413. package/lib/module/web/http/HttpClient.js.map +1 -0
  414. package/lib/module/web/http/RequestConfigBuilder.js +291 -0
  415. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -0
  416. package/lib/module/web/player/NowPlayingManager.js +74 -0
  417. package/lib/module/web/player/NowPlayingManager.js.map +1 -0
  418. package/lib/module/web/player/OptionsManager.js +83 -0
  419. package/lib/module/web/player/OptionsManager.js.map +1 -0
  420. package/lib/module/web/util/BrowserPathHelper.js +134 -0
  421. package/lib/module/web/util/BrowserPathHelper.js.map +1 -0
  422. package/lib/module/web/util/shuffle.js +17 -0
  423. package/lib/module/web/util/shuffle.js.map +1 -0
  424. package/lib/typescript/src/AudioBrowser.d.ts +5 -0
  425. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -0
  426. package/lib/typescript/src/features/battery.d.ts +112 -0
  427. package/lib/typescript/src/features/battery.d.ts.map +1 -0
  428. package/lib/typescript/src/features/browser.d.ts +68 -0
  429. package/lib/typescript/src/features/browser.d.ts.map +1 -0
  430. package/lib/typescript/src/features/equalizer.d.ts +35 -0
  431. package/lib/typescript/src/features/equalizer.d.ts.map +1 -0
  432. package/lib/typescript/src/features/errors.d.ts +136 -0
  433. package/lib/typescript/src/features/errors.d.ts.map +1 -0
  434. package/lib/typescript/src/features/favorites.d.ts +84 -0
  435. package/lib/typescript/src/features/favorites.d.ts.map +1 -0
  436. package/lib/typescript/src/features/index.d.ts +23 -0
  437. package/lib/typescript/src/features/index.d.ts.map +1 -0
  438. package/lib/typescript/src/features/metadata.d.ts +103 -0
  439. package/lib/typescript/src/features/metadata.d.ts.map +1 -0
  440. package/lib/typescript/src/features/network.d.ts +18 -0
  441. package/lib/typescript/src/features/network.d.ts.map +1 -0
  442. package/lib/typescript/src/features/nowPlaying.d.ts +36 -0
  443. package/lib/typescript/src/features/nowPlaying.d.ts.map +1 -0
  444. package/lib/typescript/src/features/output.d.ts +28 -0
  445. package/lib/typescript/src/features/output.d.ts.map +1 -0
  446. package/lib/typescript/src/features/playback/controls.d.ts +40 -0
  447. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -0
  448. package/lib/typescript/src/features/playback/index.d.ts +8 -0
  449. package/lib/typescript/src/features/playback/index.d.ts.map +1 -0
  450. package/lib/typescript/src/features/playback/playWhenReady.d.ts +30 -0
  451. package/lib/typescript/src/features/playback/playWhenReady.d.ts.map +1 -0
  452. package/lib/typescript/src/features/playback/playing.d.ts +21 -0
  453. package/lib/typescript/src/features/playback/playing.d.ts.map +1 -0
  454. package/lib/typescript/src/features/playback/progress.d.ts +51 -0
  455. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -0
  456. package/lib/typescript/src/features/playback/rate.d.ts +12 -0
  457. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -0
  458. package/lib/typescript/src/features/playback/state.d.ts +43 -0
  459. package/lib/typescript/src/features/playback/state.d.ts.map +1 -0
  460. package/lib/typescript/src/features/playback/volume.d.ts +32 -0
  461. package/lib/typescript/src/features/playback/volume.d.ts.map +1 -0
  462. package/lib/typescript/src/features/player/index.d.ts +3 -0
  463. package/lib/typescript/src/features/player/index.d.ts.map +1 -0
  464. package/lib/typescript/src/features/player/options.d.ts +413 -0
  465. package/lib/typescript/src/features/player/options.d.ts.map +1 -0
  466. package/lib/typescript/src/features/player/setup.d.ts +471 -0
  467. package/lib/typescript/src/features/player/setup.d.ts.map +1 -0
  468. package/lib/typescript/src/features/queue/activeTrack.d.ts +38 -0
  469. package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -0
  470. package/lib/typescript/src/features/queue/index.d.ts +5 -0
  471. package/lib/typescript/src/features/queue/index.d.ts.map +1 -0
  472. package/lib/typescript/src/features/queue/queue.d.ts +111 -0
  473. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -0
  474. package/lib/typescript/src/features/queue/repeatMode.d.ts +34 -0
  475. package/lib/typescript/src/features/queue/repeatMode.d.ts.map +1 -0
  476. package/lib/typescript/src/features/queue/shuffle.d.ts +27 -0
  477. package/lib/typescript/src/features/queue/shuffle.d.ts.map +1 -0
  478. package/lib/typescript/src/features/rating.d.ts +14 -0
  479. package/lib/typescript/src/features/rating.d.ts.map +1 -0
  480. package/lib/typescript/src/features/remoteControls.d.ts +164 -0
  481. package/lib/typescript/src/features/remoteControls.d.ts.map +1 -0
  482. package/lib/typescript/src/features/sleepTimer.d.ts +80 -0
  483. package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -0
  484. package/lib/typescript/src/index.d.ts +4 -0
  485. package/lib/typescript/src/index.d.ts.map +1 -0
  486. package/lib/typescript/src/native.d.ts +3 -0
  487. package/lib/typescript/src/native.d.ts.map +1 -0
  488. package/lib/typescript/src/native.web.d.ts +3 -0
  489. package/lib/typescript/src/native.web.d.ts.map +1 -0
  490. package/lib/typescript/src/specs/audio-browser.nitro.d.ts +242 -0
  491. package/lib/typescript/src/specs/audio-browser.nitro.d.ts.map +1 -0
  492. package/lib/typescript/src/types/browser-native.d.ts +40 -0
  493. package/lib/typescript/src/types/browser-native.d.ts.map +1 -0
  494. package/lib/typescript/src/types/browser-nodes.d.ts +198 -0
  495. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -0
  496. package/lib/typescript/src/types/browser.d.ts +742 -0
  497. package/lib/typescript/src/types/browser.d.ts.map +1 -0
  498. package/lib/typescript/src/types/index.d.ts +3 -0
  499. package/lib/typescript/src/types/index.d.ts.map +1 -0
  500. package/lib/typescript/src/types/player.d.ts +64 -0
  501. package/lib/typescript/src/types/player.d.ts.map +1 -0
  502. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +35 -0
  503. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -0
  504. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +39 -0
  505. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -0
  506. package/lib/typescript/src/utils/resolveAssetSource.d.ts +4 -0
  507. package/lib/typescript/src/utils/resolveAssetSource.d.ts.map +1 -0
  508. package/lib/typescript/src/utils/useDebug.d.ts +65 -0
  509. package/lib/typescript/src/utils/useDebug.d.ts.map +1 -0
  510. package/lib/typescript/src/utils/useNativeUpdatedValue.d.ts +14 -0
  511. package/lib/typescript/src/utils/useNativeUpdatedValue.d.ts.map +1 -0
  512. package/lib/typescript/src/utils/validation.d.ts +3 -0
  513. package/lib/typescript/src/utils/validation.d.ts.map +1 -0
  514. package/lib/typescript/src/web/NativeAudioBrowser.d.ts +188 -0
  515. package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +1 -0
  516. package/lib/typescript/src/web/SimpleRouter.d.ts +40 -0
  517. package/lib/typescript/src/web/SimpleRouter.d.ts.map +1 -0
  518. package/lib/typescript/src/web/SimpleRouter.test.d.ts +2 -0
  519. package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +1 -0
  520. package/lib/typescript/src/web/TrackPlayer/Event.d.ts +11 -0
  521. package/lib/typescript/src/web/TrackPlayer/Event.d.ts.map +1 -0
  522. package/lib/typescript/src/web/TrackPlayer/Player.d.ts +59 -0
  523. package/lib/typescript/src/web/TrackPlayer/Player.d.ts.map +1 -0
  524. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts +39 -0
  525. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts.map +1 -0
  526. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts +6 -0
  527. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts.map +1 -0
  528. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts +4 -0
  529. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts.map +1 -0
  530. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts +34 -0
  531. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts.map +1 -0
  532. package/lib/typescript/src/web/TrackPlayer/State.d.ts +13 -0
  533. package/lib/typescript/src/web/TrackPlayer/State.d.ts.map +1 -0
  534. package/lib/typescript/src/web/TrackPlayer/index.d.ts +5 -0
  535. package/lib/typescript/src/web/TrackPlayer/index.d.ts.map +1 -0
  536. package/lib/typescript/src/web/browser/BrowserManager.d.ts +154 -0
  537. package/lib/typescript/src/web/browser/BrowserManager.d.ts.map +1 -0
  538. package/lib/typescript/src/web/browser/FavoriteManager.d.ts +42 -0
  539. package/lib/typescript/src/web/browser/FavoriteManager.d.ts.map +1 -0
  540. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts +40 -0
  541. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts.map +1 -0
  542. package/lib/typescript/src/web/browser/SearchManager.d.ts +22 -0
  543. package/lib/typescript/src/web/browser/SearchManager.d.ts.map +1 -0
  544. package/lib/typescript/src/web/http/HttpClient.d.ts +25 -0
  545. package/lib/typescript/src/web/http/HttpClient.d.ts.map +1 -0
  546. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts +98 -0
  547. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts.map +1 -0
  548. package/lib/typescript/src/web/player/NowPlayingManager.d.ts +34 -0
  549. package/lib/typescript/src/web/player/NowPlayingManager.d.ts.map +1 -0
  550. package/lib/typescript/src/web/player/OptionsManager.d.ts +32 -0
  551. package/lib/typescript/src/web/player/OptionsManager.d.ts.map +1 -0
  552. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts +69 -0
  553. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts.map +1 -0
  554. package/lib/typescript/src/web/util/shuffle.d.ts +8 -0
  555. package/lib/typescript/src/web/util/shuffle.d.ts.map +1 -0
  556. package/nitro.json +24 -0
  557. package/nitrogen/generated/.gitattributes +1 -0
  558. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +88 -0
  559. package/nitrogen/generated/android/AudioBrowser+autolinking.gradle +27 -0
  560. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +136 -0
  561. package/nitrogen/generated/android/AudioBrowserOnLoad.hpp +34 -0
  562. package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +67 -0
  563. package/nitrogen/generated/android/c++/JAndroidAudioOffloadSettings.hpp +61 -0
  564. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +86 -0
  565. package/nitrogen/generated/android/c++/JAndroidPlayerWakeMode.hpp +61 -0
  566. package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +86 -0
  567. package/nitrogen/generated/android/c++/JAppKilledPlaybackBehavior.hpp +61 -0
  568. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +166 -0
  569. package/nitrogen/generated/android/c++/JBatteryOptimizationStatus.hpp +61 -0
  570. package/nitrogen/generated/android/c++/JBatteryOptimizationStatusChangedEvent.hpp +58 -0
  571. package/nitrogen/generated/android/c++/JBatteryWarningPendingChangedEvent.hpp +57 -0
  572. package/nitrogen/generated/android/c++/JBrowseError.hpp +57 -0
  573. package/nitrogen/generated/android/c++/JBrowseResult.cpp +26 -0
  574. package/nitrogen/generated/android/c++/JBrowseResult.hpp +87 -0
  575. package/nitrogen/generated/android/c++/JBrowserSourceCallbackParam.hpp +76 -0
  576. package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +64 -0
  577. package/nitrogen/generated/android/c++/JCarPlaySiriListButtonPosition.hpp +58 -0
  578. package/nitrogen/generated/android/c++/JChapterMetadata.hpp +70 -0
  579. package/nitrogen/generated/android/c++/JEqualizerSettings.hpp +125 -0
  580. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +74 -0
  581. package/nitrogen/generated/android/c++/JFormatNavigationErrorParams.hpp +72 -0
  582. package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +61 -0
  583. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.hpp +111 -0
  584. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.hpp +134 -0
  585. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +143 -0
  586. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +139 -0
  587. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +147 -0
  588. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +159 -0
  589. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +139 -0
  590. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  591. package/nitrogen/generated/android/c++/JFunc_void_BatteryOptimizationStatusChangedEvent.hpp +79 -0
  592. package/nitrogen/generated/android/c++/JFunc_void_BatteryWarningPendingChangedEvent.hpp +77 -0
  593. package/nitrogen/generated/android/c++/JFunc_void_EqualizerSettings.hpp +80 -0
  594. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +91 -0
  595. package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +80 -0
  596. package/nitrogen/generated/android/c++/JFunc_void_NavigationErrorEvent.hpp +83 -0
  597. package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +89 -0
  598. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +98 -0
  599. package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +83 -0
  600. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +91 -0
  601. package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +81 -0
  602. package/nitrogen/generated/android/c++/JFunc_void_PlaybackPlayWhenReadyChangedEvent.hpp +77 -0
  603. package/nitrogen/generated/android/c++/JFunc_void_PlaybackProgressUpdatedEvent.hpp +77 -0
  604. package/nitrogen/generated/android/c++/JFunc_void_PlaybackQueueEndedEvent.hpp +77 -0
  605. package/nitrogen/generated/android/c++/JFunc_void_PlayingState.hpp +77 -0
  606. package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpBackwardEvent.hpp +77 -0
  607. package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpForwardEvent.hpp +77 -0
  608. package/nitrogen/generated/android/c++/JFunc_void_RemotePlayIdEvent.hpp +79 -0
  609. package/nitrogen/generated/android/c++/JFunc_void_RemotePlaySearchEvent.hpp +78 -0
  610. package/nitrogen/generated/android/c++/JFunc_void_RemoteSeekEvent.hpp +77 -0
  611. package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +87 -0
  612. package/nitrogen/generated/android/c++/JFunc_void_RemoteSkipEvent.hpp +77 -0
  613. package/nitrogen/generated/android/c++/JFunc_void_RepeatModeChangedEvent.hpp +79 -0
  614. package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +79 -0
  615. package/nitrogen/generated/android/c++/JFunc_void_TrackMetadata.hpp +79 -0
  616. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
  617. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
  618. package/nitrogen/generated/android/c++/JFunc_void_std__optional_FormattedNavigationError_.hpp +79 -0
  619. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +93 -0
  620. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.hpp +84 -0
  621. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  622. package/nitrogen/generated/android/c++/JFunc_void_std__vector_ChapterMetadata_.hpp +98 -0
  623. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +107 -0
  624. package/nitrogen/generated/android/c++/JHeartRating.hpp +57 -0
  625. package/nitrogen/generated/android/c++/JHttpMethod.hpp +73 -0
  626. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +1835 -0
  627. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +248 -0
  628. package/nitrogen/generated/android/c++/JIOSCategory.hpp +70 -0
  629. package/nitrogen/generated/android/c++/JIOSCategoryMode.hpp +79 -0
  630. package/nitrogen/generated/android/c++/JIOSCategoryOptions.hpp +73 -0
  631. package/nitrogen/generated/android/c++/JIOSCategoryPolicy.hpp +61 -0
  632. package/nitrogen/generated/android/c++/JImageContext.hpp +61 -0
  633. package/nitrogen/generated/android/c++/JImageQueryParams.hpp +62 -0
  634. package/nitrogen/generated/android/c++/JImageRowItem.hpp +75 -0
  635. package/nitrogen/generated/android/c++/JImageSource.hpp +86 -0
  636. package/nitrogen/generated/android/c++/JIosOutput.hpp +67 -0
  637. package/nitrogen/generated/android/c++/JIosOutputType.hpp +85 -0
  638. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +156 -0
  639. package/nitrogen/generated/android/c++/JMediaTransformParams.hpp +69 -0
  640. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +216 -0
  641. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +151 -0
  642. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +105 -0
  643. package/nitrogen/generated/android/c++/JNavigationError.hpp +72 -0
  644. package/nitrogen/generated/android/c++/JNavigationErrorEvent.hpp +62 -0
  645. package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +67 -0
  646. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +86 -0
  647. package/nitrogen/generated/android/c++/JNotificationButton.hpp +67 -0
  648. package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +94 -0
  649. package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +104 -0
  650. package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +62 -0
  651. package/nitrogen/generated/android/c++/JOptions.hpp +97 -0
  652. package/nitrogen/generated/android/c++/JPartialAndroidSetupPlayerOptions.hpp +104 -0
  653. package/nitrogen/generated/android/c++/JPartialIOSSetupPlayerOptions.hpp +100 -0
  654. package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +96 -0
  655. package/nitrogen/generated/android/c++/JPercentageRating.hpp +57 -0
  656. package/nitrogen/generated/android/c++/JPlayback.hpp +66 -0
  657. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +86 -0
  658. package/nitrogen/generated/android/c++/JPlaybackError.hpp +61 -0
  659. package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +60 -0
  660. package/nitrogen/generated/android/c++/JPlaybackPlayWhenReadyChangedEvent.hpp +57 -0
  661. package/nitrogen/generated/android/c++/JPlaybackProgressUpdatedEvent.hpp +69 -0
  662. package/nitrogen/generated/android/c++/JPlaybackQueueEndedEvent.hpp +61 -0
  663. package/nitrogen/generated/android/c++/JPlaybackState.hpp +79 -0
  664. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +101 -0
  665. package/nitrogen/generated/android/c++/JPlayingState.hpp +61 -0
  666. package/nitrogen/generated/android/c++/JProgress.hpp +65 -0
  667. package/nitrogen/generated/android/c++/JRatingType.hpp +73 -0
  668. package/nitrogen/generated/android/c++/JRemoteJumpBackwardEvent.hpp +57 -0
  669. package/nitrogen/generated/android/c++/JRemoteJumpForwardEvent.hpp +57 -0
  670. package/nitrogen/generated/android/c++/JRemotePlayIdEvent.hpp +62 -0
  671. package/nitrogen/generated/android/c++/JRemotePlaySearchEvent.hpp +57 -0
  672. package/nitrogen/generated/android/c++/JRemoteSeekEvent.hpp +57 -0
  673. package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +66 -0
  674. package/nitrogen/generated/android/c++/JRemoteSkipEvent.hpp +57 -0
  675. package/nitrogen/generated/android/c++/JRepeatMode.hpp +61 -0
  676. package/nitrogen/generated/android/c++/JRepeatModeChangedEvent.hpp +58 -0
  677. package/nitrogen/generated/android/c++/JRequestConfig.hpp +115 -0
  678. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +184 -0
  679. package/nitrogen/generated/android/c++/JRetryConfig.hpp +61 -0
  680. package/nitrogen/generated/android/c++/JSearchMode.hpp +70 -0
  681. package/nitrogen/generated/android/c++/JSearchParams.hpp +84 -0
  682. package/nitrogen/generated/android/c++/JSleepTimer.cpp +30 -0
  683. package/nitrogen/generated/android/c++/JSleepTimer.hpp +88 -0
  684. package/nitrogen/generated/android/c++/JSleepTimerEndOfTrack.hpp +57 -0
  685. package/nitrogen/generated/android/c++/JSleepTimerTime.hpp +57 -0
  686. package/nitrogen/generated/android/c++/JStarRating.hpp +57 -0
  687. package/nitrogen/generated/android/c++/JThumbsRating.hpp +57 -0
  688. package/nitrogen/generated/android/c++/JTimedMetadata.hpp +74 -0
  689. package/nitrogen/generated/android/c++/JTrack.hpp +154 -0
  690. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +96 -0
  691. package/nitrogen/generated/android/c++/JTrackMetadata.hpp +118 -0
  692. package/nitrogen/generated/android/c++/JTrackStyle.hpp +58 -0
  693. package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +134 -0
  694. package/nitrogen/generated/android/c++/JUpdateOptions.hpp +105 -0
  695. package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.cpp +26 -0
  696. package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.hpp +70 -0
  697. package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.cpp +26 -0
  698. package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.hpp +70 -0
  699. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +34 -0
  700. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +105 -0
  701. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  702. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  703. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +26 -0
  704. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +75 -0
  705. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +26 -0
  706. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioOffloadSettings.kt +41 -0
  707. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +50 -0
  708. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidPlayerWakeMode.kt +24 -0
  709. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +50 -0
  710. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AppKilledPlaybackBehavior.kt +24 -0
  711. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +72 -0
  712. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AudioBrowserOnLoad.kt +35 -0
  713. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatus.kt +24 -0
  714. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatusChangedEvent.kt +38 -0
  715. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryWarningPendingChangedEvent.kt +38 -0
  716. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseError.kt +38 -0
  717. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseResult.kt +53 -0
  718. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowserSourceCallbackParam.kt +41 -0
  719. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +25 -0
  720. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlaySiriListButtonPosition.kt +23 -0
  721. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ChapterMetadata.kt +47 -0
  722. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/EqualizerSettings.kt +59 -0
  723. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FavoriteChangedEvent.kt +41 -0
  724. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNavigationErrorParams.kt +44 -0
  725. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +41 -0
  726. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.kt +80 -0
  727. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.kt +80 -0
  728. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +80 -0
  729. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.kt +80 -0
  730. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt +80 -0
  731. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.kt +80 -0
  732. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.kt +80 -0
  733. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void.kt +80 -0
  734. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryOptimizationStatusChangedEvent.kt +80 -0
  735. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryWarningPendingChangedEvent.kt +80 -0
  736. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_EqualizerSettings.kt +80 -0
  737. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_FavoriteChangedEvent.kt +80 -0
  738. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_IosOutput.kt +80 -0
  739. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NavigationErrorEvent.kt +80 -0
  740. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NowPlayingMetadata.kt +80 -0
  741. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Options.kt +80 -0
  742. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Playback.kt +80 -0
  743. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackActiveTrackChangedEvent.kt +80 -0
  744. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackErrorEvent.kt +80 -0
  745. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackPlayWhenReadyChangedEvent.kt +80 -0
  746. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackProgressUpdatedEvent.kt +80 -0
  747. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackQueueEndedEvent.kt +80 -0
  748. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlayingState.kt +80 -0
  749. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpBackwardEvent.kt +80 -0
  750. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpForwardEvent.kt +80 -0
  751. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlayIdEvent.kt +80 -0
  752. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlaySearchEvent.kt +80 -0
  753. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSeekEvent.kt +80 -0
  754. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSetRatingEvent.kt +80 -0
  755. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSkipEvent.kt +80 -0
  756. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RepeatModeChangedEvent.kt +80 -0
  757. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TimedMetadata.kt +80 -0
  758. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TrackMetadata.kt +80 -0
  759. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +80 -0
  760. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_double.kt +80 -0
  761. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_FormattedNavigationError_.kt +80 -0
  762. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_ResolvedTrack_.kt +80 -0
  763. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.kt +80 -0
  764. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__string.kt +80 -0
  765. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_ChapterMetadata_.kt +80 -0
  766. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_Track_.kt +80 -0
  767. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HeartRating.kt +38 -0
  768. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HttpMethod.kt +28 -0
  769. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +1134 -0
  770. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategory.kt +27 -0
  771. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryMode.kt +30 -0
  772. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryOptions.kt +28 -0
  773. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryPolicy.kt +24 -0
  774. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageContext.kt +41 -0
  775. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageQueryParams.kt +41 -0
  776. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +47 -0
  777. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageSource.kt +47 -0
  778. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutput.kt +44 -0
  779. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +32 -0
  780. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +69 -0
  781. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaTransformParams.kt +41 -0
  782. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +72 -0
  783. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +63 -0
  784. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +53 -0
  785. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationError.kt +47 -0
  786. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorEvent.kt +38 -0
  787. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +26 -0
  788. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +50 -0
  789. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButton.kt +26 -0
  790. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +50 -0
  791. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +65 -0
  792. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +41 -0
  793. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +53 -0
  794. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialAndroidSetupPlayerOptions.kt +65 -0
  795. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialIOSSetupPlayerOptions.kt +50 -0
  796. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +47 -0
  797. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PercentageRating.kt +38 -0
  798. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Playback.kt +41 -0
  799. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackActiveTrackChangedEvent.kt +50 -0
  800. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +41 -0
  801. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorEvent.kt +38 -0
  802. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackPlayWhenReadyChangedEvent.kt +38 -0
  803. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackProgressUpdatedEvent.kt +47 -0
  804. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackQueueEndedEvent.kt +41 -0
  805. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +30 -0
  806. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +71 -0
  807. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayingState.kt +41 -0
  808. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Progress.kt +44 -0
  809. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RatingType.kt +28 -0
  810. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpBackwardEvent.kt +38 -0
  811. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpForwardEvent.kt +38 -0
  812. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlayIdEvent.kt +41 -0
  813. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlaySearchEvent.kt +38 -0
  814. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSeekEvent.kt +38 -0
  815. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSetRatingEvent.kt +38 -0
  816. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSkipEvent.kt +38 -0
  817. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatMode.kt +24 -0
  818. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatModeChangedEvent.kt +38 -0
  819. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RequestConfig.kt +59 -0
  820. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +95 -0
  821. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +41 -0
  822. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +27 -0
  823. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +56 -0
  824. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimer.kt +65 -0
  825. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerEndOfTrack.kt +38 -0
  826. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerTime.kt +38 -0
  827. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StarRating.kt +38 -0
  828. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ThumbsRating.kt +38 -0
  829. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TimedMetadata.kt +50 -0
  830. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +89 -0
  831. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackLoadEvent.kt +44 -0
  832. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackMetadata.kt +83 -0
  833. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +23 -0
  834. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +66 -0
  835. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +53 -0
  836. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_AndroidAudioOffloadSettings.kt +53 -0
  837. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_RetryConfig.kt +53 -0
  838. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +77 -0
  839. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_Double.kt +53 -0
  840. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_NotificationButtonLayout.kt +53 -0
  841. package/nitrogen/generated/ios/AudioBrowser+autolinking.rb +60 -0
  842. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +424 -0
  843. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +2959 -0
  844. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +309 -0
  845. package/nitrogen/generated/ios/AudioBrowserAutolinking.mm +33 -0
  846. package/nitrogen/generated/ios/AudioBrowserAutolinking.swift +26 -0
  847. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.cpp +11 -0
  848. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +1214 -0
  849. package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +52 -0
  850. package/nitrogen/generated/ios/swift/AndroidAudioOffloadSettings.swift +60 -0
  851. package/nitrogen/generated/ios/swift/AndroidOptions.swift +81 -0
  852. package/nitrogen/generated/ios/swift/AndroidPlayerWakeMode.swift +44 -0
  853. package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +119 -0
  854. package/nitrogen/generated/ios/swift/AppKilledPlaybackBehavior.swift +44 -0
  855. package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +294 -0
  856. package/nitrogen/generated/ios/swift/BatteryOptimizationStatus.swift +44 -0
  857. package/nitrogen/generated/ios/swift/BatteryOptimizationStatusChangedEvent.swift +29 -0
  858. package/nitrogen/generated/ios/swift/BatteryWarningPendingChangedEvent.swift +29 -0
  859. package/nitrogen/generated/ios/swift/BrowseError.swift +29 -0
  860. package/nitrogen/generated/ios/swift/BrowseResult.swift +18 -0
  861. package/nitrogen/generated/ios/swift/BrowserSourceCallbackParam.swift +61 -0
  862. package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +48 -0
  863. package/nitrogen/generated/ios/swift/CarPlaySiriListButtonPosition.swift +40 -0
  864. package/nitrogen/generated/ios/swift/ChapterMetadata.swift +70 -0
  865. package/nitrogen/generated/ios/swift/EqualizerSettings.swift +95 -0
  866. package/nitrogen/generated/ios/swift/FavoriteChangedEvent.swift +34 -0
  867. package/nitrogen/generated/ios/swift/FormatNavigationErrorParams.swift +39 -0
  868. package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +34 -0
  869. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.swift +60 -0
  870. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.swift +61 -0
  871. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +76 -0
  872. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.swift +61 -0
  873. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +68 -0
  874. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.swift +67 -0
  875. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.swift +61 -0
  876. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  877. package/nitrogen/generated/ios/swift/Func_void_BatteryOptimizationStatusChangedEvent.swift +46 -0
  878. package/nitrogen/generated/ios/swift/Func_void_BatteryWarningPendingChangedEvent.swift +46 -0
  879. package/nitrogen/generated/ios/swift/Func_void_EqualizerSettings.swift +46 -0
  880. package/nitrogen/generated/ios/swift/Func_void_FavoriteChangedEvent.swift +46 -0
  881. package/nitrogen/generated/ios/swift/Func_void_IosOutput.swift +46 -0
  882. package/nitrogen/generated/ios/swift/Func_void_NavigationErrorEvent.swift +46 -0
  883. package/nitrogen/generated/ios/swift/Func_void_NowPlayingMetadata.swift +46 -0
  884. package/nitrogen/generated/ios/swift/Func_void_Options.swift +46 -0
  885. package/nitrogen/generated/ios/swift/Func_void_Playback.swift +46 -0
  886. package/nitrogen/generated/ios/swift/Func_void_PlaybackActiveTrackChangedEvent.swift +46 -0
  887. package/nitrogen/generated/ios/swift/Func_void_PlaybackErrorEvent.swift +46 -0
  888. package/nitrogen/generated/ios/swift/Func_void_PlaybackPlayWhenReadyChangedEvent.swift +46 -0
  889. package/nitrogen/generated/ios/swift/Func_void_PlaybackProgressUpdatedEvent.swift +46 -0
  890. package/nitrogen/generated/ios/swift/Func_void_PlaybackQueueEndedEvent.swift +46 -0
  891. package/nitrogen/generated/ios/swift/Func_void_PlayingState.swift +46 -0
  892. package/nitrogen/generated/ios/swift/Func_void_RemoteJumpBackwardEvent.swift +46 -0
  893. package/nitrogen/generated/ios/swift/Func_void_RemoteJumpForwardEvent.swift +46 -0
  894. package/nitrogen/generated/ios/swift/Func_void_RemotePlayIdEvent.swift +46 -0
  895. package/nitrogen/generated/ios/swift/Func_void_RemotePlaySearchEvent.swift +46 -0
  896. package/nitrogen/generated/ios/swift/Func_void_RemoteSeekEvent.swift +46 -0
  897. package/nitrogen/generated/ios/swift/Func_void_RemoteSetRatingEvent.swift +46 -0
  898. package/nitrogen/generated/ios/swift/Func_void_RemoteSkipEvent.swift +46 -0
  899. package/nitrogen/generated/ios/swift/Func_void_RepeatModeChangedEvent.swift +46 -0
  900. package/nitrogen/generated/ios/swift/Func_void_RequestConfig.swift +46 -0
  901. package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +46 -0
  902. package/nitrogen/generated/ios/swift/Func_void_TrackMetadata.swift +46 -0
  903. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  904. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  905. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  906. package/nitrogen/generated/ios/swift/Func_void_std__optional_FormattedNavigationError_.swift +46 -0
  907. package/nitrogen/generated/ios/swift/Func_void_std__optional_ResolvedTrack_.swift +46 -0
  908. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.swift +68 -0
  909. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_RequestConfig__.swift +66 -0
  910. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift +66 -0
  911. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__vector_Track___.swift +66 -0
  912. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_void__.swift +64 -0
  913. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  914. package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError_.swift +58 -0
  915. package/nitrogen/generated/ios/swift/Func_void_std__vector_ChapterMetadata_.swift +46 -0
  916. package/nitrogen/generated/ios/swift/Func_void_std__vector_Track_.swift +46 -0
  917. package/nitrogen/generated/ios/swift/HeartRating.swift +29 -0
  918. package/nitrogen/generated/ios/swift/HttpMethod.swift +60 -0
  919. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +180 -0
  920. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +2401 -0
  921. package/nitrogen/generated/ios/swift/IOSCategory.swift +56 -0
  922. package/nitrogen/generated/ios/swift/IOSCategoryMode.swift +68 -0
  923. package/nitrogen/generated/ios/swift/IOSCategoryOptions.swift +60 -0
  924. package/nitrogen/generated/ios/swift/IOSCategoryPolicy.swift +44 -0
  925. package/nitrogen/generated/ios/swift/ImageContext.swift +60 -0
  926. package/nitrogen/generated/ios/swift/ImageQueryParams.swift +60 -0
  927. package/nitrogen/generated/ios/swift/ImageRowItem.swift +76 -0
  928. package/nitrogen/generated/ios/swift/ImageSource.swift +90 -0
  929. package/nitrogen/generated/ios/swift/IosOutput.swift +39 -0
  930. package/nitrogen/generated/ios/swift/IosOutputType.swift +76 -0
  931. package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +295 -0
  932. package/nitrogen/generated/ios/swift/MediaTransformParams.swift +40 -0
  933. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +271 -0
  934. package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +178 -0
  935. package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +143 -0
  936. package/nitrogen/generated/ios/swift/NavigationError.swift +70 -0
  937. package/nitrogen/generated/ios/swift/NavigationErrorEvent.swift +35 -0
  938. package/nitrogen/generated/ios/swift/NavigationErrorType.swift +52 -0
  939. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +119 -0
  940. package/nitrogen/generated/ios/swift/NotificationButton.swift +52 -0
  941. package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +92 -0
  942. package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +233 -0
  943. package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +60 -0
  944. package/nitrogen/generated/ios/swift/Options.swift +92 -0
  945. package/nitrogen/generated/ios/swift/PartialAndroidSetupPlayerOptions.swift +228 -0
  946. package/nitrogen/generated/ios/swift/PartialIOSSetupPlayerOptions.swift +99 -0
  947. package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +101 -0
  948. package/nitrogen/generated/ios/swift/PercentageRating.swift +29 -0
  949. package/nitrogen/generated/ios/swift/Playback.swift +40 -0
  950. package/nitrogen/generated/ios/swift/PlaybackActiveTrackChangedEvent.swift +87 -0
  951. package/nitrogen/generated/ios/swift/PlaybackError.swift +34 -0
  952. package/nitrogen/generated/ios/swift/PlaybackErrorEvent.swift +35 -0
  953. package/nitrogen/generated/ios/swift/PlaybackPlayWhenReadyChangedEvent.swift +29 -0
  954. package/nitrogen/generated/ios/swift/PlaybackProgressUpdatedEvent.swift +44 -0
  955. package/nitrogen/generated/ios/swift/PlaybackQueueEndedEvent.swift +34 -0
  956. package/nitrogen/generated/ios/swift/PlaybackState.swift +68 -0
  957. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +240 -0
  958. package/nitrogen/generated/ios/swift/PlayingState.swift +34 -0
  959. package/nitrogen/generated/ios/swift/Progress.swift +39 -0
  960. package/nitrogen/generated/ios/swift/RatingType.swift +60 -0
  961. package/nitrogen/generated/ios/swift/RemoteJumpBackwardEvent.swift +29 -0
  962. package/nitrogen/generated/ios/swift/RemoteJumpForwardEvent.swift +29 -0
  963. package/nitrogen/generated/ios/swift/RemotePlayIdEvent.swift +47 -0
  964. package/nitrogen/generated/ios/swift/RemotePlaySearchEvent.swift +29 -0
  965. package/nitrogen/generated/ios/swift/RemoteSeekEvent.swift +29 -0
  966. package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +58 -0
  967. package/nitrogen/generated/ios/swift/RemoteSkipEvent.swift +29 -0
  968. package/nitrogen/generated/ios/swift/RepeatMode.swift +44 -0
  969. package/nitrogen/generated/ios/swift/RepeatModeChangedEvent.swift +29 -0
  970. package/nitrogen/generated/ios/swift/RequestConfig.swift +189 -0
  971. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +342 -0
  972. package/nitrogen/generated/ios/swift/RetryConfig.swift +47 -0
  973. package/nitrogen/generated/ios/swift/SearchMode.swift +56 -0
  974. package/nitrogen/generated/ios/swift/SearchParams.swift +130 -0
  975. package/nitrogen/generated/ios/swift/SleepTimer.swift +19 -0
  976. package/nitrogen/generated/ios/swift/SleepTimerEndOfTrack.swift +29 -0
  977. package/nitrogen/generated/ios/swift/SleepTimerTime.swift +29 -0
  978. package/nitrogen/generated/ios/swift/StarRating.swift +29 -0
  979. package/nitrogen/generated/ios/swift/ThumbsRating.swift +29 -0
  980. package/nitrogen/generated/ios/swift/TimedMetadata.swift +114 -0
  981. package/nitrogen/generated/ios/swift/Track.swift +320 -0
  982. package/nitrogen/generated/ios/swift/TrackLoadEvent.swift +45 -0
  983. package/nitrogen/generated/ios/swift/TrackMetadata.swift +312 -0
  984. package/nitrogen/generated/ios/swift/TrackStyle.swift +40 -0
  985. package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +248 -0
  986. package/nitrogen/generated/ios/swift/UpdateOptions.swift +143 -0
  987. package/nitrogen/generated/ios/swift/Variant_Bool_AndroidAudioOffloadSettings.swift +18 -0
  988. package/nitrogen/generated/ios/swift/Variant_Bool_RetryConfig.swift +18 -0
  989. package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +20 -0
  990. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  991. package/nitrogen/generated/ios/swift/Variant_NullType_NotificationButtonLayout.swift +18 -0
  992. package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +88 -0
  993. package/nitrogen/generated/shared/c++/AndroidAudioOffloadSettings.hpp +87 -0
  994. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +109 -0
  995. package/nitrogen/generated/shared/c++/AndroidPlayerWakeMode.hpp +80 -0
  996. package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +109 -0
  997. package/nitrogen/generated/shared/c++/AppKilledPlaybackBehavior.hpp +80 -0
  998. package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +141 -0
  999. package/nitrogen/generated/shared/c++/BatteryOptimizationStatus.hpp +80 -0
  1000. package/nitrogen/generated/shared/c++/BatteryOptimizationStatusChangedEvent.hpp +84 -0
  1001. package/nitrogen/generated/shared/c++/BatteryWarningPendingChangedEvent.hpp +83 -0
  1002. package/nitrogen/generated/shared/c++/BrowseError.hpp +83 -0
  1003. package/nitrogen/generated/shared/c++/BrowserSourceCallbackParam.hpp +89 -0
  1004. package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +84 -0
  1005. package/nitrogen/generated/shared/c++/CarPlaySiriListButtonPosition.hpp +76 -0
  1006. package/nitrogen/generated/shared/c++/ChapterMetadata.hpp +96 -0
  1007. package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +113 -0
  1008. package/nitrogen/generated/shared/c++/FavoriteChangedEvent.hpp +88 -0
  1009. package/nitrogen/generated/shared/c++/FormatNavigationErrorParams.hpp +96 -0
  1010. package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +87 -0
  1011. package/nitrogen/generated/shared/c++/HeartRating.hpp +83 -0
  1012. package/nitrogen/generated/shared/c++/HttpMethod.hpp +96 -0
  1013. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +207 -0
  1014. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +375 -0
  1015. package/nitrogen/generated/shared/c++/IOSCategory.hpp +92 -0
  1016. package/nitrogen/generated/shared/c++/IOSCategoryMode.hpp +104 -0
  1017. package/nitrogen/generated/shared/c++/IOSCategoryOptions.hpp +96 -0
  1018. package/nitrogen/generated/shared/c++/IOSCategoryPolicy.hpp +80 -0
  1019. package/nitrogen/generated/shared/c++/ImageContext.hpp +87 -0
  1020. package/nitrogen/generated/shared/c++/ImageQueryParams.hpp +88 -0
  1021. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +98 -0
  1022. package/nitrogen/generated/shared/c++/ImageSource.hpp +99 -0
  1023. package/nitrogen/generated/shared/c++/IosOutput.hpp +93 -0
  1024. package/nitrogen/generated/shared/c++/IosOutputType.hpp +112 -0
  1025. package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +131 -0
  1026. package/nitrogen/generated/shared/c++/MediaTransformParams.hpp +92 -0
  1027. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +150 -0
  1028. package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +139 -0
  1029. package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +111 -0
  1030. package/nitrogen/generated/shared/c++/NavigationError.hpp +98 -0
  1031. package/nitrogen/generated/shared/c++/NavigationErrorEvent.hpp +85 -0
  1032. package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +88 -0
  1033. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +109 -0
  1034. package/nitrogen/generated/shared/c++/NotificationButton.hpp +88 -0
  1035. package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +102 -0
  1036. package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +132 -0
  1037. package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +88 -0
  1038. package/nitrogen/generated/shared/c++/Options.hpp +113 -0
  1039. package/nitrogen/generated/shared/c++/PartialAndroidSetupPlayerOptions.hpp +129 -0
  1040. package/nitrogen/generated/shared/c++/PartialIOSSetupPlayerOptions.hpp +111 -0
  1041. package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +104 -0
  1042. package/nitrogen/generated/shared/c++/PercentageRating.hpp +83 -0
  1043. package/nitrogen/generated/shared/c++/Playback.hpp +92 -0
  1044. package/nitrogen/generated/shared/c++/PlaybackActiveTrackChangedEvent.hpp +101 -0
  1045. package/nitrogen/generated/shared/c++/PlaybackError.hpp +87 -0
  1046. package/nitrogen/generated/shared/c++/PlaybackErrorEvent.hpp +85 -0
  1047. package/nitrogen/generated/shared/c++/PlaybackPlayWhenReadyChangedEvent.hpp +83 -0
  1048. package/nitrogen/generated/shared/c++/PlaybackProgressUpdatedEvent.hpp +95 -0
  1049. package/nitrogen/generated/shared/c++/PlaybackQueueEndedEvent.hpp +87 -0
  1050. package/nitrogen/generated/shared/c++/PlaybackState.hpp +104 -0
  1051. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +127 -0
  1052. package/nitrogen/generated/shared/c++/PlayingState.hpp +87 -0
  1053. package/nitrogen/generated/shared/c++/Progress.hpp +91 -0
  1054. package/nitrogen/generated/shared/c++/RatingType.hpp +96 -0
  1055. package/nitrogen/generated/shared/c++/RemoteJumpBackwardEvent.hpp +83 -0
  1056. package/nitrogen/generated/shared/c++/RemoteJumpForwardEvent.hpp +83 -0
  1057. package/nitrogen/generated/shared/c++/RemotePlayIdEvent.hpp +88 -0
  1058. package/nitrogen/generated/shared/c++/RemotePlaySearchEvent.hpp +83 -0
  1059. package/nitrogen/generated/shared/c++/RemoteSeekEvent.hpp +83 -0
  1060. package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +94 -0
  1061. package/nitrogen/generated/shared/c++/RemoteSkipEvent.hpp +83 -0
  1062. package/nitrogen/generated/shared/c++/RepeatMode.hpp +80 -0
  1063. package/nitrogen/generated/shared/c++/RepeatModeChangedEvent.hpp +84 -0
  1064. package/nitrogen/generated/shared/c++/RequestConfig.hpp +115 -0
  1065. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +175 -0
  1066. package/nitrogen/generated/shared/c++/RetryConfig.hpp +87 -0
  1067. package/nitrogen/generated/shared/c++/SearchMode.hpp +92 -0
  1068. package/nitrogen/generated/shared/c++/SearchParams.hpp +110 -0
  1069. package/nitrogen/generated/shared/c++/SleepTimerEndOfTrack.hpp +83 -0
  1070. package/nitrogen/generated/shared/c++/SleepTimerTime.hpp +83 -0
  1071. package/nitrogen/generated/shared/c++/StarRating.hpp +83 -0
  1072. package/nitrogen/generated/shared/c++/ThumbsRating.hpp +83 -0
  1073. package/nitrogen/generated/shared/c++/TimedMetadata.hpp +100 -0
  1074. package/nitrogen/generated/shared/c++/Track.hpp +161 -0
  1075. package/nitrogen/generated/shared/c++/TrackLoadEvent.hpp +93 -0
  1076. package/nitrogen/generated/shared/c++/TrackMetadata.hpp +144 -0
  1077. package/nitrogen/generated/shared/c++/TrackStyle.hpp +76 -0
  1078. package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +124 -0
  1079. package/nitrogen/generated/shared/c++/UpdateOptions.hpp +111 -0
  1080. package/package.json +117 -6
  1081. package/src/AudioBrowser.ts +4 -0
  1082. package/src/features/battery.ts +176 -0
  1083. package/src/features/browser.ts +316 -0
  1084. package/src/features/equalizer.ts +64 -0
  1085. package/src/features/errors.ts +196 -0
  1086. package/src/features/favorites.ts +102 -0
  1087. package/src/features/index.ts +23 -0
  1088. package/src/features/metadata.ts +130 -0
  1089. package/src/features/network.ts +34 -0
  1090. package/src/features/nowPlaying.ts +56 -0
  1091. package/src/features/output.ts +50 -0
  1092. package/src/features/playback/controls.ts +66 -0
  1093. package/src/features/playback/index.ts +7 -0
  1094. package/src/features/playback/playWhenReady.ts +57 -0
  1095. package/src/features/playback/playing.ts +40 -0
  1096. package/src/features/playback/progress.ts +122 -0
  1097. package/src/features/playback/rate.ts +22 -0
  1098. package/src/features/playback/state.ts +72 -0
  1099. package/src/features/playback/volume.ts +59 -0
  1100. package/src/features/player/index.ts +2 -0
  1101. package/src/features/player/options.ts +479 -0
  1102. package/src/features/player/setup.ts +551 -0
  1103. package/src/features/queue/activeTrack.ts +59 -0
  1104. package/src/features/queue/index.ts +4 -0
  1105. package/src/features/queue/queue.ts +173 -0
  1106. package/src/features/queue/repeatMode.ts +58 -0
  1107. package/src/features/queue/shuffle.ts +49 -0
  1108. package/src/features/rating.ts +17 -0
  1109. package/src/features/remoteControls.ts +341 -0
  1110. package/src/features/sleepTimer.ts +186 -0
  1111. package/src/index.ts +5 -0
  1112. package/src/native.ts +5 -0
  1113. package/src/native.web.ts +4 -0
  1114. package/src/specs/audio-browser.nitro.ts +325 -0
  1115. package/src/types/browser-native.ts +68 -0
  1116. package/src/types/browser-nodes.ts +222 -0
  1117. package/src/types/browser.ts +828 -0
  1118. package/src/types/index.ts +2 -0
  1119. package/src/types/player.ts +69 -0
  1120. package/src/utils/LazyNativeEmitter.ts +58 -0
  1121. package/src/utils/NativeUpdatedValue.ts +56 -0
  1122. package/src/utils/resolveAssetSource.ts +4 -0
  1123. package/src/utils/useDebug.ts +283 -0
  1124. package/src/utils/useNativeUpdatedValue.ts +41 -0
  1125. package/src/utils/validation.ts +27 -0
  1126. package/src/web/NativeAudioBrowser.ts +884 -0
  1127. package/src/web/SimpleRouter.test.ts +160 -0
  1128. package/src/web/SimpleRouter.ts +194 -0
  1129. package/src/web/TrackPlayer/Event.ts +11 -0
  1130. package/src/web/TrackPlayer/Player.ts +351 -0
  1131. package/src/web/TrackPlayer/PlaylistPlayer.ts +346 -0
  1132. package/src/web/TrackPlayer/RepeatMode.ts +7 -0
  1133. package/src/web/TrackPlayer/SetupNotCalledError.ts +5 -0
  1134. package/src/web/TrackPlayer/SleepTimer.ts +71 -0
  1135. package/src/web/TrackPlayer/State.ts +15 -0
  1136. package/src/web/TrackPlayer/index.ts +4 -0
  1137. package/src/web/browser/BrowserManager.ts +699 -0
  1138. package/src/web/browser/FavoriteManager.ts +79 -0
  1139. package/src/web/browser/NavigationErrorManager.ts +119 -0
  1140. package/src/web/browser/SearchManager.ts +88 -0
  1141. package/src/web/http/HttpClient.ts +125 -0
  1142. package/src/web/http/RequestConfigBuilder.ts +363 -0
  1143. package/src/web/player/NowPlayingManager.ts +89 -0
  1144. package/src/web/player/OptionsManager.ts +102 -0
  1145. package/src/web/util/BrowserPathHelper.ts +148 -0
  1146. package/src/web/util/shuffle.ts +14 -0
  1147. package/index.js +0 -1
@@ -0,0 +1,191 @@
1
+ import AVFoundation
2
+ import Foundation
3
+ @preconcurrency import MediaPlayer
4
+ import os.log
5
+
6
+ // MPRemoteCommandCenter is not Sendable, but we only use it on the main thread
7
+ extension MPRemoteCommandCenter: @retroactive @unchecked Sendable {}
8
+
9
+ /// Controller for managing Now Playing info.
10
+ ///
11
+ /// On iOS 16+, uses `MPNowPlayingSession` with `automaticallyPublishNowPlayingInfo` to let the system
12
+ /// automatically update elapsed time, playback rate, and duration. We still manually set metadata
13
+ /// (title, artist, artwork) which the automatic publishing doesn't handle.
14
+ ///
15
+ /// On iOS 15.x, falls back to manual `MPNowPlayingInfoCenter` updates for all properties.
16
+ @MainActor
17
+ class NowPlayingInfoController {
18
+ private let logger = Logger(subsystem: "com.audiobrowser", category: "NowPlayingInfoController")
19
+
20
+ private(set) var infoCenter: NowPlayingInfoCenter
21
+ private var _info: [String: Any] = [:]
22
+
23
+ /// Wrapper for MPNowPlayingSession (iOS 16+) to avoid @available on stored property
24
+ private var _nowPlayingSession: Any?
25
+
26
+ /// The linked AVPlayer (iOS 16+)
27
+ private weak var _linkedPlayer: AVPlayer?
28
+
29
+ /// Whether automatic publishing is currently active (iOS 16+ with linked player)
30
+ private var isAutomaticPublishingEnabled: Bool = false
31
+
32
+ /// The current remote command center - either the session's (iOS 16+) or shared
33
+ private(set) var remoteCommandCenter: MPRemoteCommandCenter = .shared()
34
+
35
+ /// The current Now Playing info dictionary
36
+ var info: [String: Any] { _info }
37
+
38
+ required init() {
39
+ infoCenter = MPNowPlayingInfoCenter.default()
40
+ }
41
+
42
+ required init(infoCenter: NowPlayingInfoCenter) {
43
+ self.infoCenter = infoCenter
44
+ }
45
+
46
+ /// Callback invoked when the remote command center changes (iOS 16+ session created/destroyed)
47
+ var onRemoteCommandCenterChanged: ((MPRemoteCommandCenter) -> Void)?
48
+
49
+ /// Links an AVPlayer to enable automatic Now Playing publishing on iOS 16+.
50
+ /// On older iOS versions, this is a no-op.
51
+ ///
52
+ /// When linked:
53
+ /// - System automatically updates elapsed time, playback rate, and duration
54
+ /// - Metadata (title, artist, artwork) is set via `AVPlayerItem.nowPlayingInfo`
55
+ /// - The session's `remoteCommandCenter` must be used for remote commands
56
+ ///
57
+ /// - Important: On iOS 16+, this creates an `MPNowPlayingSession` with its own `remoteCommandCenter`.
58
+ /// The `onRemoteCommandCenterChanged` callback will be invoked with the new command center.
59
+ func linkPlayer(_ player: AVPlayer) {
60
+ if #available(iOS 16.0, *) {
61
+ logger.info("Linking AVPlayer to MPNowPlayingSession for automatic publishing")
62
+
63
+ _linkedPlayer = player
64
+
65
+ let session = MPNowPlayingSession(players: [player])
66
+ _nowPlayingSession = session
67
+
68
+ remoteCommandCenter = session.remoteCommandCenter
69
+
70
+ session.automaticallyPublishesNowPlayingInfo = true
71
+
72
+ session.becomeActiveIfPossible { success in
73
+ self.logger.info("MPNowPlayingSession becomeActiveIfPossible: \(success)")
74
+ }
75
+
76
+ isAutomaticPublishingEnabled = true
77
+ onRemoteCommandCenterChanged?(remoteCommandCenter)
78
+ } else {
79
+ logger.debug("linkPlayer: iOS 16+ required for automatic publishing, using manual updates")
80
+ }
81
+ }
82
+
83
+ /// Unlinks the AVPlayer, disabling automatic publishing.
84
+ func unlinkPlayer() {
85
+ if #available(iOS 16.0, *) {
86
+ logger.info("Unlinking AVPlayer from MPNowPlayingSession")
87
+
88
+ _linkedPlayer = nil
89
+
90
+ if let session = _nowPlayingSession as? MPNowPlayingSession {
91
+ session.automaticallyPublishesNowPlayingInfo = false
92
+ }
93
+ _nowPlayingSession = nil
94
+ isAutomaticPublishingEnabled = false
95
+
96
+ remoteCommandCenter = MPRemoteCommandCenter.shared()
97
+ onRemoteCommandCenterChanged?(remoteCommandCenter)
98
+ }
99
+ }
100
+
101
+ /// Keys that are automatically published by MPNowPlayingSession on iOS 16+.
102
+ /// When automatic publishing is enabled, we skip setting these manually.
103
+ private static let autoPublishedKeys: Set<String> = [
104
+ MPNowPlayingInfoPropertyElapsedPlaybackTime,
105
+ MPMediaItemPropertyPlaybackDuration,
106
+ MPNowPlayingInfoPropertyPlaybackRate,
107
+ ]
108
+
109
+ /// Returns true if the key is auto-published and automatic publishing is enabled
110
+ private func shouldSkipKey(_ key: String) -> Bool {
111
+ isAutomaticPublishingEnabled && Self.autoPublishedKeys.contains(key)
112
+ }
113
+
114
+ /// Sets key-values and immediately updates the Now Playing Info Center.
115
+ /// When automatic publishing is enabled (iOS 16+), playback-related keys are skipped.
116
+ func set(keyValues: [NowPlayingInfoKeyValue]) {
117
+ for kv in keyValues {
118
+ if !shouldSkipKey(kv.key) {
119
+ _info[kv.key] = kv.value
120
+ }
121
+ }
122
+ performUpdate()
123
+ }
124
+
125
+ /// Sets key-values without updating the Now Playing Info Center.
126
+ /// Useful for batching multiple updates - call update() when ready to commit.
127
+ /// When automatic publishing is enabled (iOS 16+), playback-related keys are skipped.
128
+ func setWithoutUpdate(keyValues: [NowPlayingInfoKeyValue]) {
129
+ for kv in keyValues {
130
+ if !shouldSkipKey(kv.key) {
131
+ _info[kv.key] = kv.value
132
+ }
133
+ }
134
+ }
135
+
136
+ /// Sets a single key-value and immediately updates the Now Playing Info Center.
137
+ /// When automatic publishing is enabled (iOS 16+), playback-related keys are skipped.
138
+ func set(keyValue: NowPlayingInfoKeyValue) {
139
+ if !shouldSkipKey(keyValue.key) {
140
+ _info[keyValue.key] = keyValue.value
141
+ performUpdate()
142
+ }
143
+ }
144
+
145
+ /// Explicitly updates the Now Playing Info Center with the current info.
146
+ /// Use after calling setWithoutUpdate() to commit batched changes.
147
+ func update() {
148
+ performUpdate()
149
+ }
150
+
151
+ /// Pushes the current info to the appropriate Now Playing target.
152
+ ///
153
+ /// On iOS 16+ with automatic publishing:
154
+ /// - Sets metadata on `AVPlayerItem.nowPlayingInfo`
155
+ /// - Skips elapsed time and duration (system handles these)
156
+ ///
157
+ /// On iOS 15.x or without automatic publishing:
158
+ /// - Sets all info on `MPNowPlayingInfoCenter.default().nowPlayingInfo`
159
+ private func performUpdate() {
160
+ if #available(iOS 16.0, *), isAutomaticPublishingEnabled {
161
+ _linkedPlayer?.currentItem?.nowPlayingInfo = _info
162
+ } else {
163
+ infoCenter.nowPlayingInfo = _info
164
+ }
165
+ }
166
+
167
+ /// Prepares an AVPlayerItem with stored metadata before it becomes current.
168
+ /// Call this before `replaceCurrentItem(with:)` so the item has metadata from the start.
169
+ func prepareItem(_ item: AVPlayerItem) {
170
+ if #available(iOS 16.0, *), isAutomaticPublishingEnabled {
171
+ item.nowPlayingInfo = _info
172
+ }
173
+ }
174
+
175
+ /// Clears all Now Playing info
176
+ func clear() {
177
+ _info = [:]
178
+
179
+ // With automatic publishing, the session handles clearing when the player stops
180
+ // Without automatic publishing, we need to clear MPNowPlayingInfoCenter manually
181
+ if !isAutomaticPublishingEnabled {
182
+ infoCenter.nowPlayingInfo = nil
183
+ }
184
+ }
185
+
186
+ /// Sets the playback state (required for CarPlay Now Playing to show correct play/pause state)
187
+ func setPlaybackState(_ state: MPNowPlayingPlaybackState) {
188
+ logger.debug("setPlaybackState: \(state.rawValue)")
189
+ infoCenter.playbackState = state
190
+ }
191
+ }
@@ -0,0 +1,6 @@
1
+ import Foundation
2
+
3
+ protocol NowPlayingInfoKeyValue {
4
+ var key: String { get }
5
+ var value: Any? { get }
6
+ }
@@ -0,0 +1,220 @@
1
+ import Foundation
2
+ @preconcurrency import MediaPlayer
3
+
4
+ /**
5
+ Enum representing MPNowPlayingInfoProperties.
6
+ Docs for each property is taken from [Apple docs](https://developer.apple.com/documentation/mediaplayer/mpnowplayinginfocenter/additional_metadata_properties).
7
+ */
8
+ enum NowPlayingInfoProperty: NowPlayingInfoKeyValue {
9
+ /**
10
+ The identifier of the collection the now playing item belongs to.
11
+ The identifier can be an album, artist, playlist, etc.
12
+ */
13
+ case collectionIdentifier(String?)
14
+
15
+ /**
16
+ The available language option groups for the now playing item.
17
+ Value is an array of MPNowPlayingInfoLanguageOptionGroup items. Only one language option in a given group can be played at a time.
18
+ */
19
+ case availableLanguageOptions([MPNowPlayingInfoLanguageOptionGroup]?)
20
+
21
+ /**
22
+ The URL pointing to the now playing item's underlying asset.
23
+ This constant is used by the system UI when video thumbnails or audio waveform visualizations are applicable.
24
+ */
25
+ case assetUrl(URL?)
26
+
27
+ /**
28
+ The total number of chapters in the now-playing item.
29
+ Value is an NSNumber object configured as an NSUInteger.
30
+ */
31
+ case chapterCount(UInt64?)
32
+
33
+ /**
34
+ The number corresponding to the chapter currently being played.
35
+ Value is an NSNumber object configured as an NSUInteger. Chapter numbering uses zero-based indexing. If you want the first chapter in the now-playing item to be displayed as “Chapter 1,” for example, set the chapter number to 0.
36
+ */
37
+ case chapterNumber(UInt64?)
38
+
39
+ /**
40
+ The currently active language options for the now playing item.
41
+ Value is an array of MPNowPlayingInfoLanguageOption items.
42
+ */
43
+ case currentLanguageOptions([MPNowPlayingInfoLanguageOption]?)
44
+
45
+ /**
46
+ The default playback rate for the now playing item.
47
+ Value is an NSNumber object configured as a double. Set this property if your app is playing a media item at a playback rate other than 1.0 as its default rate.
48
+ */
49
+ case defaultPlaybackRate(Double?)
50
+
51
+ /**
52
+ The elapsed time of the now playing item, in seconds.
53
+ Value is an NSNumber object configured as a double. Elapsed time is automatically calculated, by the system, from the previously provided elapsed time and the playback rate. Do not update this property frequently—it is not necessary
54
+ */
55
+ case elapsedPlaybackTime(Double?)
56
+
57
+ /**
58
+ The opaque identifier that uniquely identifies the now playing item, even through app relaunches.
59
+ This is only used to reference the item to the now playing app and can be in any format.
60
+ */
61
+ case externalContentIdentifier(Any?)
62
+
63
+ /**
64
+ The opaque identifier that uniquely identifies the profile the now playing item is played from, even through app relaunches.
65
+ This is only used to reference the profile to the now playing app and can be in any format.
66
+ */
67
+ case externalUserProfileIdentifier(Any?)
68
+
69
+ /**
70
+ Denotes whether the now playing item is a live stream.
71
+ Value is an NSNumber object configured as a boolean. A value of 1.0 indicates the now playing item is a live stream.
72
+ */
73
+ case isLiveStream(Bool?)
74
+
75
+ /**
76
+ The media type of the now playing item.
77
+ Value is an NSNumber object configured as a MPNowPlayingInfoMediaType.
78
+ */
79
+ case mediaType(MPNowPlayingInfoMediaType?)
80
+
81
+ /**
82
+ The current progress of the now playing item.
83
+ Value is an NSNumber object configured as a float. A value of 0.0 indicates the item has not been watched while a value of 1.0 indicates the item has been fully watched. This is a high-level indicator. Use MPNowPlayingInfoPropertyElapsedPlaybackTime for fine-detailed information on how much of the item has been watched.
84
+ */
85
+ case playbackProgress(Float?)
86
+
87
+ /**
88
+ The total number of items in the app’s playback queue.
89
+ Value is an NSNumber object configured as an NSUInteger.
90
+ */
91
+ case playbackQueueCount(UInt64?)
92
+
93
+ /**
94
+ The index of the now-playing item in the app’s playback queue.
95
+ Value is an NSNumber object configured as an NSUInteger. The playback queue uses zero-based indexing. If you want the first item in the queue to be displayed as “item 1 of 10,” for example, set the item’s index to 0.
96
+ */
97
+ case playbackQueueIndex(UInt64?)
98
+
99
+ /**
100
+ The playback rate of the now-playing item, with a value of 1.0 indicating the normal playback rate.
101
+ Value is an NSNumber object configured as a double. The default value is 1.0. A playback rate value of 2.0 means twice the normal playback rate; a piece of media played at this rate would take half as long to play to completion. A value of 0.5 means half the normal playback rate; a piece of media played at this rate would take twice as long to play to completion.
102
+ */
103
+ case playbackRate(Double?)
104
+
105
+ /**
106
+ The service provider associated with the now-playing item.
107
+ Value is a unique NSString that identifies the service provider for the now-playing item. If the now-playing item belongs to a channel or subscription service, this key can be used to coordinate various types of now-playing content from the service provider.
108
+ */
109
+ case serviceIdentifier(String?)
110
+
111
+ var key: String {
112
+ switch self {
113
+ case .collectionIdentifier:
114
+ MPNowPlayingInfoCollectionIdentifier
115
+
116
+ case .availableLanguageOptions:
117
+ MPNowPlayingInfoPropertyAvailableLanguageOptions
118
+
119
+ case .assetUrl:
120
+ MPNowPlayingInfoPropertyAssetURL
121
+
122
+ case .chapterCount:
123
+ MPNowPlayingInfoPropertyChapterCount
124
+
125
+ case .chapterNumber:
126
+ MPNowPlayingInfoPropertyChapterNumber
127
+
128
+ case .currentLanguageOptions:
129
+ MPNowPlayingInfoPropertyCurrentLanguageOptions
130
+
131
+ case .defaultPlaybackRate:
132
+ MPNowPlayingInfoPropertyDefaultPlaybackRate
133
+
134
+ case .elapsedPlaybackTime:
135
+ MPNowPlayingInfoPropertyElapsedPlaybackTime
136
+
137
+ case .externalContentIdentifier:
138
+ MPNowPlayingInfoPropertyExternalContentIdentifier
139
+
140
+ case .externalUserProfileIdentifier:
141
+ MPNowPlayingInfoPropertyExternalUserProfileIdentifier
142
+
143
+ case .isLiveStream:
144
+ MPNowPlayingInfoPropertyIsLiveStream
145
+
146
+ case .mediaType:
147
+ MPNowPlayingInfoPropertyMediaType
148
+
149
+ case .playbackProgress:
150
+ MPNowPlayingInfoPropertyPlaybackProgress
151
+
152
+ case .playbackQueueCount:
153
+ MPNowPlayingInfoPropertyPlaybackQueueCount
154
+
155
+ case .playbackQueueIndex:
156
+ MPNowPlayingInfoPropertyPlaybackQueueIndex
157
+
158
+ case .playbackRate:
159
+ MPNowPlayingInfoPropertyPlaybackRate
160
+
161
+ case .serviceIdentifier:
162
+ MPNowPlayingInfoPropertyServiceIdentifier
163
+ }
164
+ }
165
+
166
+ var value: Any? {
167
+ switch self {
168
+ case let .collectionIdentifier(identifier):
169
+ identifier
170
+
171
+ case let .availableLanguageOptions(options):
172
+ options
173
+
174
+ case let .assetUrl(url):
175
+ url
176
+
177
+ case let .chapterCount(count):
178
+ count != nil ? NSNumber(value: count!) : nil
179
+
180
+ case let .chapterNumber(number):
181
+ number != nil ? NSNumber(value: number!) : nil
182
+
183
+ case let .currentLanguageOptions(options):
184
+ options
185
+
186
+ case let .defaultPlaybackRate(rate):
187
+ rate != nil ? NSNumber(floatLiteral: rate!) : nil
188
+
189
+ case let .elapsedPlaybackTime(time):
190
+ time != nil ? NSNumber(floatLiteral: time!) : nil
191
+
192
+ case let .externalContentIdentifier(id):
193
+ id
194
+
195
+ case let .externalUserProfileIdentifier(id):
196
+ id
197
+
198
+ case let .isLiveStream(status):
199
+ status
200
+
201
+ case let .mediaType(type):
202
+ type != nil ? NSNumber(value: type!.rawValue) : nil
203
+
204
+ case let .playbackProgress(progress):
205
+ progress != nil ? NSNumber(value: progress!) : nil
206
+
207
+ case let .playbackQueueCount(count):
208
+ count != nil ? NSNumber(value: count!) : nil
209
+
210
+ case let .playbackQueueIndex(index):
211
+ index != nil ? NSNumber(value: index!) : nil
212
+
213
+ case let .playbackRate(rate):
214
+ rate != nil ? NSNumber(floatLiteral: rate!) : nil
215
+
216
+ case let .serviceIdentifier(id):
217
+ id != nil ? NSString(string: id!) : nil
218
+ }
219
+ }
220
+ }
@@ -0,0 +1,79 @@
1
+ import AVFoundation
2
+ import Foundation
3
+
4
+ /**
5
+ Observes player item notifications and invokes callbacks passed at initialization.
6
+ */
7
+ @MainActor class PlayerItemNotificationObserver {
8
+ private let notificationCenter: NotificationCenter = .default
9
+
10
+ private(set) weak var observingAVItem: AVPlayerItem?
11
+ private(set) var isObserving: Bool = false
12
+
13
+ private let onDidPlayToEndTime: @MainActor () -> Void
14
+ private let onFailedToPlayToEndTime: @MainActor (Error?) -> Void
15
+
16
+ init(
17
+ onDidPlayToEndTime: @escaping @MainActor () -> Void,
18
+ onFailedToPlayToEndTime: @escaping @MainActor (Error?) -> Void,
19
+ ) {
20
+ self.onDidPlayToEndTime = onDidPlayToEndTime
21
+ self.onFailedToPlayToEndTime = onFailedToPlayToEndTime
22
+ }
23
+
24
+ /**
25
+ Will start observing notifications from an AVPlayerItem.
26
+
27
+ - parameter avItem: The AVPlayerItem to observe.
28
+ - important: Cannot observe more than one item at a time.
29
+ */
30
+ func startObserving(item avItem: AVPlayerItem) {
31
+ stopObservingCurrentItem()
32
+ observingAVItem = avItem
33
+ isObserving = true
34
+ notificationCenter.addObserver(
35
+ self,
36
+ selector: #selector(avItemDidPlayToEndTime),
37
+ name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
38
+ object: avItem,
39
+ )
40
+ notificationCenter.addObserver(
41
+ self,
42
+ selector: #selector(avItemFailedToPlayToEndTime(_:)),
43
+ name: NSNotification.Name.AVPlayerItemFailedToPlayToEndTime,
44
+ object: avItem,
45
+ )
46
+ }
47
+
48
+ /**
49
+ Stop receiving notifications for the current AVPlayerItem.
50
+ */
51
+ func stopObservingCurrentItem() {
52
+ guard let observingAVItem, isObserving else {
53
+ return
54
+ }
55
+ notificationCenter.removeObserver(
56
+ self,
57
+ name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
58
+ object: observingAVItem,
59
+ )
60
+ notificationCenter.removeObserver(
61
+ self,
62
+ name: NSNotification.Name.AVPlayerItemFailedToPlayToEndTime,
63
+ object: observingAVItem,
64
+ )
65
+ self.observingAVItem = nil
66
+ isObserving = false
67
+ }
68
+
69
+ @objc nonisolated private func avItemDidPlayToEndTime() {
70
+ Task { @MainActor in self.onDidPlayToEndTime() }
71
+ }
72
+
73
+ @objc nonisolated private func avItemFailedToPlayToEndTime(_ notification: Notification) {
74
+ // Extract the error from the notification's userInfo
75
+ // AVPlayerItemFailedToPlayToEndTimeErrorKey contains the actual error
76
+ let error = notification.userInfo?[AVPlayerItemFailedToPlayToEndTimeErrorKey] as? Error
77
+ Task { @MainActor in self.onFailedToPlayToEndTime(error) }
78
+ }
79
+ }
@@ -0,0 +1,110 @@
1
+ @preconcurrency import AVFoundation
2
+ import Foundation
3
+
4
+ // AVTimedMetadataGroup is not Sendable, but we only use it on the main thread
5
+ // via AVPlayerItemMetadataOutputPushDelegate (queue: .main)
6
+ extension AVTimedMetadataGroup: @retroactive @unchecked Sendable {}
7
+
8
+ /**
9
+ Observes player item property changes and invokes callbacks passed at initialization.
10
+ Uses modern block-based KVO for type-safe observation with automatic cleanup.
11
+ */
12
+ @MainActor final class PlayerItemPropertyObserver: NSObject {
13
+ private var observations: [NSKeyValueObservation] = []
14
+ private var currentMetadataOutput: AVPlayerItemMetadataOutput?
15
+
16
+ private(set) weak var observingAVItem: AVPlayerItem?
17
+
18
+ private let onDurationUpdate: @MainActor (Double) -> Void
19
+ private let onPlaybackLikelyToKeepUpUpdate: @MainActor (Bool) -> Void
20
+ private let onStatusChange: @MainActor (AVPlayerItem.Status, Error?) -> Void
21
+ // Note: AVTimedMetadataGroup is not Sendable, but this callback is always invoked
22
+ // on the main thread via AVPlayerItemMetadataOutputPushDelegate (queue: .main)
23
+ private let onTimedMetadataReceived: @MainActor ([AVTimedMetadataGroup]) -> Void
24
+
25
+ init(
26
+ onDurationUpdate: @escaping @MainActor (Double) -> Void,
27
+ onPlaybackLikelyToKeepUpUpdate: @escaping @MainActor (Bool) -> Void,
28
+ onStatusChange: @escaping @MainActor (AVPlayerItem.Status, Error?) -> Void,
29
+ onTimedMetadataReceived: @escaping @MainActor ([AVTimedMetadataGroup]) -> Void,
30
+ ) {
31
+ self.onDurationUpdate = onDurationUpdate
32
+ self.onPlaybackLikelyToKeepUpUpdate = onPlaybackLikelyToKeepUpUpdate
33
+ self.onStatusChange = onStatusChange
34
+ self.onTimedMetadataReceived = onTimedMetadataReceived
35
+ }
36
+
37
+ /**
38
+ Start observing an AVPlayerItem. Will remove self as observer from old item, if any.
39
+
40
+ - parameter avItem: The AVPlayerItem to observe.
41
+ */
42
+ func startObserving(item avItem: AVPlayerItem) {
43
+ stopObservingCurrentItem()
44
+
45
+ observingAVItem = avItem
46
+
47
+ observations = [
48
+ avItem.observe(\.duration, options: [.new]) { [weak self] item, _ in
49
+ let seconds = item.duration.seconds
50
+ Task { @MainActor in self?.onDurationUpdate(seconds) }
51
+ },
52
+ avItem.observe(\.loadedTimeRanges, options: [.new]) { [weak self] item, _ in
53
+ if let duration = item.loadedTimeRanges.first?.timeRangeValue.duration {
54
+ let seconds = duration.seconds
55
+ Task { @MainActor in self?.onDurationUpdate(seconds) }
56
+ }
57
+ },
58
+ avItem.observe(\.isPlaybackLikelyToKeepUp, options: [.new]) { [weak self] item, _ in
59
+ let isLikely = item.isPlaybackLikelyToKeepUp
60
+ Task { @MainActor in self?.onPlaybackLikelyToKeepUpUpdate(isLikely) }
61
+ },
62
+ avItem.observe(\.status, options: [.new]) { [weak self] item, _ in
63
+ let status = item.status
64
+ let error = item.error
65
+ Task { @MainActor in self?.onStatusChange(status, error) }
66
+ },
67
+ ]
68
+
69
+ // Create and add a new metadata output to the AVPlayerItem
70
+ let metadataOutput = AVPlayerItemMetadataOutput()
71
+ metadataOutput.setDelegate(self, queue: .main)
72
+ avItem.add(metadataOutput)
73
+ currentMetadataOutput = metadataOutput
74
+ }
75
+
76
+ func stopObservingCurrentItem() {
77
+ observations.removeAll()
78
+
79
+ if let observingAVItem {
80
+ observingAVItem.removeAllMetadataOutputs()
81
+ }
82
+
83
+ observingAVItem = nil
84
+ currentMetadataOutput = nil
85
+ }
86
+ }
87
+
88
+ extension PlayerItemPropertyObserver: AVPlayerItemMetadataOutputPushDelegate {
89
+ nonisolated func metadataOutput(
90
+ _ output: AVPlayerItemMetadataOutput,
91
+ didOutputTimedMetadataGroups groups: [AVTimedMetadataGroup],
92
+ from _: AVPlayerItemTrack?,
93
+ ) {
94
+ // Delegate is called on main thread (queue: .main), so we can assume isolation
95
+ MainActor.assumeIsolated {
96
+ if output == currentMetadataOutput {
97
+ onTimedMetadataReceived(groups)
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ extension AVPlayerItem {
104
+ @MainActor
105
+ func removeAllMetadataOutputs() {
106
+ for output in outputs.filter({ $0 is AVPlayerItemMetadataOutput }) {
107
+ remove(output)
108
+ }
109
+ }
110
+ }
@@ -0,0 +1,50 @@
1
+ import AVFoundation
2
+ import Foundation
3
+
4
+ /**
5
+ Observes player state changes and invokes callbacks passed at initialization.
6
+ Uses modern block-based KVO for type-safe observation with automatic cleanup.
7
+ */
8
+ @MainActor final class PlayerStateObserver {
9
+ private var observations: [NSKeyValueObservation] = []
10
+
11
+ weak var avPlayer: AVPlayer? {
12
+ willSet {
13
+ stopObserving()
14
+ }
15
+ }
16
+
17
+ private let onStatusChange: @MainActor (AVPlayer.Status) -> Void
18
+ private let onTimeControlStatusChange: @MainActor (AVPlayer.TimeControlStatus) -> Void
19
+
20
+ init(
21
+ onStatusChange: @escaping @MainActor (AVPlayer.Status) -> Void,
22
+ onTimeControlStatusChange: @escaping @MainActor (AVPlayer.TimeControlStatus) -> Void,
23
+ ) {
24
+ self.onStatusChange = onStatusChange
25
+ self.onTimeControlStatusChange = onTimeControlStatusChange
26
+ }
27
+
28
+ /**
29
+ Start receiving events from this observer.
30
+ */
31
+ func startObserving() {
32
+ guard let avPlayer else { return }
33
+ stopObserving()
34
+
35
+ observations = [
36
+ avPlayer.observe(\.status, options: [.new, .initial]) { [weak self] player, _ in
37
+ let status = player.status
38
+ Task { @MainActor in self?.onStatusChange(status) }
39
+ },
40
+ avPlayer.observe(\.timeControlStatus, options: [.new]) { [weak self] player, _ in
41
+ let status = player.timeControlStatus
42
+ Task { @MainActor in self?.onTimeControlStatusChange(status) }
43
+ },
44
+ ]
45
+ }
46
+
47
+ func stopObserving() {
48
+ observations.removeAll()
49
+ }
50
+ }