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,99 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridDownloadManagerSpec.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 <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridDownloadManagerSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::nitroplayer {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridDownloadManagerSpec: public jni::HybridClass<JHybridDownloadManagerSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridDownloadManagerSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridDownloadManagerSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridDownloadManagerSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridDownloadManagerSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridDownloadManagerSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridDownloadManagerSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
void configure(const DownloadConfig& config) override;
|
|
58
|
+
DownloadConfig getConfig() override;
|
|
59
|
+
std::shared_ptr<Promise<std::string>> downloadTrack(const TrackItem& track, const std::optional<std::string>& playlistId) override;
|
|
60
|
+
std::shared_ptr<Promise<std::vector<std::string>>> downloadPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks) override;
|
|
61
|
+
std::shared_ptr<Promise<void>> pauseDownload(const std::string& downloadId) override;
|
|
62
|
+
std::shared_ptr<Promise<void>> resumeDownload(const std::string& downloadId) override;
|
|
63
|
+
std::shared_ptr<Promise<void>> cancelDownload(const std::string& downloadId) override;
|
|
64
|
+
std::shared_ptr<Promise<void>> retryDownload(const std::string& downloadId) override;
|
|
65
|
+
std::shared_ptr<Promise<void>> pauseAllDownloads() override;
|
|
66
|
+
std::shared_ptr<Promise<void>> resumeAllDownloads() override;
|
|
67
|
+
std::shared_ptr<Promise<void>> cancelAllDownloads() override;
|
|
68
|
+
std::variant<nitro::NullType, DownloadTask> getDownloadTask(const std::string& downloadId) override;
|
|
69
|
+
std::vector<DownloadTask> getActiveDownloads() override;
|
|
70
|
+
DownloadQueueStatus getQueueStatus() override;
|
|
71
|
+
bool isDownloading(const std::string& trackId) override;
|
|
72
|
+
DownloadState getDownloadState(const std::string& trackId) override;
|
|
73
|
+
bool isTrackDownloaded(const std::string& trackId) override;
|
|
74
|
+
bool isPlaylistDownloaded(const std::string& playlistId) override;
|
|
75
|
+
bool isPlaylistPartiallyDownloaded(const std::string& playlistId) override;
|
|
76
|
+
std::variant<nitro::NullType, DownloadedTrack> getDownloadedTrack(const std::string& trackId) override;
|
|
77
|
+
std::vector<DownloadedTrack> getAllDownloadedTracks() override;
|
|
78
|
+
std::variant<nitro::NullType, DownloadedPlaylist> getDownloadedPlaylist(const std::string& playlistId) override;
|
|
79
|
+
std::vector<DownloadedPlaylist> getAllDownloadedPlaylists() override;
|
|
80
|
+
std::variant<nitro::NullType, std::string> getLocalPath(const std::string& trackId) override;
|
|
81
|
+
std::shared_ptr<Promise<void>> deleteDownloadedTrack(const std::string& trackId) override;
|
|
82
|
+
std::shared_ptr<Promise<void>> deleteDownloadedPlaylist(const std::string& playlistId) override;
|
|
83
|
+
std::shared_ptr<Promise<void>> deleteAllDownloads() override;
|
|
84
|
+
std::shared_ptr<Promise<DownloadStorageInfo>> getStorageInfo() override;
|
|
85
|
+
double syncDownloads() override;
|
|
86
|
+
void setPlaybackSourcePreference(PlaybackSource preference) override;
|
|
87
|
+
PlaybackSource getPlaybackSourcePreference() override;
|
|
88
|
+
std::string getEffectiveUrl(const TrackItem& track) override;
|
|
89
|
+
void onDownloadProgress(const std::function<void(const DownloadProgress& /* progress */)>& callback) override;
|
|
90
|
+
void onDownloadStateChange(const std::function<void(const std::string& /* downloadId */, const std::string& /* trackId */, DownloadState /* state */, const std::optional<DownloadError>& /* error */)>& callback) override;
|
|
91
|
+
void onDownloadComplete(const std::function<void(const DownloadedTrack& /* downloadedTrack */)>& callback) override;
|
|
92
|
+
|
|
93
|
+
private:
|
|
94
|
+
friend HybridBase;
|
|
95
|
+
using HybridBase::HybridBase;
|
|
96
|
+
jni::global_ref<JHybridDownloadManagerSpec::javaobject> _javaPart;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridEqualizerSpec.cpp
|
|
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
|
+
#include "JHybridEqualizerSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `EqualizerBand` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::nitroplayer { struct EqualizerBand; }
|
|
12
|
+
// Forward declaration of `GainRange` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::nitroplayer { struct GainRange; }
|
|
14
|
+
// Forward declaration of `EqualizerPreset` to properly resolve imports.
|
|
15
|
+
namespace margelo::nitro::nitroplayer { struct EqualizerPreset; }
|
|
16
|
+
// Forward declaration of `PresetType` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::nitroplayer { enum class PresetType; }
|
|
18
|
+
// Forward declaration of `EqualizerState` to properly resolve imports.
|
|
19
|
+
namespace margelo::nitro::nitroplayer { struct EqualizerState; }
|
|
20
|
+
|
|
21
|
+
#include "EqualizerBand.hpp"
|
|
22
|
+
#include <vector>
|
|
23
|
+
#include "JEqualizerBand.hpp"
|
|
24
|
+
#include <string>
|
|
25
|
+
#include "GainRange.hpp"
|
|
26
|
+
#include "JGainRange.hpp"
|
|
27
|
+
#include "EqualizerPreset.hpp"
|
|
28
|
+
#include "JEqualizerPreset.hpp"
|
|
29
|
+
#include "PresetType.hpp"
|
|
30
|
+
#include "JPresetType.hpp"
|
|
31
|
+
#include <NitroModules/Null.hpp>
|
|
32
|
+
#include <variant>
|
|
33
|
+
#include "JVariant_NullType_String.hpp"
|
|
34
|
+
#include <NitroModules/JNull.hpp>
|
|
35
|
+
#include "EqualizerState.hpp"
|
|
36
|
+
#include "JEqualizerState.hpp"
|
|
37
|
+
#include <optional>
|
|
38
|
+
#include <functional>
|
|
39
|
+
#include "JFunc_void_bool.hpp"
|
|
40
|
+
#include <NitroModules/JNICallable.hpp>
|
|
41
|
+
#include "JFunc_void_std__vector_EqualizerBand_.hpp"
|
|
42
|
+
#include "JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp"
|
|
43
|
+
|
|
44
|
+
namespace margelo::nitro::nitroplayer {
|
|
45
|
+
|
|
46
|
+
jni::local_ref<JHybridEqualizerSpec::jhybriddata> JHybridEqualizerSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
47
|
+
return makeCxxInstance(jThis);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
void JHybridEqualizerSpec::registerNatives() {
|
|
51
|
+
registerHybrid({
|
|
52
|
+
makeNativeMethod("initHybrid", JHybridEqualizerSpec::initHybrid),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
size_t JHybridEqualizerSpec::getExternalMemorySize() noexcept {
|
|
57
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
58
|
+
return method(_javaPart);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void JHybridEqualizerSpec::dispose() noexcept {
|
|
62
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
63
|
+
method(_javaPart);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
std::string JHybridEqualizerSpec::toString() {
|
|
67
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
68
|
+
auto javaString = method(_javaPart);
|
|
69
|
+
return javaString->toStdString();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Properties
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
// Methods
|
|
76
|
+
bool JHybridEqualizerSpec::setEnabled(bool enabled) {
|
|
77
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jboolean /* enabled */)>("setEnabled");
|
|
78
|
+
auto __result = method(_javaPart, enabled);
|
|
79
|
+
return static_cast<bool>(__result);
|
|
80
|
+
}
|
|
81
|
+
bool JHybridEqualizerSpec::isEnabled() {
|
|
82
|
+
static const auto method = javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
83
|
+
auto __result = method(_javaPart);
|
|
84
|
+
return static_cast<bool>(__result);
|
|
85
|
+
}
|
|
86
|
+
std::vector<EqualizerBand> JHybridEqualizerSpec::getBands() {
|
|
87
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerBand>>()>("getBands");
|
|
88
|
+
auto __result = method(_javaPart);
|
|
89
|
+
return [&]() {
|
|
90
|
+
size_t __size = __result->size();
|
|
91
|
+
std::vector<EqualizerBand> __vector;
|
|
92
|
+
__vector.reserve(__size);
|
|
93
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
94
|
+
auto __element = __result->getElement(__i);
|
|
95
|
+
__vector.push_back(__element->toCpp());
|
|
96
|
+
}
|
|
97
|
+
return __vector;
|
|
98
|
+
}();
|
|
99
|
+
}
|
|
100
|
+
bool JHybridEqualizerSpec::setBandGain(double bandIndex, double gainDb) {
|
|
101
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(double /* bandIndex */, double /* gainDb */)>("setBandGain");
|
|
102
|
+
auto __result = method(_javaPart, bandIndex, gainDb);
|
|
103
|
+
return static_cast<bool>(__result);
|
|
104
|
+
}
|
|
105
|
+
bool JHybridEqualizerSpec::setAllBandGains(const std::vector<double>& gains) {
|
|
106
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JArrayDouble> /* gains */)>("setAllBandGains");
|
|
107
|
+
auto __result = method(_javaPart, [&]() {
|
|
108
|
+
size_t __size = gains.size();
|
|
109
|
+
jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
|
|
110
|
+
__array->setRegion(0, __size, gains.data());
|
|
111
|
+
return __array;
|
|
112
|
+
}());
|
|
113
|
+
return static_cast<bool>(__result);
|
|
114
|
+
}
|
|
115
|
+
GainRange JHybridEqualizerSpec::getBandRange() {
|
|
116
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
117
|
+
auto __result = method(_javaPart);
|
|
118
|
+
return __result->toCpp();
|
|
119
|
+
}
|
|
120
|
+
std::vector<EqualizerPreset> JHybridEqualizerSpec::getPresets() {
|
|
121
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getPresets");
|
|
122
|
+
auto __result = method(_javaPart);
|
|
123
|
+
return [&]() {
|
|
124
|
+
size_t __size = __result->size();
|
|
125
|
+
std::vector<EqualizerPreset> __vector;
|
|
126
|
+
__vector.reserve(__size);
|
|
127
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
128
|
+
auto __element = __result->getElement(__i);
|
|
129
|
+
__vector.push_back(__element->toCpp());
|
|
130
|
+
}
|
|
131
|
+
return __vector;
|
|
132
|
+
}();
|
|
133
|
+
}
|
|
134
|
+
std::vector<EqualizerPreset> JHybridEqualizerSpec::getBuiltInPresets() {
|
|
135
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getBuiltInPresets");
|
|
136
|
+
auto __result = method(_javaPart);
|
|
137
|
+
return [&]() {
|
|
138
|
+
size_t __size = __result->size();
|
|
139
|
+
std::vector<EqualizerPreset> __vector;
|
|
140
|
+
__vector.reserve(__size);
|
|
141
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
142
|
+
auto __element = __result->getElement(__i);
|
|
143
|
+
__vector.push_back(__element->toCpp());
|
|
144
|
+
}
|
|
145
|
+
return __vector;
|
|
146
|
+
}();
|
|
147
|
+
}
|
|
148
|
+
std::vector<EqualizerPreset> JHybridEqualizerSpec::getCustomPresets() {
|
|
149
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getCustomPresets");
|
|
150
|
+
auto __result = method(_javaPart);
|
|
151
|
+
return [&]() {
|
|
152
|
+
size_t __size = __result->size();
|
|
153
|
+
std::vector<EqualizerPreset> __vector;
|
|
154
|
+
__vector.reserve(__size);
|
|
155
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
156
|
+
auto __element = __result->getElement(__i);
|
|
157
|
+
__vector.push_back(__element->toCpp());
|
|
158
|
+
}
|
|
159
|
+
return __vector;
|
|
160
|
+
}();
|
|
161
|
+
}
|
|
162
|
+
bool JHybridEqualizerSpec::applyPreset(const std::string& presetName) {
|
|
163
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* presetName */)>("applyPreset");
|
|
164
|
+
auto __result = method(_javaPart, jni::make_jstring(presetName));
|
|
165
|
+
return static_cast<bool>(__result);
|
|
166
|
+
}
|
|
167
|
+
std::variant<nitro::NullType, std::string> JHybridEqualizerSpec::getCurrentPresetName() {
|
|
168
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
169
|
+
auto __result = method(_javaPart);
|
|
170
|
+
return __result->toCpp();
|
|
171
|
+
}
|
|
172
|
+
bool JHybridEqualizerSpec::saveCustomPreset(const std::string& name) {
|
|
173
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("saveCustomPreset");
|
|
174
|
+
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
175
|
+
return static_cast<bool>(__result);
|
|
176
|
+
}
|
|
177
|
+
bool JHybridEqualizerSpec::deleteCustomPreset(const std::string& name) {
|
|
178
|
+
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("deleteCustomPreset");
|
|
179
|
+
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
180
|
+
return static_cast<bool>(__result);
|
|
181
|
+
}
|
|
182
|
+
EqualizerState JHybridEqualizerSpec::getState() {
|
|
183
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JEqualizerState>()>("getState");
|
|
184
|
+
auto __result = method(_javaPart);
|
|
185
|
+
return __result->toCpp();
|
|
186
|
+
}
|
|
187
|
+
void JHybridEqualizerSpec::reset() {
|
|
188
|
+
static const auto method = javaClassStatic()->getMethod<void()>("reset");
|
|
189
|
+
method(_javaPart);
|
|
190
|
+
}
|
|
191
|
+
void JHybridEqualizerSpec::onEnabledChange(const std::function<void(bool /* enabled */)>& callback) {
|
|
192
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
193
|
+
method(_javaPart, JFunc_void_bool_cxx::fromCpp(callback));
|
|
194
|
+
}
|
|
195
|
+
void JHybridEqualizerSpec::onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) {
|
|
196
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> /* callback */)>("onBandChange_cxx");
|
|
197
|
+
method(_javaPart, JFunc_void_std__vector_EqualizerBand__cxx::fromCpp(callback));
|
|
198
|
+
}
|
|
199
|
+
void JHybridEqualizerSpec::onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) {
|
|
200
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("onPresetChange_cxx");
|
|
201
|
+
method(_javaPart, JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::fromCpp(callback));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridEqualizerSpec.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 <NitroModules/JHybridObject.hpp>
|
|
11
|
+
#include <fbjni/fbjni.h>
|
|
12
|
+
#include "HybridEqualizerSpec.hpp"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::nitroplayer {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
class JHybridEqualizerSpec: public jni::HybridClass<JHybridEqualizerSpec, JHybridObject>,
|
|
22
|
+
public virtual HybridEqualizerSpec {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizerSpec;";
|
|
25
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
26
|
+
static void registerNatives();
|
|
27
|
+
|
|
28
|
+
protected:
|
|
29
|
+
// C++ constructor (called from Java via `initHybrid()`)
|
|
30
|
+
explicit JHybridEqualizerSpec(jni::alias_ref<jhybridobject> jThis) :
|
|
31
|
+
HybridObject(HybridEqualizerSpec::TAG),
|
|
32
|
+
HybridBase(jThis),
|
|
33
|
+
_javaPart(jni::make_global(jThis)) {}
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
~JHybridEqualizerSpec() override {
|
|
37
|
+
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
|
+
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public:
|
|
42
|
+
size_t getExternalMemorySize() noexcept override;
|
|
43
|
+
void dispose() noexcept override;
|
|
44
|
+
std::string toString() override;
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
inline const jni::global_ref<JHybridEqualizerSpec::javaobject>& getJavaPart() const noexcept {
|
|
48
|
+
return _javaPart;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
// Properties
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
// Methods
|
|
57
|
+
bool setEnabled(bool enabled) override;
|
|
58
|
+
bool isEnabled() override;
|
|
59
|
+
std::vector<EqualizerBand> getBands() override;
|
|
60
|
+
bool setBandGain(double bandIndex, double gainDb) override;
|
|
61
|
+
bool setAllBandGains(const std::vector<double>& gains) override;
|
|
62
|
+
GainRange getBandRange() override;
|
|
63
|
+
std::vector<EqualizerPreset> getPresets() override;
|
|
64
|
+
std::vector<EqualizerPreset> getBuiltInPresets() override;
|
|
65
|
+
std::vector<EqualizerPreset> getCustomPresets() override;
|
|
66
|
+
bool applyPreset(const std::string& presetName) override;
|
|
67
|
+
std::variant<nitro::NullType, std::string> getCurrentPresetName() override;
|
|
68
|
+
bool saveCustomPreset(const std::string& name) override;
|
|
69
|
+
bool deleteCustomPreset(const std::string& name) override;
|
|
70
|
+
EqualizerState getState() override;
|
|
71
|
+
void reset() override;
|
|
72
|
+
void onEnabledChange(const std::function<void(bool /* enabled */)>& callback) override;
|
|
73
|
+
void onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) override;
|
|
74
|
+
void onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) override;
|
|
75
|
+
|
|
76
|
+
private:
|
|
77
|
+
friend HybridBase;
|
|
78
|
+
using HybridBase::HybridBase;
|
|
79
|
+
jni::global_ref<JHybridEqualizerSpec::javaobject> _javaPart;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -26,6 +26,8 @@ namespace margelo::nitro::nitroplayer { enum class QueueOperation; }
|
|
|
26
26
|
#include "TrackItem.hpp"
|
|
27
27
|
#include <vector>
|
|
28
28
|
#include "JTrackItem.hpp"
|
|
29
|
+
#include <NitroModules/AnyMap.hpp>
|
|
30
|
+
#include <NitroModules/JAnyMap.hpp>
|
|
29
31
|
#include "QueueOperation.hpp"
|
|
30
32
|
#include <functional>
|
|
31
33
|
#include "JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp"
|
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
#include "JHybridTrackPlayerSpec.hpp"
|
|
9
9
|
|
|
10
|
-
// Forward declaration of `PlayerState` to properly resolve imports.
|
|
11
|
-
namespace margelo::nitro::nitroplayer { struct PlayerState; }
|
|
12
10
|
// Forward declaration of `TrackItem` to properly resolve imports.
|
|
13
11
|
namespace margelo::nitro::nitroplayer { struct TrackItem; }
|
|
12
|
+
// Forward declaration of `PlayerState` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::nitroplayer { struct PlayerState; }
|
|
14
14
|
// Forward declaration of `TrackPlayerState` to properly resolve imports.
|
|
15
15
|
namespace margelo::nitro::nitroplayer { enum class TrackPlayerState; }
|
|
16
|
+
// Forward declaration of `CurrentPlayingType` to properly resolve imports.
|
|
17
|
+
namespace margelo::nitro::nitroplayer { enum class CurrentPlayingType; }
|
|
16
18
|
// Forward declaration of `RepeatMode` to properly resolve imports.
|
|
17
19
|
namespace margelo::nitro::nitroplayer { enum class RepeatMode; }
|
|
18
20
|
// Forward declaration of `PlayerConfig` to properly resolve imports.
|
|
@@ -20,19 +22,26 @@ namespace margelo::nitro::nitroplayer { struct PlayerConfig; }
|
|
|
20
22
|
// Forward declaration of `Reason` to properly resolve imports.
|
|
21
23
|
namespace margelo::nitro::nitroplayer { enum class Reason; }
|
|
22
24
|
|
|
23
|
-
#include
|
|
24
|
-
#include
|
|
25
|
-
#include <NitroModules/Null.hpp>
|
|
25
|
+
#include <NitroModules/Promise.hpp>
|
|
26
|
+
#include <NitroModules/JPromise.hpp>
|
|
26
27
|
#include "TrackItem.hpp"
|
|
27
|
-
#include <
|
|
28
|
-
#include <optional>
|
|
29
|
-
#include "JVariant_NullType_TrackItem.hpp"
|
|
30
|
-
#include <NitroModules/JNull.hpp>
|
|
28
|
+
#include <vector>
|
|
31
29
|
#include "JTrackItem.hpp"
|
|
32
30
|
#include <string>
|
|
31
|
+
#include <NitroModules/Null.hpp>
|
|
32
|
+
#include <variant>
|
|
33
|
+
#include <optional>
|
|
33
34
|
#include "JVariant_NullType_String.hpp"
|
|
35
|
+
#include <NitroModules/JNull.hpp>
|
|
36
|
+
#include <NitroModules/AnyMap.hpp>
|
|
37
|
+
#include <NitroModules/JAnyMap.hpp>
|
|
38
|
+
#include "PlayerState.hpp"
|
|
39
|
+
#include "JPlayerState.hpp"
|
|
40
|
+
#include "JVariant_NullType_TrackItem.hpp"
|
|
34
41
|
#include "TrackPlayerState.hpp"
|
|
35
42
|
#include "JTrackPlayerState.hpp"
|
|
43
|
+
#include "CurrentPlayingType.hpp"
|
|
44
|
+
#include "JCurrentPlayingType.hpp"
|
|
36
45
|
#include "RepeatMode.hpp"
|
|
37
46
|
#include "JRepeatMode.hpp"
|
|
38
47
|
#include "PlayerConfig.hpp"
|
|
@@ -87,14 +96,41 @@ namespace margelo::nitro::nitroplayer {
|
|
|
87
96
|
static const auto method = javaClassStatic()->getMethod<void()>("pause");
|
|
88
97
|
method(_javaPart);
|
|
89
98
|
}
|
|
90
|
-
void JHybridTrackPlayerSpec::playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) {
|
|
91
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
92
|
-
method(_javaPart, jni::make_jstring(songId), fromPlaylist.has_value() ? jni::make_jstring(fromPlaylist.value()) : nullptr);
|
|
99
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) {
|
|
100
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* songId */, jni::alias_ref<jni::JString> /* fromPlaylist */)>("playSong");
|
|
101
|
+
auto __result = method(_javaPart, jni::make_jstring(songId), fromPlaylist.has_value() ? jni::make_jstring(fromPlaylist.value()) : nullptr);
|
|
102
|
+
return [&]() {
|
|
103
|
+
auto __promise = Promise<void>::create();
|
|
104
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
105
|
+
__promise->resolve();
|
|
106
|
+
});
|
|
107
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
108
|
+
jni::JniException __jniError(__throwable);
|
|
109
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
110
|
+
});
|
|
111
|
+
return __promise;
|
|
112
|
+
}();
|
|
93
113
|
}
|
|
94
114
|
void JHybridTrackPlayerSpec::skipToNext() {
|
|
95
115
|
static const auto method = javaClassStatic()->getMethod<void()>("skipToNext");
|
|
96
116
|
method(_javaPart);
|
|
97
117
|
}
|
|
118
|
+
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::skipToIndex(double index) {
|
|
119
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* index */)>("skipToIndex");
|
|
120
|
+
auto __result = method(_javaPart, index);
|
|
121
|
+
return [&]() {
|
|
122
|
+
auto __promise = Promise<bool>::create();
|
|
123
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
124
|
+
auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
|
|
125
|
+
__promise->resolve(static_cast<bool>(__result->value()));
|
|
126
|
+
});
|
|
127
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
128
|
+
jni::JniException __jniError(__throwable);
|
|
129
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
130
|
+
});
|
|
131
|
+
return __promise;
|
|
132
|
+
}();
|
|
133
|
+
}
|
|
98
134
|
void JHybridTrackPlayerSpec::skipToPrevious() {
|
|
99
135
|
static const auto method = javaClassStatic()->getMethod<void()>("skipToPrevious");
|
|
100
136
|
method(_javaPart);
|
|
@@ -103,10 +139,76 @@ namespace margelo::nitro::nitroplayer {
|
|
|
103
139
|
static const auto method = javaClassStatic()->getMethod<void(double /* position */)>("seek");
|
|
104
140
|
method(_javaPart, position);
|
|
105
141
|
}
|
|
106
|
-
|
|
107
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<
|
|
142
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::addToUpNext(const std::string& trackId) {
|
|
143
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("addToUpNext");
|
|
144
|
+
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
145
|
+
return [&]() {
|
|
146
|
+
auto __promise = Promise<void>::create();
|
|
147
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
148
|
+
__promise->resolve();
|
|
149
|
+
});
|
|
150
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
151
|
+
jni::JniException __jniError(__throwable);
|
|
152
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
153
|
+
});
|
|
154
|
+
return __promise;
|
|
155
|
+
}();
|
|
156
|
+
}
|
|
157
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::playNext(const std::string& trackId) {
|
|
158
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("playNext");
|
|
159
|
+
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
160
|
+
return [&]() {
|
|
161
|
+
auto __promise = Promise<void>::create();
|
|
162
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
163
|
+
__promise->resolve();
|
|
164
|
+
});
|
|
165
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
166
|
+
jni::JniException __jniError(__throwable);
|
|
167
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
168
|
+
});
|
|
169
|
+
return __promise;
|
|
170
|
+
}();
|
|
171
|
+
}
|
|
172
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getActualQueue() {
|
|
173
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getActualQueue");
|
|
174
|
+
auto __result = method(_javaPart);
|
|
175
|
+
return [&]() {
|
|
176
|
+
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
177
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
178
|
+
auto __result = jni::static_ref_cast<jni::JArrayClass<JTrackItem>>(__boxedResult);
|
|
179
|
+
__promise->resolve([&]() {
|
|
180
|
+
size_t __size = __result->size();
|
|
181
|
+
std::vector<TrackItem> __vector;
|
|
182
|
+
__vector.reserve(__size);
|
|
183
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
184
|
+
auto __element = __result->getElement(__i);
|
|
185
|
+
__vector.push_back(__element->toCpp());
|
|
186
|
+
}
|
|
187
|
+
return __vector;
|
|
188
|
+
}());
|
|
189
|
+
});
|
|
190
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
191
|
+
jni::JniException __jniError(__throwable);
|
|
192
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
193
|
+
});
|
|
194
|
+
return __promise;
|
|
195
|
+
}();
|
|
196
|
+
}
|
|
197
|
+
std::shared_ptr<Promise<PlayerState>> JHybridTrackPlayerSpec::getState() {
|
|
198
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
108
199
|
auto __result = method(_javaPart);
|
|
109
|
-
return
|
|
200
|
+
return [&]() {
|
|
201
|
+
auto __promise = Promise<PlayerState>::create();
|
|
202
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
203
|
+
auto __result = jni::static_ref_cast<JPlayerState>(__boxedResult);
|
|
204
|
+
__promise->resolve(__result->toCpp());
|
|
205
|
+
});
|
|
206
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
207
|
+
jni::JniException __jniError(__throwable);
|
|
208
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
209
|
+
});
|
|
210
|
+
return __promise;
|
|
211
|
+
}();
|
|
110
212
|
}
|
|
111
213
|
bool JHybridTrackPlayerSpec::setRepeatMode(RepeatMode mode) {
|
|
112
214
|
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<JRepeatMode> /* mode */)>("setRepeatMode");
|
|
@@ -56,11 +56,15 @@ namespace margelo::nitro::nitroplayer {
|
|
|
56
56
|
// Methods
|
|
57
57
|
void play() override;
|
|
58
58
|
void pause() override;
|
|
59
|
-
void playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) override;
|
|
59
|
+
std::shared_ptr<Promise<void>> playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) override;
|
|
60
60
|
void skipToNext() override;
|
|
61
|
+
std::shared_ptr<Promise<bool>> skipToIndex(double index) override;
|
|
61
62
|
void skipToPrevious() override;
|
|
62
63
|
void seek(double position) override;
|
|
63
|
-
|
|
64
|
+
std::shared_ptr<Promise<void>> addToUpNext(const std::string& trackId) override;
|
|
65
|
+
std::shared_ptr<Promise<void>> playNext(const std::string& trackId) override;
|
|
66
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> getActualQueue() override;
|
|
67
|
+
std::shared_ptr<Promise<PlayerState>> getState() override;
|
|
64
68
|
bool setRepeatMode(RepeatMode mode) override;
|
|
65
69
|
void configure(const PlayerConfig& config) override;
|
|
66
70
|
void onChangeTrack(const std::function<void(const TrackItem& /* track */, std::optional<Reason> /* reason */)>& callback) override;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JPlaybackSource.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 "PlaybackSource.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroplayer {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "PlaybackSource" and the the Kotlin enum "PlaybackSource".
|
|
19
|
+
*/
|
|
20
|
+
struct JPlaybackSource final: public jni::JavaClass<JPlaybackSource> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlaybackSource;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum PlaybackSource.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
PlaybackSource 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<PlaybackSource>(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<JPlaybackSource> fromCpp(PlaybackSource value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldAUTO = clazz->getStaticField<JPlaybackSource>("AUTO");
|
|
45
|
+
static const auto fieldDOWNLOAD = clazz->getStaticField<JPlaybackSource>("DOWNLOAD");
|
|
46
|
+
static const auto fieldNETWORK = clazz->getStaticField<JPlaybackSource>("NETWORK");
|
|
47
|
+
|
|
48
|
+
switch (value) {
|
|
49
|
+
case PlaybackSource::AUTO:
|
|
50
|
+
return clazz->getStaticFieldValue(fieldAUTO);
|
|
51
|
+
case PlaybackSource::DOWNLOAD:
|
|
52
|
+
return clazz->getStaticFieldValue(fieldDOWNLOAD);
|
|
53
|
+
case PlaybackSource::NETWORK:
|
|
54
|
+
return clazz->getStaticFieldValue(fieldNETWORK);
|
|
55
|
+
default:
|
|
56
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
57
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
} // namespace margelo::nitro::nitroplayer
|