react-native-audio-browser 0.2.0-next.12 → 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 (156) hide show
  1. package/README.md +10 -0
  2. package/android/build.gradle +20 -1
  3. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +5 -1
  4. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +8 -0
  5. package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
  6. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +27 -9
  7. package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +11 -0
  8. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +11 -1
  9. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
  10. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +17 -2
  11. package/android/src/main/java/com/audiobrowser/player/Player.kt +3 -0
  12. package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
  13. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +73 -0
  14. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +8 -1
  15. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +49 -3
  16. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +3 -2
  17. package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
  18. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +56 -0
  19. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +4 -4
  20. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +77 -10
  21. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +2 -2
  22. package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
  23. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +8 -8
  24. package/ios/Browser/BrowserManager.swift +106 -45
  25. package/ios/Browser/InertStyleDiagnostic.swift +279 -0
  26. package/ios/Browser/JsonModels.swift +81 -10
  27. package/ios/Browser/SectionPresentation.swift +30 -0
  28. package/ios/Browser/StyleResolver.swift +11 -0
  29. package/ios/Browser/TabBarEntries.swift +7 -1
  30. package/ios/CarPlay/CarPlayController.swift +139 -35
  31. package/ios/CarPlay/CarPlayListItemFactory.swift +99 -27
  32. package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
  33. package/ios/Http/HttpClient.swift +8 -2
  34. package/ios/HybridAudioBrowser.swift +54 -11
  35. package/ios/Model/NitroTypeStubs.swift +60 -0
  36. package/ios/Player/MediaIntentCriteria.swift +13 -5
  37. package/ios/Player/MediaLoader.swift +33 -9
  38. package/ios/Player/NowPlayingUpdater.swift +53 -5
  39. package/ios/Player/PlaybackCoordinator.swift +11 -4
  40. package/ios/Player/PlaybackTimer.swift +8 -2
  41. package/ios/Player/QueueManager.swift +36 -10
  42. package/ios/Player/ShuffleOrder.swift +23 -0
  43. package/ios/Player/SleepTimerHandling.swift +13 -0
  44. package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
  45. package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
  46. package/ios/Tests/JsonModelsTests.swift +76 -1
  47. package/ios/Tests/QueueManagerTests.swift +72 -6
  48. package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
  49. package/ios/Tests/SectionPresentationTests.swift +29 -0
  50. package/ios/Tests/StyleResolverTests.swift +60 -0
  51. package/ios/Tests/Support/TestTypes.swift +7 -0
  52. package/ios/TrackPlayer.swift +57 -34
  53. package/ios/Util/NetworkMonitor.swift +43 -26
  54. package/ios/Util/SFSymbolRenderer.swift +24 -2
  55. package/ios/Util/SVGProcessor.swift +9 -2
  56. package/lib/commonjs/features/playback/progress.js +2 -1
  57. package/lib/commonjs/features/playback/progress.js.map +1 -1
  58. package/lib/commonjs/features/playback/rate.js +8 -1
  59. package/lib/commonjs/features/playback/rate.js.map +1 -1
  60. package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
  61. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
  62. package/lib/module/features/playback/progress.js +2 -1
  63. package/lib/module/features/playback/progress.js.map +1 -1
  64. package/lib/module/features/playback/rate.js +8 -1
  65. package/lib/module/features/playback/rate.js.map +1 -1
  66. package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
  67. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
  68. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  69. package/lib/typescript/src/features/playback/rate.d.ts +8 -1
  70. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
  71. package/lib/typescript/src/types/browser-nodes.d.ts +104 -2
  72. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  73. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -0
  74. package/nitrogen/generated/android/c++/JBrowseResult.hpp +6 -0
  75. package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
  76. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -0
  77. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +4 -0
  78. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +4 -0
  79. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +4 -0
  80. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +4 -0
  81. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -0
  82. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +4 -0
  83. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +4 -0
  84. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +6 -0
  85. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -0
  86. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -0
  87. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +6 -0
  88. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +4 -0
  89. package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
  90. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +12 -0
  91. package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
  92. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -0
  93. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +6 -0
  94. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +6 -0
  95. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +4 -0
  96. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -0
  97. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +6 -0
  98. package/nitrogen/generated/android/c++/JSection.hpp +6 -0
  99. package/nitrogen/generated/android/c++/JSectionStyle.hpp +30 -3
  100. package/nitrogen/generated/android/c++/JTrack.hpp +4 -0
  101. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +4 -0
  102. package/nitrogen/generated/android/c++/JTrackStyle.hpp +24 -3
  103. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +6 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +18 -3
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +15 -3
  109. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +54 -0
  110. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +9 -0
  111. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +9 -0
  112. package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
  113. package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
  114. package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
  115. package/nitrogen/generated/ios/swift/SectionStyle.swift +70 -1
  116. package/nitrogen/generated/ios/swift/TrackStyle.swift +59 -1
  117. package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
  118. package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
  119. package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
  120. package/nitrogen/generated/shared/c++/SectionStyle.hpp +32 -2
  121. package/nitrogen/generated/shared/c++/TrackStyle.hpp +25 -2
  122. package/package.json +7 -2
  123. package/src/features/playback/progress.ts +2 -1
  124. package/src/features/playback/rate.ts +8 -1
  125. package/src/style-resolution.test.ts +72 -1
  126. package/src/types/browser-nodes.ts +112 -2
  127. package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
  128. package/src/web/TrackPlayer/QueueManager.ts +14 -0
  129. package/website/guide/android-auto.md +114 -0
  130. package/website/guide/android-certificates.md +409 -0
  131. package/website/guide/artwork.md +255 -0
  132. package/website/guide/audio-output.md +135 -0
  133. package/website/guide/automotive.md +86 -0
  134. package/website/guide/basic-usage.md +151 -0
  135. package/website/guide/battery.md +115 -0
  136. package/website/guide/browser.md +581 -0
  137. package/website/guide/carplay.md +620 -0
  138. package/website/guide/configuration.md +173 -0
  139. package/website/guide/equalizer.md +231 -0
  140. package/website/guide/errors.md +310 -0
  141. package/website/guide/favorites.md +154 -0
  142. package/website/guide/gate.md +143 -0
  143. package/website/guide/getting-started.md +46 -0
  144. package/website/guide/hooks.md +238 -0
  145. package/website/guide/live-streams.md +125 -0
  146. package/website/guide/metadata.md +239 -0
  147. package/website/guide/migrating-from-track-player.md +244 -0
  148. package/website/guide/native-callback-fetch.md +127 -0
  149. package/website/guide/network.md +86 -0
  150. package/website/guide/now-playing.md +175 -0
  151. package/website/guide/playback.md +328 -0
  152. package/website/guide/queue.md +300 -0
  153. package/website/guide/remote-controls.md +256 -0
  154. package/website/guide/search.md +255 -0
  155. package/website/guide/sleep-timer.md +268 -0
  156. package/website/guide/track.md +246 -0
