react-native-queue-player 1.0.3 → 1.0.6
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/android/src/main/java/com/margelo/nitro/queueplayer/BufferStateTranslator.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/CarConnectionState.kt +46 -0
- package/android/src/main/java/com/margelo/nitro/queueplayer/Equalizer.kt +1 -3
- package/android/src/main/java/com/margelo/nitro/queueplayer/HeadlessJsMediaService.kt +2 -4
- package/android/src/main/java/com/margelo/nitro/queueplayer/LookaheadCacheWriter.kt +7 -9
- package/android/src/main/java/com/margelo/nitro/queueplayer/MilestoneTracker.kt +1 -2
- package/android/src/main/java/com/margelo/nitro/queueplayer/NotificationProvider.kt +6 -0
- package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackService.kt +33 -25
- package/android/src/main/java/com/margelo/nitro/queueplayer/PlaybackServiceCallback.kt +16 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/ProgressEmissionGate.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/QueueMutationArithmetic.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/QueueSkipArithmetic.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/RemoteCommandDeduper.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/SessionCommandForwardingPlayer.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/queueplayer/SleepTimerCore.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/queueplayer/TrackPlayer.kt +40 -27
- package/android/src/main/java/com/margelo/nitro/queueplayer/TransportStateTranslator.kt +2 -2
- package/android/src/main/res/values/strings.xml +0 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/AudioPipelineRenderersFactoryTest.kt +2 -5
- package/android/src/test/java/com/margelo/nitro/queueplayer/AvrcpMetadataTest.kt +1 -0
- package/android/src/test/java/com/margelo/nitro/queueplayer/BrowseCallbackRegistryTest.kt +1 -4
- package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineLifecycleTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/CrossfadeEngineReplayGainTest.kt +3 -7
- package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerEngineTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerKtTest.kt +1 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/EqualizerLegacyEngineTest.kt +2 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/FFTProcessorTeeTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineLifecycleTest.kt +0 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/GaplessEngineReplayGainTest.kt +3 -8
- package/android/src/test/java/com/margelo/nitro/queueplayer/HeadlessJsMediaServiceTest.kt +2 -4
- package/android/src/test/java/com/margelo/nitro/queueplayer/MediaButtonDispatchTest.kt +1 -0
- package/android/src/test/java/com/margelo/nitro/queueplayer/MediaButtonPreferencesTest.kt +99 -0
- package/android/src/test/java/com/margelo/nitro/queueplayer/MediaItemBuilderTest.kt +2 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/MilestoneTrackerTest.kt +1 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/NowPlayingFormatExtractorTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/PitchAwareAudioProcessorChainTest.kt +1 -1
- package/android/src/test/java/com/margelo/nitro/queueplayer/PitchCorrectionTest.kt +2 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceCallbackTest.kt +148 -7
- package/android/src/test/java/com/margelo/nitro/queueplayer/PlaybackServiceLifecycleTest.kt +2 -0
- package/android/src/test/java/com/margelo/nitro/queueplayer/ProgressEmissionGateTest.kt +1 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/SessionCommandForwardingPlayerTest.kt +58 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerEventsTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerMutationTest.kt +2 -4
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerPitchCorrectionTest.kt +1 -2
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerPlaybackModeTest.kt +2 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerReplayGainTest.kt +1 -3
- package/android/src/test/java/com/margelo/nitro/queueplayer/TrackPlayerTransportTest.kt +2 -5
- package/android/src/test/java/com/margelo/nitro/queueplayer/VisualizerKtTest.kt +1 -2
- package/ios/AVPlayerItemQueueItemId.swift +2 -2
- package/ios/AVQueueBuilder.swift +12 -14
- package/ios/CarPlayCoordinator.swift +38 -0
- package/ios/CarPlayQueueBuilder.swift +82 -0
- package/ios/CarPlayQueueProvider.swift +73 -0
- package/ios/CarPlaySceneDelegate.swift +81 -7
- package/ios/CrossfadeEngine.swift +4 -5
- package/ios/InputGuards.swift +3 -3
- package/ios/LookaheadCache.swift +4 -6
- package/ios/LookaheadCachePrefetcher.swift +1 -1
- package/ios/MilestoneTracker.swift +1 -2
- package/ios/PlaybackErrorMapping.swift +6 -7
- package/ios/PlayerStateDerivation.swift +1 -2
- package/ios/ProgressEmissionGate.swift +1 -1
- package/ios/QueueMutationArithmetic.swift +2 -2
- package/ios/QueueSkipArithmetic.swift +8 -12
- package/ios/Siri/PlayMediaIntentHandler.swift +1 -5
- package/ios/SleepTimerCore.swift +1 -1
- package/ios/Tests/AudioTapProviderReplayGainTests.swift +5 -9
- package/ios/Tests/CarPlayBridgeTests.swift +2 -6
- package/ios/Tests/CarPlayBrowseBuilderTests.swift +1 -2
- package/ios/Tests/CarPlayCoordinatorTests.swift +35 -0
- package/ios/Tests/CarPlayQueueBuilderTests.swift +145 -0
- package/ios/Tests/EQProcessorTests.swift +1 -4
- package/ios/Tests/EQTapTests.swift +1 -2
- package/ios/Tests/EqualizerAudioMixProviderTests.swift +3 -4
- package/ios/Tests/EqualizerHybridTests.swift +1 -3
- package/ios/Tests/FFTProcessorTests.swift +10 -10
- package/ios/Tests/GaplessEngineLifecycleTests.swift +0 -2
- package/ios/Tests/LookaheadCacheEvictionTests.swift +1 -4
- package/ios/Tests/MetadataReaderTests.swift +0 -2
- package/ios/Tests/MilestoneTrackerTests.swift +1 -3
- package/ios/Tests/NowPlayingFormatExtractorTests.swift +3 -4
- package/ios/Tests/PlaybackErrorMappingTests.swift +0 -3
- package/ios/Tests/PlaybackModeStateMachineTests.swift +5 -9
- package/ios/Tests/PlayerStateDerivationTests.swift +1 -2
- package/ios/Tests/ProgressEmissionGateTests.swift +1 -3
- package/ios/Tests/QueueMutationArithmeticTests.swift +0 -3
- package/ios/Tests/RemoteCommandsTests.swift +2 -5
- package/ios/Tests/ReplayGainExtractorTests.swift +0 -5
- package/ios/Tests/SkipCapabilityTests.swift +4 -7
- package/ios/Tests/VoiceDonationTests.swift +4 -4
- package/ios/TrackPlayer.swift +52 -2
- package/lib/typescript/TrackPlayer.nitro.d.ts +17 -0
- package/lib/typescript/TrackPlayer.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +5 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +1 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridTrackPlayerSpec.kt +4 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +8 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +12 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +1 -0
- package/package.json +1 -1
- package/src/TrackPlayer.nitro.ts +18 -0
package/ios/TrackPlayer.swift
CHANGED
|
@@ -587,6 +587,22 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
587
587
|
canSkipNext: self.cachedSkipCapability.canSkipNext,
|
|
588
588
|
canSkipPrevious: self.cachedSkipCapability.canSkipPrevious
|
|
589
589
|
)
|
|
590
|
+
// Route CarPlay Up Next row taps through the same steps the
|
|
591
|
+
// `skipToIndex` Hybrid runs — engine guard, index validation,
|
|
592
|
+
// and cast routing (a tap during an active cast session jumps
|
|
593
|
+
// the RECEIVER; the local engine stays paused, so a local index
|
|
594
|
+
// write would desync from it) — then the local index write.
|
|
595
|
+
// Set + invoked on main; the scene delegate calls it from the
|
|
596
|
+
// Up Next row handler.
|
|
597
|
+
CarPlayCoordinator.shared.skipToIndexHandler = { [weak self] index in
|
|
598
|
+
guard let self = self else { return }
|
|
599
|
+
guard self.engine != nil else { return }
|
|
600
|
+
guard let target = InputGuards.validQueueIndex(
|
|
601
|
+
Double(index), count: self.tracks.count
|
|
602
|
+
) else { return }
|
|
603
|
+
if CastTransportRouter.routeSkipToIndex(index: target) { return }
|
|
604
|
+
self.applyNewCurrentIndex(newIndex: target, reason: .userSkipToIndex)
|
|
605
|
+
}
|
|
590
606
|
// Refresh on every configure() so a header / UA update lands
|
|
591
607
|
// on the next artwork resolve. Live config — read fresh on
|
|
592
608
|
// each track-change resolve.
|
|
@@ -891,6 +907,8 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
891
907
|
// configure cycle.
|
|
892
908
|
let coordinator = CarPlayCoordinator.shared
|
|
893
909
|
coordinator.dataProvider.setSnapshot(nil)
|
|
910
|
+
coordinator.queueProvider.setSnapshot(nil)
|
|
911
|
+
coordinator.skipToIndexHandler = nil
|
|
894
912
|
coordinator.pending.clear()
|
|
895
913
|
coordinator.loader.clearCache()
|
|
896
914
|
// engine.release() drains the underlying AVQueuePlayer's items +
|
|
@@ -2050,8 +2068,7 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
2050
2068
|
|
|
2051
2069
|
/// Map the Nitrogen-generated `RepeatMode` enum onto the pure-Swift
|
|
2052
2070
|
/// `QueueSkipRepeatMode` so `QueueSkipArithmetic` can stay off the
|
|
2053
|
-
/// Swift ↔ C++ interop path
|
|
2054
|
-
/// arithmetic without C++-interop friction).
|
|
2071
|
+
/// Swift ↔ C++ interop path.
|
|
2055
2072
|
private func repeatModeAsSkipMode() -> QueueSkipRepeatMode {
|
|
2056
2073
|
switch self.repeatModeState {
|
|
2057
2074
|
case .off: return .off
|
|
@@ -2090,6 +2107,11 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
2090
2107
|
/// - `destroy` (resets to (false, false) so a final emit lets
|
|
2091
2108
|
/// subscribers know the player is gone)
|
|
2092
2109
|
internal func recomputeCapabilities() {
|
|
2110
|
+
// Every queue / current-index / repeat-mode change funnels through here,
|
|
2111
|
+
// so it's the single point that keeps the CarPlay Up Next mirror current
|
|
2112
|
+
// — done before the skip-capability dedup guard below so reorder/metadata
|
|
2113
|
+
// changes (which don't flip skip capability) still refresh the mirror.
|
|
2114
|
+
syncCarPlayQueueMirror()
|
|
2093
2115
|
let mode = repeatModeAsSkipMode()
|
|
2094
2116
|
let count = tracks.count
|
|
2095
2117
|
let cur = currentTrackIndex
|
|
@@ -2110,6 +2132,30 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
2110
2132
|
)
|
|
2111
2133
|
}
|
|
2112
2134
|
|
|
2135
|
+
/// Mirror the live queue + current index into the process-wide
|
|
2136
|
+
/// [CarPlayQueueProvider] so the CarPlay Up Next surface renders the
|
|
2137
|
+
/// current playback queue without round-tripping through JS. Driven
|
|
2138
|
+
/// from `recomputeCapabilities()`, which every queue / current-index /
|
|
2139
|
+
/// repeat-mode change funnels through. An empty queue clears the
|
|
2140
|
+
/// mirror to `nil` so the Up Next button hides. Main-thread only
|
|
2141
|
+
/// (queue state is main-bound).
|
|
2142
|
+
internal func syncCarPlayQueueMirror() {
|
|
2143
|
+
guard !self.tracks.isEmpty else {
|
|
2144
|
+
CarPlayCoordinator.shared.queueProvider.setSnapshot(nil)
|
|
2145
|
+
return
|
|
2146
|
+
}
|
|
2147
|
+
let entries = self.tracks.map { track in
|
|
2148
|
+
CarPlayQueueEntry(
|
|
2149
|
+
title: track.title ?? "",
|
|
2150
|
+
subtitle: track.artist ?? track.album,
|
|
2151
|
+
artworkUrl: track.artworkUrl
|
|
2152
|
+
)
|
|
2153
|
+
}
|
|
2154
|
+
CarPlayCoordinator.shared.queueProvider.setSnapshot(
|
|
2155
|
+
CarPlayQueueSnapshot(entries: entries, currentIndex: self.currentTrackIndex)
|
|
2156
|
+
)
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2113
2159
|
/// Apply a new `currentTrackIndex` and sync the AVQueuePlayer.
|
|
2114
2160
|
///
|
|
2115
2161
|
/// **Forward skip** (newIndex > oldIndex) — surgical trim of items
|
|
@@ -4184,6 +4230,10 @@ class TrackPlayer: HybridTrackPlayerSpec {
|
|
|
4184
4230
|
return CarPlayCoordinator.shared.bridge.registerOnCarDisconnect(callback)
|
|
4185
4231
|
}
|
|
4186
4232
|
|
|
4233
|
+
func isCarConnected() throws -> Bool {
|
|
4234
|
+
return CarPlayCoordinator.shared.isCarConnected
|
|
4235
|
+
}
|
|
4236
|
+
|
|
4187
4237
|
// MARK: - Lookahead cache — runtime config + status surface
|
|
4188
4238
|
func setLookaheadCache(config: LookaheadCacheConfig) throws -> Promise<Void> {
|
|
4189
4239
|
return Promise<Void>.async {
|
|
@@ -473,6 +473,23 @@ export interface TrackPlayer extends HybridObject<{
|
|
|
473
473
|
* automotive-specific subscriptions the consumer set up on connect.
|
|
474
474
|
*/
|
|
475
475
|
onCarDisconnect(callback: () => void): () => void;
|
|
476
|
+
/**
|
|
477
|
+
* Whether an automotive controller is connected right now. The
|
|
478
|
+
* pull-based counterpart to `onCarConnect` / `onCarDisconnect`: it holds
|
|
479
|
+
* the same state those events transition between, so a consumer that
|
|
480
|
+
* missed the connect event — e.g. it fired before the consumer registered
|
|
481
|
+
* its handler in this app process — can still gate car-only work, like
|
|
482
|
+
* pushing browse snapshots, on the current connection.
|
|
483
|
+
*
|
|
484
|
+
* `true` between the first automotive controller connecting and the last
|
|
485
|
+
* one dropping. "Automotive controller" is the same classification the
|
|
486
|
+
* connect/disconnect events use: the CarPlay scene on iOS; the headless
|
|
487
|
+
* Android Auto / Wear / Assistant controllers on Android. Returns `false`
|
|
488
|
+
* before the first connection and after a full disconnect. The state is
|
|
489
|
+
* process-scoped: a fresh app process starts disconnected until a
|
|
490
|
+
* controller connects within it.
|
|
491
|
+
*/
|
|
492
|
+
isCarConnected(): boolean;
|
|
476
493
|
/**
|
|
477
494
|
* Fires when the platform's media service is freshly bound to the JS
|
|
478
495
|
* side. `reason = 'first-bind'` for the initial bind during a JS-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackPlayer.nitro.d.ts","sourceRoot":"","sources":["../../src/TrackPlayer.nitro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TrackPlayer.nitro.d.ts","sourceRoot":"","sources":["../../src/TrackPlayer.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -949,6 +949,11 @@ namespace margelo::nitro::queueplayer {
|
|
|
949
949
|
}
|
|
950
950
|
}();
|
|
951
951
|
}
|
|
952
|
+
bool JHybridTrackPlayerSpec::isCarConnected() {
|
|
953
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isCarConnected");
|
|
954
|
+
auto __result = method(_javaPart);
|
|
955
|
+
return static_cast<bool>(__result);
|
|
956
|
+
}
|
|
952
957
|
std::function<void()> JHybridTrackPlayerSpec::onServiceReady(const std::function<void(ServiceReadyReason /* reason */)>& callback) {
|
|
953
958
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_ServiceReadyReason::javaobject> /* callback */)>("onServiceReady_cxx");
|
|
954
959
|
auto __result = method(_javaPart, JFunc_void_ServiceReadyReason_cxx::fromCpp(callback));
|
|
@@ -113,6 +113,7 @@ namespace margelo::nitro::queueplayer {
|
|
|
113
113
|
void donateVoiceVocabulary(const VoiceVocabulary& vocabulary) override;
|
|
114
114
|
std::function<void()> onCarConnect(const std::function<void()>& callback) override;
|
|
115
115
|
std::function<void()> onCarDisconnect(const std::function<void()>& callback) override;
|
|
116
|
+
bool isCarConnected() override;
|
|
116
117
|
std::function<void()> onServiceReady(const std::function<void(ServiceReadyReason /* reason */)>& callback) override;
|
|
117
118
|
std::shared_ptr<Promise<void>> setLookaheadCache(const LookaheadCacheConfig& config) override;
|
|
118
119
|
CacheStatus getLookaheadCacheStatus() override;
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/queueplayer/HybridTrackPlayerSpec.kt
CHANGED
|
@@ -346,6 +346,10 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
|
|
|
346
346
|
return Func_void_java(__result)
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
+
@DoNotStrip
|
|
350
|
+
@Keep
|
|
351
|
+
abstract fun isCarConnected(): Boolean
|
|
352
|
+
|
|
349
353
|
abstract fun onServiceReady(callback: (reason: ServiceReadyReason) -> Unit): () -> Unit
|
|
350
354
|
|
|
351
355
|
@DoNotStrip
|
|
@@ -669,6 +669,14 @@ namespace margelo::nitro::queueplayer {
|
|
|
669
669
|
auto __value = std::move(__result.value());
|
|
670
670
|
return __value;
|
|
671
671
|
}
|
|
672
|
+
inline bool isCarConnected() override {
|
|
673
|
+
auto __result = _swiftPart.isCarConnected();
|
|
674
|
+
if (__result.hasError()) [[unlikely]] {
|
|
675
|
+
std::rethrow_exception(__result.error());
|
|
676
|
+
}
|
|
677
|
+
auto __value = std::move(__result.value());
|
|
678
|
+
return __value;
|
|
679
|
+
}
|
|
672
680
|
inline std::function<void()> onServiceReady(const std::function<void(ServiceReadyReason /* reason */)>& callback) override {
|
|
673
681
|
auto __result = _swiftPart.onServiceReady(callback);
|
|
674
682
|
if (__result.hasError()) [[unlikely]] {
|
|
@@ -72,6 +72,7 @@ public protocol HybridTrackPlayerSpec_protocol: HybridObject {
|
|
|
72
72
|
func donateVoiceVocabulary(vocabulary: VoiceVocabulary) throws -> Void
|
|
73
73
|
func onCarConnect(callback: @escaping () -> Void) throws -> () -> Void
|
|
74
74
|
func onCarDisconnect(callback: @escaping () -> Void) throws -> () -> Void
|
|
75
|
+
func isCarConnected() throws -> Bool
|
|
75
76
|
func onServiceReady(callback: @escaping (_ reason: ServiceReadyReason) -> Void) throws -> () -> Void
|
|
76
77
|
func setLookaheadCache(config: LookaheadCacheConfig) throws -> Promise<Void>
|
|
77
78
|
func getLookaheadCacheStatus() throws -> CacheStatus
|
|
@@ -1255,6 +1255,18 @@ open class HybridTrackPlayerSpec_cxx {
|
|
|
1255
1255
|
}
|
|
1256
1256
|
}
|
|
1257
1257
|
|
|
1258
|
+
@inline(__always)
|
|
1259
|
+
public final func isCarConnected() -> bridge.Result_bool_ {
|
|
1260
|
+
do {
|
|
1261
|
+
let __result = try self.__implementation.isCarConnected()
|
|
1262
|
+
let __resultCpp = __result
|
|
1263
|
+
return bridge.create_Result_bool_(__resultCpp)
|
|
1264
|
+
} catch (let __error) {
|
|
1265
|
+
let __exceptionPtr = __error.toCpp()
|
|
1266
|
+
return bridge.create_Result_bool_(__exceptionPtr)
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1258
1270
|
@inline(__always)
|
|
1259
1271
|
public final func onServiceReady(callback: bridge.Func_void_ServiceReadyReason) -> bridge.Result_std__function_void____ {
|
|
1260
1272
|
do {
|
|
@@ -73,6 +73,7 @@ namespace margelo::nitro::queueplayer {
|
|
|
73
73
|
prototype.registerHybridMethod("donateVoiceVocabulary", &HybridTrackPlayerSpec::donateVoiceVocabulary);
|
|
74
74
|
prototype.registerHybridMethod("onCarConnect", &HybridTrackPlayerSpec::onCarConnect);
|
|
75
75
|
prototype.registerHybridMethod("onCarDisconnect", &HybridTrackPlayerSpec::onCarDisconnect);
|
|
76
|
+
prototype.registerHybridMethod("isCarConnected", &HybridTrackPlayerSpec::isCarConnected);
|
|
76
77
|
prototype.registerHybridMethod("onServiceReady", &HybridTrackPlayerSpec::onServiceReady);
|
|
77
78
|
prototype.registerHybridMethod("setLookaheadCache", &HybridTrackPlayerSpec::setLookaheadCache);
|
|
78
79
|
prototype.registerHybridMethod("getLookaheadCacheStatus", &HybridTrackPlayerSpec::getLookaheadCacheStatus);
|
|
@@ -187,6 +187,7 @@ namespace margelo::nitro::queueplayer {
|
|
|
187
187
|
virtual void donateVoiceVocabulary(const VoiceVocabulary& vocabulary) = 0;
|
|
188
188
|
virtual std::function<void()> onCarConnect(const std::function<void()>& callback) = 0;
|
|
189
189
|
virtual std::function<void()> onCarDisconnect(const std::function<void()>& callback) = 0;
|
|
190
|
+
virtual bool isCarConnected() = 0;
|
|
190
191
|
virtual std::function<void()> onServiceReady(const std::function<void(ServiceReadyReason /* reason */)>& callback) = 0;
|
|
191
192
|
virtual std::shared_ptr<Promise<void>> setLookaheadCache(const LookaheadCacheConfig& config) = 0;
|
|
192
193
|
virtual CacheStatus getLookaheadCacheStatus() = 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-queue-player",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Nitro Modules audio playback library for React Native — gapless, EQ, crossfade, automotive, voice, casting",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/index.d.ts",
|
package/src/TrackPlayer.nitro.ts
CHANGED
|
@@ -549,6 +549,24 @@ export interface TrackPlayer
|
|
|
549
549
|
*/
|
|
550
550
|
onCarDisconnect(callback: () => void): () => void;
|
|
551
551
|
|
|
552
|
+
/**
|
|
553
|
+
* Whether an automotive controller is connected right now. The
|
|
554
|
+
* pull-based counterpart to `onCarConnect` / `onCarDisconnect`: it holds
|
|
555
|
+
* the same state those events transition between, so a consumer that
|
|
556
|
+
* missed the connect event — e.g. it fired before the consumer registered
|
|
557
|
+
* its handler in this app process — can still gate car-only work, like
|
|
558
|
+
* pushing browse snapshots, on the current connection.
|
|
559
|
+
*
|
|
560
|
+
* `true` between the first automotive controller connecting and the last
|
|
561
|
+
* one dropping. "Automotive controller" is the same classification the
|
|
562
|
+
* connect/disconnect events use: the CarPlay scene on iOS; the headless
|
|
563
|
+
* Android Auto / Wear / Assistant controllers on Android. Returns `false`
|
|
564
|
+
* before the first connection and after a full disconnect. The state is
|
|
565
|
+
* process-scoped: a fresh app process starts disconnected until a
|
|
566
|
+
* controller connects within it.
|
|
567
|
+
*/
|
|
568
|
+
isCarConnected(): boolean;
|
|
569
|
+
|
|
552
570
|
/**
|
|
553
571
|
* Fires when the platform's media service is freshly bound to the JS
|
|
554
572
|
* side. `reason = 'first-bind'` for the initial bind during a JS-
|