react-native-audio-browser 0.2.0-next.11 → 0.2.0-next.13

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 (416) hide show
  1. package/README.md +14 -4
  2. package/android/build.gradle +20 -1
  3. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +115 -26
  4. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +262 -188
  5. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +23 -3
  6. package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
  7. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +95 -58
  8. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +68 -26
  9. package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +60 -0
  10. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +19 -7
  11. package/android/src/main/java/com/audiobrowser/extension/TappedTrack.kt +20 -0
  12. package/android/src/main/java/com/audiobrowser/extension/TrackIdentity.kt +15 -0
  13. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
  14. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +120 -67
  15. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +21 -24
  16. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +109 -74
  17. package/android/src/main/java/com/audiobrowser/player/Player.kt +51 -30
  18. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
  19. package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
  20. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +44 -40
  21. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +28 -23
  22. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +108 -0
  23. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +52 -53
  24. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +74 -41
  25. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
  26. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +229 -50
  27. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
  28. package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
  29. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +1 -1
  30. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +147 -0
  31. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -53
  32. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +154 -0
  33. package/android/src/test/java/com/audiobrowser/extension/TappedTrackTest.kt +43 -0
  34. package/android/src/test/java/com/audiobrowser/extension/TrackIdentityTest.kt +41 -0
  35. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +1 -2
  36. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +42 -2
  37. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +55 -0
  38. package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
  39. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +41 -16
  40. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +161 -0
  41. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +7 -7
  42. package/ios/Browser/BrowserConfig.swift +102 -5
  43. package/ios/Browser/BrowserManager+URLResolution.swift +18 -14
  44. package/ios/Browser/BrowserManager.swift +229 -180
  45. package/ios/Browser/BrowserPathHelper.swift +44 -44
  46. package/ios/Browser/InertStyleDiagnostic.swift +279 -0
  47. package/ios/Browser/JsonModels.swift +258 -106
  48. package/ios/Browser/SearchDrillIn.swift +6 -6
  49. package/ios/Browser/SectionPresentation.swift +64 -0
  50. package/ios/Browser/SectionScope.swift +58 -24
  51. package/ios/Browser/StyleResolver.swift +58 -0
  52. package/ios/Browser/TabBarEntries.swift +9 -3
  53. package/ios/Browser/TrackIdTemplate.swift +37 -0
  54. package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
  55. package/ios/CarPlay/CarPlayController.swift +227 -85
  56. package/ios/CarPlay/CarPlayImageLoader.swift +38 -18
  57. package/ios/CarPlay/CarPlayListItemFactory.swift +289 -84
  58. package/ios/CarPlay/CarPlayNowPlayingManager.swift +15 -12
  59. package/ios/Extension/Capability+RemoteCommand.swift +1 -1
  60. package/ios/Extension/PlayerCapabilities+Favorite.swift +1 -15
  61. package/ios/Extension/ResolvedTrack+Copying.swift +11 -15
  62. package/ios/Extension/Section+Copying.swift +31 -0
  63. package/ios/Extension/Track+Copying.swift +6 -12
  64. package/ios/Extension/Track+Identity.swift +18 -0
  65. package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
  66. package/ios/Http/HttpClient.swift +8 -2
  67. package/ios/HybridAudioBrowser.swift +166 -45
  68. package/ios/Model/NitroTypeStubs.swift +106 -21
  69. package/ios/Model/PlayerUpdateOptions.swift +7 -0
  70. package/ios/Player/MediaIntentCriteria.swift +13 -5
  71. package/ios/Player/MediaLoader.swift +33 -9
  72. package/ios/Player/NowPlayingUpdater.swift +54 -6
  73. package/ios/Player/PlaybackCoordinator.swift +13 -6
  74. package/ios/Player/PlaybackTimer.swift +8 -2
  75. package/ios/Player/QueueManager.swift +36 -10
  76. package/ios/Player/RetryManager.swift +4 -3
  77. package/ios/Player/ShuffleOrder.swift +23 -0
  78. package/ios/Player/SleepTimerHandling.swift +13 -0
  79. package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
  80. package/ios/Tests/BrowserPathHelperTests.swift +50 -20
  81. package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
  82. package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
  83. package/ios/Tests/JsonModelsTests.swift +150 -1
  84. package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
  85. package/ios/Tests/QueueManagerTests.swift +72 -6
  86. package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
  87. package/ios/Tests/ResolvedTrackCopyingTests.swift +37 -35
  88. package/ios/Tests/SearchDrillInTests.swift +16 -16
  89. package/ios/Tests/SectionPresentationTests.swift +90 -0
  90. package/ios/Tests/SectionScopeTests.swift +87 -55
  91. package/ios/Tests/StyleResolverTests.swift +127 -0
  92. package/ios/Tests/Support/TestTypes.swift +7 -0
  93. package/ios/Tests/TabBarEntriesTests.swift +18 -18
  94. package/ios/Tests/TrackIdTemplateTests.swift +67 -0
  95. package/ios/Tests/TrackIdentityTests.swift +20 -0
  96. package/ios/Tests/TrackSelectorTests.swift +168 -33
  97. package/ios/TrackPlayer.swift +57 -34
  98. package/ios/TrackSelector.swift +45 -30
  99. package/ios/Util/ArtworkImageFetcher.swift +16 -1
  100. package/ios/Util/NetworkMonitor.swift +43 -26
  101. package/ios/Util/SFSymbolRenderer.swift +24 -2
  102. package/ios/Util/SVGProcessor.swift +9 -2
  103. package/lib/commonjs/AudioBrowser.js +11 -0
  104. package/lib/commonjs/AudioBrowser.js.map +1 -1
  105. package/lib/commonjs/features/browser-config.js +11 -8
  106. package/lib/commonjs/features/browser-config.js.map +1 -1
  107. package/lib/commonjs/features/browser.js +2 -2
  108. package/lib/commonjs/features/favorites.js +13 -10
  109. package/lib/commonjs/features/favorites.js.map +1 -1
  110. package/lib/commonjs/features/playback/controls.js +4 -2
  111. package/lib/commonjs/features/playback/controls.js.map +1 -1
  112. package/lib/commonjs/features/playback/progress.js +2 -1
  113. package/lib/commonjs/features/playback/progress.js.map +1 -1
  114. package/lib/commonjs/features/playback/rate.js +8 -1
  115. package/lib/commonjs/features/playback/rate.js.map +1 -1
  116. package/lib/commonjs/features/playback/state.js +2 -3
  117. package/lib/commonjs/features/playback/state.js.map +1 -1
  118. package/lib/commonjs/features/player/options.js.map +1 -1
  119. package/lib/commonjs/features/player/setup.js +3 -1
  120. package/lib/commonjs/features/player/setup.js.map +1 -1
  121. package/lib/commonjs/features/player/validateOptions.js +2 -0
  122. package/lib/commonjs/features/player/validateOptions.js.map +1 -1
  123. package/lib/commonjs/features/queue/activeTrack.js +14 -3
  124. package/lib/commonjs/features/queue/activeTrack.js.map +1 -1
  125. package/lib/commonjs/features/queue/queue.js +11 -4
  126. package/lib/commonjs/features/queue/queue.js.map +1 -1
  127. package/lib/commonjs/utils/LazyNativeEmitter.js +21 -10
  128. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  129. package/lib/commonjs/utils/NativeUpdatedValue.js +31 -13
  130. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  131. package/lib/commonjs/utils/getTrackIdentity.js +24 -0
  132. package/lib/commonjs/utils/getTrackIdentity.js.map +1 -0
  133. package/lib/commonjs/utils/useNativeValueRefreshedBy.js +33 -0
  134. package/lib/commonjs/utils/useNativeValueRefreshedBy.js.map +1 -0
  135. package/lib/commonjs/web/NativeAudioBrowser.js +32 -24
  136. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  137. package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
  138. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
  139. package/lib/commonjs/web/browser/BrowserManager.js +144 -87
  140. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  141. package/lib/commonjs/web/browser/FavoriteManager.js +30 -21
  142. package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -1
  143. package/lib/commonjs/web/browser/assertBrowsePageShape.js +2 -2
  144. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -1
  145. package/lib/commonjs/web/browser/classifyTrackNavigation.js +9 -9
  146. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -1
  147. package/lib/commonjs/web/browser/sections.js +89 -0
  148. package/lib/commonjs/web/browser/sections.js.map +1 -0
  149. package/lib/commonjs/web/player/NowPlayingManager.js +4 -3
  150. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  151. package/lib/commonjs/web/util/BrowserPathHelper.js +56 -11
  152. package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -1
  153. package/lib/module/AudioBrowser.js +1 -0
  154. package/lib/module/AudioBrowser.js.map +1 -1
  155. package/lib/module/features/browser-config.js +11 -8
  156. package/lib/module/features/browser-config.js.map +1 -1
  157. package/lib/module/features/browser.js +2 -2
  158. package/lib/module/features/favorites.js +13 -10
  159. package/lib/module/features/favorites.js.map +1 -1
  160. package/lib/module/features/playback/controls.js +4 -2
  161. package/lib/module/features/playback/controls.js.map +1 -1
  162. package/lib/module/features/playback/progress.js +2 -1
  163. package/lib/module/features/playback/progress.js.map +1 -1
  164. package/lib/module/features/playback/rate.js +8 -1
  165. package/lib/module/features/playback/rate.js.map +1 -1
  166. package/lib/module/features/playback/state.js +2 -3
  167. package/lib/module/features/playback/state.js.map +1 -1
  168. package/lib/module/features/player/options.js.map +1 -1
  169. package/lib/module/features/player/setup.js +3 -1
  170. package/lib/module/features/player/setup.js.map +1 -1
  171. package/lib/module/features/player/validateOptions.js +2 -0
  172. package/lib/module/features/player/validateOptions.js.map +1 -1
  173. package/lib/module/features/queue/activeTrack.js +14 -3
  174. package/lib/module/features/queue/activeTrack.js.map +1 -1
  175. package/lib/module/features/queue/queue.js +11 -4
  176. package/lib/module/features/queue/queue.js.map +1 -1
  177. package/lib/module/utils/LazyNativeEmitter.js +21 -10
  178. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  179. package/lib/module/utils/NativeUpdatedValue.js +31 -13
  180. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  181. package/lib/module/utils/getTrackIdentity.js +20 -0
  182. package/lib/module/utils/getTrackIdentity.js.map +1 -0
  183. package/lib/module/utils/useNativeValueRefreshedBy.js +29 -0
  184. package/lib/module/utils/useNativeValueRefreshedBy.js.map +1 -0
  185. package/lib/module/web/NativeAudioBrowser.js +32 -24
  186. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  187. package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
  188. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
  189. package/lib/module/web/browser/BrowserManager.js +144 -87
  190. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  191. package/lib/module/web/browser/FavoriteManager.js +31 -21
  192. package/lib/module/web/browser/FavoriteManager.js.map +1 -1
  193. package/lib/module/web/browser/assertBrowsePageShape.js +2 -2
  194. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -1
  195. package/lib/module/web/browser/classifyTrackNavigation.js +9 -9
  196. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -1
  197. package/lib/module/web/browser/sections.js +83 -0
  198. package/lib/module/web/browser/sections.js.map +1 -0
  199. package/lib/module/web/player/NowPlayingManager.js +4 -3
  200. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  201. package/lib/module/web/util/BrowserPathHelper.js +56 -11
  202. package/lib/module/web/util/BrowserPathHelper.js.map +1 -1
  203. package/lib/typescript/src/AudioBrowser.d.ts +1 -0
  204. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  205. package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
  206. package/lib/typescript/src/features/browser.d.ts +2 -2
  207. package/lib/typescript/src/features/favorites.d.ts +13 -10
  208. package/lib/typescript/src/features/favorites.d.ts.map +1 -1
  209. package/lib/typescript/src/features/playback/controls.d.ts +4 -2
  210. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  211. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  212. package/lib/typescript/src/features/playback/rate.d.ts +8 -1
  213. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
  214. package/lib/typescript/src/features/playback/state.d.ts +2 -3
  215. package/lib/typescript/src/features/playback/state.d.ts.map +1 -1
  216. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +1 -1
  217. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -1
  218. package/lib/typescript/src/features/player/options.d.ts +21 -19
  219. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  220. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  221. package/lib/typescript/src/features/player/validateOptions.d.ts +1 -8
  222. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -1
  223. package/lib/typescript/src/features/queue/activeTrack.d.ts +8 -1
  224. package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -1
  225. package/lib/typescript/src/features/queue/queue.d.ts +5 -2
  226. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  227. package/lib/typescript/src/types/browser-native.d.ts +2 -2
  228. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  229. package/lib/typescript/src/types/browser-nodes.d.ts +361 -126
  230. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  231. package/lib/typescript/src/types/browser.d.ts +33 -53
  232. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  233. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +16 -17
  234. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  235. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +24 -19
  236. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  237. package/lib/typescript/src/utils/getTrackIdentity.d.ts +18 -0
  238. package/lib/typescript/src/utils/getTrackIdentity.d.ts.map +1 -0
  239. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts +21 -0
  240. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts.map +1 -0
  241. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +0 -1
  242. package/nitrogen/generated/android/c++/{JFavoritesMatchMode.hpp → JArtworkRendering.hpp} +15 -15
  243. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +8 -3
  244. package/nitrogen/generated/android/c++/JBrowseResult.hpp +16 -4
  245. package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
  246. package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
  247. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +8 -3
  248. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +8 -3
  249. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +8 -3
  250. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +8 -3
  251. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +8 -3
  252. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +8 -3
  253. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -2
  254. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +8 -2
  255. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +16 -4
  256. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +8 -3
  257. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +2 -5
  258. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +8 -3
  259. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +15 -3
  260. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +8 -2
  261. package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
  262. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +33 -14
  263. package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
  264. package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
  265. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +8 -3
  266. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +22 -10
  267. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +14 -2
  268. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +10 -7
  269. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +2 -5
  270. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +9 -3
  271. package/nitrogen/generated/android/c++/JOptions.hpp +2 -5
  272. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +8 -3
  273. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
  274. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +55 -51
  275. package/nitrogen/generated/android/c++/JSection.hpp +120 -0
  276. package/nitrogen/generated/android/c++/JSectionStyle.hpp +96 -0
  277. package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
  278. package/nitrogen/generated/android/c++/JTrack.hpp +23 -48
  279. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +8 -2
  280. package/nitrogen/generated/android/c++/JTrackStyle.hpp +46 -18
  281. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +16 -4
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → ArtworkRendering.kt} +5 -5
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayPlayingIndicatorLocation.kt +23 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +6 -3
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +5 -5
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +6 -3
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -18
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → Section.kt} +18 -6
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +59 -0
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StyleDisplay.kt +23 -0
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -15
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +35 -5
  297. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +158 -82
  298. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +25 -10
  299. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +25 -10
  300. package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
  301. package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
  302. package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
  303. package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
  304. package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
  305. package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
  306. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +5 -5
  307. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +12 -1
  308. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
  309. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +54 -83
  310. package/nitrogen/generated/ios/swift/Section.swift +100 -0
  311. package/nitrogen/generated/ios/swift/SectionStyle.swift +133 -0
  312. package/nitrogen/generated/ios/swift/StyleDisplay.swift +40 -0
  313. package/nitrogen/generated/ios/swift/Track.swift +20 -73
  314. package/nitrogen/generated/ios/swift/TrackStyle.swift +86 -22
  315. package/nitrogen/generated/shared/c++/{FavoritesMatchMode.hpp → ArtworkRendering.hpp} +17 -17
  316. package/nitrogen/generated/shared/c++/CarPlayPlayingIndicatorLocation.hpp +76 -0
  317. package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
  318. package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
  319. package/nitrogen/generated/shared/c++/IOSOptions.hpp +9 -2
  320. package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
  321. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -6
  322. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +9 -2
  323. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
  324. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +30 -38
  325. package/nitrogen/generated/shared/c++/Section.hpp +106 -0
  326. package/nitrogen/generated/shared/c++/SectionStyle.hpp +126 -0
  327. package/nitrogen/generated/shared/c++/StyleDisplay.hpp +76 -0
  328. package/nitrogen/generated/shared/c++/Track.hpp +15 -31
  329. package/nitrogen/generated/shared/c++/TrackStyle.hpp +73 -34
  330. package/package.json +7 -2
  331. package/src/AudioBrowser.ts +1 -0
  332. package/src/features/browser-config.test.ts +21 -6
  333. package/src/features/browser-config.ts +11 -8
  334. package/src/features/browser.test.ts +1 -1
  335. package/src/features/browser.ts +2 -2
  336. package/src/features/favorites.ts +13 -10
  337. package/src/features/hook-wiring.test.ts +63 -15
  338. package/src/features/playback/controls.ts +4 -2
  339. package/src/features/playback/progress.ts +2 -1
  340. package/src/features/playback/rate.ts +8 -1
  341. package/src/features/playback/state.ts +2 -3
  342. package/src/features/playback/trackPlaybackTime.ts +1 -1
  343. package/src/features/player/options.ts +27 -19
  344. package/src/features/player/setup.test.ts +12 -3
  345. package/src/features/player/setup.ts +3 -1
  346. package/src/features/player/validateOptions.ts +2 -0
  347. package/src/features/queue/activeTrack.ts +14 -3
  348. package/src/features/queue/queue.ts +11 -4
  349. package/src/nitro-stub-drift.test.ts +40 -0
  350. package/src/public-surface.test.ts +40 -0
  351. package/src/specs/audio-browser.nitro.ts +4 -3
  352. package/src/style-resolution.test.ts +210 -0
  353. package/src/types/browser-native.ts +2 -2
  354. package/src/types/browser-nodes.ts +377 -135
  355. package/src/types/browser.ts +34 -55
  356. package/src/utils/LazyNativeEmitter.ts +20 -10
  357. package/src/utils/NativeUpdatedValue.ts +29 -13
  358. package/src/utils/getTrackIdentity.ts +20 -0
  359. package/src/utils/useNativeValueRefreshedBy.ts +38 -0
  360. package/src/web/NativeAudioBrowser.ts +37 -22
  361. package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
  362. package/src/web/TrackPlayer/QueueManager.ts +14 -0
  363. package/src/web/browser/BrowserManager.ts +176 -95
  364. package/src/web/browser/FavoriteManager.test.ts +84 -0
  365. package/src/web/browser/FavoriteManager.ts +28 -23
  366. package/src/web/browser/assertBrowsePageShape.test.ts +1 -1
  367. package/src/web/browser/assertBrowsePageShape.ts +5 -3
  368. package/src/web/browser/classifyTrackNavigation.test.ts +10 -8
  369. package/src/web/browser/classifyTrackNavigation.ts +9 -9
  370. package/src/web/browser/parseSearchResponse.test.ts +8 -2
  371. package/src/web/browser/sections.test.ts +91 -0
  372. package/src/web/browser/sections.ts +72 -0
  373. package/src/web/player/NowPlayingManager.ts +4 -3
  374. package/src/web/util/BrowserPathHelper.test.ts +52 -0
  375. package/src/web/util/BrowserPathHelper.ts +61 -13
  376. package/website/guide/android-auto.md +114 -0
  377. package/website/guide/android-certificates.md +409 -0
  378. package/website/guide/artwork.md +255 -0
  379. package/website/guide/audio-output.md +135 -0
  380. package/website/guide/automotive.md +86 -0
  381. package/website/guide/basic-usage.md +151 -0
  382. package/website/guide/battery.md +115 -0
  383. package/website/guide/browser.md +581 -0
  384. package/website/guide/carplay.md +620 -0
  385. package/website/guide/configuration.md +173 -0
  386. package/website/guide/equalizer.md +231 -0
  387. package/website/guide/errors.md +310 -0
  388. package/website/guide/favorites.md +154 -0
  389. package/website/guide/gate.md +143 -0
  390. package/website/guide/getting-started.md +46 -0
  391. package/website/guide/hooks.md +238 -0
  392. package/website/guide/live-streams.md +125 -0
  393. package/website/guide/metadata.md +239 -0
  394. package/website/guide/migrating-from-track-player.md +244 -0
  395. package/website/guide/native-callback-fetch.md +127 -0
  396. package/website/guide/network.md +86 -0
  397. package/website/guide/now-playing.md +175 -0
  398. package/website/guide/playback.md +328 -0
  399. package/website/guide/queue.md +300 -0
  400. package/website/guide/remote-controls.md +256 -0
  401. package/website/guide/search.md +255 -0
  402. package/website/guide/sleep-timer.md +268 -0
  403. package/website/guide/track.md +246 -0
  404. package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
  405. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
  406. package/nitrogen/generated/android/c++/JImageRowItem.hpp +0 -105
  407. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
  408. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
  409. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +0 -68
  410. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
  411. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
  412. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
  413. package/nitrogen/generated/ios/swift/ImageRowItem.swift +0 -195
  414. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
  415. package/nitrogen/generated/shared/c++/FavoriteConfig.hpp +0 -84
  416. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +0 -129