@@ -22,10 +22,25 @@ data class SectionStyle(
22
22
  val gridWrap: Boolean?,
23
23
  @DoNotStrip
24
24
  @Keep
25
+ val gridTile: GridTile?,
26
+ @DoNotStrip
27
+ @Keep
25
28
  val display: StyleDisplay?,
26
29
  @DoNotStrip
27
30
  @Keep
28
- val artworkRendering: ArtworkRendering?
31
+ val artworkRendering: ArtworkRendering?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val imageShape: ImageShape?,
35
+ @DoNotStrip
36
+ @Keep
37
+ val accessorySymbol: String?,
38
+ @DoNotStrip
39
+ @Keep
40
+ val cardTint: String?,
41
+ @DoNotStrip
42
+ @Keep
43
+ val cardImage: CardImage?
29
44
  ) {
30
45
  /* primary constructor */
31
46
 
@@ -37,8 +52,8 @@ data class SectionStyle(
37
52
  @Keep
38
53
  @Suppress("unused")
39
54
  @JvmStatic
40
- private fun fromCpp(gridWrap: Boolean?, display: StyleDisplay?, artworkRendering: ArtworkRendering?): SectionStyle {
41
- return SectionStyle(gridWrap, display, artworkRendering)
55
+ private fun fromCpp(gridWrap: Boolean?, gridTile: GridTile?, display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?): SectionStyle {
56
+ return SectionStyle(gridWrap, gridTile, display, artworkRendering, imageShape, accessorySymbol, cardTint, cardImage)
42
57
  }
43
58
  }
44
59
  }
@@ -22,7 +22,19 @@ data class TrackStyle(
22
22
  val display: StyleDisplay?,
23
23
  @DoNotStrip
24
24
  @Keep
25
- val artworkRendering: ArtworkRendering?
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?
26
38
  ) {
27
39
  /* primary constructor */
28
40
 
@@ -34,8 +46,8 @@ data class TrackStyle(
34
46
  @Keep
35
47
  @Suppress("unused")
36
48
  @JvmStatic
37
- private fun fromCpp(display: StyleDisplay?, artworkRendering: ArtworkRendering?): TrackStyle {
38
- return TrackStyle(display, artworkRendering)
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)
39
51
  }
40
52
  }
41
53
  }
