react-native-nitro-player 0.5.8 → 0.5.9-alpha.1
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/cpp/cpp-adapter.cpp +5 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +2 -2
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +119 -59
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +3 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +19 -8
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +2 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +14 -2
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +29 -30
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +10 -31
- package/android/src/main/java/com/margelo/nitro/nitroplayer/queue/Queue.kt +1 -1
- package/ios/core/TrackPlayerCore.swift +328 -84
- package/ios/download/DownloadDatabase.swift +8 -2
- package/ios/download/DownloadFileManager.swift +11 -2
- package/ios/download/DownloadManagerCore.swift +84 -25
- package/ios/equalizer/EqualizerCore.swift +83 -42
- package/ios/media/MediaSessionManager.swift +5 -5
- package/ios/playlist/PlaylistModel.swift +1 -1
- package/ios/queue/HybridPlayerQueue.swift +2 -0
- package/ios/storage/NitroPlayerStorage.swift +4 -2
- package/lib/hooks/usePlaylist.js +25 -4
- package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +1 -1
- package/nitrogen/generated/android/NitroPlayer+autolinking.gradle +1 -1
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +76 -73
- package/nitrogen/generated/android/NitroPlayerOnLoad.hpp +14 -5
- package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +5 -6
- package/nitrogen/generated/android/c++/JDownloadConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadError.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +8 -9
- package/nitrogen/generated/android/c++/JDownloadProgress.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadState.hpp +7 -8
- package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadTask.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerBand.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerState.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double.hpp +1 -1
- package/nitrogen/generated/android/c++/JGainRange.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JPlaybackSource.hpp +4 -5
- package/nitrogen/generated/android/c++/JPlayerConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlayerState.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaylist.hpp +1 -1
- package/nitrogen/generated/android/c++/JPresetType.hpp +3 -4
- package/nitrogen/generated/android/c++/JQueueOperation.hpp +5 -6
- package/nitrogen/generated/android/c++/JReason.hpp +6 -7
- package/nitrogen/generated/android/c++/JRepeatMode.hpp +4 -5
- package/nitrogen/generated/android/c++/JStorageLocation.hpp +3 -4
- package/nitrogen/generated/android/c++/JTAudioDevice.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrackItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +4 -5
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackItem_std__optional_Reason_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_Playlist__std__optional_QueueOperation_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_TrackItem__double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/NitroPlayerOnLoad.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Playlist.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/QueueOperation.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Reason.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/RepeatMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TAudioDevice.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +1 -1
- package/nitrogen/generated/ios/NitroPlayer+autolinking.rb +2 -2
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +21 -21
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +1 -1
- package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +25 -36
- package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +1 -1
- package/nitrogen/generated/ios/swift/DownloadConfig.swift +78 -168
- package/nitrogen/generated/ios/swift/DownloadError.swift +9 -34
- package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +1 -1
- package/nitrogen/generated/ios/swift/DownloadProgress.swift +13 -50
- package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +15 -58
- package/nitrogen/generated/ios/swift/DownloadState.swift +1 -1
- package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +11 -42
- package/nitrogen/generated/ios/swift/DownloadTask.swift +97 -210
- package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +13 -56
- package/nitrogen/generated/ios/swift/DownloadedTrack.swift +34 -90
- package/nitrogen/generated/ios/swift/EqualizerBand.swift +9 -34
- package/nitrogen/generated/ios/swift/EqualizerPreset.swift +7 -32
- package/nitrogen/generated/ios/swift/EqualizerState.swift +26 -64
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_TrackItem_std__optional_Reason_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_TrackPlayerState_std__optional_Reason_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_double_double.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_double_double_std__optional_bool_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__string_Playlist_std__optional_QueueOperation_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_Playlist__std__optional_QueueOperation_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__double.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +1 -2
- package/nitrogen/generated/ios/swift/GainRange.swift +5 -18
- package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec_cxx.swift +9 -2
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +9 -2
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +9 -2
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +25 -4
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +9 -2
- package/nitrogen/generated/ios/swift/PlaybackSource.swift +1 -1
- package/nitrogen/generated/ios/swift/PlayerConfig.swift +37 -79
- package/nitrogen/generated/ios/swift/PlayerState.swift +53 -122
- package/nitrogen/generated/ios/swift/Playlist.swift +49 -112
- package/nitrogen/generated/ios/swift/PresetType.swift +1 -1
- package/nitrogen/generated/ios/swift/QueueOperation.swift +1 -1
- package/nitrogen/generated/ios/swift/Reason.swift +1 -1
- package/nitrogen/generated/ios/swift/RepeatMode.swift +1 -1
- package/nitrogen/generated/ios/swift/StorageLocation.swift +1 -1
- package/nitrogen/generated/ios/swift/TrackItem.swift +43 -111
- package/nitrogen/generated/ios/swift/TrackPlayerState.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_Playlist.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_TrackItem.swift +1 -1
- package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +1 -1
- package/nitrogen/generated/shared/c++/DownloadConfig.hpp +34 -26
- package/nitrogen/generated/shared/c++/DownloadError.hpp +22 -14
- package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +1 -1
- package/nitrogen/generated/shared/c++/DownloadProgress.hpp +28 -20
- package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +31 -23
- package/nitrogen/generated/shared/c++/DownloadState.hpp +1 -1
- package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +25 -17
- package/nitrogen/generated/shared/c++/DownloadTask.hpp +40 -32
- package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +28 -20
- package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +31 -23
- package/nitrogen/generated/shared/c++/EqualizerBand.hpp +22 -14
- package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +19 -11
- package/nitrogen/generated/shared/c++/EqualizerState.hpp +19 -11
- package/nitrogen/generated/shared/c++/GainRange.hpp +16 -8
- package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/PlaybackSource.hpp +1 -1
- package/nitrogen/generated/shared/c++/PlayerConfig.hpp +22 -14
- package/nitrogen/generated/shared/c++/PlayerState.hpp +31 -23
- package/nitrogen/generated/shared/c++/Playlist.hpp +25 -17
- package/nitrogen/generated/shared/c++/PresetType.hpp +1 -1
- package/nitrogen/generated/shared/c++/QueueOperation.hpp +1 -1
- package/nitrogen/generated/shared/c++/Reason.hpp +1 -1
- package/nitrogen/generated/shared/c++/RepeatMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/StorageLocation.hpp +1 -1
- package/nitrogen/generated/shared/c++/TAudioDevice.hpp +22 -14
- package/nitrogen/generated/shared/c++/TrackItem.hpp +34 -26
- package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +1 -1
- package/package.json +3 -3
- package/src/hooks/usePlaylist.ts +26 -4
|
@@ -11,6 +11,7 @@ import android.graphics.BitmapFactory
|
|
|
11
11
|
import android.net.Uri
|
|
12
12
|
import android.os.Build
|
|
13
13
|
import android.util.Log
|
|
14
|
+
import android.util.LruCache
|
|
14
15
|
import androidx.core.app.NotificationCompat
|
|
15
16
|
import androidx.media3.common.MediaItem
|
|
16
17
|
import androidx.media3.common.MediaMetadata
|
|
@@ -49,7 +50,9 @@ class MediaSessionManager(
|
|
|
49
50
|
private set
|
|
50
51
|
private var notificationManager: NotificationManager? = null
|
|
51
52
|
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
|
52
|
-
private val artworkCache =
|
|
53
|
+
private val artworkCache = object : LruCache<String, Bitmap>(20) {
|
|
54
|
+
override fun sizeOf(key: String, value: Bitmap): Int = 1
|
|
55
|
+
}
|
|
53
56
|
|
|
54
57
|
private var androidAutoEnabled: Boolean = false
|
|
55
58
|
private var carPlayEnabled: Boolean = false
|
|
@@ -115,7 +118,7 @@ class MediaSessionManager(
|
|
|
115
118
|
mediaItems: MutableList<MediaItem>,
|
|
116
119
|
): ListenableFuture<MutableList<MediaItem>> {
|
|
117
120
|
// This is called when Android Auto requests to play a track
|
|
118
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
121
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: onAddMediaItems called with ${mediaItems.size} items" }
|
|
119
122
|
|
|
120
123
|
if (mediaItems.isEmpty()) {
|
|
121
124
|
return Futures.immediateFuture(mutableListOf())
|
|
@@ -129,7 +132,7 @@ class MediaSessionManager(
|
|
|
129
132
|
requestedMediaItem.requestMetadata.mediaUri?.toString()
|
|
130
133
|
?: requestedMediaItem.mediaId
|
|
131
134
|
|
|
132
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
135
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: Processing mediaId: $mediaId" }
|
|
133
136
|
|
|
134
137
|
try {
|
|
135
138
|
// Parse mediaId format: "playlistId:trackId"
|
|
@@ -138,7 +141,7 @@ class MediaSessionManager(
|
|
|
138
141
|
val playlistId = mediaId.substring(0, colonIndex)
|
|
139
142
|
val trackId = mediaId.substring(colonIndex + 1)
|
|
140
143
|
|
|
141
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
144
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: Parsed playlistId: $playlistId, trackId: $trackId" }
|
|
142
145
|
|
|
143
146
|
// Get the playlist and track
|
|
144
147
|
val playlist = playlistManager.getPlaylist(playlistId)
|
|
@@ -148,27 +151,27 @@ class MediaSessionManager(
|
|
|
148
151
|
// Create a proper MediaItem with all metadata
|
|
149
152
|
val resolvedMediaItem = createMediaItem(track, mediaId)
|
|
150
153
|
updatedMediaItems.add(resolvedMediaItem)
|
|
151
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
154
|
+
NitroPlayerLogger.log("MediaSessionManager") { "✅ MediaSessionManager: Resolved track: ${track.title}" }
|
|
152
155
|
} else {
|
|
153
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
156
|
+
NitroPlayerLogger.log("MediaSessionManager") { "⚠️ MediaSessionManager: Track $trackId not found in playlist" }
|
|
154
157
|
updatedMediaItems.add(requestedMediaItem)
|
|
155
158
|
}
|
|
156
159
|
} else {
|
|
157
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
160
|
+
NitroPlayerLogger.log("MediaSessionManager") { "⚠️ MediaSessionManager: Playlist $playlistId not found" }
|
|
158
161
|
updatedMediaItems.add(requestedMediaItem)
|
|
159
162
|
}
|
|
160
163
|
} else {
|
|
161
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
164
|
+
NitroPlayerLogger.log("MediaSessionManager") { "⚠️ MediaSessionManager: Invalid mediaId format: $mediaId" }
|
|
162
165
|
updatedMediaItems.add(requestedMediaItem)
|
|
163
166
|
}
|
|
164
167
|
} catch (e: Exception) {
|
|
165
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
168
|
+
NitroPlayerLogger.log("MediaSessionManager") { "❌ MediaSessionManager: Error processing mediaId - ${e.message}" }
|
|
166
169
|
e.printStackTrace()
|
|
167
170
|
updatedMediaItems.add(requestedMediaItem)
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
|
|
171
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
174
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: Returning ${updatedMediaItems.size} resolved media items" }
|
|
172
175
|
return Futures.immediateFuture(updatedMediaItems)
|
|
173
176
|
}
|
|
174
177
|
|
|
@@ -180,7 +183,7 @@ class MediaSessionManager(
|
|
|
180
183
|
startPositionMs: Long,
|
|
181
184
|
): ListenableFuture<MediaSession.MediaItemsWithStartPosition> {
|
|
182
185
|
// This is called when Android Auto wants to set and play media items
|
|
183
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
186
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: onSetMediaItems called with ${mediaItems.size} items, startIndex: $startIndex" }
|
|
184
187
|
|
|
185
188
|
if (mediaItems.isEmpty()) {
|
|
186
189
|
return Futures.immediateFuture(
|
|
@@ -195,7 +198,7 @@ class MediaSessionManager(
|
|
|
195
198
|
try {
|
|
196
199
|
// Get the first item's mediaId to determine the playlist
|
|
197
200
|
val firstMediaId = mediaItems[0].mediaId
|
|
198
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
201
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: First mediaId: $firstMediaId" }
|
|
199
202
|
|
|
200
203
|
// Parse mediaId format: "playlistId:trackId"
|
|
201
204
|
if (firstMediaId.contains(':')) {
|
|
@@ -203,7 +206,7 @@ class MediaSessionManager(
|
|
|
203
206
|
val playlistId = firstMediaId.substring(0, colonIndex)
|
|
204
207
|
val trackId = firstMediaId.substring(colonIndex + 1)
|
|
205
208
|
|
|
206
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
209
|
+
NitroPlayerLogger.log("MediaSessionManager") { "🎵 MediaSessionManager: Loading full playlist: $playlistId, starting at track: $trackId" }
|
|
207
210
|
|
|
208
211
|
// Get the full playlist
|
|
209
212
|
val playlist = playlistManager.getPlaylist(playlistId)
|
|
@@ -223,7 +226,7 @@ class MediaSessionManager(
|
|
|
223
226
|
createMediaItem(track, trackMediaId)
|
|
224
227
|
}.toMutableList()
|
|
225
228
|
|
|
226
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
229
|
+
NitroPlayerLogger.log("MediaSessionManager") { "✅ MediaSessionManager: Loaded ${playlistMediaItems.size} tracks, starting at index $trackIndex" }
|
|
227
230
|
|
|
228
231
|
// Return the full playlist with the correct start index
|
|
229
232
|
return Futures.immediateFuture(
|
|
@@ -241,7 +244,7 @@ class MediaSessionManager(
|
|
|
241
244
|
}
|
|
242
245
|
}
|
|
243
246
|
} catch (e: Exception) {
|
|
244
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
247
|
+
NitroPlayerLogger.log("MediaSessionManager") { "❌ MediaSessionManager: Error in onSetMediaItems - ${e.message}" }
|
|
245
248
|
e.printStackTrace()
|
|
246
249
|
}
|
|
247
250
|
|
|
@@ -283,7 +286,7 @@ class MediaSessionManager(
|
|
|
283
286
|
if (artworkUrl.isNullOrEmpty()) return null
|
|
284
287
|
|
|
285
288
|
// Check cache first
|
|
286
|
-
artworkCache
|
|
289
|
+
artworkCache.get(artworkUrl)?.let { return it }
|
|
287
290
|
|
|
288
291
|
return try {
|
|
289
292
|
val bitmap =
|
|
@@ -293,7 +296,7 @@ class MediaSessionManager(
|
|
|
293
296
|
}
|
|
294
297
|
// Cache the bitmap
|
|
295
298
|
if (bitmap != null) {
|
|
296
|
-
artworkCache
|
|
299
|
+
artworkCache.put(artworkUrl, bitmap)
|
|
297
300
|
}
|
|
298
301
|
bitmap
|
|
299
302
|
} catch (e: Exception) {
|
|
@@ -302,12 +305,6 @@ class MediaSessionManager(
|
|
|
302
305
|
}
|
|
303
306
|
}
|
|
304
307
|
|
|
305
|
-
private fun bitmapToByteArray(bitmap: Bitmap): ByteArray {
|
|
306
|
-
val stream = java.io.ByteArrayOutputStream()
|
|
307
|
-
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
|
|
308
|
-
return stream.toByteArray()
|
|
309
|
-
}
|
|
310
|
-
|
|
311
308
|
private fun createNotificationChannel() {
|
|
312
309
|
notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
|
313
310
|
|
|
@@ -342,10 +339,12 @@ class MediaSessionManager(
|
|
|
342
339
|
// Find track in current playlist or all playlists
|
|
343
340
|
return trackPlayerCore?.getCurrentPlaylistId()?.let { playlistId ->
|
|
344
341
|
playlistManager.getPlaylist(playlistId)?.tracks?.find { it.id == trackId }
|
|
345
|
-
} ?:
|
|
346
|
-
.getAllPlaylists()
|
|
347
|
-
|
|
348
|
-
|
|
342
|
+
} ?: run {
|
|
343
|
+
for (playlist in playlistManager.getAllPlaylists()) {
|
|
344
|
+
playlist.tracks.find { it.id == trackId }?.let { return it }
|
|
345
|
+
}
|
|
346
|
+
null
|
|
347
|
+
}
|
|
349
348
|
}
|
|
350
349
|
|
|
351
350
|
private fun updateNotification() {
|
|
@@ -392,7 +391,7 @@ class MediaSessionManager(
|
|
|
392
391
|
.setShowActionsInCompactView(0, 1, 2),
|
|
393
392
|
)
|
|
394
393
|
} catch (e: Exception) {
|
|
395
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
394
|
+
NitroPlayerLogger.log("MediaSessionManager") { "Failed to set media session token: ${e.message}" }
|
|
396
395
|
}
|
|
397
396
|
|
|
398
397
|
// Add action buttons
|
|
@@ -483,7 +482,7 @@ class MediaSessionManager(
|
|
|
483
482
|
hideNotification()
|
|
484
483
|
mediaSession?.release()
|
|
485
484
|
mediaSession = null
|
|
486
|
-
artworkCache.
|
|
485
|
+
artworkCache.evictAll()
|
|
487
486
|
}
|
|
488
487
|
|
|
489
488
|
private fun createMediaItem(
|
|
@@ -501,7 +500,7 @@ class MediaSessionManager(
|
|
|
501
500
|
try {
|
|
502
501
|
metadataBuilder.setArtworkUri(Uri.parse(artworkUrl))
|
|
503
502
|
} catch (e: Exception) {
|
|
504
|
-
NitroPlayerLogger.log("MediaSessionManager"
|
|
503
|
+
NitroPlayerLogger.log("MediaSessionManager") { "⚠️ MediaSessionManager: Invalid artwork URI: $artworkUrl" }
|
|
505
504
|
}
|
|
506
505
|
}
|
|
507
506
|
|
|
@@ -112,12 +112,8 @@ class PlaylistManager private constructor(
|
|
|
112
112
|
description: String? = null,
|
|
113
113
|
artwork: String? = null,
|
|
114
114
|
): Boolean {
|
|
115
|
-
val playlist =
|
|
116
|
-
synchronized(playlists) {
|
|
117
|
-
playlists[playlistId]
|
|
118
|
-
} ?: return false
|
|
119
|
-
|
|
120
115
|
synchronized(playlists) {
|
|
116
|
+
val playlist = playlists[playlistId] ?: return false
|
|
121
117
|
playlists[playlistId] =
|
|
122
118
|
playlist.copy(
|
|
123
119
|
name = name ?: playlist.name,
|
|
@@ -161,12 +157,8 @@ class PlaylistManager private constructor(
|
|
|
161
157
|
track: TrackItem,
|
|
162
158
|
index: Int? = null,
|
|
163
159
|
): Boolean {
|
|
164
|
-
val playlist =
|
|
165
|
-
synchronized(playlists) {
|
|
166
|
-
playlists[playlistId]
|
|
167
|
-
} ?: return false
|
|
168
|
-
|
|
169
160
|
synchronized(playlists) {
|
|
161
|
+
val playlist = playlists[playlistId] ?: return false
|
|
170
162
|
val tracks = playlist.tracks.toMutableList()
|
|
171
163
|
if (index != null && index >= 0 && index <= tracks.size) {
|
|
172
164
|
tracks.add(index, track)
|
|
@@ -199,12 +191,8 @@ class PlaylistManager private constructor(
|
|
|
199
191
|
tracks: List<TrackItem>,
|
|
200
192
|
index: Int? = null,
|
|
201
193
|
): Boolean {
|
|
202
|
-
val playlist =
|
|
203
|
-
synchronized(playlists) {
|
|
204
|
-
playlists[playlistId]
|
|
205
|
-
} ?: return false
|
|
206
|
-
|
|
207
194
|
synchronized(playlists) {
|
|
195
|
+
val playlist = playlists[playlistId] ?: return false
|
|
208
196
|
val currentTracks = playlist.tracks.toMutableList()
|
|
209
197
|
if (index != null && index >= 0 && index <= currentTracks.size) {
|
|
210
198
|
currentTracks.addAll(index, tracks)
|
|
@@ -236,13 +224,9 @@ class PlaylistManager private constructor(
|
|
|
236
224
|
playlistId: String,
|
|
237
225
|
trackId: String,
|
|
238
226
|
): Boolean {
|
|
239
|
-
val playlist =
|
|
240
|
-
synchronized(playlists) {
|
|
241
|
-
playlists[playlistId]
|
|
242
|
-
} ?: return false
|
|
243
|
-
|
|
244
227
|
val removed =
|
|
245
228
|
synchronized(playlists) {
|
|
229
|
+
val playlist = playlists[playlistId] ?: return false
|
|
246
230
|
val tracks = playlist.tracks.toMutableList()
|
|
247
231
|
val removed = tracks.removeAll { it.id == trackId }
|
|
248
232
|
if (removed) {
|
|
@@ -273,18 +257,13 @@ class PlaylistManager private constructor(
|
|
|
273
257
|
trackId: String,
|
|
274
258
|
newIndex: Int,
|
|
275
259
|
): Boolean {
|
|
276
|
-
val playlist =
|
|
277
|
-
synchronized(playlists) {
|
|
278
|
-
playlists[playlistId]
|
|
279
|
-
} ?: return false
|
|
280
|
-
|
|
281
|
-
val tracks = playlist.tracks.toMutableList()
|
|
282
|
-
val oldIndex = tracks.indexOfFirst { it.id == trackId }
|
|
283
|
-
if (oldIndex < 0 || newIndex < 0 || newIndex >= tracks.size) {
|
|
284
|
-
return false
|
|
285
|
-
}
|
|
286
|
-
|
|
287
260
|
synchronized(playlists) {
|
|
261
|
+
val playlist = playlists[playlistId] ?: return false
|
|
262
|
+
val tracks = playlist.tracks.toMutableList()
|
|
263
|
+
val oldIndex = tracks.indexOfFirst { it.id == trackId }
|
|
264
|
+
if (oldIndex < 0 || newIndex < 0 || newIndex >= tracks.size) {
|
|
265
|
+
return false
|
|
266
|
+
}
|
|
288
267
|
val track = tracks.removeAt(oldIndex)
|
|
289
268
|
tracks.add(newIndex, track)
|
|
290
269
|
playlists[playlistId] = playlist.copy(tracks = tracks)
|