react-native-queue-player 1.0.8 → 1.1.0

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 (59) hide show
  1. package/README.md +12 -6
  2. package/android/src/main/java/com/margelo/nitro/queueplayer/MediaItemBuilder.kt +21 -3
  3. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaceholderArtwork.kt +30 -0
  4. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaceholderFallbackBitmapLoader.kt +9 -6
  5. package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackService.kt +4 -1
  6. package/android/src/main/java/com/margelo/nitro/queueplayer/QueueSkipArithmetic.kt +57 -10
  7. package/android/src/main/java/com/margelo/nitro/queueplayer/TrackPlayer.kt +53 -20
  8. package/android/src/test/java/com/margelo/nitro/queueplayer/MediaItemBuilderTest.kt +55 -0
  9. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaceholderArtworkTest.kt +72 -0
  10. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaceholderFallbackBitmapLoaderTest.kt +21 -9
  11. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceArtworkLoaderTest.kt +9 -9
  12. package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackTest.kt +1 -1
  13. package/android/src/test/java/com/margelo/nitro/queueplayer/QueueSkipArithmeticTest.kt +103 -0
  14. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAirPlayMetadataWiringTest.kt +1 -1
  15. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerAudioFocusTest.kt +1 -1
  16. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerEventsTest.kt +3 -3
  17. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLifecycleTest.kt +7 -7
  18. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerLookaheadConfigTest.kt +6 -6
  19. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerMutationTest.kt +2 -2
  20. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerProgressThrottleTest.kt +1 -1
  21. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueChangeTest.kt +1 -1
  22. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerQueueTest.kt +1 -1
  23. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerReadersTest.kt +1 -1
  24. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipCapabilityTest.kt +41 -2
  25. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerSkipTest.kt +34 -1
  26. package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerTransportTest.kt +1 -1
  27. package/ios/Cast/Core/CastNowPlayingController.swift +7 -4
  28. package/ios/NowPlayingInfo.swift +7 -9
  29. package/ios/PlaceholderArtwork.swift +24 -1
  30. package/ios/QueueSkipArithmetic.swift +55 -9
  31. package/ios/Tests/AVQueueBuilderTests.swift +9 -9
  32. package/ios/Tests/CastNowPlayingControllerTests.swift +33 -0
  33. package/ios/Tests/PlaceholderArtworkTests.swift +81 -0
  34. package/ios/Tests/SkipIndexTests.swift +97 -0
  35. package/ios/TrackPlayer.swift +42 -14
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/types.js +9 -0
  38. package/lib/module/types.js.map +1 -1
  39. package/lib/typescript/TrackPlayer.nitro.d.ts +7 -7
  40. package/lib/typescript/index.d.ts +1 -1
  41. package/lib/typescript/index.d.ts.map +1 -1
  42. package/lib/typescript/types.d.ts +41 -0
  43. package/lib/typescript/types.d.ts.map +1 -1
  44. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +4 -0
  45. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +11 -1
  46. package/nitrogen/generated/android/c++/JSkipToPreviousBehavior.hpp +58 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/PlayerConfig.kt +12 -2
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/SkipToPreviousBehavior.kt +23 -0
  49. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Bridge.hpp +18 -0
  50. package/nitrogen/generated/ios/QueuePlayer-Swift-Cxx-Umbrella.hpp +3 -0
  51. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +3 -0
  52. package/nitrogen/generated/ios/swift/PlayerConfig.swift +30 -1
  53. package/nitrogen/generated/ios/swift/SkipToPreviousBehavior.swift +40 -0
  54. package/nitrogen/generated/shared/c++/PlayerConfig.hpp +12 -1
  55. package/nitrogen/generated/shared/c++/SkipToPreviousBehavior.hpp +76 -0
  56. package/package.json +1 -1
  57. package/src/TrackPlayer.nitro.ts +7 -7
  58. package/src/index.ts +1 -0
  59. package/src/types.ts +42 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEd,oBAAoB,EACpB,cAAc,EACd,WAAW,EAEX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,aAAa,EACb,eAAe,EAEf,cAAc,EAEd,mBAAmB,EAEnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EAErB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,+BAA+B,EAC/B,kBAAkB,EAElB,cAAc,EACd,UAAU,GACX,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAKxF,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,cAAc,SAAS,CAAC;AAKxB,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEd,oBAAoB,EACpB,cAAc,EACd,WAAW,EAEX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,aAAa,EACb,eAAe,EAEf,cAAc,EAEd,mBAAmB,EAEnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EAErB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,+BAA+B,EAC/B,kBAAkB,EAElB,cAAc,EACd,UAAU,GACX,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAKxF,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,cAAc,SAAS,CAAC;AAKxB,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
