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.
Files changed (45) hide show
  1. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +5 -3
  2. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +4 -0
  3. package/android/src/main/java/com/margelo/nitro/nitroplayer/connection/AndroidAutoConnectionDetector.kt +14 -13
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/NitroPlayerLogger.kt +31 -0
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +142 -95
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +75 -29
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +2 -1
  8. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +1 -2
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +3 -2
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +25 -24
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryManager.kt +3 -2
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +20 -19
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +119 -85
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/storage/NitroPlayerStorage.kt +50 -0
  15. package/ios/HybridAudioRoutePicker.swift +1 -1
  16. package/ios/HybridDownloadManager.swift +3 -3
  17. package/ios/HybridEqualizer.swift +3 -3
  18. package/ios/HybridTrackPlayer.swift +8 -4
  19. package/ios/core/NitroPlayerLogger.swift +22 -0
  20. package/ios/core/TrackPlayerCore.swift +195 -256
  21. package/ios/download/DownloadDatabase.swift +92 -62
  22. package/ios/download/DownloadFileManager.swift +17 -17
  23. package/ios/download/DownloadManagerCore.swift +80 -44
  24. package/ios/equalizer/EqualizerCore.swift +25 -20
  25. package/ios/playlist/PlaylistManager.swift +113 -82
  26. package/ios/queue/QueueManager.swift +1 -1
  27. package/ios/storage/NitroPlayerStorage.swift +44 -0
  28. package/lib/specs/TrackPlayer.nitro.d.ts +1 -0
  29. package/lib/types/PlayerQueue.d.ts +1 -1
  30. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +5 -0
  31. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +1 -0
  32. package/nitrogen/generated/android/c++/JReason.hpp +3 -0
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +4 -0
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Reason.kt +2 -1
  35. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +12 -0
  36. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +8 -0
  37. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +1 -0
  38. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +12 -0
  39. package/nitrogen/generated/ios/swift/Reason.swift +4 -0
  40. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +1 -0
  41. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +1 -0
  42. package/nitrogen/generated/shared/c++/Reason.hpp +4 -0
  43. package/package.json +1 -1
  44. package/src/specs/TrackPlayer.nitro.ts +1 -0
  45. 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",
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(
@@ -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