@@ -10,14 +10,44 @@ package com.margelo.nitro.audiobrowser
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.proguard.annotations.DoNotStrip
12
12
 
13
+
13
14
  /**
14
- * Represents the JavaScript enum/union "TrackStyle".
15
+ * Represents the JavaScript object/struct "TrackStyle".
15
16
  */
16
17
  @DoNotStrip
17
18
  @Keep
18
- enum class TrackStyle(@DoNotStrip @Keep val value: Int) {
19
- LIST(0),
20
- GRID(1);
19
+ data class TrackStyle(
20
+ @DoNotStrip
21
+ @Keep
22
+ val display: StyleDisplay?,
23
+ @DoNotStrip
24
+ @Keep
25
+ val artworkRendering: ArtworkRendering?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val imageShape: ImageShape?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val accessorySymbol: String?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val cardTint: String?,
35
+ @DoNotStrip
36
+ @Keep
37
+ val cardImage: CardImage?
38
+ ) {
39
+ /* primary constructor */
21
40
 
22
- companion object
41
+ companion object {
42
+ /**
43
+ * Constructor called from C++
44
+ */
45
+ @DoNotStrip
46
+ @Keep
47
+ @Suppress("unused")
48
+ @JvmStatic
49
+ private fun fromCpp(display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?): TrackStyle {
50
+ return TrackStyle(display, artworkRendering, imageShape, accessorySymbol, cardTint, cardImage)
51
+ }
52
+ }
23
53
  }
@@ -18,6 +18,8 @@ namespace margelo::nitro::audiobrowser { struct AndroidOptions; }
18
18
  namespace margelo::nitro::audiobrowser { enum class AndroidPlayerWakeMode; }
19
19
  // Forward declaration of `AppKilledPlaybackBehavior` to properly resolve imports.
20
20
  namespace margelo::nitro::audiobrowser { enum class AppKilledPlaybackBehavior; }
21
+ // Forward declaration of `ArtworkRendering` to properly resolve imports.
22
+ namespace margelo::nitro::audiobrowser { enum class ArtworkRendering; }
21
23
  // Forward declaration of `ArtworkRequestConfig` to properly resolve imports.
22
24
  namespace margelo::nitro::audiobrowser { struct ArtworkRequestConfig; }
23
25
  // Forward declaration of `ArtworkVariants` to properly resolve imports.
@@ -34,18 +36,18 @@ namespace margelo::nitro::audiobrowser { struct BrowseError; }
34
36
  namespace margelo::nitro::audiobrowser { struct BrowserSourceCallbackParam; }
35
37
  // Forward declaration of `CarPlayNowPlayingButton` to properly resolve imports.
36
38
  namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
39
+ // Forward declaration of `CarPlayPlayingIndicatorLocation` to properly resolve imports.
40
+ namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
37
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
38
42
  namespace margelo::nitro::audiobrowser { enum class CarPlaySiriListButtonPosition; }
43
+ // Forward declaration of `CardImage` to properly resolve imports.
44
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
39
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
40
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
41
47
  // Forward declaration of `EqualizerSettings` to properly resolve imports.
42
48
  namespace margelo::nitro::audiobrowser { struct EqualizerSettings; }
43
49
  // Forward declaration of `FavoriteChangedEvent` to properly resolve imports.
44
50
  namespace margelo::nitro::audiobrowser { struct FavoriteChangedEvent; }
45
- // Forward declaration of `FavoriteConfig` to properly resolve imports.
46
- namespace margelo::nitro::audiobrowser { struct FavoriteConfig; }
47
- // Forward declaration of `FavoritesMatchMode` to properly resolve imports.
48
- namespace margelo::nitro::audiobrowser { enum class FavoritesMatchMode; }
49
51
  // Forward declaration of `FormatNavigationErrorParams` to properly resolve imports.
50
52
  namespace margelo::nitro::audiobrowser { struct FormatNavigationErrorParams; }
51
53
  // Forward declaration of `FormatNowPlayingParams` to properly resolve imports.
@@ -60,6 +62,8 @@ namespace margelo::nitro::audiobrowser { struct GateEvent; }
60
62
  namespace margelo::nitro::audiobrowser { enum class GateReason; }
61
63
  // Forward declaration of `Gate` to properly resolve imports.
62
64
  namespace margelo::nitro::audiobrowser { struct Gate; }
65
+ // Forward declaration of `GridTile` to properly resolve imports.
66
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
63
67
  // Forward declaration of `HttpMethod` to properly resolve imports.
64
68
  namespace margelo::nitro::audiobrowser { enum class HttpMethod; }
65
69
  // Forward declaration of `HybridAudioBrowserSpec` to properly resolve imports.
@@ -78,8 +82,8 @@ namespace margelo::nitro::audiobrowser { struct IOSOptions; }
78
82
  namespace margelo::nitro::audiobrowser { struct ImageContext; }
79
83
  // Forward declaration of `ImageQueryParams` to properly resolve imports.
80
84
  namespace margelo::nitro::audiobrowser { struct ImageQueryParams; }
81
- // Forward declaration of `ImageRowItem` to properly resolve imports.
82
- namespace margelo::nitro::audiobrowser { struct ImageRowItem; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
83
87
  // Forward declaration of `ImageSource` to properly resolve imports.
84
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
85
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -172,12 +176,18 @@ namespace margelo::nitro::audiobrowser { struct RetryConfig; }
172
176
  namespace margelo::nitro::audiobrowser { enum class SearchMode; }
173
177
  // Forward declaration of `SearchParams` to properly resolve imports.
174
178
  namespace margelo::nitro::audiobrowser { struct SearchParams; }
179
+ // Forward declaration of `SectionStyle` to properly resolve imports.
180
+ namespace margelo::nitro::audiobrowser { struct SectionStyle; }
181
+ // Forward declaration of `Section` to properly resolve imports.
182
+ namespace margelo::nitro::audiobrowser { struct Section; }
175
183
  // Forward declaration of `SleepTimerEndOfTrack` to properly resolve imports.
176
184
  namespace margelo::nitro::audiobrowser { struct SleepTimerEndOfTrack; }
177
185
  // Forward declaration of `SleepTimerTime` to properly resolve imports.
178
186
  namespace margelo::nitro::audiobrowser { struct SleepTimerTime; }
179
187
  // Forward declaration of `StallReason` to properly resolve imports.
180
188
  namespace margelo::nitro::audiobrowser { enum class StallReason; }
189
+ // Forward declaration of `StyleDisplay` to properly resolve imports.
190
+ namespace margelo::nitro::audiobrowser { enum class StyleDisplay; }
181
191
  // Forward declaration of `TimedMetadata` to properly resolve imports.
182
192
  namespace margelo::nitro::audiobrowser { struct TimedMetadata; }
183
193
  // Forward declaration of `TrackLoadEvent` to properly resolve imports.
@@ -187,7 +197,7 @@ namespace margelo::nitro::audiobrowser { struct TrackMetadata; }
187
197
  // Forward declaration of `TrackRequest` to properly resolve imports.
188
198
  namespace margelo::nitro::audiobrowser { struct TrackRequest; }
189
199
  // Forward declaration of `TrackStyle` to properly resolve imports.
190
- namespace margelo::nitro::audiobrowser { enum class TrackStyle; }
200
+ namespace margelo::nitro::audiobrowser { struct TrackStyle; }
191
201
  // Forward declaration of `Track` to properly resolve imports.
192
202
  namespace margelo::nitro::audiobrowser { struct Track; }
193
203
  // Forward declaration of `TransformableRequestConfig` to properly resolve imports.
@@ -203,6 +213,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
203
213
  #include "AndroidOptions.hpp"
204
214
  #include "AndroidPlayerWakeMode.hpp"
205
215
  #include "AppKilledPlaybackBehavior.hpp"
216
+ #include "ArtworkRendering.hpp"
206
217
  #include "ArtworkRequestConfig.hpp"
207
218
  #include "ArtworkVariants.hpp"
208
219
  #include "BatteryOptimizationStatus.hpp"
@@ -211,12 +222,12 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
211
222
  #include "BrowseError.hpp"
212
223
  #include "BrowserSourceCallbackParam.hpp"
213
224
  #include "CarPlayNowPlayingButton.hpp"
225
+ #include "CarPlayPlayingIndicatorLocation.hpp"
214
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
215
228
  #include "ChapterMetadata.hpp"
216
229
  #include "EqualizerSettings.hpp"
217
230
  #include "FavoriteChangedEvent.hpp"
218
- #include "FavoriteConfig.hpp"
219
- #include "FavoritesMatchMode.hpp"
220
231
  #include "FormatNavigationErrorParams.hpp"
221
232
  #include "FormatNowPlayingParams.hpp"
222
233
  #include "FormattedNavigationError.hpp"
@@ -224,6 +235,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
224
235
  #include "GateDecision.hpp"
225
236
  #include "GateEvent.hpp"
226
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
227
239
  #include "HttpMethod.hpp"
228
240
  #include "HybridAudioBrowserSpec.hpp"
229
241
  #include "IOSCategory.hpp"
@@ -233,7 +245,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
233
245
  #include "IOSOptions.hpp"
234
246
  #include "ImageContext.hpp"
235
247
  #include "ImageQueryParams.hpp"
236
- #include "ImageRowItem.hpp"
248
+ #include "ImageShape.hpp"
237
249
  #include "ImageSource.hpp"
238
250
  #include "MediaReference.hpp"
239
251
  #include "MediaRequestConfig.hpp"
@@ -280,9 +292,12 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
280
292
  #include "RetryConfig.hpp"
281
293
  #include "SearchMode.hpp"
282
294
  #include "SearchParams.hpp"
295
+ #include "Section.hpp"
296
+ #include "SectionStyle.hpp"
283
297
  #include "SleepTimerEndOfTrack.hpp"
284
298
  #include "SleepTimerTime.hpp"
285
299
  #include "StallReason.hpp"
300
+ #include "StyleDisplay.hpp"
286
301
  #include "TimedMetadata.hpp"
287
302
  #include "Track.hpp"
288
303
  #include "TrackLoadEvent.hpp"
@@ -453,21 +468,6 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
453
468
  return optional.value();
454
469
  }
455
470
 
456
- // pragma MARK: std::optional<bool>
457
- /**
458
- * Specialized version of `std::optional<bool>`.
459
- */
460
- using std__optional_bool_ = std::optional<bool>;
461
- inline std::optional<bool> create_std__optional_bool_(const bool& value) noexcept {
462
- return std::optional<bool>(value);
463
- }
464
- inline bool has_value_std__optional_bool_(const std::optional<bool>& optional) noexcept {
465
- return optional.has_value();
466
- }
467
- inline bool get_std__optional_bool_(const std::optional<bool>& optional) noexcept {
468
- return optional.value();
469
- }
470
-
471
471
  // pragma MARK: std::optional<double>
472
472
  /**
473
473
  * Specialized version of `std::optional<double>`.
@@ -498,30 +498,79 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
498
498
  return optional.value();
499
499
  }
500
500
 
501
- // pragma MARK: std::optional<std::vector<ImageRowItem>>
501
+ // pragma MARK: std::optional<StyleDisplay>
502
502
  /**
503
- * Specialized version of `std::optional<std::vector<ImageRowItem>>`.
503
+ * Specialized version of `std::optional<StyleDisplay>`.
504
504
  */
505
- using std__optional_std__vector_ImageRowItem__ = std::optional<std::vector<ImageRowItem>>;
506
- inline std::optional<std::vector<ImageRowItem>> create_std__optional_std__vector_ImageRowItem__(const std::vector<ImageRowItem>& value) noexcept {
507
- return std::optional<std::vector<ImageRowItem>>(value);
505
+ using std__optional_StyleDisplay_ = std::optional<StyleDisplay>;
506
+ inline std::optional<StyleDisplay> create_std__optional_StyleDisplay_(const StyleDisplay& value) noexcept {
507
+ return std::optional<StyleDisplay>(value);
508
508
  }
509
- inline bool has_value_std__optional_std__vector_ImageRowItem__(const std::optional<std::vector<ImageRowItem>>& optional) noexcept {
509
+ inline bool has_value_std__optional_StyleDisplay_(const std::optional<StyleDisplay>& optional) noexcept {
510
510
  return optional.has_value();
511
511
  }
512
- inline std::vector<ImageRowItem> get_std__optional_std__vector_ImageRowItem__(const std::optional<std::vector<ImageRowItem>>& optional) noexcept {
512
+ inline StyleDisplay get_std__optional_StyleDisplay_(const std::optional<StyleDisplay>& optional) noexcept {
513
513
  return optional.value();
514
514
  }
515
515
 
516
- // pragma MARK: std::vector<ImageRowItem>
516
+ // pragma MARK: std::optional<ArtworkRendering>
517
517
  /**
518
- * Specialized version of `std::vector<ImageRowItem>`.
518
+ * Specialized version of `std::optional<ArtworkRendering>`.
519
519
  */
520
- using std__vector_ImageRowItem_ = std::vector<ImageRowItem>;
521
- inline std::vector<ImageRowItem> create_std__vector_ImageRowItem_(size_t size) noexcept {
522
- std::vector<ImageRowItem> vector;
523
- vector.reserve(size);
524
- return vector;
520
+ using std__optional_ArtworkRendering_ = std::optional<ArtworkRendering>;
521
+ inline std::optional<ArtworkRendering> create_std__optional_ArtworkRendering_(const ArtworkRendering& value) noexcept {
522
+ return std::optional<ArtworkRendering>(value);
523
+ }
524
+ inline bool has_value_std__optional_ArtworkRendering_(const std::optional<ArtworkRendering>& optional) noexcept {
525
+ return optional.has_value();
526
+ }
527
+ inline ArtworkRendering get_std__optional_ArtworkRendering_(const std::optional<ArtworkRendering>& optional) noexcept {
528
+ return optional.value();
529
+ }
530
+
531
+ // pragma MARK: std::optional<ImageShape>
532
+ /**
533
+ * Specialized version of `std::optional<ImageShape>`.
534
+ */
535
+ using std__optional_ImageShape_ = std::optional<ImageShape>;
536
+ inline std::optional<ImageShape> create_std__optional_ImageShape_(const ImageShape& value) noexcept {
537
+ return std::optional<ImageShape>(value);
538
+ }
539
+ inline bool has_value_std__optional_ImageShape_(const std::optional<ImageShape>& optional) noexcept {
540
+ return optional.has_value();
541
+ }
542
+ inline ImageShape get_std__optional_ImageShape_(const std::optional<ImageShape>& optional) noexcept {
543
+ return optional.value();
544
+ }
545
+
546
+ // pragma MARK: std::optional<CardImage>
547
+ /**
548
+ * Specialized version of `std::optional<CardImage>`.
549
+ */
550
+ using std__optional_CardImage_ = std::optional<CardImage>;
551
+ inline std::optional<CardImage> create_std__optional_CardImage_(const CardImage& value) noexcept {
552
+ return std::optional<CardImage>(value);
553
+ }
554
+ inline bool has_value_std__optional_CardImage_(const std::optional<CardImage>& optional) noexcept {
555
+ return optional.has_value();
556
+ }
557
+ inline CardImage get_std__optional_CardImage_(const std::optional<CardImage>& optional) noexcept {
558
+ return optional.value();
559
+ }
560
+
561
+ // pragma MARK: std::optional<bool>
562
+ /**
563
+ * Specialized version of `std::optional<bool>`.
564
+ */
565
+ using std__optional_bool_ = std::optional<bool>;
566
+ inline std::optional<bool> create_std__optional_bool_(const bool& value) noexcept {
567
+ return std::optional<bool>(value);
568
+ }
569
+ inline bool has_value_std__optional_bool_(const std::optional<bool>& optional) noexcept {
570
+ return optional.has_value();
571
+ }
572
+ inline bool get_std__optional_bool_(const std::optional<bool>& optional) noexcept {
573
+ return optional.value();
525
574
  }
526
575
 
527
576
  // pragma MARK: std::vector<Track>
@@ -606,6 +655,62 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
606
655
  return Func_void_std__exception_ptr_Wrapper(std::move(value));
607
656
  }
608
657
 
658
+ // pragma MARK: std::optional<SectionStyle>
659
+ /**
660
+ * Specialized version of `std::optional<SectionStyle>`.
661
+ */
662
+ using std__optional_SectionStyle_ = std::optional<SectionStyle>;
663
+ inline std::optional<SectionStyle> create_std__optional_SectionStyle_(const SectionStyle& value) noexcept {
664
+ return std::optional<SectionStyle>(value);
665
+ }
666
+ inline bool has_value_std__optional_SectionStyle_(const std::optional<SectionStyle>& optional) noexcept {
667
+ return optional.has_value();
668
+ }
669
+ inline SectionStyle get_std__optional_SectionStyle_(const std::optional<SectionStyle>& optional) noexcept {
670
+ return optional.value();
671
+ }
672
+
673
+ // pragma MARK: std::optional<GridTile>
674
+ /**
675
+ * Specialized version of `std::optional<GridTile>`.
676
+ */
677
+ using std__optional_GridTile_ = std::optional<GridTile>;
678
+ inline std::optional<GridTile> create_std__optional_GridTile_(const GridTile& value) noexcept {
679
+ return std::optional<GridTile>(value);
680
+ }
681
+ inline bool has_value_std__optional_GridTile_(const std::optional<GridTile>& optional) noexcept {
682
+ return optional.has_value();
683
+ }
684
+ inline GridTile get_std__optional_GridTile_(const std::optional<GridTile>& optional) noexcept {
685
+ return optional.value();
686
+ }
687
+
688
+ // pragma MARK: std::optional<std::vector<Section>>
689
+ /**
690
+ * Specialized version of `std::optional<std::vector<Section>>`.
691
+ */
692
+ using std__optional_std__vector_Section__ = std::optional<std::vector<Section>>;
693
+ inline std::optional<std::vector<Section>> create_std__optional_std__vector_Section__(const std::vector<Section>& value) noexcept {
694
+ return std::optional<std::vector<Section>>(value);
695
+ }
696
+ inline bool has_value_std__optional_std__vector_Section__(const std::optional<std::vector<Section>>& optional) noexcept {
697
+ return optional.has_value();
698
+ }
699
+ inline std::vector<Section> get_std__optional_std__vector_Section__(const std::optional<std::vector<Section>>& optional) noexcept {
700
+ return optional.value();
701
+ }
702
+
703
+ // pragma MARK: std::vector<Section>
704
+ /**
705
+ * Specialized version of `std::vector<Section>`.
706
+ */
707
+ using std__vector_Section_ = std::vector<Section>;
708
+ inline std::vector<Section> create_std__vector_Section_(size_t size) noexcept {
709
+ std::vector<Section> vector;
710
+ vector.reserve(size);
711
+ return vector;
712
+ }
713
+
609
714
  // pragma MARK: std::optional<CarPlaySiriListButtonPosition>
610
715
  /**
611
716
  * Specialized version of `std::optional<CarPlaySiriListButtonPosition>`.
@@ -2319,65 +2424,36 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
2319
2424
  return vector;
2320
2425
  }
2321
2426
 
2322
- // pragma MARK: std::optional<PlayerCapabilities>
2427
+ // pragma MARK: std::optional<CarPlayPlayingIndicatorLocation>
2323
2428
  /**
2324
- * Specialized version of `std::optional<PlayerCapabilities>`.
2429
+ * Specialized version of `std::optional<CarPlayPlayingIndicatorLocation>`.
2325
2430
  */
2326
- using std__optional_PlayerCapabilities_ = std::optional<PlayerCapabilities>;
2327
- inline std::optional<PlayerCapabilities> create_std__optional_PlayerCapabilities_(const PlayerCapabilities& value) noexcept {
2328
- return std::optional<PlayerCapabilities>(value);
2431
+ using std__optional_CarPlayPlayingIndicatorLocation_ = std::optional<CarPlayPlayingIndicatorLocation>;
2432
+ inline std::optional<CarPlayPlayingIndicatorLocation> create_std__optional_CarPlayPlayingIndicatorLocation_(const CarPlayPlayingIndicatorLocation& value) noexcept {
2433
+ return std::optional<CarPlayPlayingIndicatorLocation>(value);
2329
2434
  }
2330
- inline bool has_value_std__optional_PlayerCapabilities_(const std::optional<PlayerCapabilities>& optional) noexcept {
2435
+ inline bool has_value_std__optional_CarPlayPlayingIndicatorLocation_(const std::optional<CarPlayPlayingIndicatorLocation>& optional) noexcept {
2331
2436
  return optional.has_value();
2332
2437
  }
2333
- inline PlayerCapabilities get_std__optional_PlayerCapabilities_(const std::optional<PlayerCapabilities>& optional) noexcept {
2438
+ inline CarPlayPlayingIndicatorLocation get_std__optional_CarPlayPlayingIndicatorLocation_(const std::optional<CarPlayPlayingIndicatorLocation>& optional) noexcept {
2334
2439
  return optional.value();
2335
2440
  }
2336
2441
 
2337
- // pragma MARK: std::optional<std::variant<bool, FavoriteConfig>>
2442
+ // pragma MARK: std::optional<PlayerCapabilities>
2338
2443
  /**
2339
- * Specialized version of `std::optional<std::variant<bool, FavoriteConfig>>`.
2444
+ * Specialized version of `std::optional<PlayerCapabilities>`.
2340
2445
  */
2341
- using std__optional_std__variant_bool__FavoriteConfig__ = std::optional<std::variant<bool, FavoriteConfig>>;
2342
- inline std::optional<std::variant<bool, FavoriteConfig>> create_std__optional_std__variant_bool__FavoriteConfig__(const std::variant<bool, FavoriteConfig>& value) noexcept {
2343
- return std::optional<std::variant<bool, FavoriteConfig>>(value);
2446
+ using std__optional_PlayerCapabilities_ = std::optional<PlayerCapabilities>;
2447
+ inline std::optional<PlayerCapabilities> create_std__optional_PlayerCapabilities_(const PlayerCapabilities& value) noexcept {
2448
+ return std::optional<PlayerCapabilities>(value);
2344
2449
  }
2345
- inline bool has_value_std__optional_std__variant_bool__FavoriteConfig__(const std::optional<std::variant<bool, FavoriteConfig>>& optional) noexcept {
2450
+ inline bool has_value_std__optional_PlayerCapabilities_(const std::optional<PlayerCapabilities>& optional) noexcept {
2346
2451
  return optional.has_value();
2347
2452
  }
2348
- inline std::variant<bool, FavoriteConfig> get_std__optional_std__variant_bool__FavoriteConfig__(const std::optional<std::variant<bool, FavoriteConfig>>& optional) noexcept {
2453
+ inline PlayerCapabilities get_std__optional_PlayerCapabilities_(const std::optional<PlayerCapabilities>& optional) noexcept {
2349
2454
  return optional.value();
2350
2455
  }
2351
2456
 
2352
- // pragma MARK: std::variant<bool, FavoriteConfig>
2353
- /**
2354
- * Wrapper struct for `std::variant<bool, FavoriteConfig>`.
2355
- * std::variant cannot be used in Swift because of a Swift bug.
2356
- * Not even specializing it works. So we create a wrapper struct.
2357
- */
2358
- struct std__variant_bool__FavoriteConfig_ final {
2359
- std::variant<bool, FavoriteConfig> variant;
2360
- std__variant_bool__FavoriteConfig_(std::variant<bool, FavoriteConfig> variant): variant(variant) { }
2361
- operator std::variant<bool, FavoriteConfig>() const noexcept {
2362
- return variant;
2363
- }
2364
- inline size_t index() const noexcept {
2365
- return variant.index();
2366
- }
2367
- inline bool get_0() const noexcept {
2368
- return std::get<0>(variant);
2369
- }
2370
- inline FavoriteConfig get_1() const noexcept {
2371
- return std::get<1>(variant);
2372
- }
2373
- };
2374
- inline std__variant_bool__FavoriteConfig_ create_std__variant_bool__FavoriteConfig_(bool value) noexcept {
2375
- return std__variant_bool__FavoriteConfig_(value);
2376
- }
2377
- inline std__variant_bool__FavoriteConfig_ create_std__variant_bool__FavoriteConfig_(const FavoriteConfig& value) noexcept {
2378
- return std__variant_bool__FavoriteConfig_(value);
2379
- }
2380
-
2381
2457
  // pragma MARK: std::optional<std::function<std::shared_ptr<Promise<std::optional<NowPlayingUpdate>>>(const FormatNowPlayingParams& /* params */)>>
2382
2458
  /**
2383
2459
  * Specialized version of `std::optional<std::function<std::shared_ptr<Promise<std::optional<NowPlayingUpdate>>>(const FormatNowPlayingParams& / * params * /)>>`.
@@ -18,6 +18,8 @@ namespace margelo::nitro::audiobrowser { struct AndroidOptions; }
18
18
  namespace margelo::nitro::audiobrowser { enum class AndroidPlayerWakeMode; }
19
19
  // Forward declaration of `AppKilledPlaybackBehavior` to properly resolve imports.
20
20
  namespace margelo::nitro::audiobrowser { enum class AppKilledPlaybackBehavior; }
21
+ // Forward declaration of `ArtworkRendering` to properly resolve imports.
22
+ namespace margelo::nitro::audiobrowser { enum class ArtworkRendering; }
21
23
  // Forward declaration of `ArtworkRequestConfig` to properly resolve imports.
22
24
  namespace margelo::nitro::audiobrowser { struct ArtworkRequestConfig; }
23
25
  // Forward declaration of `ArtworkVariants` to properly resolve imports.
@@ -34,18 +36,18 @@ namespace margelo::nitro::audiobrowser { struct BrowseError; }
34
36
  namespace margelo::nitro::audiobrowser { struct BrowserSourceCallbackParam; }
35
37
  // Forward declaration of `CarPlayNowPlayingButton` to properly resolve imports.
36
38
  namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
39
+ // Forward declaration of `CarPlayPlayingIndicatorLocation` to properly resolve imports.
40
+ namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
37
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
38
42
  namespace margelo::nitro::audiobrowser { enum class CarPlaySiriListButtonPosition; }
43
+ // Forward declaration of `CardImage` to properly resolve imports.
44
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
39
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
40
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
41
47
  // Forward declaration of `EqualizerSettings` to properly resolve imports.
42
48
  namespace margelo::nitro::audiobrowser { struct EqualizerSettings; }
43
49
  // Forward declaration of `FavoriteChangedEvent` to properly resolve imports.
44
50
  namespace margelo::nitro::audiobrowser { struct FavoriteChangedEvent; }
45
- // Forward declaration of `FavoriteConfig` to properly resolve imports.
46
- namespace margelo::nitro::audiobrowser { struct FavoriteConfig; }
47
- // Forward declaration of `FavoritesMatchMode` to properly resolve imports.
48
- namespace margelo::nitro::audiobrowser { enum class FavoritesMatchMode; }
49
51
  // Forward declaration of `FormatNavigationErrorParams` to properly resolve imports.
50
52
  namespace margelo::nitro::audiobrowser { struct FormatNavigationErrorParams; }
51
53
  // Forward declaration of `FormatNowPlayingParams` to properly resolve imports.
@@ -60,6 +62,8 @@ namespace margelo::nitro::audiobrowser { struct GateEvent; }
60
62
  namespace margelo::nitro::audiobrowser { enum class GateReason; }
61
63
  // Forward declaration of `Gate` to properly resolve imports.
62
64
  namespace margelo::nitro::audiobrowser { struct Gate; }
65
+ // Forward declaration of `GridTile` to properly resolve imports.
66
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
63
67
  // Forward declaration of `HttpMethod` to properly resolve imports.
64
68
  namespace margelo::nitro::audiobrowser { enum class HttpMethod; }
65
69
  // Forward declaration of `HybridAudioBrowserSpec` to properly resolve imports.
@@ -78,8 +82,8 @@ namespace margelo::nitro::audiobrowser { struct IOSOptions; }
78
82
  namespace margelo::nitro::audiobrowser { struct ImageContext; }
79
83
  // Forward declaration of `ImageQueryParams` to properly resolve imports.
80
84
  namespace margelo::nitro::audiobrowser { struct ImageQueryParams; }
81
- // Forward declaration of `ImageRowItem` to properly resolve imports.
82
- namespace margelo::nitro::audiobrowser { struct ImageRowItem; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
83
87
  // Forward declaration of `ImageSource` to properly resolve imports.
84
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
85
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -176,12 +180,18 @@ namespace margelo::nitro::audiobrowser { struct RetryConfig; }
176
180
  namespace margelo::nitro::audiobrowser { enum class SearchMode; }
177
181
  // Forward declaration of `SearchParams` to properly resolve imports.
178
182
  namespace margelo::nitro::audiobrowser { struct SearchParams; }
183
+ // Forward declaration of `SectionStyle` to properly resolve imports.
184
+ namespace margelo::nitro::audiobrowser { struct SectionStyle; }
185
+ // Forward declaration of `Section` to properly resolve imports.
186
+ namespace margelo::nitro::audiobrowser { struct Section; }
179
187
  // Forward declaration of `SleepTimerEndOfTrack` to properly resolve imports.
180
188
  namespace margelo::nitro::audiobrowser { struct SleepTimerEndOfTrack; }
181
189
  // Forward declaration of `SleepTimerTime` to properly resolve imports.
182
190
  namespace margelo::nitro::audiobrowser { struct SleepTimerTime; }
183
191
  // Forward declaration of `StallReason` to properly resolve imports.
184
192
  namespace margelo::nitro::audiobrowser { enum class StallReason; }
193
+ // Forward declaration of `StyleDisplay` to properly resolve imports.
194
+ namespace margelo::nitro::audiobrowser { enum class StyleDisplay; }
185
195
  // Forward declaration of `TimedMetadata` to properly resolve imports.
186
196
  namespace margelo::nitro::audiobrowser { struct TimedMetadata; }
187
197
  // Forward declaration of `TrackLoadEvent` to properly resolve imports.
@@ -191,7 +201,7 @@ namespace margelo::nitro::audiobrowser { struct TrackMetadata; }
191
201
  // Forward declaration of `TrackRequest` to properly resolve imports.
192
202
  namespace margelo::nitro::audiobrowser { struct TrackRequest; }
193
203
  // Forward declaration of `TrackStyle` to properly resolve imports.
194
- namespace margelo::nitro::audiobrowser { enum class TrackStyle; }
204
+ namespace margelo::nitro::audiobrowser { struct TrackStyle; }
195
205
  // Forward declaration of `Track` to properly resolve imports.
196
206
  namespace margelo::nitro::audiobrowser { struct Track; }
197
207
  // Forward declaration of `TransformableRequestConfig` to properly resolve imports.
@@ -203,6 +213,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
203
213
  #include "AndroidOptions.hpp"
204
214
  #include "AndroidPlayerWakeMode.hpp"
205
215
  #include "AppKilledPlaybackBehavior.hpp"
216
+ #include "ArtworkRendering.hpp"
206
217
  #include "ArtworkRequestConfig.hpp"
207
218
  #include "ArtworkVariants.hpp"
208
219
  #include "BatteryOptimizationStatus.hpp"
@@ -211,12 +222,12 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
211
222
  #include "BrowseError.hpp"
212
223
  #include "BrowserSourceCallbackParam.hpp"
213
224
  #include "CarPlayNowPlayingButton.hpp"
225
+ #include "CarPlayPlayingIndicatorLocation.hpp"
214
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
215
228
  #include "ChapterMetadata.hpp"
216
229
  #include "EqualizerSettings.hpp"
217
230
  #include "FavoriteChangedEvent.hpp"
218
- #include "FavoriteConfig.hpp"
219
- #include "FavoritesMatchMode.hpp"
220
231
  #include "FormatNavigationErrorParams.hpp"
221
232
  #include "FormatNowPlayingParams.hpp"
222
233
  #include "FormattedNavigationError.hpp"
@@ -224,6 +235,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
224
235
  #include "GateDecision.hpp"
225
236
  #include "GateEvent.hpp"
226
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
227
239
  #include "HttpMethod.hpp"
228
240
  #include "HybridAudioBrowserSpec.hpp"
229
241
  #include "IOSCategory.hpp"
@@ -233,7 +245,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
233
245
  #include "IOSOptions.hpp"
234
246
  #include "ImageContext.hpp"
235
247
  #include "ImageQueryParams.hpp"
236
- #include "ImageRowItem.hpp"
248
+ #include "ImageShape.hpp"
237
249
  #include "ImageSource.hpp"
238
250
  #include "MediaReference.hpp"
239
251
  #include "MediaRequestConfig.hpp"
@@ -282,9 +294,12 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
282
294
  #include "RetryConfig.hpp"
283
295
  #include "SearchMode.hpp"
284
296
  #include "SearchParams.hpp"
297
+ #include "Section.hpp"
298
+ #include "SectionStyle.hpp"
285
299
  #include "SleepTimerEndOfTrack.hpp"
286
300
  #include "SleepTimerTime.hpp"
287
301
  #include "StallReason.hpp"
302
+ #include "StyleDisplay.hpp"
288
303
  #include "TimedMetadata.hpp"
289
304
  #include "Track.hpp"
290
305
  #include "TrackLoadEvent.hpp"
@@ -23,11 +23,23 @@ namespace margelo::nitro::audiobrowser { enum class HttpMethod; }
23
23
  // Forward declaration of `TrackRequest` to properly resolve imports.
24
24
  namespace margelo::nitro::audiobrowser { struct TrackRequest; }
25
25
  // Forward declaration of `TrackStyle` to properly resolve imports.
26
- namespace margelo::nitro::audiobrowser { enum class TrackStyle; }
27
- // Forward declaration of `ImageRowItem` to properly resolve imports.
28
- namespace margelo::nitro::audiobrowser { struct ImageRowItem; }
26
+ namespace margelo::nitro::audiobrowser { struct TrackStyle; }
27
+ // Forward declaration of `StyleDisplay` to properly resolve imports.
28
+ namespace margelo::nitro::audiobrowser { enum class StyleDisplay; }
29
+ // Forward declaration of `ArtworkRendering` to properly resolve imports.
30
+ namespace margelo::nitro::audiobrowser { enum class ArtworkRendering; }
31
+ // Forward declaration of `ImageShape` to properly resolve imports.
32
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
33
+ // Forward declaration of `CardImage` to properly resolve imports.
34
+ namespace margelo::nitro::audiobrowser { enum class CardImage; }
29
35
  // Forward declaration of `ResolvedTrack` to properly resolve imports.
30
36
  namespace margelo::nitro::audiobrowser { struct ResolvedTrack; }
37
+ // Forward declaration of `SectionStyle` to properly resolve imports.
38
+ namespace margelo::nitro::audiobrowser { struct SectionStyle; }
39
+ // Forward declaration of `GridTile` to properly resolve imports.
40
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
41
+ // Forward declaration of `Section` to properly resolve imports.
42
+ namespace margelo::nitro::audiobrowser { struct Section; }
31
43
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
32
44
  namespace margelo::nitro::audiobrowser { enum class CarPlaySiriListButtonPosition; }
33
45
  // Forward declaration of `NavigationErrorEvent` to properly resolve imports.
@@ -138,14 +150,12 @@ namespace margelo::nitro::audiobrowser { struct RemoteButtonLayout; }
138
150
  namespace margelo::nitro::audiobrowser { enum class RemoteButton; }
139
151
  // Forward declaration of `PlayerCapabilities` to properly resolve imports.
140
152
  namespace margelo::nitro::audiobrowser { struct PlayerCapabilities; }
141
- // Forward declaration of `FavoriteConfig` to properly resolve imports.
142
- namespace margelo::nitro::audiobrowser { struct FavoriteConfig; }
143
- // Forward declaration of `FavoritesMatchMode` to properly resolve imports.
144
- namespace margelo::nitro::audiobrowser { enum class FavoritesMatchMode; }
145
153
  // Forward declaration of `IOSOptions` to properly resolve imports.
146
154
  namespace margelo::nitro::audiobrowser { struct IOSOptions; }
147
155
  // Forward declaration of `CarPlayNowPlayingButton` to properly resolve imports.
148
156
  namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
157
+ // Forward declaration of `CarPlayPlayingIndicatorLocation` to properly resolve imports.
158
+ namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
149
159
  // Forward declaration of `FavoriteChangedEvent` to properly resolve imports.
150
160
  namespace margelo::nitro::audiobrowser { struct FavoriteChangedEvent; }
151
161
  // Forward declaration of `NowPlayingMetadata` to properly resolve imports.
@@ -210,9 +220,15 @@ namespace margelo::nitro::audiobrowser { struct Progress; }
210
220
  #include <unordered_map>
211
221
  #include "TrackRequest.hpp"
212
222
  #include "TrackStyle.hpp"
213
- #include "ImageRowItem.hpp"
223
+ #include "StyleDisplay.hpp"
224
+ #include "ArtworkRendering.hpp"
225
+ #include "ImageShape.hpp"
226
+ #include "CardImage.hpp"
214
227
  #include <functional>
215
228
  #include "ResolvedTrack.hpp"
229
+ #include "SectionStyle.hpp"
230
+ #include "GridTile.hpp"
231
+ #include "Section.hpp"
216
232
  #include "CarPlaySiriListButtonPosition.hpp"
217
233
  #include "NavigationErrorEvent.hpp"
218
234
  #include "NavigationError.hpp"
@@ -270,10 +286,9 @@ namespace margelo::nitro::audiobrowser { struct Progress; }
270
286
  #include "RemoteButtonLayout.hpp"
271
287
  #include "RemoteButton.hpp"
272
288
  #include "PlayerCapabilities.hpp"
273
- #include "FavoriteConfig.hpp"
274
- #include "FavoritesMatchMode.hpp"
275
289
  #include "IOSOptions.hpp"
276
290
  #include "CarPlayNowPlayingButton.hpp"
291
+ #include "CarPlayPlayingIndicatorLocation.hpp"
277
292
  #include "FavoriteChangedEvent.hpp"
278
293
  #include "NowPlayingMetadata.hpp"
279
294
  #include "Output.hpp"