@@ -62,6 +62,23 @@ export interface PlayerConfig {
62
62
  httpHeaders?: Record<string, string>;
63
63
  /** Overrides the default UA on network requests. */
64
64
  userAgent?: string;
65
+ /**
66
+ * Replacement for the built-in RNQP cover-art placeholder (the image
67
+ * shown before real artwork loads and when a track has no artwork).
68
+ * MUST be a **local `file://` URI** — the built-in placeholder is a
69
+ * local file, so this must be too; remote URLs are not loaded (they
70
+ * would break offline playback and change behaviour). When set, this
71
+ * image is used in place of the built-in everywhere the built-in is
72
+ * used; unset, non-`file://`, or unloadable falls back to the built-in.
73
+ * Resolve a bundled asset to a `file://` path with expo-asset —
74
+ * `const a = Asset.fromModule(require('./logo.png')); await
75
+ * a.downloadAsync();` then pass `a.localUri` — which copies the packaged
76
+ * image onto the filesystem across dev and release.
77
+ * (`Image.resolveAssetSource(...).uri` is not suitable: it is an
78
+ * `http://` Metro URL in dev and a drawable resource name on Android
79
+ * release, neither of which is a `file://` path.)
80
+ */
81
+ placeholderArtworkUri?: string;
65
82
  /**
66
83
  * Auto-retry attempts on transient errors (TIMEOUT / CONNECTION_LOST /
67
84
  * NETWORK_UNREACHABLE / SOURCE_UNREACHABLE / CANNOT_OPEN). Clamped
@@ -148,6 +165,21 @@ export interface PlayerConfig {
148
165
  * Default: `false` (targets pass through unclamped).
149
166
  */
150
167
  clampSeekToBuffered?: boolean;
168
+ /**
169
+ * How skip-to-previous behaves. `'previous'` (default) always goes to the
170
+ * previous track. `'restart-or-previous'` restarts the current track
171
+ * (seeks to 0) when it is past ~3 s, otherwise goes to the previous track
172
+ * — the standard music-player model. Applies
173
+ * to local playback; during cast, Previous routes to the receiver. When
174
+ * `'restart-or-previous'`, the Previous control is always enabled
175
+ * (`canSkipPrevious` reports `true` whenever a track is loaded, so the
176
+ * control never greys out — even on the first track, where past the
177
+ * threshold it restarts).
178
+ *
179
+ * Pinned per `configure()` (a fixed behavior, not a live toggle);
180
+ * changing it re-runs `configure()`. Default: `'previous'`.
181
+ */
182
+ skipToPreviousBehavior?: SkipToPreviousBehavior;
151
183
  /**
152
184
  * Disk budget for the lookahead cache, in megabytes. Fixed at `configure()`
153
185
  * time and cannot change at runtime — Android's Media3 `SimpleCache` fixes
@@ -299,6 +331,15 @@ export declare const crossfadeDurationBounds: {
299
331
  * one that loops.
300
332
  */
301
333
  export type RepeatMode = 'off' | 'queue' | 'track';
334
+ /**
335
+ * How `skipToPrevious` (and the OS Previous control) behaves.
336
+ * - `'previous'` — always go to the previous track (the default; current
337
+ * behavior).
338
+ * - `'restart-or-previous'` — restart the current track (seek to 0) when it
339
+ * is past ~3 s, otherwise go to the previous track. The standard
340
+ * music-player model. See `PlayerConfig.skipToPreviousBehavior`.
341
+ */
342
+ export type SkipToPreviousBehavior = 'previous' | 'restart-or-previous';
302
343
  /**
303
344
  * How the lock-screen / notification skip controls behave: skip between queue
304
345
  * tracks (`'track'`) or jump forward/back within the current track by a fixed
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,8 @@ namespace margelo::nitro::queueplayer { struct PlayerConfig; }
51
51
  namespace margelo::nitro::queueplayer { enum class AudioContentType; }
52
52
  // Forward declaration of `AudioCategoryOptions` to properly resolve imports.
53
53
  namespace margelo::nitro::queueplayer { struct AudioCategoryOptions; }
54
+ // Forward declaration of `SkipToPreviousBehavior` to properly resolve imports.
55
+ namespace margelo::nitro::queueplayer { enum class SkipToPreviousBehavior; }
54
56
  // Forward declaration of `EvictionPolicy` to properly resolve imports.
55
57
  namespace margelo::nitro::queueplayer { enum class EvictionPolicy; }
56
58
  // Forward declaration of `RepeatMode` to properly resolve imports.
@@ -156,6 +158,8 @@ namespace margelo::nitro::queueplayer { struct LookaheadCacheConfig; }
156
158
  #include "JAudioContentType.hpp"
157
159
  #include "AudioCategoryOptions.hpp"
158
160
  #include "JAudioCategoryOptions.hpp"
161
+ #include "SkipToPreviousBehavior.hpp"
162
+ #include "JSkipToPreviousBehavior.hpp"
159
163
  #include "EvictionPolicy.hpp"
160
164
  #include "JEvictionPolicy.hpp"
161
165
  #include "RepeatMode.hpp"
@@ -16,6 +16,8 @@
16
16
  #include "JAudioCategoryOptions.hpp"
17
17
  #include "JAudioContentType.hpp"
18
18
  #include "JEvictionPolicy.hpp"
19
+ #include "JSkipToPreviousBehavior.hpp"
20
+ #include "SkipToPreviousBehavior.hpp"
19
21
  #include <optional>
20
22
  #include <string>
21
23
  #include <unordered_map>
@@ -43,6 +45,8 @@ namespace margelo::nitro::queueplayer {
43
45
  jni::local_ref<jni::JMap<jni::JString, jni::JString>> httpHeaders = this->getFieldValue(fieldHttpHeaders);
44
46
  static const auto fieldUserAgent = clazz->getField<jni::JString>("userAgent");
45
47
  jni::local_ref<jni::JString> userAgent = this->getFieldValue(fieldUserAgent);
48
+ static const auto fieldPlaceholderArtworkUri = clazz->getField<jni::JString>("placeholderArtworkUri");
49
+ jni::local_ref<jni::JString> placeholderArtworkUri = this->getFieldValue(fieldPlaceholderArtworkUri);
46
50
  static const auto fieldAutoRetries = clazz->getField<jni::JDouble>("autoRetries");
47
51
  jni::local_ref<jni::JDouble> autoRetries = this->getFieldValue(fieldAutoRetries);
48
52
  static const auto fieldRetryBackoffMs = clazz->getField<jni::JDouble>("retryBackoffMs");
@@ -57,6 +61,8 @@ namespace margelo::nitro::queueplayer {
57
61
  jni::local_ref<jni::JBoolean> visualizationEnabled = this->getFieldValue(fieldVisualizationEnabled);
58
62
  static const auto fieldClampSeekToBuffered = clazz->getField<jni::JBoolean>("clampSeekToBuffered");
59
63
  jni::local_ref<jni::JBoolean> clampSeekToBuffered = this->getFieldValue(fieldClampSeekToBuffered);
64
+ static const auto fieldSkipToPreviousBehavior = clazz->getField<JSkipToPreviousBehavior>("skipToPreviousBehavior");
65
+ jni::local_ref<JSkipToPreviousBehavior> skipToPreviousBehavior = this->getFieldValue(fieldSkipToPreviousBehavior);
60
66
  static const auto fieldLookaheadCacheMaxSizeMb = clazz->getField<jni::JDouble>("lookaheadCacheMaxSizeMb");
61
67
  jni::local_ref<jni::JDouble> lookaheadCacheMaxSizeMb = this->getFieldValue(fieldLookaheadCacheMaxSizeMb);
62
68
  static const auto fieldLookaheadCacheEvictionPolicy = clazz->getField<JEvictionPolicy>("lookaheadCacheEvictionPolicy");
@@ -75,6 +81,7 @@ namespace margelo::nitro::queueplayer {
75
81
  return __map;
76
82
  }()) : std::nullopt,
77
83
  userAgent != nullptr ? std::make_optional(userAgent->toStdString()) : std::nullopt,
84
+ placeholderArtworkUri != nullptr ? std::make_optional(placeholderArtworkUri->toStdString()) : std::nullopt,
78
85
  autoRetries != nullptr ? std::make_optional(autoRetries->value()) : std::nullopt,
79
86
  retryBackoffMs != nullptr ? std::make_optional(retryBackoffMs->value()) : std::nullopt,
80
87
  networkTimeoutMs != nullptr ? std::make_optional(networkTimeoutMs->value()) : std::nullopt,
@@ -82,6 +89,7 @@ namespace margelo::nitro::queueplayer {
82
89
  audioCategoryOptions != nullptr ? std::make_optional(audioCategoryOptions->toCpp()) : std::nullopt,
83
90
  visualizationEnabled != nullptr ? std::make_optional(static_cast<bool>(visualizationEnabled->value())) : std::nullopt,
84
91
  clampSeekToBuffered != nullptr ? std::make_optional(static_cast<bool>(clampSeekToBuffered->value())) : std::nullopt,
92
+ skipToPreviousBehavior != nullptr ? std::make_optional(skipToPreviousBehavior->toCpp()) : std::nullopt,
85
93
  lookaheadCacheMaxSizeMb != nullptr ? std::make_optional(lookaheadCacheMaxSizeMb->value()) : std::nullopt,
86
94
  lookaheadCacheEvictionPolicy != nullptr ? std::make_optional(lookaheadCacheEvictionPolicy->toCpp()) : std::nullopt,
87
95
  progressUpdateIntervalMs != nullptr ? std::make_optional(progressUpdateIntervalMs->value()) : std::nullopt,
@@ -95,7 +103,7 @@ namespace margelo::nitro::queueplayer {
95
103
  */
96
104
  [[maybe_unused]]
97
105
  static jni::local_ref<JPlayerConfig::javaobject> fromCpp(const PlayerConfig& value) {
98
- using JSignature = JPlayerConfig(jni::alias_ref<jni::JMap<jni::JString, jni::JString>>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JAudioContentType>, jni::alias_ref<JAudioCategoryOptions>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JEvictionPolicy>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>);
106
+ using JSignature = JPlayerConfig(jni::alias_ref<jni::JMap<jni::JString, jni::JString>>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JAudioContentType>, jni::alias_ref<JAudioCategoryOptions>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JSkipToPreviousBehavior>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JEvictionPolicy>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>);
99
107
  static const auto clazz = javaClassStatic();
100
108
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
101
109
  return create(
@@ -108,6 +116,7 @@ namespace margelo::nitro::queueplayer {
108
116
  return __map;
109
117
  }() : nullptr,
110
118
  value.userAgent.has_value() ? jni::make_jstring(value.userAgent.value()) : nullptr,
119
+ value.placeholderArtworkUri.has_value() ? jni::make_jstring(value.placeholderArtworkUri.value()) : nullptr,
111
120
  value.autoRetries.has_value() ? jni::JDouble::valueOf(value.autoRetries.value()) : nullptr,
112
121
  value.retryBackoffMs.has_value() ? jni::JDouble::valueOf(value.retryBackoffMs.value()) : nullptr,
113
122
  value.networkTimeoutMs.has_value() ? jni::JDouble::valueOf(value.networkTimeoutMs.value()) : nullptr,
@@ -115,6 +124,7 @@ namespace margelo::nitro::queueplayer {
115
124
  value.audioCategoryOptions.has_value() ? JAudioCategoryOptions::fromCpp(value.audioCategoryOptions.value()) : nullptr,
116
125
  value.visualizationEnabled.has_value() ? jni::JBoolean::valueOf(value.visualizationEnabled.value()) : nullptr,
117
126
  value.clampSeekToBuffered.has_value() ? jni::JBoolean::valueOf(value.clampSeekToBuffered.value()) : nullptr,
127
+ value.skipToPreviousBehavior.has_value() ? JSkipToPreviousBehavior::fromCpp(value.skipToPreviousBehavior.value()) : nullptr,
118
128
  value.lookaheadCacheMaxSizeMb.has_value() ? jni::JDouble::valueOf(value.lookaheadCacheMaxSizeMb.value()) : nullptr,
119
129
  value.lookaheadCacheEvictionPolicy.has_value() ? JEvictionPolicy::fromCpp(value.lookaheadCacheEvictionPolicy.value()) : nullptr,
120
130
  value.progressUpdateIntervalMs.has_value() ? jni::JDouble::valueOf(value.progressUpdateIntervalMs.value()) : nullptr,
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// JSkipToPreviousBehavior.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
+ #include <fbjni/fbjni.h>
11
+ #include "SkipToPreviousBehavior.hpp"
12
+
13
+ namespace margelo::nitro::queueplayer {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "SkipToPreviousBehavior" and the Kotlin enum "SkipToPreviousBehavior".
19
+ */
20
+ struct JSkipToPreviousBehavior final: public jni::JavaClass<JSkipToPreviousBehavior> {
21
+ public:
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/queueplayer/SkipToPreviousBehavior;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum SkipToPreviousBehavior.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ SkipToPreviousBehavior toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<SkipToPreviousBehavior>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JSkipToPreviousBehavior> fromCpp(SkipToPreviousBehavior value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case SkipToPreviousBehavior::PREVIOUS:
46
+ static const auto fieldPREVIOUS = clazz->getStaticField<JSkipToPreviousBehavior>("PREVIOUS");
47
+ return clazz->getStaticFieldValue(fieldPREVIOUS);
48
+ case SkipToPreviousBehavior::RESTART_OR_PREVIOUS:
49
+ static const auto fieldRESTART_OR_PREVIOUS = clazz->getStaticField<JSkipToPreviousBehavior>("RESTART_OR_PREVIOUS");
50
+ return clazz->getStaticFieldValue(fieldRESTART_OR_PREVIOUS);
51
+ default:
52
+ std::string stringValue = std::to_string(static_cast<int>(value));
53
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
54
+ }
55
+ }
56
+ };
57
+
58
+ } // namespace margelo::nitro::queueplayer
@@ -26,6 +26,9 @@ data class PlayerConfig(
26
26
  val userAgent: String?,
27
27
  @DoNotStrip
28
28
  @Keep
29
+ val placeholderArtworkUri: String?,
30
+ @DoNotStrip
31
+ @Keep
29
32
  val autoRetries: Double?,
30
33
  @DoNotStrip
31
34
  @Keep
@@ -47,6 +50,9 @@ data class PlayerConfig(
47
50
  val clampSeekToBuffered: Boolean?,
48
51
  @DoNotStrip
49
52
  @Keep
53
+ val skipToPreviousBehavior: SkipToPreviousBehavior?,
54
+ @DoNotStrip
55
+ @Keep
50
56
  val lookaheadCacheMaxSizeMb: Double?,
51
57
  @DoNotStrip
52
58
  @Keep
@@ -65,6 +71,7 @@ data class PlayerConfig(
65
71
  if (other !is PlayerConfig) return false
66
72
  return Objects.deepEquals(this.httpHeaders, other.httpHeaders)
67
73
  && Objects.deepEquals(this.userAgent, other.userAgent)
74
+ && Objects.deepEquals(this.placeholderArtworkUri, other.placeholderArtworkUri)
68
75
  && Objects.deepEquals(this.autoRetries, other.autoRetries)
69
76
  && Objects.deepEquals(this.retryBackoffMs, other.retryBackoffMs)
70
77
  && Objects.deepEquals(this.networkTimeoutMs, other.networkTimeoutMs)
@@ -72,6 +79,7 @@ data class PlayerConfig(
72
79
  && Objects.deepEquals(this.audioCategoryOptions, other.audioCategoryOptions)
73
80
  && Objects.deepEquals(this.visualizationEnabled, other.visualizationEnabled)
74
81
  && Objects.deepEquals(this.clampSeekToBuffered, other.clampSeekToBuffered)
82
+ && Objects.deepEquals(this.skipToPreviousBehavior, other.skipToPreviousBehavior)
75
83
  && Objects.deepEquals(this.lookaheadCacheMaxSizeMb, other.lookaheadCacheMaxSizeMb)
76
84
  && Objects.deepEquals(this.lookaheadCacheEvictionPolicy, other.lookaheadCacheEvictionPolicy)
77
85
  && Objects.deepEquals(this.progressUpdateIntervalMs, other.progressUpdateIntervalMs)
@@ -82,6 +90,7 @@ data class PlayerConfig(
82
90
  return arrayOf<Any?>(
83
91
  httpHeaders,
84
92
  userAgent,
93
+ placeholderArtworkUri,
85
94
  autoRetries,
86
95
  retryBackoffMs,
87
96
  networkTimeoutMs,
@@ -89,6 +98,7 @@ data class PlayerConfig(
89
98
  audioCategoryOptions,
90
99
  visualizationEnabled,
91
100
  clampSeekToBuffered,
101
+ skipToPreviousBehavior,
92
102
  lookaheadCacheMaxSizeMb,
93
103
  lookaheadCacheEvictionPolicy,
94
104
  progressUpdateIntervalMs,
@@ -104,8 +114,8 @@ data class PlayerConfig(
104
114
  @Keep
105
115
  @Suppress("unused")
106
116
  @JvmStatic
107
- private fun fromCpp(httpHeaders: Map<String, String>?, userAgent: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, visualizationEnabled: Boolean?, clampSeekToBuffered: Boolean?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?): PlayerConfig {
108
- return PlayerConfig(httpHeaders, userAgent, autoRetries, retryBackoffMs, networkTimeoutMs, audioContentType, audioCategoryOptions, visualizationEnabled, clampSeekToBuffered, lookaheadCacheMaxSizeMb, lookaheadCacheEvictionPolicy, progressUpdateIntervalMs, backgroundProgressUpdateIntervalMs)
117
+ private fun fromCpp(httpHeaders: Map<String, String>?, userAgent: String?, placeholderArtworkUri: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, visualizationEnabled: Boolean?, clampSeekToBuffered: Boolean?, skipToPreviousBehavior: SkipToPreviousBehavior?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?): PlayerConfig {
118
+ return PlayerConfig(httpHeaders, userAgent, placeholderArtworkUri, autoRetries, retryBackoffMs, networkTimeoutMs, audioContentType, audioCategoryOptions, visualizationEnabled, clampSeekToBuffered, skipToPreviousBehavior, lookaheadCacheMaxSizeMb, lookaheadCacheEvictionPolicy, progressUpdateIntervalMs, backgroundProgressUpdateIntervalMs)
109
119
  }
110
120
  }
111
121
  }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// SkipToPreviousBehavior.kt
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
+ package com.margelo.nitro.queueplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "SkipToPreviousBehavior".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class SkipToPreviousBehavior(@DoNotStrip @Keep val value: Int) {
19
+ PREVIOUS(0),
20
+ RESTART_OR_PREVIOUS(1);
21
+
22
+ companion object
23
+ }
@@ -112,6 +112,8 @@ namespace margelo::nitro::queueplayer { enum class ServiceReadyReason; }
112
112
  namespace margelo::nitro::queueplayer { struct ShuffleResult; }
113
113
  // Forward declaration of `SkipCapability` to properly resolve imports.
114
114
  namespace margelo::nitro::queueplayer { struct SkipCapability; }
115
+ // Forward declaration of `SkipToPreviousBehavior` to properly resolve imports.
116
+ namespace margelo::nitro::queueplayer { enum class SkipToPreviousBehavior; }
115
117
  // Forward declaration of `SleepTimerState` to properly resolve imports.
116
118
  namespace margelo::nitro::queueplayer { struct SleepTimerState; }
117
119
  // Forward declaration of `StateChangeReason` to properly resolve imports.
@@ -189,6 +191,7 @@ namespace QueuePlayer { class HybridVisualizerSpec_cxx; }
189
191
  #include "ServiceReadyReason.hpp"
190
192
  #include "ShuffleResult.hpp"
191
193
  #include "SkipCapability.hpp"
194
+ #include "SkipToPreviousBehavior.hpp"
192
195
  #include "SleepTimerState.hpp"
193
196
  #include "StateChangeReason.hpp"
194
197
  #include "TrackChangeReason.hpp"
@@ -785,6 +788,21 @@ namespace margelo::nitro::queueplayer::bridge::swift {
785
788
  return optional.value();
786
789
  }
787
790
 
791
+ // pragma MARK: std::optional<SkipToPreviousBehavior>
792
+ /**
793
+ * Specialized version of `std::optional<SkipToPreviousBehavior>`.
794
+ */
795
+ using std__optional_SkipToPreviousBehavior_ = std::optional<SkipToPreviousBehavior>;
796
+ inline std::optional<SkipToPreviousBehavior> create_std__optional_SkipToPreviousBehavior_(const SkipToPreviousBehavior& value) noexcept {
797
+ return std::optional<SkipToPreviousBehavior>(value);
798
+ }
799
+ inline bool has_value_std__optional_SkipToPreviousBehavior_(const std::optional<SkipToPreviousBehavior>& optional) noexcept {
800
+ return optional.has_value();
801
+ }
802
+ inline SkipToPreviousBehavior get_std__optional_SkipToPreviousBehavior_(const std::optional<SkipToPreviousBehavior>& optional) noexcept {
803
+ return optional.value();
804
+ }
805
+
788
806
  // pragma MARK: std::optional<EvictionPolicy>
789
807
  /**
790
808
  * Specialized version of `std::optional<EvictionPolicy>`.
@@ -126,6 +126,8 @@ namespace margelo::nitro::queueplayer { enum class ServiceReadyReason; }
126
126
  namespace margelo::nitro::queueplayer { struct ShuffleResult; }
127
127
  // Forward declaration of `SkipCapability` to properly resolve imports.
128
128
  namespace margelo::nitro::queueplayer { struct SkipCapability; }
129
+ // Forward declaration of `SkipToPreviousBehavior` to properly resolve imports.
130
+ namespace margelo::nitro::queueplayer { enum class SkipToPreviousBehavior; }
129
131
  // Forward declaration of `SleepTimerState` to properly resolve imports.
130
132
  namespace margelo::nitro::queueplayer { struct SleepTimerState; }
131
133
  // Forward declaration of `StateChangeReason` to properly resolve imports.
@@ -205,6 +207,7 @@ namespace margelo::nitro::queueplayer { struct VoiceVocabulary; }
205
207
  #include "ServiceReadyReason.hpp"
206
208
  #include "ShuffleResult.hpp"
207
209
  #include "SkipCapability.hpp"
210
+ #include "SkipToPreviousBehavior.hpp"
208
211
  #include "SleepTimerState.hpp"
209
212
  #include "StateChangeReason.hpp"
210
213
  #include "TrackChangeReason.hpp"
@@ -18,6 +18,8 @@ namespace margelo::nitro::queueplayer { struct PlayerConfig; }
18
18
  namespace margelo::nitro::queueplayer { enum class AudioContentType; }
19
19
  // Forward declaration of `AudioCategoryOptions` to properly resolve imports.
20
20
  namespace margelo::nitro::queueplayer { struct AudioCategoryOptions; }
21
+ // Forward declaration of `SkipToPreviousBehavior` to properly resolve imports.
22
+ namespace margelo::nitro::queueplayer { enum class SkipToPreviousBehavior; }
21
23
  // Forward declaration of `EvictionPolicy` to properly resolve imports.
22
24
  namespace margelo::nitro::queueplayer { enum class EvictionPolicy; }
23
25
  // Forward declaration of `TrackItem` to properly resolve imports.
@@ -108,6 +110,7 @@ namespace margelo::nitro::queueplayer { struct NowPlayingFormatAndroidExtras; }
108
110
  #include <optional>
109
111
  #include "AudioContentType.hpp"
110
112
  #include "AudioCategoryOptions.hpp"
113
+ #include "SkipToPreviousBehavior.hpp"
111
114
  #include "EvictionPolicy.hpp"
112
115
  #include "TrackItem.hpp"
113
116
  #include <vector>
@@ -18,7 +18,7 @@ public extension PlayerConfig {
18
18
  /**
19
19
  * Create a new instance of `PlayerConfig`.
20
20
  */
21
- init(httpHeaders: Dictionary<String, String>?, userAgent: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, visualizationEnabled: Bool?, clampSeekToBuffered: Bool?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?) {
21
+ init(httpHeaders: Dictionary<String, String>?, userAgent: String?, placeholderArtworkUri: String?, autoRetries: Double?, retryBackoffMs: Double?, networkTimeoutMs: Double?, audioContentType: AudioContentType?, audioCategoryOptions: AudioCategoryOptions?, visualizationEnabled: Bool?, clampSeekToBuffered: Bool?, skipToPreviousBehavior: SkipToPreviousBehavior?, lookaheadCacheMaxSizeMb: Double?, lookaheadCacheEvictionPolicy: EvictionPolicy?, progressUpdateIntervalMs: Double?, backgroundProgressUpdateIntervalMs: Double?) {
22
22
  self.init({ () -> bridge.std__optional_std__unordered_map_std__string__std__string__ in
23
23
  if let __unwrappedValue = httpHeaders {
24
24
  return bridge.create_std__optional_std__unordered_map_std__string__std__string__({ () -> bridge.std__unordered_map_std__string__std__string_ in
@@ -37,6 +37,12 @@ public extension PlayerConfig {
37
37
  } else {
38
38
  return .init()
39
39
  }
40
+ }(), { () -> bridge.std__optional_std__string_ in
41
+ if let __unwrappedValue = placeholderArtworkUri {
42
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
43
+ } else {
44
+ return .init()
45
+ }
40
46
  }(), { () -> bridge.std__optional_double_ in
41
47
  if let __unwrappedValue = autoRetries {
42
48
  return bridge.create_std__optional_double_(__unwrappedValue)
@@ -79,6 +85,12 @@ public extension PlayerConfig {
79
85
  } else {
80
86
  return .init()
81
87
  }
88
+ }(), { () -> bridge.std__optional_SkipToPreviousBehavior_ in
89
+ if let __unwrappedValue = skipToPreviousBehavior {
90
+ return bridge.create_std__optional_SkipToPreviousBehavior_(__unwrappedValue)
91
+ } else {
92
+ return .init()
93
+ }
82
94
  }(), { () -> bridge.std__optional_double_ in
83
95
  if let __unwrappedValue = lookaheadCacheMaxSizeMb {
84
96
  return bridge.create_std__optional_double_(__unwrappedValue)
@@ -138,6 +150,18 @@ public extension PlayerConfig {
138
150
  }()
139
151
  }
140
152
 
153
+ @inline(__always)
154
+ var placeholderArtworkUri: String? {
155
+ return { () -> String? in
156
+ if bridge.has_value_std__optional_std__string_(self.__placeholderArtworkUri) {
157
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__placeholderArtworkUri)
158
+ return String(__unwrapped)
159
+ } else {
160
+ return nil
161
+ }
162
+ }()
163
+ }
164
+
141
165
  @inline(__always)
142
166
  var autoRetries: Double? {
143
167
  return { () -> Double? in
@@ -208,6 +232,11 @@ public extension PlayerConfig {
208
232
  }()
209
233
  }
210
234
 
235
+ @inline(__always)
236
+ var skipToPreviousBehavior: SkipToPreviousBehavior? {
237
+ return self.__skipToPreviousBehavior.value
238
+ }
239
+
211
240
  @inline(__always)
212
241
  var lookaheadCacheMaxSizeMb: Double? {
213
242
  return { () -> Double? in
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// SkipToPreviousBehavior.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 `SkipToPreviousBehavior`, backed by a C++ enum.
10
+ */
11
+ public typealias SkipToPreviousBehavior = margelo.nitro.queueplayer.SkipToPreviousBehavior
12
+
13
+ public extension SkipToPreviousBehavior {
14
+ /**
15
+ * Get a SkipToPreviousBehavior 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 "previous":
21
+ self = .previous
22
+ case "restart-or-previous":
23
+ self = .restartOrPrevious
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this SkipToPreviousBehavior represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .previous:
35
+ return "previous"
36
+ case .restartOrPrevious:
37
+ return "restart-or-previous"
38
+ }
39
+ }
40
+ }
@@ -32,6 +32,8 @@
32
32
  namespace margelo::nitro::queueplayer { enum class AudioContentType; }
33
33
  // Forward declaration of `AudioCategoryOptions` to properly resolve imports.
34
34
  namespace margelo::nitro::queueplayer { struct AudioCategoryOptions; }
35
+ // Forward declaration of `SkipToPreviousBehavior` to properly resolve imports.
36
+ namespace margelo::nitro::queueplayer { enum class SkipToPreviousBehavior; }
35
37
  // Forward declaration of `EvictionPolicy` to properly resolve imports.
36
38
  namespace margelo::nitro::queueplayer { enum class EvictionPolicy; }
37
39
 
@@ -40,6 +42,7 @@ namespace margelo::nitro::queueplayer { enum class EvictionPolicy; }
40
42
  #include <optional>
41
43
  #include "AudioContentType.hpp"
42
44
  #include "AudioCategoryOptions.hpp"
45
+ #include "SkipToPreviousBehavior.hpp"
43
46
  #include "EvictionPolicy.hpp"
44
47
 
45
48
  namespace margelo::nitro::queueplayer {
@@ -51,6 +54,7 @@ namespace margelo::nitro::queueplayer {
51
54
  public:
52
55
  std::optional<std::unordered_map<std::string, std::string>> httpHeaders SWIFT_PRIVATE;
53
56
  std::optional<std::string> userAgent SWIFT_PRIVATE;
57
+ std::optional<std::string> placeholderArtworkUri SWIFT_PRIVATE;
54
58
  std::optional<double> autoRetries SWIFT_PRIVATE;
55
59
  std::optional<double> retryBackoffMs SWIFT_PRIVATE;
56
60
  std::optional<double> networkTimeoutMs SWIFT_PRIVATE;
@@ -58,6 +62,7 @@ namespace margelo::nitro::queueplayer {
58
62
  std::optional<AudioCategoryOptions> audioCategoryOptions SWIFT_PRIVATE;
59
63
  std::optional<bool> visualizationEnabled SWIFT_PRIVATE;
60
64
  std::optional<bool> clampSeekToBuffered SWIFT_PRIVATE;
65
+ std::optional<SkipToPreviousBehavior> skipToPreviousBehavior SWIFT_PRIVATE;
61
66
  std::optional<double> lookaheadCacheMaxSizeMb SWIFT_PRIVATE;
62
67
  std::optional<EvictionPolicy> lookaheadCacheEvictionPolicy SWIFT_PRIVATE;
63
68
  std::optional<double> progressUpdateIntervalMs SWIFT_PRIVATE;
@@ -65,7 +70,7 @@ namespace margelo::nitro::queueplayer {
65
70
 
66
71
  public:
67
72
  PlayerConfig() = default;
68
- explicit PlayerConfig(std::optional<std::unordered_map<std::string, std::string>> httpHeaders, std::optional<std::string> userAgent, std::optional<double> autoRetries, std::optional<double> retryBackoffMs, std::optional<double> networkTimeoutMs, std::optional<AudioContentType> audioContentType, std::optional<AudioCategoryOptions> audioCategoryOptions, std::optional<bool> visualizationEnabled, std::optional<bool> clampSeekToBuffered, std::optional<double> lookaheadCacheMaxSizeMb, std::optional<EvictionPolicy> lookaheadCacheEvictionPolicy, std::optional<double> progressUpdateIntervalMs, std::optional<double> backgroundProgressUpdateIntervalMs): httpHeaders(httpHeaders), userAgent(userAgent), autoRetries(autoRetries), retryBackoffMs(retryBackoffMs), networkTimeoutMs(networkTimeoutMs), audioContentType(audioContentType), audioCategoryOptions(audioCategoryOptions), visualizationEnabled(visualizationEnabled), clampSeekToBuffered(clampSeekToBuffered), lookaheadCacheMaxSizeMb(lookaheadCacheMaxSizeMb), lookaheadCacheEvictionPolicy(lookaheadCacheEvictionPolicy), progressUpdateIntervalMs(progressUpdateIntervalMs), backgroundProgressUpdateIntervalMs(backgroundProgressUpdateIntervalMs) {}
73
+ explicit PlayerConfig(std::optional<std::unordered_map<std::string, std::string>> httpHeaders, std::optional<std::string> userAgent, std::optional<std::string> placeholderArtworkUri, std::optional<double> autoRetries, std::optional<double> retryBackoffMs, std::optional<double> networkTimeoutMs, std::optional<AudioContentType> audioContentType, std::optional<AudioCategoryOptions> audioCategoryOptions, std::optional<bool> visualizationEnabled, std::optional<bool> clampSeekToBuffered, std::optional<SkipToPreviousBehavior> skipToPreviousBehavior, std::optional<double> lookaheadCacheMaxSizeMb, std::optional<EvictionPolicy> lookaheadCacheEvictionPolicy, std::optional<double> progressUpdateIntervalMs, std::optional<double> backgroundProgressUpdateIntervalMs): httpHeaders(httpHeaders), userAgent(userAgent), placeholderArtworkUri(placeholderArtworkUri), autoRetries(autoRetries), retryBackoffMs(retryBackoffMs), networkTimeoutMs(networkTimeoutMs), audioContentType(audioContentType), audioCategoryOptions(audioCategoryOptions), visualizationEnabled(visualizationEnabled), clampSeekToBuffered(clampSeekToBuffered), skipToPreviousBehavior(skipToPreviousBehavior), lookaheadCacheMaxSizeMb(lookaheadCacheMaxSizeMb), lookaheadCacheEvictionPolicy(lookaheadCacheEvictionPolicy), progressUpdateIntervalMs(progressUpdateIntervalMs), backgroundProgressUpdateIntervalMs(backgroundProgressUpdateIntervalMs) {}
69
74
 
70
75
  public:
71
76
  friend bool operator==(const PlayerConfig& lhs, const PlayerConfig& rhs) = default;
@@ -83,6 +88,7 @@ namespace margelo::nitro {
83
88
  return margelo::nitro::queueplayer::PlayerConfig(
84
89
  JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "httpHeaders"))),
85
90
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userAgent"))),
91
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "placeholderArtworkUri"))),
86
92
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "autoRetries"))),
87
93
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "retryBackoffMs"))),
88
94
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "networkTimeoutMs"))),
@@ -90,6 +96,7 @@ namespace margelo::nitro {
90
96
  JSIConverter<std::optional<margelo::nitro::queueplayer::AudioCategoryOptions>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "audioCategoryOptions"))),
91
97
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "visualizationEnabled"))),
92
98
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "clampSeekToBuffered"))),
99
+ JSIConverter<std::optional<margelo::nitro::queueplayer::SkipToPreviousBehavior>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipToPreviousBehavior"))),
93
100
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheMaxSizeMb"))),
94
101
  JSIConverter<std::optional<margelo::nitro::queueplayer::EvictionPolicy>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheEvictionPolicy"))),
95
102
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateIntervalMs"))),
@@ -100,6 +107,7 @@ namespace margelo::nitro {
100
107
  jsi::Object obj(runtime);
101
108
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "httpHeaders"), JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::toJSI(runtime, arg.httpHeaders));
102
109
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "userAgent"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.userAgent));
110
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "placeholderArtworkUri"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.placeholderArtworkUri));
103
111
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "autoRetries"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.autoRetries));
104
112
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "retryBackoffMs"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.retryBackoffMs));
105
113
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "networkTimeoutMs"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.networkTimeoutMs));
@@ -107,6 +115,7 @@ namespace margelo::nitro {
107
115
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "audioCategoryOptions"), JSIConverter<std::optional<margelo::nitro::queueplayer::AudioCategoryOptions>>::toJSI(runtime, arg.audioCategoryOptions));
108
116
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "visualizationEnabled"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.visualizationEnabled));
109
117
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "clampSeekToBuffered"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.clampSeekToBuffered));
118
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "skipToPreviousBehavior"), JSIConverter<std::optional<margelo::nitro::queueplayer::SkipToPreviousBehavior>>::toJSI(runtime, arg.skipToPreviousBehavior));
110
119
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheMaxSizeMb"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.lookaheadCacheMaxSizeMb));
111
120
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheEvictionPolicy"), JSIConverter<std::optional<margelo::nitro::queueplayer::EvictionPolicy>>::toJSI(runtime, arg.lookaheadCacheEvictionPolicy));
112
121
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateIntervalMs"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.progressUpdateIntervalMs));
@@ -123,6 +132,7 @@ namespace margelo::nitro {
123
132
  }
124
133
  if (!JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "httpHeaders")))) return false;
125
134
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userAgent")))) return false;
135
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "placeholderArtworkUri")))) return false;
126
136
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "autoRetries")))) return false;
127
137
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "retryBackoffMs")))) return false;
128
138
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "networkTimeoutMs")))) return false;
@@ -130,6 +140,7 @@ namespace margelo::nitro {
130
140
  if (!JSIConverter<std::optional<margelo::nitro::queueplayer::AudioCategoryOptions>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "audioCategoryOptions")))) return false;
131
141
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "visualizationEnabled")))) return false;
132
142
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "clampSeekToBuffered")))) return false;
143
+ if (!JSIConverter<std::optional<margelo::nitro::queueplayer::SkipToPreviousBehavior>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipToPreviousBehavior")))) return false;
133
144
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheMaxSizeMb")))) return false;
134
145
  if (!JSIConverter<std::optional<margelo::nitro::queueplayer::EvictionPolicy>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lookaheadCacheEvictionPolicy")))) return false;
135
146
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateIntervalMs")))) return false;