@@ -40,6 +40,8 @@ namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
40
40
  namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
41
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
42
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; }
43
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
44
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
45
47
  // Forward declaration of `EqualizerSettings` 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,6 +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; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
81
87
  // Forward declaration of `ImageSource` to properly resolve imports.
82
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
83
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -218,6 +224,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
218
224
  #include "CarPlayNowPlayingButton.hpp"
219
225
  #include "CarPlayPlayingIndicatorLocation.hpp"
220
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
221
228
  #include "ChapterMetadata.hpp"
222
229
  #include "EqualizerSettings.hpp"
223
230
  #include "FavoriteChangedEvent.hpp"
@@ -228,6 +235,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
228
235
  #include "GateDecision.hpp"
229
236
  #include "GateEvent.hpp"
230
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
231
239
  #include "HttpMethod.hpp"
232
240
  #include "HybridAudioBrowserSpec.hpp"
233
241
  #include "IOSCategory.hpp"
@@ -237,6 +245,7 @@ namespace AudioBrowser { class HybridAudioBrowserSpec_cxx; }
237
245
  #include "IOSOptions.hpp"
238
246
  #include "ImageContext.hpp"
239
247
  #include "ImageQueryParams.hpp"
248
+ #include "ImageShape.hpp"
240
249
  #include "ImageSource.hpp"
241
250
  #include "MediaReference.hpp"
242
251
  #include "MediaRequestConfig.hpp"
@@ -519,6 +528,36 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
519
528
  return optional.value();
520
529
  }
521
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
+
522
561
  // pragma MARK: std::optional<bool>
