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,97 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadProgress.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
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `DownloadState` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::nitroplayer { enum class DownloadState; }
|
|
28
|
+
|
|
29
|
+
#include <string>
|
|
30
|
+
#include "DownloadState.hpp"
|
|
31
|
+
|
|
32
|
+
namespace margelo::nitro::nitroplayer {
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A struct which can be represented as a JavaScript object (DownloadProgress).
|
|
36
|
+
*/
|
|
37
|
+
struct DownloadProgress {
|
|
38
|
+
public:
|
|
39
|
+
std::string trackId SWIFT_PRIVATE;
|
|
40
|
+
std::string downloadId SWIFT_PRIVATE;
|
|
41
|
+
double bytesDownloaded SWIFT_PRIVATE;
|
|
42
|
+
double totalBytes SWIFT_PRIVATE;
|
|
43
|
+
double progress SWIFT_PRIVATE;
|
|
44
|
+
DownloadState state SWIFT_PRIVATE;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
DownloadProgress() = default;
|
|
48
|
+
explicit DownloadProgress(std::string trackId, std::string downloadId, double bytesDownloaded, double totalBytes, double progress, DownloadState state): trackId(trackId), downloadId(downloadId), bytesDownloaded(bytesDownloaded), totalBytes(totalBytes), progress(progress), state(state) {}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
} // namespace margelo::nitro::nitroplayer
|
|
52
|
+
|
|
53
|
+
namespace margelo::nitro {
|
|
54
|
+
|
|
55
|
+
// C++ DownloadProgress <> JS DownloadProgress (object)
|
|
56
|
+
template <>
|
|
57
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadProgress> final {
|
|
58
|
+
static inline margelo::nitro::nitroplayer::DownloadProgress fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
59
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
60
|
+
return margelo::nitro::nitroplayer::DownloadProgress(
|
|
61
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trackId")),
|
|
62
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "downloadId")),
|
|
63
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "bytesDownloaded")),
|
|
64
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytes")),
|
|
65
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "progress")),
|
|
66
|
+
JSIConverter<margelo::nitro::nitroplayer::DownloadState>::fromJSI(runtime, obj.getProperty(runtime, "state"))
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadProgress& arg) {
|
|
70
|
+
jsi::Object obj(runtime);
|
|
71
|
+
obj.setProperty(runtime, "trackId", JSIConverter<std::string>::toJSI(runtime, arg.trackId));
|
|
72
|
+
obj.setProperty(runtime, "downloadId", JSIConverter<std::string>::toJSI(runtime, arg.downloadId));
|
|
73
|
+
obj.setProperty(runtime, "bytesDownloaded", JSIConverter<double>::toJSI(runtime, arg.bytesDownloaded));
|
|
74
|
+
obj.setProperty(runtime, "totalBytes", JSIConverter<double>::toJSI(runtime, arg.totalBytes));
|
|
75
|
+
obj.setProperty(runtime, "progress", JSIConverter<double>::toJSI(runtime, arg.progress));
|
|
76
|
+
obj.setProperty(runtime, "state", JSIConverter<margelo::nitro::nitroplayer::DownloadState>::toJSI(runtime, arg.state));
|
|
77
|
+
return obj;
|
|
78
|
+
}
|
|
79
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
80
|
+
if (!value.isObject()) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
jsi::Object obj = value.getObject(runtime);
|
|
84
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trackId"))) return false;
|
|
88
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "downloadId"))) return false;
|
|
89
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "bytesDownloaded"))) return false;
|
|
90
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytes"))) return false;
|
|
91
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "progress"))) return false;
|
|
92
|
+
if (!JSIConverter<margelo::nitro::nitroplayer::DownloadState>::canConvert(runtime, obj.getProperty(runtime, "state"))) return false;
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadQueueStatus.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
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
namespace margelo::nitro::nitroplayer {
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A struct which can be represented as a JavaScript object (DownloadQueueStatus).
|
|
34
|
+
*/
|
|
35
|
+
struct DownloadQueueStatus {
|
|
36
|
+
public:
|
|
37
|
+
double pendingCount SWIFT_PRIVATE;
|
|
38
|
+
double activeCount SWIFT_PRIVATE;
|
|
39
|
+
double completedCount SWIFT_PRIVATE;
|
|
40
|
+
double failedCount SWIFT_PRIVATE;
|
|
41
|
+
double totalBytesToDownload SWIFT_PRIVATE;
|
|
42
|
+
double totalBytesDownloaded SWIFT_PRIVATE;
|
|
43
|
+
double overallProgress SWIFT_PRIVATE;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
DownloadQueueStatus() = default;
|
|
47
|
+
explicit DownloadQueueStatus(double pendingCount, double activeCount, double completedCount, double failedCount, double totalBytesToDownload, double totalBytesDownloaded, double overallProgress): pendingCount(pendingCount), activeCount(activeCount), completedCount(completedCount), failedCount(failedCount), totalBytesToDownload(totalBytesToDownload), totalBytesDownloaded(totalBytesDownloaded), overallProgress(overallProgress) {}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
} // namespace margelo::nitro::nitroplayer
|
|
51
|
+
|
|
52
|
+
namespace margelo::nitro {
|
|
53
|
+
|
|
54
|
+
// C++ DownloadQueueStatus <> JS DownloadQueueStatus (object)
|
|
55
|
+
template <>
|
|
56
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadQueueStatus> final {
|
|
57
|
+
static inline margelo::nitro::nitroplayer::DownloadQueueStatus fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
58
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
59
|
+
return margelo::nitro::nitroplayer::DownloadQueueStatus(
|
|
60
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pendingCount")),
|
|
61
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "activeCount")),
|
|
62
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "completedCount")),
|
|
63
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "failedCount")),
|
|
64
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytesToDownload")),
|
|
65
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalBytesDownloaded")),
|
|
66
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "overallProgress"))
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadQueueStatus& arg) {
|
|
70
|
+
jsi::Object obj(runtime);
|
|
71
|
+
obj.setProperty(runtime, "pendingCount", JSIConverter<double>::toJSI(runtime, arg.pendingCount));
|
|
72
|
+
obj.setProperty(runtime, "activeCount", JSIConverter<double>::toJSI(runtime, arg.activeCount));
|
|
73
|
+
obj.setProperty(runtime, "completedCount", JSIConverter<double>::toJSI(runtime, arg.completedCount));
|
|
74
|
+
obj.setProperty(runtime, "failedCount", JSIConverter<double>::toJSI(runtime, arg.failedCount));
|
|
75
|
+
obj.setProperty(runtime, "totalBytesToDownload", JSIConverter<double>::toJSI(runtime, arg.totalBytesToDownload));
|
|
76
|
+
obj.setProperty(runtime, "totalBytesDownloaded", JSIConverter<double>::toJSI(runtime, arg.totalBytesDownloaded));
|
|
77
|
+
obj.setProperty(runtime, "overallProgress", JSIConverter<double>::toJSI(runtime, arg.overallProgress));
|
|
78
|
+
return obj;
|
|
79
|
+
}
|
|
80
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
81
|
+
if (!value.isObject()) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
jsi::Object obj = value.getObject(runtime);
|
|
85
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pendingCount"))) return false;
|
|
89
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "activeCount"))) return false;
|
|
90
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "completedCount"))) return false;
|
|
91
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "failedCount"))) return false;
|
|
92
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytesToDownload"))) return false;
|
|
93
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalBytesDownloaded"))) return false;
|
|
94
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "overallProgress"))) return false;
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadState.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
|
+
#if __has_include(<NitroModules/NitroHash.hpp>)
|
|
11
|
+
#include <NitroModules/NitroHash.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
16
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
21
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
namespace margelo::nitro::nitroplayer {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (DownloadState).
|
|
30
|
+
*/
|
|
31
|
+
enum class DownloadState {
|
|
32
|
+
PENDING SWIFT_NAME(pending) = 0,
|
|
33
|
+
DOWNLOADING SWIFT_NAME(downloading) = 1,
|
|
34
|
+
PAUSED SWIFT_NAME(paused) = 2,
|
|
35
|
+
COMPLETED SWIFT_NAME(completed) = 3,
|
|
36
|
+
FAILED SWIFT_NAME(failed) = 4,
|
|
37
|
+
CANCELLED SWIFT_NAME(cancelled) = 5,
|
|
38
|
+
} CLOSED_ENUM;
|
|
39
|
+
|
|
40
|
+
} // namespace margelo::nitro::nitroplayer
|
|
41
|
+
|
|
42
|
+
namespace margelo::nitro {
|
|
43
|
+
|
|
44
|
+
// C++ DownloadState <> JS DownloadState (union)
|
|
45
|
+
template <>
|
|
46
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadState> final {
|
|
47
|
+
static inline margelo::nitro::nitroplayer::DownloadState fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
48
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
49
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
50
|
+
case hashString("pending"): return margelo::nitro::nitroplayer::DownloadState::PENDING;
|
|
51
|
+
case hashString("downloading"): return margelo::nitro::nitroplayer::DownloadState::DOWNLOADING;
|
|
52
|
+
case hashString("paused"): return margelo::nitro::nitroplayer::DownloadState::PAUSED;
|
|
53
|
+
case hashString("completed"): return margelo::nitro::nitroplayer::DownloadState::COMPLETED;
|
|
54
|
+
case hashString("failed"): return margelo::nitro::nitroplayer::DownloadState::FAILED;
|
|
55
|
+
case hashString("cancelled"): return margelo::nitro::nitroplayer::DownloadState::CANCELLED;
|
|
56
|
+
default: [[unlikely]]
|
|
57
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum DownloadState - invalid value!");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitroplayer::DownloadState arg) {
|
|
61
|
+
switch (arg) {
|
|
62
|
+
case margelo::nitro::nitroplayer::DownloadState::PENDING: return JSIConverter<std::string>::toJSI(runtime, "pending");
|
|
63
|
+
case margelo::nitro::nitroplayer::DownloadState::DOWNLOADING: return JSIConverter<std::string>::toJSI(runtime, "downloading");
|
|
64
|
+
case margelo::nitro::nitroplayer::DownloadState::PAUSED: return JSIConverter<std::string>::toJSI(runtime, "paused");
|
|
65
|
+
case margelo::nitro::nitroplayer::DownloadState::COMPLETED: return JSIConverter<std::string>::toJSI(runtime, "completed");
|
|
66
|
+
case margelo::nitro::nitroplayer::DownloadState::FAILED: return JSIConverter<std::string>::toJSI(runtime, "failed");
|
|
67
|
+
case margelo::nitro::nitroplayer::DownloadState::CANCELLED: return JSIConverter<std::string>::toJSI(runtime, "cancelled");
|
|
68
|
+
default: [[unlikely]]
|
|
69
|
+
throw std::invalid_argument("Cannot convert DownloadState to JS - invalid value: "
|
|
70
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
74
|
+
if (!value.isString()) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
78
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
79
|
+
case hashString("pending"):
|
|
80
|
+
case hashString("downloading"):
|
|
81
|
+
case hashString("paused"):
|
|
82
|
+
case hashString("completed"):
|
|
83
|
+
case hashString("failed"):
|
|
84
|
+
case hashString("cancelled"):
|
|
85
|
+
return true;
|
|
86
|
+
default:
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadStorageInfo.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
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
namespace margelo::nitro::nitroplayer {
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A struct which can be represented as a JavaScript object (DownloadStorageInfo).
|
|
34
|
+
*/
|
|
35
|
+
struct DownloadStorageInfo {
|
|
36
|
+
public:
|
|
37
|
+
double totalDownloadedSize SWIFT_PRIVATE;
|
|
38
|
+
double trackCount SWIFT_PRIVATE;
|
|
39
|
+
double playlistCount SWIFT_PRIVATE;
|
|
40
|
+
double availableSpace SWIFT_PRIVATE;
|
|
41
|
+
double totalSpace SWIFT_PRIVATE;
|
|
42
|
+
|
|
43
|
+
public:
|
|
44
|
+
DownloadStorageInfo() = default;
|
|
45
|
+
explicit DownloadStorageInfo(double totalDownloadedSize, double trackCount, double playlistCount, double availableSpace, double totalSpace): totalDownloadedSize(totalDownloadedSize), trackCount(trackCount), playlistCount(playlistCount), availableSpace(availableSpace), totalSpace(totalSpace) {}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
} // namespace margelo::nitro::nitroplayer
|
|
49
|
+
|
|
50
|
+
namespace margelo::nitro {
|
|
51
|
+
|
|
52
|
+
// C++ DownloadStorageInfo <> JS DownloadStorageInfo (object)
|
|
53
|
+
template <>
|
|
54
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadStorageInfo> final {
|
|
55
|
+
static inline margelo::nitro::nitroplayer::DownloadStorageInfo fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
56
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
57
|
+
return margelo::nitro::nitroplayer::DownloadStorageInfo(
|
|
58
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalDownloadedSize")),
|
|
59
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "trackCount")),
|
|
60
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "playlistCount")),
|
|
61
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "availableSpace")),
|
|
62
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalSpace"))
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadStorageInfo& arg) {
|
|
66
|
+
jsi::Object obj(runtime);
|
|
67
|
+
obj.setProperty(runtime, "totalDownloadedSize", JSIConverter<double>::toJSI(runtime, arg.totalDownloadedSize));
|
|
68
|
+
obj.setProperty(runtime, "trackCount", JSIConverter<double>::toJSI(runtime, arg.trackCount));
|
|
69
|
+
obj.setProperty(runtime, "playlistCount", JSIConverter<double>::toJSI(runtime, arg.playlistCount));
|
|
70
|
+
obj.setProperty(runtime, "availableSpace", JSIConverter<double>::toJSI(runtime, arg.availableSpace));
|
|
71
|
+
obj.setProperty(runtime, "totalSpace", JSIConverter<double>::toJSI(runtime, arg.totalSpace));
|
|
72
|
+
return obj;
|
|
73
|
+
}
|
|
74
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
75
|
+
if (!value.isObject()) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
jsi::Object obj = value.getObject(runtime);
|
|
79
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalDownloadedSize"))) return false;
|
|
83
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "trackCount"))) return false;
|
|
84
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "playlistCount"))) return false;
|
|
85
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "availableSpace"))) return false;
|
|
86
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalSpace"))) return false;
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadTask.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
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `DownloadState` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::nitroplayer { enum class DownloadState; }
|
|
28
|
+
// Forward declaration of `DownloadProgress` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::nitroplayer { struct DownloadProgress; }
|
|
30
|
+
// Forward declaration of `DownloadError` to properly resolve imports.
|
|
31
|
+
namespace margelo::nitro::nitroplayer { struct DownloadError; }
|
|
32
|
+
|
|
33
|
+
#include <string>
|
|
34
|
+
#include <NitroModules/Null.hpp>
|
|
35
|
+
#include <variant>
|
|
36
|
+
#include <optional>
|
|
37
|
+
#include "DownloadState.hpp"
|
|
38
|
+
#include "DownloadProgress.hpp"
|
|
39
|
+
#include "DownloadError.hpp"
|
|
40
|
+
|
|
41
|
+
namespace margelo::nitro::nitroplayer {
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* A struct which can be represented as a JavaScript object (DownloadTask).
|
|
45
|
+
*/
|
|
46
|
+
struct DownloadTask {
|
|
47
|
+
public:
|
|
48
|
+
std::string downloadId SWIFT_PRIVATE;
|
|
49
|
+
std::string trackId SWIFT_PRIVATE;
|
|
50
|
+
std::optional<std::variant<nitro::NullType, std::string>> playlistId SWIFT_PRIVATE;
|
|
51
|
+
DownloadState state SWIFT_PRIVATE;
|
|
52
|
+
DownloadProgress progress SWIFT_PRIVATE;
|
|
53
|
+
double createdAt SWIFT_PRIVATE;
|
|
54
|
+
std::optional<std::variant<nitro::NullType, double>> startedAt SWIFT_PRIVATE;
|
|
55
|
+
std::optional<std::variant<nitro::NullType, double>> completedAt SWIFT_PRIVATE;
|
|
56
|
+
std::optional<std::variant<nitro::NullType, DownloadError>> error SWIFT_PRIVATE;
|
|
57
|
+
double retryCount SWIFT_PRIVATE;
|
|
58
|
+
|
|
59
|
+
public:
|
|
60
|
+
DownloadTask() = default;
|
|
61
|
+
explicit DownloadTask(std::string downloadId, std::string trackId, std::optional<std::variant<nitro::NullType, std::string>> playlistId, DownloadState state, DownloadProgress progress, double createdAt, std::optional<std::variant<nitro::NullType, double>> startedAt, std::optional<std::variant<nitro::NullType, double>> completedAt, std::optional<std::variant<nitro::NullType, DownloadError>> error, double retryCount): downloadId(downloadId), trackId(trackId), playlistId(playlistId), state(state), progress(progress), createdAt(createdAt), startedAt(startedAt), completedAt(completedAt), error(error), retryCount(retryCount) {}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
} // namespace margelo::nitro::nitroplayer
|
|
65
|
+
|
|
66
|
+
namespace margelo::nitro {
|
|
67
|
+
|
|
68
|
+
// C++ DownloadTask <> JS DownloadTask (object)
|
|
69
|
+
template <>
|
|
70
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadTask> final {
|
|
71
|
+
static inline margelo::nitro::nitroplayer::DownloadTask fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
72
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
73
|
+
return margelo::nitro::nitroplayer::DownloadTask(
|
|
74
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "downloadId")),
|
|
75
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trackId")),
|
|
76
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "playlistId")),
|
|
77
|
+
JSIConverter<margelo::nitro::nitroplayer::DownloadState>::fromJSI(runtime, obj.getProperty(runtime, "state")),
|
|
78
|
+
JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::fromJSI(runtime, obj.getProperty(runtime, "progress")),
|
|
79
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "createdAt")),
|
|
80
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, "startedAt")),
|
|
81
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, "completedAt")),
|
|
82
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::fromJSI(runtime, obj.getProperty(runtime, "error")),
|
|
83
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "retryCount"))
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadTask& arg) {
|
|
87
|
+
jsi::Object obj(runtime);
|
|
88
|
+
obj.setProperty(runtime, "downloadId", JSIConverter<std::string>::toJSI(runtime, arg.downloadId));
|
|
89
|
+
obj.setProperty(runtime, "trackId", JSIConverter<std::string>::toJSI(runtime, arg.trackId));
|
|
90
|
+
obj.setProperty(runtime, "playlistId", JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.playlistId));
|
|
91
|
+
obj.setProperty(runtime, "state", JSIConverter<margelo::nitro::nitroplayer::DownloadState>::toJSI(runtime, arg.state));
|
|
92
|
+
obj.setProperty(runtime, "progress", JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::toJSI(runtime, arg.progress));
|
|
93
|
+
obj.setProperty(runtime, "createdAt", JSIConverter<double>::toJSI(runtime, arg.createdAt));
|
|
94
|
+
obj.setProperty(runtime, "startedAt", JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.startedAt));
|
|
95
|
+
obj.setProperty(runtime, "completedAt", JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.completedAt));
|
|
96
|
+
obj.setProperty(runtime, "error", JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::toJSI(runtime, arg.error));
|
|
97
|
+
obj.setProperty(runtime, "retryCount", JSIConverter<double>::toJSI(runtime, arg.retryCount));
|
|
98
|
+
return obj;
|
|
99
|
+
}
|
|
100
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
101
|
+
if (!value.isObject()) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
jsi::Object obj = value.getObject(runtime);
|
|
105
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "downloadId"))) return false;
|
|
109
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trackId"))) return false;
|
|
110
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, "playlistId"))) return false;
|
|
111
|
+
if (!JSIConverter<margelo::nitro::nitroplayer::DownloadState>::canConvert(runtime, obj.getProperty(runtime, "state"))) return false;
|
|
112
|
+
if (!JSIConverter<margelo::nitro::nitroplayer::DownloadProgress>::canConvert(runtime, obj.getProperty(runtime, "progress"))) return false;
|
|
113
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "createdAt"))) return false;
|
|
114
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, "startedAt"))) return false;
|
|
115
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, "completedAt"))) return false;
|
|
116
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::nitroplayer::DownloadError>>>::canConvert(runtime, obj.getProperty(runtime, "error"))) return false;
|
|
117
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "retryCount"))) return false;
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// DownloadedPlaylist.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
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `Playlist` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::nitroplayer { struct Playlist; }
|
|
28
|
+
// Forward declaration of `DownloadedTrack` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::nitroplayer { struct DownloadedTrack; }
|
|
30
|
+
|
|
31
|
+
#include <string>
|
|
32
|
+
#include "Playlist.hpp"
|
|
33
|
+
#include "DownloadedTrack.hpp"
|
|
34
|
+
#include <vector>
|
|
35
|
+
|
|
36
|
+
namespace margelo::nitro::nitroplayer {
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A struct which can be represented as a JavaScript object (DownloadedPlaylist).
|
|
40
|
+
*/
|
|
41
|
+
struct DownloadedPlaylist {
|
|
42
|
+
public:
|
|
43
|
+
std::string playlistId SWIFT_PRIVATE;
|
|
44
|
+
Playlist originalPlaylist SWIFT_PRIVATE;
|
|
45
|
+
std::vector<DownloadedTrack> downloadedTracks SWIFT_PRIVATE;
|
|
46
|
+
double totalSize SWIFT_PRIVATE;
|
|
47
|
+
double downloadedAt SWIFT_PRIVATE;
|
|
48
|
+
bool isComplete SWIFT_PRIVATE;
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
DownloadedPlaylist() = default;
|
|
52
|
+
explicit DownloadedPlaylist(std::string playlistId, Playlist originalPlaylist, std::vector<DownloadedTrack> downloadedTracks, double totalSize, double downloadedAt, bool isComplete): playlistId(playlistId), originalPlaylist(originalPlaylist), downloadedTracks(downloadedTracks), totalSize(totalSize), downloadedAt(downloadedAt), isComplete(isComplete) {}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
} // namespace margelo::nitro::nitroplayer
|
|
56
|
+
|
|
57
|
+
namespace margelo::nitro {
|
|
58
|
+
|
|
59
|
+
// C++ DownloadedPlaylist <> JS DownloadedPlaylist (object)
|
|
60
|
+
template <>
|
|
61
|
+
struct JSIConverter<margelo::nitro::nitroplayer::DownloadedPlaylist> final {
|
|
62
|
+
static inline margelo::nitro::nitroplayer::DownloadedPlaylist fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
63
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
64
|
+
return margelo::nitro::nitroplayer::DownloadedPlaylist(
|
|
65
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "playlistId")),
|
|
66
|
+
JSIConverter<margelo::nitro::nitroplayer::Playlist>::fromJSI(runtime, obj.getProperty(runtime, "originalPlaylist")),
|
|
67
|
+
JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::fromJSI(runtime, obj.getProperty(runtime, "downloadedTracks")),
|
|
68
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "totalSize")),
|
|
69
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "downloadedAt")),
|
|
70
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isComplete"))
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitroplayer::DownloadedPlaylist& arg) {
|
|
74
|
+
jsi::Object obj(runtime);
|
|
75
|
+
obj.setProperty(runtime, "playlistId", JSIConverter<std::string>::toJSI(runtime, arg.playlistId));
|
|
76
|
+
obj.setProperty(runtime, "originalPlaylist", JSIConverter<margelo::nitro::nitroplayer::Playlist>::toJSI(runtime, arg.originalPlaylist));
|
|
77
|
+
obj.setProperty(runtime, "downloadedTracks", JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::toJSI(runtime, arg.downloadedTracks));
|
|
78
|
+
obj.setProperty(runtime, "totalSize", JSIConverter<double>::toJSI(runtime, arg.totalSize));
|
|
79
|
+
obj.setProperty(runtime, "downloadedAt", JSIConverter<double>::toJSI(runtime, arg.downloadedAt));
|
|
80
|
+
obj.setProperty(runtime, "isComplete", JSIConverter<bool>::toJSI(runtime, arg.isComplete));
|
|
81
|
+
return obj;
|
|
82
|
+
}
|
|
83
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
84
|
+
if (!value.isObject()) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
jsi::Object obj = value.getObject(runtime);
|
|
88
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "playlistId"))) return false;
|
|
92
|
+
if (!JSIConverter<margelo::nitro::nitroplayer::Playlist>::canConvert(runtime, obj.getProperty(runtime, "originalPlaylist"))) return false;
|
|
93
|
+
if (!JSIConverter<std::vector<margelo::nitro::nitroplayer::DownloadedTrack>>::canConvert(runtime, obj.getProperty(runtime, "downloadedTracks"))) return false;
|
|
94
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "totalSize"))) return false;
|
|
95
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "downloadedAt"))) return false;
|
|
96
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isComplete"))) return false;
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
} // namespace margelo::nitro
|