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.
- package/README.md +10 -0
- package/android/build.gradle +20 -1
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +5 -1
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +8 -0
- package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +27 -9
- package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +11 -0
- package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +11 -1
- package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +17 -2
- package/android/src/main/java/com/audiobrowser/player/Player.kt +3 -0
- package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
- package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +73 -0
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +8 -1
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +49 -3
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +3 -2
- package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
- package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +56 -0
- package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +4 -4
- package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +77 -10
- package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +2 -2
- package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
- package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +8 -8
- package/ios/Browser/BrowserManager.swift +106 -45
- package/ios/Browser/InertStyleDiagnostic.swift +279 -0
- package/ios/Browser/JsonModels.swift +81 -10
- package/ios/Browser/SectionPresentation.swift +30 -0
- package/ios/Browser/StyleResolver.swift +11 -0
- package/ios/Browser/TabBarEntries.swift +7 -1
- package/ios/CarPlay/CarPlayController.swift +139 -35
- package/ios/CarPlay/CarPlayListItemFactory.swift +99 -27
- package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
- package/ios/Http/HttpClient.swift +8 -2
- package/ios/HybridAudioBrowser.swift +54 -11
- package/ios/Model/NitroTypeStubs.swift +60 -0
- package/ios/Player/MediaIntentCriteria.swift +13 -5
- package/ios/Player/MediaLoader.swift +33 -9
- package/ios/Player/NowPlayingUpdater.swift +53 -5
- package/ios/Player/PlaybackCoordinator.swift +11 -4
- package/ios/Player/PlaybackTimer.swift +8 -2
- package/ios/Player/QueueManager.swift +36 -10
- package/ios/Player/ShuffleOrder.swift +23 -0
- package/ios/Player/SleepTimerHandling.swift +13 -0
- package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
- package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
- package/ios/Tests/JsonModelsTests.swift +76 -1
- package/ios/Tests/QueueManagerTests.swift +72 -6
- package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
- package/ios/Tests/SectionPresentationTests.swift +29 -0
- package/ios/Tests/StyleResolverTests.swift +60 -0
- package/ios/Tests/Support/TestTypes.swift +7 -0
- package/ios/TrackPlayer.swift +57 -34
- package/ios/Util/NetworkMonitor.swift +43 -26
- package/ios/Util/SFSymbolRenderer.swift +24 -2
- package/ios/Util/SVGProcessor.swift +9 -2
- package/lib/commonjs/features/playback/progress.js +2 -1
- package/lib/commonjs/features/playback/progress.js.map +1 -1
- package/lib/commonjs/features/playback/rate.js +8 -1
- package/lib/commonjs/features/playback/rate.js.map +1 -1
- package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
- package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
- package/lib/module/features/playback/progress.js +2 -1
- package/lib/module/features/playback/progress.js.map +1 -1
- package/lib/module/features/playback/rate.js +8 -1
- package/lib/module/features/playback/rate.js.map +1 -1
- package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
- package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
- package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/rate.d.ts +8 -1
- package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-nodes.d.ts +104 -2
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -0
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +6 -0
- package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -0
- package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +4 -0
- 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
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +6 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +4 -0
- package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +12 -0
- package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -0
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +6 -0
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +6 -0
- package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +4 -0
- package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -0
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +6 -0
- package/nitrogen/generated/android/c++/JSection.hpp +6 -0
- package/nitrogen/generated/android/c++/JSectionStyle.hpp +30 -3
- package/nitrogen/generated/android/c++/JTrack.hpp +4 -0
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +4 -0
- package/nitrogen/generated/android/c++/JTrackStyle.hpp +24 -3
- package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +6 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +18 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +15 -3
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +54 -0
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +9 -0
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +9 -0
- package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
- package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
- package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
- package/nitrogen/generated/ios/swift/SectionStyle.swift +70 -1
- package/nitrogen/generated/ios/swift/TrackStyle.swift +59 -1
- package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
- package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
- package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
- package/nitrogen/generated/shared/c++/SectionStyle.hpp +32 -2
- package/nitrogen/generated/shared/c++/TrackStyle.hpp +25 -2
- package/package.json +7 -2
- package/src/features/playback/progress.ts +2 -1
- package/src/features/playback/rate.ts +8 -1
- package/src/style-resolution.test.ts +72 -1
- package/src/types/browser-nodes.ts +112 -2
- package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
- package/src/web/TrackPlayer/QueueManager.ts +14 -0
- package/website/guide/android-auto.md +114 -0
- package/website/guide/android-certificates.md +409 -0
- package/website/guide/artwork.md +255 -0
- package/website/guide/audio-output.md +135 -0
- package/website/guide/automotive.md +86 -0
- package/website/guide/basic-usage.md +151 -0
- package/website/guide/battery.md +115 -0
- package/website/guide/browser.md +581 -0
- package/website/guide/carplay.md +620 -0
- package/website/guide/configuration.md +173 -0
- package/website/guide/equalizer.md +231 -0
- package/website/guide/errors.md +310 -0
- package/website/guide/favorites.md +154 -0
- package/website/guide/gate.md +143 -0
- package/website/guide/getting-started.md +46 -0
- package/website/guide/hooks.md +238 -0
- package/website/guide/live-streams.md +125 -0
- package/website/guide/metadata.md +239 -0
- package/website/guide/migrating-from-track-player.md +244 -0
- package/website/guide/native-callback-fetch.md +127 -0
- package/website/guide/network.md +86 -0
- package/website/guide/now-playing.md +175 -0
- package/website/guide/playback.md +328 -0
- package/website/guide/queue.md +300 -0
- package/website/guide/remote-controls.md +256 -0
- package/website/guide/search.md +255 -0
- package/website/guide/sleep-timer.md +268 -0
- 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
|