523
562
  /**
524
563
  * Specialized version of `std::optional<bool>`.
@@ -631,6 +670,21 @@ namespace margelo::nitro::audiobrowser::bridge::swift {
631
670
  return optional.value();
632
671
  }
633
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
+
634
688
  // pragma MARK: std::optional<std::vector<Section>>
635
689
  /**
636
690
  * Specialized version of `std::optional<std::vector<Section>>`.
@@ -40,6 +40,8 @@ namespace margelo::nitro::audiobrowser { enum class CarPlayNowPlayingButton; }
40
40
  namespace margelo::nitro::audiobrowser { enum class CarPlayPlayingIndicatorLocation; }
41
41
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
42
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; }
43
45
  // Forward declaration of `ChapterMetadata` to properly resolve imports.
44
46
  namespace margelo::nitro::audiobrowser { struct ChapterMetadata; }
45
47
  // Forward declaration of `EqualizerSettings` 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,6 +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; }
85
+ // Forward declaration of `ImageShape` to properly resolve imports.
86
+ namespace margelo::nitro::audiobrowser { enum class ImageShape; }
81
87
  // Forward declaration of `ImageSource` to properly resolve imports.
82
88
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
83
89
  // Forward declaration of `MediaReference` to properly resolve imports.
@@ -218,6 +224,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
218
224
  #include "CarPlayNowPlayingButton.hpp"
219
225
  #include "CarPlayPlayingIndicatorLocation.hpp"
220
226
  #include "CarPlaySiriListButtonPosition.hpp"
227
+ #include "CardImage.hpp"
221
228
  #include "ChapterMetadata.hpp"
222
229
  #include "EqualizerSettings.hpp"
223
230
  #include "FavoriteChangedEvent.hpp"
@@ -228,6 +235,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
228
235
  #include "GateDecision.hpp"
229
236
  #include "GateEvent.hpp"
230
237
  #include "GateReason.hpp"
238
+ #include "GridTile.hpp"
231
239
  #include "HttpMethod.hpp"
232
240
  #include "HybridAudioBrowserSpec.hpp"
233
241
  #include "IOSCategory.hpp"
@@ -237,6 +245,7 @@ namespace margelo::nitro::audiobrowser { struct TransformableRequestConfig; }
237
245
  #include "IOSOptions.hpp"
238
246
  #include "ImageContext.hpp"
239
247
  #include "ImageQueryParams.hpp"
248
+ #include "ImageShape.hpp"
240
249
  #include "ImageSource.hpp"
241
250
  #include "MediaReference.hpp"
242
251
  #include "MediaRequestConfig.hpp"
@@ -28,10 +28,16 @@ namespace margelo::nitro::audiobrowser { struct TrackStyle; }
28
28
  namespace margelo::nitro::audiobrowser { enum class StyleDisplay; }
29
29
  // Forward declaration of `ArtworkRendering` to properly resolve imports.
30
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; }
31
35
  // Forward declaration of `ResolvedTrack` to properly resolve imports.
32
36
  namespace margelo::nitro::audiobrowser { struct ResolvedTrack; }
33
37
  // Forward declaration of `SectionStyle` to properly resolve imports.
34
38
  namespace margelo::nitro::audiobrowser { struct SectionStyle; }
39
+ // Forward declaration of `GridTile` to properly resolve imports.
40
+ namespace margelo::nitro::audiobrowser { enum class GridTile; }
35
41
  // Forward declaration of `Section` to properly resolve imports.
36
42
  namespace margelo::nitro::audiobrowser { struct Section; }
37
43
  // Forward declaration of `CarPlaySiriListButtonPosition` to properly resolve imports.
@@ -216,9 +222,12 @@ namespace margelo::nitro::audiobrowser { struct Progress; }
216
222
  #include "TrackStyle.hpp"
217
223
  #include "StyleDisplay.hpp"
218
224
  #include "ArtworkRendering.hpp"
225
+ #include "ImageShape.hpp"
226
+ #include "CardImage.hpp"
219
227
  #include <functional>
220
228
  #include "ResolvedTrack.hpp"
221
229
  #include "SectionStyle.hpp"
230
+ #include "GridTile.hpp"
222
231
  #include "Section.hpp"
223
232
  #include "CarPlaySiriListButtonPosition.hpp"
224
233
  #include "NavigationErrorEvent.hpp"
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// CardImage.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `CardImage`, backed by a C++ enum.
10
+ */
11
+ public typealias CardImage = margelo.nitro.audiobrowser.CardImage
12
+
13
+ public extension CardImage {
14
+ /**
15
+ * Get a CardImage for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "normal":
21
+ self = .normal
22
+ case "background":
23
+ self = .background
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this CardImage represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .normal:
35
+ return "normal"
36
+ case .background:
37
+ return "background"
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,44 @@
1
+ ///
2
+ /// GridTile.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `GridTile`, backed by a C++ enum.
10
+ */
11
+ public typealias GridTile = margelo.nitro.audiobrowser.GridTile
12
+
13
+ public extension GridTile {
14
+ /**
15
+ * Get a GridTile for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "plain":
21
+ self = .plain
22
+ case "card":
23
+ self = .card
24
+ case "condensed":
25
+ self = .condensed
26
+ default:
27
+ return nil
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Get the String value this GridTile represents.
33
+ */
34
+ var stringValue: String {
35
+ switch self {
36
+ case .plain:
37
+ return "plain"
38
+ case .card:
39
+ return "card"
40
+ case .condensed:
41
+ return "condensed"
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// ImageShape.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `ImageShape`, backed by a C++ enum.
10
+ */
11
+ public typealias ImageShape = margelo.nitro.audiobrowser.ImageShape
12
+
13
+ public extension ImageShape {
14
+ /**
15
+ * Get a ImageShape for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "circular":
21
+ self = .circular
22
+ case "rounded-rectangle":
23
+ self = .roundedRectangle
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this ImageShape represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .circular:
35
+ return "circular"
36
+ case .roundedRectangle:
37
+ return "rounded-rectangle"
38
+ }
39
+ }
40
+ }
@@ -18,13 +18,19 @@ public extension SectionStyle {
18
18
  /**
19
19
  * Create a new instance of `SectionStyle`.
20
20
  */
21
- init(gridWrap: Bool?, display: StyleDisplay?, artworkRendering: ArtworkRendering?) {
21
+ init(gridWrap: Bool?, gridTile: GridTile?, display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?) {
22
22
  self.init({ () -> bridge.std__optional_bool_ in
23
23
  if let __unwrappedValue = gridWrap {
24
24
  return bridge.create_std__optional_bool_(__unwrappedValue)
25
25
  } else {
26
26
  return .init()
27
27
  }
28
+ }(), { () -> bridge.std__optional_GridTile_ in
29
+ if let __unwrappedValue = gridTile {
30
+ return bridge.create_std__optional_GridTile_(__unwrappedValue)
31
+ } else {
32
+ return .init()
33
+ }
28
34
  }(), { () -> bridge.std__optional_StyleDisplay_ in
29
35
  if let __unwrappedValue = display {
30
36
  return bridge.create_std__optional_StyleDisplay_(__unwrappedValue)
@@ -37,6 +43,30 @@ public extension SectionStyle {
37
43
  } else {
38
44
  return .init()
39
45
  }
46
+ }(), { () -> bridge.std__optional_ImageShape_ in
47
+ if let __unwrappedValue = imageShape {
48
+ return bridge.create_std__optional_ImageShape_(__unwrappedValue)
49
+ } else {
50
+ return .init()
51
+ }
52
+ }(), { () -> bridge.std__optional_std__string_ in
53
+ if let __unwrappedValue = accessorySymbol {
54
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
55
+ } else {
56
+ return .init()
57
+ }
58
+ }(), { () -> bridge.std__optional_std__string_ in
59
+ if let __unwrappedValue = cardTint {
60
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
61
+ } else {
62
+ return .init()
63
+ }
64
+ }(), { () -> bridge.std__optional_CardImage_ in
65
+ if let __unwrappedValue = cardImage {
66
+ return bridge.create_std__optional_CardImage_(__unwrappedValue)
67
+ } else {
68
+ return .init()
69
+ }
40
70
  }())
41
71
  }
42
72
 
@@ -52,6 +82,11 @@ public extension SectionStyle {
52
82
  }()
53
83
  }
54
84
 
85
+ @inline(__always)
86
+ var gridTile: GridTile? {
87
+ return self.__gridTile.value
88
+ }
89
+
55
90
  @inline(__always)
56
91
  var display: StyleDisplay? {
57
92
  return self.__display.value
@@ -61,4 +96,38 @@ public extension SectionStyle {
61
96
  var artworkRendering: ArtworkRendering? {
62
97
  return self.__artworkRendering.value
63
98
  }
99
+
100
+ @inline(__always)
101
+ var imageShape: ImageShape? {
102
+ return self.__imageShape.value
103
+ }
104
+
105
+ @inline(__always)
106
+ var accessorySymbol: String? {
107
+ return { () -> String? in
108
+ if bridge.has_value_std__optional_std__string_(self.__accessorySymbol) {
109
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__accessorySymbol)
110
+ return String(__unwrapped)
111
+ } else {
112
+ return nil
113
+ }
114
+ }()
115
+ }
116
+
117
+ @inline(__always)
118
+ var cardTint: String? {
119
+ return { () -> String? in
120
+ if bridge.has_value_std__optional_std__string_(self.__cardTint) {
121
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__cardTint)
122
+ return String(__unwrapped)
123
+ } else {
124
+ return nil
125
+ }
126
+ }()
127
+ }
128
+
129
+ @inline(__always)
130
+ var cardImage: CardImage? {
131
+ return self.__cardImage.value
132
+ }
64
133
  }
@@ -18,7 +18,7 @@ public extension TrackStyle {
18
18
  /**
19
19
  * Create a new instance of `TrackStyle`.
20
20
  */
21
- init(display: StyleDisplay?, artworkRendering: ArtworkRendering?) {
21
+ init(display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?) {
22
22
  self.init({ () -> bridge.std__optional_StyleDisplay_ in
23
23
  if let __unwrappedValue = display {
24
24
  return bridge.create_std__optional_StyleDisplay_(__unwrappedValue)
@@ -31,6 +31,30 @@ public extension TrackStyle {
31
31
  } else {
32
32
  return .init()
33
33
  }
34
+ }(), { () -> bridge.std__optional_ImageShape_ in
35
+ if let __unwrappedValue = imageShape {
36
+ return bridge.create_std__optional_ImageShape_(__unwrappedValue)
37
+ } else {
38
+ return .init()
39
+ }
40
+ }(), { () -> bridge.std__optional_std__string_ in
41
+ if let __unwrappedValue = accessorySymbol {
42
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
43
+ } else {
44
+ return .init()
45
+ }
46
+ }(), { () -> bridge.std__optional_std__string_ in
47
+ if let __unwrappedValue = cardTint {
48
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
49
+ } else {
50
+ return .init()
51
+ }
52
+ }(), { () -> bridge.std__optional_CardImage_ in
53
+ if let __unwrappedValue = cardImage {
54
+ return bridge.create_std__optional_CardImage_(__unwrappedValue)
55
+ } else {
56
+ return .init()
57
+ }
34
58
  }())
35
59
  }
36
60
 
@@ -43,4 +67,38 @@ public extension TrackStyle {
43
67
  var artworkRendering: ArtworkRendering? {
44
68
  return self.__artworkRendering.value
45
69
  }
70
+
71
+ @inline(__always)
72
+ var imageShape: ImageShape? {
73
+ return self.__imageShape.value
74
+ }
75
+
76
+ @inline(__always)
77
+ var accessorySymbol: String? {
78
+ return { () -> String? in
79
+ if bridge.has_value_std__optional_std__string_(self.__accessorySymbol) {
80
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__accessorySymbol)
81
+ return String(__unwrapped)
82
+ } else {
83
+ return nil
84
+ }
85
+ }()
86
+ }
87
+
88
+ @inline(__always)
89
+ var cardTint: String? {
90
+ return { () -> String? in
91
+ if bridge.has_value_std__optional_std__string_(self.__cardTint) {
92
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__cardTint)
93
+ return String(__unwrapped)
94
+ } else {
95
+ return nil
96
+ }
97
+ }()
98
+ }
99
+
100
+ @inline(__always)
101
+ var cardImage: CardImage? {
102
+ return self.__cardImage.value
103
+ }
46
104
  }
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// CardImage.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::audiobrowser {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (CardImage).
30
+ */
31
+ enum class CardImage {
32
+ NORMAL SWIFT_NAME(normal) = 0,
33
+ BACKGROUND SWIFT_NAME(background) = 1,
34
+ } CLOSED_ENUM;
35
+
36
+ } // namespace margelo::nitro::audiobrowser
37
+
38
+ namespace margelo::nitro {
39
+
40
+ // C++ CardImage <> JS CardImage (union)
41
+ template <>
42
+ struct JSIConverter<margelo::nitro::audiobrowser::CardImage> final {
43
+ static inline margelo::nitro::audiobrowser::CardImage fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
44
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
45
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
46
+ case hashString("normal"): return margelo::nitro::audiobrowser::CardImage::NORMAL;
47
+ case hashString("background"): return margelo::nitro::audiobrowser::CardImage::BACKGROUND;
48
+ default: [[unlikely]]
49
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum CardImage - invalid value!");
50
+ }
51
+ }
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::CardImage arg) {
53
+ switch (arg) {
54
+ case margelo::nitro::audiobrowser::CardImage::NORMAL: return JSIConverter<std::string>::toJSI(runtime, "normal");
55
+ case margelo::nitro::audiobrowser::CardImage::BACKGROUND: return JSIConverter<std::string>::toJSI(runtime, "background");
56
+ default: [[unlikely]]
57
+ throw std::invalid_argument("Cannot convert CardImage to JS - invalid value: "
58
+ + std::to_string(static_cast<int>(arg)) + "!");
59
+ }
60
+ }
61
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
62
+ if (!value.isString()) {
63
+ return false;
64
+ }
65
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
66
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
67
+ case hashString("normal"):
68
+ case hashString("background"):
69
+ return true;
70
+ default:
71
+ return false;
72
+ }
73
+ }
74
+ };
75
+
76
+ } // namespace margelo::nitro