react-native-nitro-player 0.5.3 → 0.5.5
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/nitroplayer/HybridAudioDevices.kt +5 -3
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +4 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/connection/AndroidAutoConnectionDetector.kt +14 -13
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/NitroPlayerLogger.kt +31 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +142 -95
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +75 -29
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +2 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +1 -2
- package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +3 -2
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +25 -24
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryManager.kt +3 -2
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +20 -19
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +119 -85
- package/android/src/main/java/com/margelo/nitro/nitroplayer/storage/NitroPlayerStorage.kt +50 -0
- package/ios/HybridAudioRoutePicker.swift +1 -1
- package/ios/HybridDownloadManager.swift +3 -3
- package/ios/HybridEqualizer.swift +3 -3
- package/ios/HybridTrackPlayer.swift +8 -4
- package/ios/core/NitroPlayerLogger.swift +22 -0
- package/ios/core/TrackPlayerCore.swift +195 -256
- package/ios/download/DownloadDatabase.swift +92 -62
- package/ios/download/DownloadFileManager.swift +17 -17
- package/ios/download/DownloadManagerCore.swift +80 -44
- package/ios/equalizer/EqualizerCore.swift +25 -20
- package/ios/playlist/PlaylistManager.swift +113 -82
- package/ios/queue/QueueManager.swift +1 -1
- package/ios/storage/NitroPlayerStorage.swift +44 -0
- package/lib/specs/TrackPlayer.nitro.d.ts +1 -0
- package/lib/types/PlayerQueue.d.ts +1 -1
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +5 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +1 -0
- package/nitrogen/generated/android/c++/JReason.hpp +3 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +4 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Reason.kt +2 -1
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +12 -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/ios/swift/Reason.swift +4 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +1 -0
- package/nitrogen/generated/shared/c++/Reason.hpp +4 -0
- package/package.json +1 -1
- package/src/specs/TrackPlayer.nitro.ts +1 -0
- package/src/types/PlayerQueue.ts +1 -1
|
@@ -311,6 +311,18 @@ open class HybridTrackPlayerSpec_cxx {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
+
@inline(__always)
|
|
315
|
+
public final func getRepeatMode() -> bridge.Result_RepeatMode_ {
|
|
316
|
+
do {
|
|
317
|
+
let __result = try self.__implementation.getRepeatMode()
|
|
318
|
+
let __resultCpp = __result
|
|
319
|
+
return bridge.create_Result_RepeatMode_(__resultCpp)
|
|
320
|
+
} catch (let __error) {
|
|
321
|
+
let __exceptionPtr = __error.toCpp()
|
|
322
|
+
return bridge.create_Result_RepeatMode_(__exceptionPtr)
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
314
326
|
@inline(__always)
|
|
315
327
|
public final func configure(config: PlayerConfig) -> bridge.Result_void_ {
|
|
316
328
|
do {
|
|
@@ -25,6 +25,8 @@ public extension Reason {
|
|
|
25
25
|
self = .end
|
|
26
26
|
case "error":
|
|
27
27
|
self = .error
|
|
28
|
+
case "repeat":
|
|
29
|
+
self = .repeat
|
|
28
30
|
default:
|
|
29
31
|
return nil
|
|
30
32
|
}
|
|
@@ -43,6 +45,8 @@ public extension Reason {
|
|
|
43
45
|
return "end"
|
|
44
46
|
case .error:
|
|
45
47
|
return "error"
|
|
48
|
+
case .repeat:
|
|
49
|
+
return "repeat"
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
}
|
|
@@ -26,6 +26,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
26
26
|
prototype.registerHybridMethod("getActualQueue", &HybridTrackPlayerSpec::getActualQueue);
|
|
27
27
|
prototype.registerHybridMethod("getState", &HybridTrackPlayerSpec::getState);
|
|
28
28
|
prototype.registerHybridMethod("setRepeatMode", &HybridTrackPlayerSpec::setRepeatMode);
|
|
29
|
+
prototype.registerHybridMethod("getRepeatMode", &HybridTrackPlayerSpec::getRepeatMode);
|
|
29
30
|
prototype.registerHybridMethod("configure", &HybridTrackPlayerSpec::configure);
|
|
30
31
|
prototype.registerHybridMethod("onChangeTrack", &HybridTrackPlayerSpec::onChangeTrack);
|
|
31
32
|
prototype.registerHybridMethod("onPlaybackStateChange", &HybridTrackPlayerSpec::onPlaybackStateChange);
|
|
@@ -81,6 +81,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
81
81
|
virtual std::shared_ptr<Promise<std::vector<TrackItem>>> getActualQueue() = 0;
|
|
82
82
|
virtual std::shared_ptr<Promise<PlayerState>> getState() = 0;
|
|
83
83
|
virtual bool setRepeatMode(RepeatMode mode) = 0;
|
|
84
|
+
virtual RepeatMode getRepeatMode() = 0;
|
|
84
85
|
virtual void configure(const PlayerConfig& config) = 0;
|
|
85
86
|
virtual void onChangeTrack(const std::function<void(const TrackItem& /* track */, std::optional<Reason> /* reason */)>& callback) = 0;
|
|
86
87
|
virtual void onPlaybackStateChange(const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& callback) = 0;
|
|
@@ -33,6 +33,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
33
33
|
SKIP SWIFT_NAME(skip) = 1,
|
|
34
34
|
END SWIFT_NAME(end) = 2,
|
|
35
35
|
ERROR SWIFT_NAME(error) = 3,
|
|
36
|
+
REPEAT SWIFT_NAME(repeat) = 4,
|
|
36
37
|
} CLOSED_ENUM;
|
|
37
38
|
|
|
38
39
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -49,6 +50,7 @@ namespace margelo::nitro {
|
|
|
49
50
|
case hashString("skip"): return margelo::nitro::nitroplayer::Reason::SKIP;
|
|
50
51
|
case hashString("end"): return margelo::nitro::nitroplayer::Reason::END;
|
|
51
52
|
case hashString("error"): return margelo::nitro::nitroplayer::Reason::ERROR;
|
|
53
|
+
case hashString("repeat"): return margelo::nitro::nitroplayer::Reason::REPEAT;
|
|
52
54
|
default: [[unlikely]]
|
|
53
55
|
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum Reason - invalid value!");
|
|
54
56
|
}
|
|
@@ -59,6 +61,7 @@ namespace margelo::nitro {
|
|
|
59
61
|
case margelo::nitro::nitroplayer::Reason::SKIP: return JSIConverter<std::string>::toJSI(runtime, "skip");
|
|
60
62
|
case margelo::nitro::nitroplayer::Reason::END: return JSIConverter<std::string>::toJSI(runtime, "end");
|
|
61
63
|
case margelo::nitro::nitroplayer::Reason::ERROR: return JSIConverter<std::string>::toJSI(runtime, "error");
|
|
64
|
+
case margelo::nitro::nitroplayer::Reason::REPEAT: return JSIConverter<std::string>::toJSI(runtime, "repeat");
|
|
62
65
|
default: [[unlikely]]
|
|
63
66
|
throw std::invalid_argument("Cannot convert Reason to JS - invalid value: "
|
|
64
67
|
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
@@ -74,6 +77,7 @@ namespace margelo::nitro {
|
|
|
74
77
|
case hashString("skip"):
|
|
75
78
|
case hashString("end"):
|
|
76
79
|
case hashString("error"):
|
|
80
|
+
case hashString("repeat"):
|
|
77
81
|
return true;
|
|
78
82
|
default:
|
|
79
83
|
return false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-player",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "A powerful audio player library for React Native with playlist management, playback controls, and support for Android Auto and CarPlay",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -70,6 +70,7 @@ export interface TrackPlayer
|
|
|
70
70
|
getActualQueue(): Promise<TrackItem[]>
|
|
71
71
|
getState(): Promise<PlayerState>
|
|
72
72
|
setRepeatMode(mode: RepeatMode): boolean
|
|
73
|
+
getRepeatMode(): RepeatMode
|
|
73
74
|
configure(config: PlayerConfig): void
|
|
74
75
|
onChangeTrack(callback: (track: TrackItem, reason?: Reason) => void): void
|
|
75
76
|
onPlaybackStateChange(
|
package/src/types/PlayerQueue.ts
CHANGED
|
@@ -28,7 +28,7 @@ export type QueueOperation = 'add' | 'remove' | 'clear' | 'update'
|
|
|
28
28
|
|
|
29
29
|
export type TrackPlayerState = 'playing' | 'paused' | 'stopped'
|
|
30
30
|
|
|
31
|
-
export type Reason = 'user_action' | 'skip' | 'end' | 'error'
|
|
31
|
+
export type Reason = 'user_action' | 'skip' | 'end' | 'error' | 'repeat'
|
|
32
32
|
|
|
33
33
|
export interface PlayerState {
|
|
34
34
|
currentTrack: TrackItem | null
|