react-native-nitro-player 0.3.0-alpha.9 → 0.4.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.
- package/README.md +444 -4
- package/android/build.gradle +4 -1
- package/android/src/main/AndroidManifest.xml +16 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +2 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +8 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +225 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +105 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +6 -6
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +37 -12
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +970 -213
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +475 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadFileManager.kt +159 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +489 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +209 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +486 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +3 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +14 -6
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +27 -0
- package/ios/HybridDownloadManager.swift +226 -0
- package/ios/HybridEqualizer.swift +111 -0
- package/ios/HybridTrackPlayer.swift +36 -8
- package/ios/core/TrackPlayerCore.swift +998 -276
- package/ios/download/DownloadDatabase.swift +493 -0
- package/ios/download/DownloadFileManager.swift +241 -0
- package/ios/download/DownloadManagerCore.swift +923 -0
- package/ios/equalizer/EqualizerCore.swift +685 -0
- package/ios/media/MediaSessionManager.swift +40 -28
- package/ios/playlist/PlaylistManager.swift +40 -9
- package/ios/queue/HybridPlayerQueue.swift +33 -13
- package/lib/hooks/downloadCallbackManager.d.ts +36 -0
- package/lib/hooks/downloadCallbackManager.js +108 -0
- package/lib/hooks/equalizerCallbackManager.d.ts +37 -0
- package/lib/hooks/equalizerCallbackManager.js +109 -0
- package/lib/hooks/index.d.ts +16 -0
- package/lib/hooks/index.js +10 -0
- package/lib/hooks/useActualQueue.d.ts +48 -0
- package/lib/hooks/useActualQueue.js +98 -0
- package/lib/hooks/useDownloadActions.d.ts +26 -0
- package/lib/hooks/useDownloadActions.js +117 -0
- package/lib/hooks/useDownloadProgress.d.ts +25 -0
- package/lib/hooks/useDownloadProgress.js +79 -0
- package/lib/hooks/useDownloadStorage.d.ts +19 -0
- package/lib/hooks/useDownloadStorage.js +60 -0
- package/lib/hooks/useDownloadedTracks.d.ts +25 -0
- package/lib/hooks/useDownloadedTracks.js +69 -0
- package/lib/hooks/useEqualizer.d.ts +25 -0
- package/lib/hooks/useEqualizer.js +124 -0
- package/lib/hooks/useEqualizerPresets.d.ts +22 -0
- package/lib/hooks/useEqualizerPresets.js +96 -0
- package/lib/hooks/useNowPlaying.js +3 -2
- package/lib/hooks/useOnChangeTrack.js +15 -12
- package/lib/hooks/useOnPlaybackStateChange.js +16 -13
- package/lib/hooks/usePlaylist.d.ts +48 -0
- package/lib/hooks/usePlaylist.js +136 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +6 -0
- package/lib/specs/DownloadManager.nitro.d.ts +152 -0
- package/lib/specs/DownloadManager.nitro.js +1 -0
- package/lib/specs/Equalizer.nitro.d.ts +43 -0
- package/lib/specs/Equalizer.nitro.js +1 -0
- package/lib/specs/TrackPlayer.nitro.d.ts +6 -2
- package/lib/types/DownloadTypes.d.ts +110 -0
- package/lib/types/DownloadTypes.js +1 -0
- package/lib/types/EqualizerTypes.d.ts +52 -0
- package/lib/types/EqualizerTypes.js +1 -0
- package/lib/types/PlayerQueue.d.ts +4 -0
- package/nitro.json +8 -0
- package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +10 -1
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +32 -2
- package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +65 -0
- package/nitrogen/generated/android/c++/JDownloadConfig.hpp +92 -0
- package/nitrogen/generated/android/c++/JDownloadError.hpp +71 -0
- package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +74 -0
- package/nitrogen/generated/android/c++/JDownloadProgress.hpp +79 -0
- package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +81 -0
- package/nitrogen/generated/android/c++/JDownloadState.hpp +71 -0
- package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +73 -0
- package/nitrogen/generated/android/c++/JDownloadTask.hpp +108 -0
- package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +111 -0
- package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +92 -0
- package/nitrogen/generated/android/c++/JEqualizerBand.hpp +69 -0
- package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +78 -0
- package/nitrogen/generated/android/c++/JEqualizerState.hpp +91 -0
- package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +89 -0
- package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +97 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -0
- package/nitrogen/generated/android/c++/JGainRange.hpp +61 -0
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +470 -0
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +99 -0
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +204 -0
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +82 -0
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +2 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +117 -15
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +6 -2
- package/nitrogen/generated/android/c++/JPlaybackSource.hpp +62 -0
- package/nitrogen/generated/android/c++/JPlayerState.hpp +11 -3
- package/nitrogen/generated/android/c++/JPlaylist.hpp +2 -0
- package/nitrogen/generated/android/c++/JPresetType.hpp +59 -0
- package/nitrogen/generated/android/c++/JStorageLocation.hpp +59 -0
- package/nitrogen/generated/android/c++/JTrackItem.hpp +9 -3
- package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +74 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +84 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +85 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +80 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +2 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +210 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +141 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +19 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +7 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +59 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +138 -8
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +1046 -121
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +66 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +16 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +30 -0
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +386 -0
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +223 -0
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +1 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +46 -6
- package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +48 -0
- package/nitrogen/generated/ios/swift/DownloadConfig.swift +270 -0
- package/nitrogen/generated/ios/swift/DownloadError.swift +69 -0
- package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +60 -0
- package/nitrogen/generated/ios/swift/DownloadProgress.swift +91 -0
- package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +102 -0
- package/nitrogen/generated/ios/swift/DownloadState.swift +56 -0
- package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +80 -0
- package/nitrogen/generated/ios/swift/DownloadTask.swift +315 -0
- package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +103 -0
- package/nitrogen/generated/ios/swift/DownloadedTrack.swift +147 -0
- package/nitrogen/generated/ios/swift/EqualizerBand.swift +69 -0
- package/nitrogen/generated/ios/swift/EqualizerPreset.swift +70 -0
- package/nitrogen/generated/ios/swift/EqualizerState.swift +115 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
- package/nitrogen/generated/ios/swift/GainRange.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +90 -0
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +705 -0
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +73 -0
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +396 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +6 -2
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +105 -8
- package/nitrogen/generated/ios/swift/PlaybackSource.swift +44 -0
- package/nitrogen/generated/ios/swift/PlayerState.swift +13 -2
- package/nitrogen/generated/ios/swift/PresetType.swift +40 -0
- package/nitrogen/generated/ios/swift/StorageLocation.swift +40 -0
- package/nitrogen/generated/ios/swift/TrackItem.swift +31 -1
- package/nitrogen/generated/ios/swift/TrackPlayerState.swift +4 -4
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +18 -0
- package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +84 -0
- package/nitrogen/generated/shared/c++/DownloadConfig.hpp +108 -0
- package/nitrogen/generated/shared/c++/DownloadError.hpp +89 -0
- package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +96 -0
- package/nitrogen/generated/shared/c++/DownloadProgress.hpp +97 -0
- package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +99 -0
- package/nitrogen/generated/shared/c++/DownloadState.hpp +92 -0
- package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +91 -0
- package/nitrogen/generated/shared/c++/DownloadTask.hpp +122 -0
- package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +101 -0
- package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +107 -0
- package/nitrogen/generated/shared/c++/EqualizerBand.hpp +87 -0
- package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +86 -0
- package/nitrogen/generated/shared/c++/EqualizerState.hpp +89 -0
- package/nitrogen/generated/shared/c++/GainRange.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +55 -0
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +134 -0
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +38 -0
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +11 -5
- package/nitrogen/generated/shared/c++/PlaybackSource.hpp +80 -0
- package/nitrogen/generated/shared/c++/PlayerState.hpp +9 -2
- package/nitrogen/generated/shared/c++/PresetType.hpp +76 -0
- package/nitrogen/generated/shared/c++/StorageLocation.hpp +76 -0
- package/nitrogen/generated/shared/c++/TrackItem.hpp +7 -2
- package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +5 -5
- package/package.json +1 -1
- package/src/hooks/downloadCallbackManager.ts +149 -0
- package/src/hooks/equalizerCallbackManager.ts +138 -0
- package/src/hooks/index.ts +23 -0
- package/src/hooks/useActualQueue.ts +116 -0
- package/src/hooks/useDownloadActions.ts +179 -0
- package/src/hooks/useDownloadProgress.ts +126 -0
- package/src/hooks/useDownloadStorage.ts +84 -0
- package/src/hooks/useDownloadedTracks.ts +138 -0
- package/src/hooks/useEqualizer.ts +173 -0
- package/src/hooks/useEqualizerPresets.ts +140 -0
- package/src/hooks/useNowPlaying.ts +3 -2
- package/src/hooks/useOnChangeTrack.ts +15 -11
- package/src/hooks/useOnPlaybackStateChange.ts +19 -15
- package/src/hooks/usePlaylist.ts +161 -0
- package/src/index.ts +12 -0
- package/src/specs/DownloadManager.nitro.ts +203 -0
- package/src/specs/Equalizer.nitro.ts +69 -0
- package/src/specs/TrackPlayer.nitro.ts +6 -2
- package/src/types/DownloadTypes.ts +135 -0
- package/src/types/EqualizerTypes.ts +72 -0
- package/src/types/PlayerQueue.ts +9 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
//
|
|
2
|
+
// HybridDownloadManager.swift
|
|
3
|
+
// NitroPlayer
|
|
4
|
+
//
|
|
5
|
+
// Created by Ritesh Shukla on 2026-01-23..
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import NitroModules
|
|
10
|
+
|
|
11
|
+
/// Hybrid implementation of DownloadManagerSpec for iOS
|
|
12
|
+
/// Bridges Nitro modules with the native DownloadManagerCore implementation
|
|
13
|
+
final class HybridDownloadManager: HybridDownloadManagerSpec {
|
|
14
|
+
|
|
15
|
+
// MARK: - Properties
|
|
16
|
+
|
|
17
|
+
private let core: DownloadManagerCore
|
|
18
|
+
|
|
19
|
+
// MARK: - Initialization
|
|
20
|
+
|
|
21
|
+
override init() {
|
|
22
|
+
core = DownloadManagerCore.shared
|
|
23
|
+
super.init()
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// MARK: - Configuration
|
|
27
|
+
|
|
28
|
+
func configure(config: DownloadConfig) throws {
|
|
29
|
+
core.configure(config)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
func getConfig() throws -> DownloadConfig {
|
|
33
|
+
return core.getConfig()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// MARK: - Download Operations
|
|
37
|
+
|
|
38
|
+
func downloadTrack(track: TrackItem, playlistId: String?) throws -> Promise<String> {
|
|
39
|
+
return Promise.async {
|
|
40
|
+
return self.core.downloadTrack(track: track, playlistId: playlistId)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
func downloadPlaylist(playlistId: String, tracks: [TrackItem]) throws -> Promise<[String]> {
|
|
45
|
+
return Promise.async {
|
|
46
|
+
return self.core.downloadPlaylist(playlistId: playlistId, tracks: tracks)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// MARK: - Download Control
|
|
51
|
+
|
|
52
|
+
func pauseDownload(downloadId: String) throws -> Promise<Void> {
|
|
53
|
+
return Promise.async {
|
|
54
|
+
self.core.pauseDownload(downloadId: downloadId)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func resumeDownload(downloadId: String) throws -> Promise<Void> {
|
|
59
|
+
return Promise.async {
|
|
60
|
+
self.core.resumeDownload(downloadId: downloadId)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
func cancelDownload(downloadId: String) throws -> Promise<Void> {
|
|
65
|
+
return Promise.async {
|
|
66
|
+
self.core.cancelDownload(downloadId: downloadId)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
func retryDownload(downloadId: String) throws -> Promise<Void> {
|
|
71
|
+
return Promise.async {
|
|
72
|
+
self.core.retryDownload(downloadId: downloadId)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
func pauseAllDownloads() throws -> Promise<Void> {
|
|
77
|
+
return Promise.async {
|
|
78
|
+
self.core.pauseAllDownloads()
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
func resumeAllDownloads() throws -> Promise<Void> {
|
|
83
|
+
return Promise.async {
|
|
84
|
+
self.core.resumeAllDownloads()
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
func cancelAllDownloads() throws -> Promise<Void> {
|
|
89
|
+
return Promise.async {
|
|
90
|
+
self.core.cancelAllDownloads()
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// MARK: - Download Status
|
|
95
|
+
|
|
96
|
+
func getDownloadTask(downloadId: String) throws -> Variant_NullType_DownloadTask {
|
|
97
|
+
if let task = core.getDownloadTask(downloadId: downloadId) {
|
|
98
|
+
return Variant_NullType_DownloadTask.second(task)
|
|
99
|
+
}
|
|
100
|
+
return Variant_NullType_DownloadTask.first(NullType.null)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
func getActiveDownloads() throws -> [DownloadTask] {
|
|
104
|
+
return core.getActiveDownloads()
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
func getQueueStatus() throws -> DownloadQueueStatus {
|
|
108
|
+
return core.getQueueStatus()
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
func isDownloading(trackId: String) throws -> Bool {
|
|
112
|
+
return core.isDownloading(trackId: trackId)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
func getDownloadState(trackId: String) throws -> DownloadState {
|
|
116
|
+
return core.getDownloadState(trackId: trackId) ?? .pending
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// MARK: - Downloaded Content Queries
|
|
120
|
+
|
|
121
|
+
func isTrackDownloaded(trackId: String) throws -> Bool {
|
|
122
|
+
return core.isTrackDownloaded(trackId: trackId)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
func isPlaylistDownloaded(playlistId: String) throws -> Bool {
|
|
126
|
+
return core.isPlaylistDownloaded(playlistId: playlistId)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
func isPlaylistPartiallyDownloaded(playlistId: String) throws -> Bool {
|
|
130
|
+
return core.isPlaylistPartiallyDownloaded(playlistId: playlistId)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
func getDownloadedTrack(trackId: String) throws -> Variant_NullType_DownloadedTrack {
|
|
134
|
+
if let track = core.getDownloadedTrack(trackId: trackId) {
|
|
135
|
+
return Variant_NullType_DownloadedTrack.second(track)
|
|
136
|
+
}
|
|
137
|
+
return Variant_NullType_DownloadedTrack.first(NullType.null)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
func getAllDownloadedTracks() throws -> [DownloadedTrack] {
|
|
141
|
+
return core.getAllDownloadedTracks()
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
func getDownloadedPlaylist(playlistId: String) throws -> Variant_NullType_DownloadedPlaylist {
|
|
145
|
+
if let playlist = core.getDownloadedPlaylist(playlistId: playlistId) {
|
|
146
|
+
return Variant_NullType_DownloadedPlaylist.second(playlist)
|
|
147
|
+
}
|
|
148
|
+
return Variant_NullType_DownloadedPlaylist.first(NullType.null)
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
func getAllDownloadedPlaylists() throws -> [DownloadedPlaylist] {
|
|
152
|
+
return core.getAllDownloadedPlaylists()
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
func getLocalPath(trackId: String) throws -> Variant_NullType_String {
|
|
156
|
+
if let path = core.getLocalPath(trackId: trackId) {
|
|
157
|
+
return Variant_NullType_String.second(path)
|
|
158
|
+
}
|
|
159
|
+
return Variant_NullType_String.first(NullType.null)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// MARK: - Deletion
|
|
163
|
+
|
|
164
|
+
func deleteDownloadedTrack(trackId: String) throws -> Promise<Void> {
|
|
165
|
+
return Promise.async {
|
|
166
|
+
self.core.deleteDownloadedTrack(trackId: trackId)
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
func deleteDownloadedPlaylist(playlistId: String) throws -> Promise<Void> {
|
|
171
|
+
return Promise.async {
|
|
172
|
+
self.core.deleteDownloadedPlaylist(playlistId: playlistId)
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
func deleteAllDownloads() throws -> Promise<Void> {
|
|
177
|
+
return Promise.async {
|
|
178
|
+
self.core.deleteAllDownloads()
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// MARK: - Storage Management
|
|
183
|
+
|
|
184
|
+
func getStorageInfo() throws -> Promise<DownloadStorageInfo> {
|
|
185
|
+
return Promise.async {
|
|
186
|
+
return self.core.getStorageInfo()
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
func syncDownloads() throws -> Double {
|
|
191
|
+
return Double(core.syncDownloads())
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// MARK: - Playback Source Preference
|
|
195
|
+
|
|
196
|
+
func setPlaybackSourcePreference(preference: PlaybackSource) throws {
|
|
197
|
+
core.setPlaybackSourcePreference(preference)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
func getPlaybackSourcePreference() throws -> PlaybackSource {
|
|
201
|
+
return core.getPlaybackSourcePreference()
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
func getEffectiveUrl(track: TrackItem) throws -> String {
|
|
205
|
+
return core.getEffectiveUrl(track: track)
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// MARK: - Event Callbacks
|
|
209
|
+
|
|
210
|
+
func onDownloadProgress(callback: @escaping (DownloadProgress) -> Void) throws {
|
|
211
|
+
print("🎯 HybridDownloadManager: onDownloadProgress callback registered")
|
|
212
|
+
core.addProgressCallback(callback)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
func onDownloadStateChange(
|
|
216
|
+
callback: @escaping (String, String, DownloadState, DownloadError?) -> Void
|
|
217
|
+
) throws {
|
|
218
|
+
print("🎯 HybridDownloadManager: onDownloadStateChange callback registered")
|
|
219
|
+
core.addStateChangeCallback(callback)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
func onDownloadComplete(callback: @escaping (DownloadedTrack) -> Void) throws {
|
|
223
|
+
print("🎯 HybridDownloadManager: onDownloadComplete callback registered")
|
|
224
|
+
core.addCompleteCallback(callback)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
//
|
|
2
|
+
// HybridEqualizer.swift
|
|
3
|
+
// NitroPlayer
|
|
4
|
+
//
|
|
5
|
+
// Created by Ritesh Shukla on 04/02/26.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import NitroModules
|
|
10
|
+
|
|
11
|
+
final class HybridEqualizer: HybridEqualizerSpec {
|
|
12
|
+
// MARK: - Properties
|
|
13
|
+
|
|
14
|
+
private let core: EqualizerCore
|
|
15
|
+
|
|
16
|
+
// MARK: - Initialization
|
|
17
|
+
|
|
18
|
+
override init() {
|
|
19
|
+
core = EqualizerCore.shared
|
|
20
|
+
super.init()
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// MARK: - Enable/Disable
|
|
24
|
+
|
|
25
|
+
func setEnabled(enabled: Bool) throws -> Bool {
|
|
26
|
+
return core.setEnabled(enabled)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
func isEnabled() throws -> Bool {
|
|
30
|
+
return core.isEnabled()
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// MARK: - Band Control
|
|
34
|
+
|
|
35
|
+
func getBands() throws -> [EqualizerBand] {
|
|
36
|
+
return core.getBands()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
func setBandGain(bandIndex: Double, gainDb: Double) throws -> Bool {
|
|
40
|
+
return core.setBandGain(bandIndex: Int(bandIndex), gainDb: gainDb)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
func setAllBandGains(gains: [Double]) throws -> Bool {
|
|
44
|
+
return core.setAllBandGains(gains)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
func getBandRange() throws -> GainRange {
|
|
48
|
+
return core.getBandRange()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// MARK: - Presets
|
|
52
|
+
|
|
53
|
+
func getPresets() throws -> [EqualizerPreset] {
|
|
54
|
+
return core.getPresets()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
func getBuiltInPresets() throws -> [EqualizerPreset] {
|
|
58
|
+
return core.getBuiltInPresets()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
func getCustomPresets() throws -> [EqualizerPreset] {
|
|
62
|
+
return core.getCustomPresets()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func applyPreset(presetName: String) throws -> Bool {
|
|
66
|
+
return core.applyPreset(presetName)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
func getCurrentPresetName() throws -> Variant_NullType_String {
|
|
70
|
+
if let name = core.getCurrentPresetName() {
|
|
71
|
+
return .second(name)
|
|
72
|
+
} else {
|
|
73
|
+
return .first(NullType.null)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
func saveCustomPreset(name: String) throws -> Bool {
|
|
78
|
+
return core.saveCustomPreset(name)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
func deleteCustomPreset(name: String) throws -> Bool {
|
|
82
|
+
return core.deleteCustomPreset(name)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// MARK: - State
|
|
86
|
+
|
|
87
|
+
func getState() throws -> EqualizerState {
|
|
88
|
+
return core.getState()
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
func reset() throws {
|
|
92
|
+
core.reset()
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// MARK: - Event Callbacks
|
|
96
|
+
|
|
97
|
+
func onEnabledChange(callback: @escaping (Bool) -> Void) throws {
|
|
98
|
+
print("🎯 HybridEqualizer: onEnabledChange callback registered")
|
|
99
|
+
core.addOnEnabledChangeListener(owner: self, callback)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
func onBandChange(callback: @escaping ([EqualizerBand]) -> Void) throws {
|
|
103
|
+
print("🎯 HybridEqualizer: onBandChange callback registered")
|
|
104
|
+
core.addOnBandChangeListener(owner: self, callback)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
func onPresetChange(callback: @escaping (Variant_NullType_String?) -> Void) throws {
|
|
108
|
+
print("🎯 HybridEqualizer: onPresetChange callback registered")
|
|
109
|
+
core.addOnPresetChangeListener(owner: self, callback)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -32,8 +32,10 @@ final class HybridTrackPlayer: HybridTrackPlayerSpec {
|
|
|
32
32
|
core.pause()
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
func playSong(songId: String, fromPlaylist: String?) throws {
|
|
36
|
-
|
|
35
|
+
func playSong(songId: String, fromPlaylist: String?) throws -> Promise<Void> {
|
|
36
|
+
return Promise.async {
|
|
37
|
+
self.core.playSong(songId: songId, fromPlaylist: fromPlaylist)
|
|
38
|
+
}
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
func skipToNext() throws {
|
|
@@ -48,8 +50,28 @@ final class HybridTrackPlayer: HybridTrackPlayerSpec {
|
|
|
48
50
|
core.seek(position: position)
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
func
|
|
52
|
-
return
|
|
53
|
+
func addToUpNext(trackId: String) throws -> Promise<Void> {
|
|
54
|
+
return Promise.async {
|
|
55
|
+
self.core.addToUpNext(trackId: trackId)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
func playNext(trackId: String) throws -> Promise<Void> {
|
|
60
|
+
return Promise.async {
|
|
61
|
+
self.core.playNext(trackId: trackId)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func getActualQueue() throws -> Promise<[TrackItem]> {
|
|
66
|
+
return Promise.async {
|
|
67
|
+
return self.core.getActualQueue()
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
func getState() throws -> Promise<PlayerState> {
|
|
72
|
+
return Promise.async {
|
|
73
|
+
return self.core.getState()
|
|
74
|
+
}
|
|
53
75
|
}
|
|
54
76
|
|
|
55
77
|
func setRepeatMode(mode: RepeatMode) throws -> Bool {
|
|
@@ -70,22 +92,22 @@ final class HybridTrackPlayer: HybridTrackPlayerSpec {
|
|
|
70
92
|
|
|
71
93
|
func onChangeTrack(callback: @escaping (TrackItem, Reason?) -> Void) throws {
|
|
72
94
|
print("🎯 HybridTrackPlayer: onChangeTrack callback registered")
|
|
73
|
-
core.
|
|
95
|
+
core.addOnChangeTrackListener(owner: self, callback)
|
|
74
96
|
}
|
|
75
97
|
|
|
76
98
|
func onPlaybackStateChange(callback: @escaping (TrackPlayerState, Reason?) -> Void) throws {
|
|
77
99
|
print("🎯 HybridTrackPlayer: onPlaybackStateChange callback registered")
|
|
78
|
-
core.
|
|
100
|
+
core.addOnPlaybackStateChangeListener(owner: self, callback)
|
|
79
101
|
}
|
|
80
102
|
|
|
81
103
|
func onSeek(callback: @escaping (Double, Double) -> Void) throws {
|
|
82
104
|
print("🎯 HybridTrackPlayer: onSeek callback registered")
|
|
83
|
-
core.
|
|
105
|
+
core.addOnSeekListener(owner: self, callback)
|
|
84
106
|
}
|
|
85
107
|
|
|
86
108
|
func onPlaybackProgressChange(callback: @escaping (Double, Double, Bool?) -> Void) throws {
|
|
87
109
|
print("🎯 HybridTrackPlayer: onPlaybackProgressChange callback registered")
|
|
88
|
-
core.
|
|
110
|
+
core.addOnPlaybackProgressChangeListener(owner: self, callback)
|
|
89
111
|
}
|
|
90
112
|
|
|
91
113
|
// MARK: - Android Auto (iOS No-op)
|
|
@@ -102,6 +124,12 @@ final class HybridTrackPlayer: HybridTrackPlayerSpec {
|
|
|
102
124
|
return false
|
|
103
125
|
}
|
|
104
126
|
|
|
127
|
+
func skipToIndex(index: Double) throws -> Promise<Bool> {
|
|
128
|
+
return Promise.async {
|
|
129
|
+
return self.core.skipToIndex(index: Int(index))
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
105
133
|
// MARK: - Volume Control
|
|
106
134
|
|
|
107
135
|
func setVolume(volume: Double) throws -> Bool {
|