react-native-nitro-player 0.3.0-alpha.9 → 0.4.1-alpha.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 +944 -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 +996 -288
- 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/callbackManager.d.ts +18 -0
- package/lib/hooks/callbackManager.js +66 -0
- 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 +32 -19
- package/lib/hooks/useOnChangeTrack.js +15 -12
- package/lib/hooks/useOnPlaybackProgressChange.js +2 -2
- 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/callbackManager.ts +87 -0
- 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 +33 -20
- package/src/hooks/useOnChangeTrack.ts +15 -11
- package/src/hooks/useOnPlaybackProgressChange.ts +2 -2
- 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,152 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import type { TrackItem } from '../types/PlayerQueue';
|
|
3
|
+
import type { DownloadConfig, DownloadTask, DownloadProgress, DownloadedTrack, DownloadedPlaylist, DownloadState, DownloadStorageInfo, DownloadQueueStatus, DownloadError, PlaybackSource } from '../types/DownloadTypes';
|
|
4
|
+
export interface DownloadManager extends HybridObject<{
|
|
5
|
+
android: 'kotlin';
|
|
6
|
+
ios: 'swift';
|
|
7
|
+
}> {
|
|
8
|
+
/**
|
|
9
|
+
* Configure the download manager
|
|
10
|
+
*/
|
|
11
|
+
configure(config: DownloadConfig): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get current configuration
|
|
14
|
+
*/
|
|
15
|
+
getConfig(): DownloadConfig;
|
|
16
|
+
/**
|
|
17
|
+
* Download a single track
|
|
18
|
+
* @returns downloadId for tracking
|
|
19
|
+
*/
|
|
20
|
+
downloadTrack(track: TrackItem, playlistId?: string): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Download an entire playlist
|
|
23
|
+
* @returns downloadId array for each track
|
|
24
|
+
*/
|
|
25
|
+
downloadPlaylist(playlistId: string, tracks: TrackItem[]): Promise<string[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Pause a download
|
|
28
|
+
*/
|
|
29
|
+
pauseDownload(downloadId: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Resume a paused download
|
|
32
|
+
*/
|
|
33
|
+
resumeDownload(downloadId: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Cancel a download
|
|
36
|
+
*/
|
|
37
|
+
cancelDownload(downloadId: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Retry a failed download
|
|
40
|
+
*/
|
|
41
|
+
retryDownload(downloadId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Pause all downloads
|
|
44
|
+
*/
|
|
45
|
+
pauseAllDownloads(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Resume all paused downloads
|
|
48
|
+
*/
|
|
49
|
+
resumeAllDownloads(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Cancel all downloads
|
|
52
|
+
*/
|
|
53
|
+
cancelAllDownloads(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Get download task by ID
|
|
56
|
+
*/
|
|
57
|
+
getDownloadTask(downloadId: string): DownloadTask | null;
|
|
58
|
+
/**
|
|
59
|
+
* Get all active download tasks
|
|
60
|
+
*/
|
|
61
|
+
getActiveDownloads(): DownloadTask[];
|
|
62
|
+
/**
|
|
63
|
+
* Get download queue status
|
|
64
|
+
*/
|
|
65
|
+
getQueueStatus(): DownloadQueueStatus;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a track is currently downloading
|
|
68
|
+
*/
|
|
69
|
+
isDownloading(trackId: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get download state for a track
|
|
72
|
+
*/
|
|
73
|
+
getDownloadState(trackId: string): DownloadState | null;
|
|
74
|
+
/**
|
|
75
|
+
* Check if a track is downloaded
|
|
76
|
+
*/
|
|
77
|
+
isTrackDownloaded(trackId: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a playlist is fully downloaded
|
|
80
|
+
*/
|
|
81
|
+
isPlaylistDownloaded(playlistId: string): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a playlist is partially downloaded
|
|
84
|
+
*/
|
|
85
|
+
isPlaylistPartiallyDownloaded(playlistId: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Get downloaded track by track ID
|
|
88
|
+
*/
|
|
89
|
+
getDownloadedTrack(trackId: string): DownloadedTrack | null;
|
|
90
|
+
/**
|
|
91
|
+
* Get all downloaded tracks
|
|
92
|
+
*/
|
|
93
|
+
getAllDownloadedTracks(): DownloadedTrack[];
|
|
94
|
+
/**
|
|
95
|
+
* Get downloaded playlist by playlist ID
|
|
96
|
+
*/
|
|
97
|
+
getDownloadedPlaylist(playlistId: string): DownloadedPlaylist | null;
|
|
98
|
+
/**
|
|
99
|
+
* Get all downloaded playlists
|
|
100
|
+
*/
|
|
101
|
+
getAllDownloadedPlaylists(): DownloadedPlaylist[];
|
|
102
|
+
/**
|
|
103
|
+
* Get local file path for a downloaded track
|
|
104
|
+
*/
|
|
105
|
+
getLocalPath(trackId: string): string | null;
|
|
106
|
+
/**
|
|
107
|
+
* Delete a downloaded track
|
|
108
|
+
*/
|
|
109
|
+
deleteDownloadedTrack(trackId: string): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Delete a downloaded playlist (all its tracks)
|
|
112
|
+
*/
|
|
113
|
+
deleteDownloadedPlaylist(playlistId: string): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Delete all downloaded content
|
|
116
|
+
*/
|
|
117
|
+
deleteAllDownloads(): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Get storage information
|
|
120
|
+
*/
|
|
121
|
+
getStorageInfo(): Promise<DownloadStorageInfo>;
|
|
122
|
+
/**
|
|
123
|
+
* Sync downloads - validates all downloads and removes orphaned records
|
|
124
|
+
* Call this to clean up after manual file deletion
|
|
125
|
+
* @returns number of orphaned records that were cleaned up
|
|
126
|
+
*/
|
|
127
|
+
syncDownloads(): number;
|
|
128
|
+
/**
|
|
129
|
+
* Set playback source preference
|
|
130
|
+
*/
|
|
131
|
+
setPlaybackSourcePreference(preference: PlaybackSource): void;
|
|
132
|
+
/**
|
|
133
|
+
* Get current playback source preference
|
|
134
|
+
*/
|
|
135
|
+
getPlaybackSourcePreference(): PlaybackSource;
|
|
136
|
+
/**
|
|
137
|
+
* Get the effective URL for a track (local or network based on preference)
|
|
138
|
+
*/
|
|
139
|
+
getEffectiveUrl(track: TrackItem): string;
|
|
140
|
+
/**
|
|
141
|
+
* Called when download progress updates
|
|
142
|
+
*/
|
|
143
|
+
onDownloadProgress(callback: (progress: DownloadProgress) => void): void;
|
|
144
|
+
/**
|
|
145
|
+
* Called when download state changes
|
|
146
|
+
*/
|
|
147
|
+
onDownloadStateChange(callback: (downloadId: string, trackId: string, state: DownloadState, error?: DownloadError) => void): void;
|
|
148
|
+
/**
|
|
149
|
+
* Called when a download completes
|
|
150
|
+
*/
|
|
151
|
+
onDownloadComplete(callback: (downloadedTrack: DownloadedTrack) => void): void;
|
|
152
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import type { EqualizerBand, EqualizerPreset, EqualizerState, GainRange } from '../types/EqualizerTypes';
|
|
3
|
+
export interface Equalizer extends HybridObject<{
|
|
4
|
+
android: 'kotlin';
|
|
5
|
+
ios: 'swift';
|
|
6
|
+
}> {
|
|
7
|
+
/** Enable or disable the equalizer */
|
|
8
|
+
setEnabled(enabled: boolean): boolean;
|
|
9
|
+
/** Check if equalizer is currently enabled */
|
|
10
|
+
isEnabled(): boolean;
|
|
11
|
+
/** Get all equalizer bands with current gain values */
|
|
12
|
+
getBands(): EqualizerBand[];
|
|
13
|
+
/** Set gain for a specific band index (-12 to +12 dB) */
|
|
14
|
+
setBandGain(bandIndex: number, gainDb: number): boolean;
|
|
15
|
+
/** Set gains for all bands at once (array of 5 values) */
|
|
16
|
+
setAllBandGains(gains: number[]): boolean;
|
|
17
|
+
/** Get the valid gain range for bands */
|
|
18
|
+
getBandRange(): GainRange;
|
|
19
|
+
/** Get all available presets (built-in + custom) */
|
|
20
|
+
getPresets(): EqualizerPreset[];
|
|
21
|
+
/** Get built-in presets only */
|
|
22
|
+
getBuiltInPresets(): EqualizerPreset[];
|
|
23
|
+
/** Get custom user presets only */
|
|
24
|
+
getCustomPresets(): EqualizerPreset[];
|
|
25
|
+
/** Apply a preset by name */
|
|
26
|
+
applyPreset(presetName: string): boolean;
|
|
27
|
+
/** Get currently applied preset name (null if custom values) */
|
|
28
|
+
getCurrentPresetName(): string | null;
|
|
29
|
+
/** Save current settings as a custom preset */
|
|
30
|
+
saveCustomPreset(name: string): boolean;
|
|
31
|
+
/** Delete a custom preset by name */
|
|
32
|
+
deleteCustomPreset(name: string): boolean;
|
|
33
|
+
/** Get complete equalizer state */
|
|
34
|
+
getState(): EqualizerState;
|
|
35
|
+
/** Reset to flat response (all bands at 0 dB) */
|
|
36
|
+
reset(): void;
|
|
37
|
+
/** Called when equalizer enabled state changes */
|
|
38
|
+
onEnabledChange(callback: (enabled: boolean) => void): void;
|
|
39
|
+
/** Called when any band gain changes */
|
|
40
|
+
onBandChange(callback: (bands: EqualizerBand[]) => void): void;
|
|
41
|
+
/** Called when preset changes */
|
|
42
|
+
onPresetChange(callback: (presetName: string | null) => void): void;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -25,11 +25,15 @@ export interface TrackPlayer extends HybridObject<{
|
|
|
25
25
|
}> {
|
|
26
26
|
play(): void;
|
|
27
27
|
pause(): void;
|
|
28
|
-
playSong(songId: string, fromPlaylist?: string): void
|
|
28
|
+
playSong(songId: string, fromPlaylist?: string): Promise<void>;
|
|
29
29
|
skipToNext(): void;
|
|
30
|
+
skipToIndex(index: number): Promise<boolean>;
|
|
30
31
|
skipToPrevious(): void;
|
|
31
32
|
seek(position: number): void;
|
|
32
|
-
|
|
33
|
+
addToUpNext(trackId: string): Promise<void>;
|
|
34
|
+
playNext(trackId: string): Promise<void>;
|
|
35
|
+
getActualQueue(): Promise<TrackItem[]>;
|
|
36
|
+
getState(): Promise<PlayerState>;
|
|
33
37
|
setRepeatMode(mode: RepeatMode): boolean;
|
|
34
38
|
configure(config: PlayerConfig): void;
|
|
35
39
|
onChangeTrack(callback: (track: TrackItem, reason?: Reason) => void): void;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { TrackItem, Playlist } from './PlayerQueue';
|
|
2
|
+
/**
|
|
3
|
+
* Storage location options for downloads
|
|
4
|
+
*/
|
|
5
|
+
export type StorageLocation = 'private' | 'public';
|
|
6
|
+
/**
|
|
7
|
+
* Current state of a download task
|
|
8
|
+
*/
|
|
9
|
+
export type DownloadState = 'pending' | 'downloading' | 'paused' | 'completed' | 'failed' | 'cancelled';
|
|
10
|
+
/**
|
|
11
|
+
* Reason for download failure
|
|
12
|
+
*/
|
|
13
|
+
export type DownloadErrorReason = 'network_error' | 'storage_full' | 'file_not_found' | 'permission_denied' | 'invalid_url' | 'timeout' | 'unknown';
|
|
14
|
+
/**
|
|
15
|
+
* Source preference for playback
|
|
16
|
+
*/
|
|
17
|
+
export type PlaybackSource = 'auto' | 'download' | 'network';
|
|
18
|
+
/**
|
|
19
|
+
* Progress information for a download
|
|
20
|
+
*/
|
|
21
|
+
export interface DownloadProgress {
|
|
22
|
+
trackId: string;
|
|
23
|
+
downloadId: string;
|
|
24
|
+
bytesDownloaded: number;
|
|
25
|
+
totalBytes: number;
|
|
26
|
+
progress: number;
|
|
27
|
+
state: DownloadState;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Download error information
|
|
31
|
+
*/
|
|
32
|
+
export interface DownloadError {
|
|
33
|
+
code: string;
|
|
34
|
+
message: string;
|
|
35
|
+
reason: DownloadErrorReason;
|
|
36
|
+
isRetryable: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A downloaded track with local file information
|
|
40
|
+
*/
|
|
41
|
+
export interface DownloadedTrack {
|
|
42
|
+
trackId: string;
|
|
43
|
+
originalTrack: TrackItem;
|
|
44
|
+
localPath: string;
|
|
45
|
+
localArtworkPath?: string | null;
|
|
46
|
+
downloadedAt: number;
|
|
47
|
+
fileSize: number;
|
|
48
|
+
storageLocation: StorageLocation;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A playlist with download information
|
|
52
|
+
*/
|
|
53
|
+
export interface DownloadedPlaylist {
|
|
54
|
+
playlistId: string;
|
|
55
|
+
originalPlaylist: Playlist;
|
|
56
|
+
downloadedTracks: DownloadedTrack[];
|
|
57
|
+
totalSize: number;
|
|
58
|
+
downloadedAt: number;
|
|
59
|
+
isComplete: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Download task information
|
|
63
|
+
*/
|
|
64
|
+
export interface DownloadTask {
|
|
65
|
+
downloadId: string;
|
|
66
|
+
trackId: string;
|
|
67
|
+
playlistId?: string | null;
|
|
68
|
+
state: DownloadState;
|
|
69
|
+
progress: DownloadProgress;
|
|
70
|
+
createdAt: number;
|
|
71
|
+
startedAt?: number | null;
|
|
72
|
+
completedAt?: number | null;
|
|
73
|
+
error?: DownloadError | null;
|
|
74
|
+
retryCount: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Configuration for the DownloadManager
|
|
78
|
+
*/
|
|
79
|
+
export interface DownloadConfig {
|
|
80
|
+
storageLocation?: StorageLocation;
|
|
81
|
+
maxConcurrentDownloads?: number;
|
|
82
|
+
autoRetry?: boolean;
|
|
83
|
+
maxRetryAttempts?: number;
|
|
84
|
+
backgroundDownloadsEnabled?: boolean;
|
|
85
|
+
downloadArtwork?: boolean;
|
|
86
|
+
customDownloadPath?: string | null;
|
|
87
|
+
wifiOnlyDownloads?: boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Summary of download storage usage
|
|
91
|
+
*/
|
|
92
|
+
export interface DownloadStorageInfo {
|
|
93
|
+
totalDownloadedSize: number;
|
|
94
|
+
trackCount: number;
|
|
95
|
+
playlistCount: number;
|
|
96
|
+
availableSpace: number;
|
|
97
|
+
totalSpace: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Download queue status
|
|
101
|
+
*/
|
|
102
|
+
export interface DownloadQueueStatus {
|
|
103
|
+
pendingCount: number;
|
|
104
|
+
activeCount: number;
|
|
105
|
+
completedCount: number;
|
|
106
|
+
failedCount: number;
|
|
107
|
+
totalBytesToDownload: number;
|
|
108
|
+
totalBytesDownloaded: number;
|
|
109
|
+
overallProgress: number;
|
|
110
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a single equalizer frequency band
|
|
3
|
+
*/
|
|
4
|
+
export interface EqualizerBand {
|
|
5
|
+
/** Band index (0-4) */
|
|
6
|
+
index: number;
|
|
7
|
+
/** Center frequency in Hz */
|
|
8
|
+
centerFrequency: number;
|
|
9
|
+
/** Current gain in dB (-12 to +12) */
|
|
10
|
+
gainDb: number;
|
|
11
|
+
/** Human-readable frequency label (e.g., "60 Hz", "3.6 kHz") */
|
|
12
|
+
frequencyLabel: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Preset type identifier
|
|
16
|
+
*/
|
|
17
|
+
export type PresetType = 'built-in' | 'custom';
|
|
18
|
+
/**
|
|
19
|
+
* Represents an equalizer preset (built-in or custom)
|
|
20
|
+
*/
|
|
21
|
+
export interface EqualizerPreset {
|
|
22
|
+
/** Unique preset name */
|
|
23
|
+
name: string;
|
|
24
|
+
/** Array of 5 gain values in dB for each band */
|
|
25
|
+
gains: number[];
|
|
26
|
+
/** Whether this is a built-in or custom preset */
|
|
27
|
+
type: PresetType;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Complete equalizer state
|
|
31
|
+
*/
|
|
32
|
+
export interface EqualizerState {
|
|
33
|
+
/** Whether equalizer is enabled */
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
/** Current band settings */
|
|
36
|
+
bands: EqualizerBand[];
|
|
37
|
+
/** Currently applied preset name (null if custom values) */
|
|
38
|
+
currentPreset: string | null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Gain range for equalizer bands
|
|
42
|
+
*/
|
|
43
|
+
export interface GainRange {
|
|
44
|
+
/** Minimum gain in dB */
|
|
45
|
+
min: number;
|
|
46
|
+
/** Maximum gain in dB */
|
|
47
|
+
max: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Built-in preset names
|
|
51
|
+
*/
|
|
52
|
+
export type BuiltInPresetName = 'Flat' | 'Bass Boost' | 'Bass Reducer' | 'Treble Boost' | 'Treble Reducer' | 'Vocal Boost' | 'Rock' | 'Pop' | 'Jazz' | 'Classical' | 'Hip Hop' | 'Electronic' | 'Acoustic' | 'R&B' | 'Loudness';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { AnyMap } from 'react-native-nitro-modules';
|
|
2
|
+
export type CurrentPlayingType = 'playlist' | 'up-next' | 'play-next' | 'not-playing';
|
|
1
3
|
export interface TrackItem {
|
|
2
4
|
id: string;
|
|
3
5
|
title: string;
|
|
@@ -6,6 +8,7 @@ export interface TrackItem {
|
|
|
6
8
|
duration: number;
|
|
7
9
|
url: string;
|
|
8
10
|
artwork?: string | null;
|
|
11
|
+
extraPayload?: AnyMap;
|
|
9
12
|
}
|
|
10
13
|
export interface Playlist {
|
|
11
14
|
id: string;
|
|
@@ -24,6 +27,7 @@ export interface PlayerState {
|
|
|
24
27
|
currentState: TrackPlayerState;
|
|
25
28
|
currentPlaylistId: string | null;
|
|
26
29
|
currentIndex: number;
|
|
30
|
+
currentPlayingType: CurrentPlayingType;
|
|
27
31
|
}
|
|
28
32
|
export interface PlayerConfig {
|
|
29
33
|
androidAutoEnabled?: boolean;
|
package/nitro.json
CHANGED
|
@@ -25,6 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"AudioRoutePicker": {
|
|
27
27
|
"swift": "HybridAudioRoutePicker"
|
|
28
|
+
},
|
|
29
|
+
"DownloadManager": {
|
|
30
|
+
"swift": "HybridDownloadManager",
|
|
31
|
+
"kotlin": "HybridDownloadManager"
|
|
32
|
+
},
|
|
33
|
+
"Equalizer": {
|
|
34
|
+
"swift": "HybridEqualizer",
|
|
35
|
+
"kotlin": "HybridEqualizer"
|
|
28
36
|
}
|
|
29
37
|
},
|
|
30
38
|
"ignorePaths": ["**/node_modules"]
|
|
@@ -36,14 +36,23 @@ target_sources(
|
|
|
36
36
|
../nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.cpp
|
|
37
37
|
../nitrogen/generated/shared/c++/HybridAudioDevicesSpec.cpp
|
|
38
38
|
../nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.cpp
|
|
39
|
+
../nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp
|
|
40
|
+
../nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp
|
|
39
41
|
../nitrogen/generated/shared/c++/HybridPlayerQueueSpec.cpp
|
|
40
42
|
../nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp
|
|
41
43
|
# Android-specific Nitrogen C++ sources
|
|
42
44
|
../nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp
|
|
43
45
|
../nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp
|
|
46
|
+
../nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp
|
|
47
|
+
../nitrogen/generated/android/c++/JVariant_NullType_String.cpp
|
|
48
|
+
../nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp
|
|
49
|
+
../nitrogen/generated/android/c++/JVariant_NullType_Double.cpp
|
|
50
|
+
../nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp
|
|
51
|
+
../nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp
|
|
52
|
+
../nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp
|
|
53
|
+
../nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp
|
|
44
54
|
../nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp
|
|
45
55
|
../nitrogen/generated/android/c++/JVariant_NullType_Playlist.cpp
|
|
46
|
-
../nitrogen/generated/android/c++/JVariant_NullType_String.cpp
|
|
47
56
|
../nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp
|
|
48
57
|
../nitrogen/generated/android/c++/JVariant_NullType_TrackItem.cpp
|
|
49
58
|
)
|
|
@@ -17,6 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
#include "JHybridAndroidAutoMediaLibrarySpec.hpp"
|
|
19
19
|
#include "JHybridAudioDevicesSpec.hpp"
|
|
20
|
+
#include "JHybridDownloadManagerSpec.hpp"
|
|
21
|
+
#include "JFunc_void_DownloadProgress.hpp"
|
|
22
|
+
#include "JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp"
|
|
23
|
+
#include "JFunc_void_DownloadedTrack.hpp"
|
|
24
|
+
#include "JHybridEqualizerSpec.hpp"
|
|
25
|
+
#include "JFunc_void_bool.hpp"
|
|
26
|
+
#include "JFunc_void_std__vector_EqualizerBand_.hpp"
|
|
27
|
+
#include "JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp"
|
|
20
28
|
#include "JHybridPlayerQueueSpec.hpp"
|
|
21
29
|
#include "JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp"
|
|
22
30
|
#include "JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp"
|
|
@@ -25,7 +33,6 @@
|
|
|
25
33
|
#include "JFunc_void_TrackPlayerState_std__optional_Reason_.hpp"
|
|
26
34
|
#include "JFunc_void_double_double.hpp"
|
|
27
35
|
#include "JFunc_void_double_double_std__optional_bool_.hpp"
|
|
28
|
-
#include "JFunc_void_bool.hpp"
|
|
29
36
|
#include <NitroModules/DefaultConstructableObject.hpp>
|
|
30
37
|
|
|
31
38
|
namespace margelo::nitro::nitroplayer {
|
|
@@ -39,6 +46,14 @@ int initialize(JavaVM* vm) {
|
|
|
39
46
|
// Register native JNI methods
|
|
40
47
|
margelo::nitro::nitroplayer::JHybridAndroidAutoMediaLibrarySpec::registerNatives();
|
|
41
48
|
margelo::nitro::nitroplayer::JHybridAudioDevicesSpec::registerNatives();
|
|
49
|
+
margelo::nitro::nitroplayer::JHybridDownloadManagerSpec::registerNatives();
|
|
50
|
+
margelo::nitro::nitroplayer::JFunc_void_DownloadProgress_cxx::registerNatives();
|
|
51
|
+
margelo::nitro::nitroplayer::JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError__cxx::registerNatives();
|
|
52
|
+
margelo::nitro::nitroplayer::JFunc_void_DownloadedTrack_cxx::registerNatives();
|
|
53
|
+
margelo::nitro::nitroplayer::JHybridEqualizerSpec::registerNatives();
|
|
54
|
+
margelo::nitro::nitroplayer::JFunc_void_bool_cxx::registerNatives();
|
|
55
|
+
margelo::nitro::nitroplayer::JFunc_void_std__vector_EqualizerBand__cxx::registerNatives();
|
|
56
|
+
margelo::nitro::nitroplayer::JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::registerNatives();
|
|
42
57
|
margelo::nitro::nitroplayer::JHybridPlayerQueueSpec::registerNatives();
|
|
43
58
|
margelo::nitro::nitroplayer::JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx::registerNatives();
|
|
44
59
|
margelo::nitro::nitroplayer::JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::registerNatives();
|
|
@@ -47,7 +62,6 @@ int initialize(JavaVM* vm) {
|
|
|
47
62
|
margelo::nitro::nitroplayer::JFunc_void_TrackPlayerState_std__optional_Reason__cxx::registerNatives();
|
|
48
63
|
margelo::nitro::nitroplayer::JFunc_void_double_double_cxx::registerNatives();
|
|
49
64
|
margelo::nitro::nitroplayer::JFunc_void_double_double_std__optional_bool__cxx::registerNatives();
|
|
50
|
-
margelo::nitro::nitroplayer::JFunc_void_bool_cxx::registerNatives();
|
|
51
65
|
|
|
52
66
|
// Register Nitro Hybrid Objects
|
|
53
67
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
@@ -82,6 +96,22 @@ int initialize(JavaVM* vm) {
|
|
|
82
96
|
return instance->cthis()->shared();
|
|
83
97
|
}
|
|
84
98
|
);
|
|
99
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
100
|
+
"DownloadManager",
|
|
101
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
102
|
+
static DefaultConstructableObject<JHybridDownloadManagerSpec::javaobject> object("com/margelo/nitro/nitroplayer/HybridDownloadManager");
|
|
103
|
+
auto instance = object.create();
|
|
104
|
+
return instance->cthis()->shared();
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
108
|
+
"Equalizer",
|
|
109
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
110
|
+
static DefaultConstructableObject<JHybridEqualizerSpec::javaobject> object("com/margelo/nitro/nitroplayer/HybridEqualizer");
|
|
111
|
+
auto instance = object.create();
|
|
112
|
+
return instance->cthis()->shared();
|
|
113
|
+
}
|
|
114
|
+
);
|
|
85
115
|
});
|
|
86
116
|
}
|
|
87
117
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JCurrentPlayingType.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "CurrentPlayingType.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroplayer {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "CurrentPlayingType" and the the Kotlin enum "CurrentPlayingType".
|
|
19
|
+
*/
|
|
20
|
+
struct JCurrentPlayingType final: public jni::JavaClass<JCurrentPlayingType> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/CurrentPlayingType;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum CurrentPlayingType.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
CurrentPlayingType toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<CurrentPlayingType>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JCurrentPlayingType> fromCpp(CurrentPlayingType value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldPLAYLIST = clazz->getStaticField<JCurrentPlayingType>("PLAYLIST");
|
|
45
|
+
static const auto fieldUP_NEXT = clazz->getStaticField<JCurrentPlayingType>("UP_NEXT");
|
|
46
|
+
static const auto fieldPLAY_NEXT = clazz->getStaticField<JCurrentPlayingType>("PLAY_NEXT");
|
|
47
|
+
static const auto fieldNOT_PLAYING = clazz->getStaticField<JCurrentPlayingType>("NOT_PLAYING");
|
|
48
|
+
|
|
49
|
+
switch (value) {
|
|
50
|
+
case CurrentPlayingType::PLAYLIST:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldPLAYLIST);
|
|
52
|
+
case CurrentPlayingType::UP_NEXT:
|
|
53
|
+
return clazz->getStaticFieldValue(fieldUP_NEXT);
|
|
54
|
+
case CurrentPlayingType::PLAY_NEXT:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldPLAY_NEXT);
|
|
56
|
+
case CurrentPlayingType::NOT_PLAYING:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldNOT_PLAYING);
|
|
58
|
+
default:
|
|
59
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
60
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::nitroplayer
|