react-native-nitro-player 0.6.1 → 0.7.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +9 -13
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +45 -90
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +48 -182
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +21 -77
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +55 -104
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +113 -123
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ExoPlayerCore.kt +82 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ListenerRegistry.kt +48 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerAndroidAuto.kt +62 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +153 -1887
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerListener.kt +122 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerNotify.kt +44 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerPlayback.kt +162 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueue.kt +165 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueueBuild.kt +161 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerSetup.kt +28 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerTempQueue.kt +121 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerUrlLoader.kt +98 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +27 -18
- package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +11 -58
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +13 -30
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +102 -162
- package/ios/HybridDownloadManager.swift +32 -26
- package/ios/HybridEqualizer.swift +48 -35
- package/ios/HybridTrackPlayer.swift +127 -102
- package/ios/core/ListenerRegistry.swift +60 -0
- package/ios/core/TrackPlayerCore.swift +130 -2356
- package/ios/core/TrackPlayerListener.swift +395 -0
- package/ios/core/TrackPlayerNotify.swift +52 -0
- package/ios/core/TrackPlayerPlayback.swift +274 -0
- package/ios/core/TrackPlayerQueue.swift +212 -0
- package/ios/core/TrackPlayerQueueBuild.swift +482 -0
- package/ios/core/TrackPlayerTempQueue.swift +167 -0
- package/ios/core/TrackPlayerUrlLoader.swift +169 -0
- package/ios/equalizer/EqualizerCore.swift +24 -89
- package/ios/media/MediaSessionManager.swift +32 -49
- package/ios/playlist/PlaylistManager.swift +2 -9
- package/ios/queue/HybridPlayerQueue.swift +69 -66
- package/lib/hooks/useDownloadedTracks.js +16 -13
- package/lib/hooks/useEqualizer.d.ts +4 -4
- package/lib/hooks/useEqualizer.js +12 -12
- package/lib/hooks/useEqualizerPresets.d.ts +3 -3
- package/lib/hooks/useEqualizerPresets.js +12 -18
- package/lib/specs/AndroidAutoMediaLibrary.nitro.d.ts +2 -2
- package/lib/specs/AudioDevices.nitro.d.ts +2 -2
- package/lib/specs/DownloadManager.nitro.d.ts +10 -10
- package/lib/specs/Equalizer.nitro.d.ts +9 -9
- package/lib/specs/TrackPlayer.nitro.d.ts +38 -16
- package/nitro.json +44 -11
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +63 -24
- package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadError.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadProgress.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadState.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadTask.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +1 -1
- package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerBand.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerState.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__std__vector_TrackItem_.hpp +122 -0
- package/nitrogen/generated/android/c++/JGainRange.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +49 -30
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +21 -24
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +35 -28
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +20 -23
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +197 -93
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +29 -32
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +157 -67
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +28 -31
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +138 -53
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +27 -30
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +282 -69
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +35 -30
- package/nitrogen/generated/android/c++/JPlaybackSource.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlayerConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlayerState.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaylist.hpp +1 -1
- package/nitrogen/generated/android/c++/JPresetType.hpp +1 -1
- package/nitrogen/generated/android/c++/JQueueOperation.hpp +1 -1
- package/nitrogen/generated/android/c++/JReason.hpp +1 -1
- package/nitrogen/generated/android/c++/JRepeatMode.hpp +1 -1
- package/nitrogen/generated/android/c++/JStorageLocation.hpp +1 -1
- package/nitrogen/generated/android/c++/JTAudioDevice.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrackItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_TrackItem__std__vector_TrackItem_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +18 -20
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +17 -19
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +25 -28
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +25 -27
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +24 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +60 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +0 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +0 -6
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +74 -18
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +380 -151
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +10 -10
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +12 -9
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +23 -8
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +82 -8
- package/nitrogen/generated/ios/swift/Func_void_EqualizerState.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedPlaylist_.swift +58 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedTrack_.swift +58 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +58 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedPlaylist_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedTrack_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +5 -5
- package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__std__vector_TrackItem_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +10 -10
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +141 -71
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +9 -9
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +105 -41
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +8 -8
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +95 -32
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +16 -8
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +267 -32
- package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +3 -2
- package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +10 -10
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +10 -9
- package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +9 -8
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +8 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +16 -8
- package/package.json +3 -3
- package/src/hooks/useDownloadedTracks.ts +17 -13
- package/src/hooks/useEqualizer.ts +16 -16
- package/src/hooks/useEqualizerPresets.ts +15 -21
- package/src/specs/AndroidAutoMediaLibrary.nitro.ts +2 -2
- package/src/specs/AudioDevices.nitro.ts +2 -2
- package/src/specs/DownloadManager.nitro.ts +10 -10
- package/src/specs/Equalizer.nitro.ts +9 -9
- package/src/specs/TrackPlayer.nitro.ts +52 -16
|
@@ -18,6 +18,9 @@ namespace margelo::nitro::nitroplayer { enum class PresetType; }
|
|
|
18
18
|
// Forward declaration of `EqualizerState` to properly resolve imports.
|
|
19
19
|
namespace margelo::nitro::nitroplayer { struct EqualizerState; }
|
|
20
20
|
|
|
21
|
+
#include <NitroModules/Promise.hpp>
|
|
22
|
+
#include <NitroModules/JPromise.hpp>
|
|
23
|
+
#include <NitroModules/JUnit.hpp>
|
|
21
24
|
#include "EqualizerBand.hpp"
|
|
22
25
|
#include <vector>
|
|
23
26
|
#include "JEqualizerBand.hpp"
|
|
@@ -43,89 +46,124 @@ namespace margelo::nitro::nitroplayer { struct EqualizerState; }
|
|
|
43
46
|
|
|
44
47
|
namespace margelo::nitro::nitroplayer {
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
49
|
+
std::shared_ptr<JHybridEqualizerSpec> JHybridEqualizerSpec::JavaPart::getJHybridEqualizerSpec() {
|
|
50
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
51
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridEqualizerSpec>(hybridObject);
|
|
52
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
53
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridEqualizerSpec!");
|
|
54
|
+
}
|
|
55
|
+
return castHybridObject;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return method(_javaPart);
|
|
58
|
+
jni::local_ref<JHybridEqualizerSpec::CxxPart::jhybriddata> JHybridEqualizerSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
59
|
+
return makeCxxInstance(jThis);
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
std::shared_ptr<JHybridObject> JHybridEqualizerSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
63
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridEqualizerSpec::JavaPart>(javaPart);
|
|
64
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
65
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridEqualizerSpec::JavaPart!");
|
|
64
66
|
}
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
void JHybridEqualizerSpec::dispose() noexcept {
|
|
69
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
70
|
-
method(_javaPart);
|
|
67
|
+
return std::make_shared<JHybridEqualizerSpec>(castJavaPart);
|
|
71
68
|
}
|
|
72
69
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
void JHybridEqualizerSpec::CxxPart::registerNatives() {
|
|
71
|
+
registerHybrid({
|
|
72
|
+
makeNativeMethod("initHybrid", JHybridEqualizerSpec::CxxPart::initHybrid),
|
|
73
|
+
});
|
|
77
74
|
}
|
|
78
75
|
|
|
79
76
|
// Properties
|
|
80
77
|
|
|
81
78
|
|
|
82
79
|
// Methods
|
|
83
|
-
|
|
84
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
80
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::setEnabled(bool enabled) {
|
|
81
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jboolean /* enabled */)>("setEnabled");
|
|
85
82
|
auto __result = method(_javaPart, enabled);
|
|
86
|
-
return
|
|
83
|
+
return [&]() {
|
|
84
|
+
auto __promise = Promise<void>::create();
|
|
85
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
86
|
+
__promise->resolve();
|
|
87
|
+
});
|
|
88
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
89
|
+
jni::JniException __jniError(__throwable);
|
|
90
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
91
|
+
});
|
|
92
|
+
return __promise;
|
|
93
|
+
}();
|
|
87
94
|
}
|
|
88
95
|
bool JHybridEqualizerSpec::isEnabled() {
|
|
89
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
96
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
90
97
|
auto __result = method(_javaPart);
|
|
91
98
|
return static_cast<bool>(__result);
|
|
92
99
|
}
|
|
93
|
-
std::vector<EqualizerBand
|
|
94
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<
|
|
100
|
+
std::shared_ptr<Promise<std::vector<EqualizerBand>>> JHybridEqualizerSpec::getBands() {
|
|
101
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getBands");
|
|
95
102
|
auto __result = method(_javaPart);
|
|
96
103
|
return [&]() {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
auto __promise = Promise<std::vector<EqualizerBand>>::create();
|
|
105
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
106
|
+
auto __result = jni::static_ref_cast<jni::JArrayClass<JEqualizerBand>>(__boxedResult);
|
|
107
|
+
__promise->resolve([&]() {
|
|
108
|
+
size_t __size = __result->size();
|
|
109
|
+
std::vector<EqualizerBand> __vector;
|
|
110
|
+
__vector.reserve(__size);
|
|
111
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
112
|
+
auto __element = __result->getElement(__i);
|
|
113
|
+
__vector.push_back(__element->toCpp());
|
|
114
|
+
}
|
|
115
|
+
return __vector;
|
|
116
|
+
}());
|
|
117
|
+
});
|
|
118
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
119
|
+
jni::JniException __jniError(__throwable);
|
|
120
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
121
|
+
});
|
|
122
|
+
return __promise;
|
|
105
123
|
}();
|
|
106
124
|
}
|
|
107
|
-
|
|
108
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
125
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::setBandGain(double bandIndex, double gainDb) {
|
|
126
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* bandIndex */, double /* gainDb */)>("setBandGain");
|
|
109
127
|
auto __result = method(_javaPart, bandIndex, gainDb);
|
|
110
|
-
return
|
|
128
|
+
return [&]() {
|
|
129
|
+
auto __promise = Promise<void>::create();
|
|
130
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
131
|
+
__promise->resolve();
|
|
132
|
+
});
|
|
133
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
134
|
+
jni::JniException __jniError(__throwable);
|
|
135
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
136
|
+
});
|
|
137
|
+
return __promise;
|
|
138
|
+
}();
|
|
111
139
|
}
|
|
112
|
-
|
|
113
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
140
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::setAllBandGains(const std::vector<double>& gains) {
|
|
141
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayDouble> /* gains */)>("setAllBandGains");
|
|
114
142
|
auto __result = method(_javaPart, [&]() {
|
|
115
143
|
size_t __size = gains.size();
|
|
116
144
|
jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
|
|
117
145
|
__array->setRegion(0, __size, gains.data());
|
|
118
146
|
return __array;
|
|
119
147
|
}());
|
|
120
|
-
return
|
|
148
|
+
return [&]() {
|
|
149
|
+
auto __promise = Promise<void>::create();
|
|
150
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
151
|
+
__promise->resolve();
|
|
152
|
+
});
|
|
153
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
154
|
+
jni::JniException __jniError(__throwable);
|
|
155
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
156
|
+
});
|
|
157
|
+
return __promise;
|
|
158
|
+
}();
|
|
121
159
|
}
|
|
122
160
|
GainRange JHybridEqualizerSpec::getBandRange() {
|
|
123
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
161
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
124
162
|
auto __result = method(_javaPart);
|
|
125
163
|
return __result->toCpp();
|
|
126
164
|
}
|
|
127
165
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getPresets() {
|
|
128
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getPresets");
|
|
166
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getPresets");
|
|
129
167
|
auto __result = method(_javaPart);
|
|
130
168
|
return [&]() {
|
|
131
169
|
size_t __size = __result->size();
|
|
@@ -139,7 +177,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
139
177
|
}();
|
|
140
178
|
}
|
|
141
179
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getBuiltInPresets() {
|
|
142
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getBuiltInPresets");
|
|
180
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getBuiltInPresets");
|
|
143
181
|
auto __result = method(_javaPart);
|
|
144
182
|
return [&]() {
|
|
145
183
|
size_t __size = __result->size();
|
|
@@ -153,7 +191,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
153
191
|
}();
|
|
154
192
|
}
|
|
155
193
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getCustomPresets() {
|
|
156
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getCustomPresets");
|
|
194
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getCustomPresets");
|
|
157
195
|
auto __result = method(_javaPart);
|
|
158
196
|
return [&]() {
|
|
159
197
|
size_t __size = __result->size();
|
|
@@ -166,45 +204,97 @@ namespace margelo::nitro::nitroplayer {
|
|
|
166
204
|
return __vector;
|
|
167
205
|
}();
|
|
168
206
|
}
|
|
169
|
-
|
|
170
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
207
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::applyPreset(const std::string& presetName) {
|
|
208
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* presetName */)>("applyPreset");
|
|
171
209
|
auto __result = method(_javaPart, jni::make_jstring(presetName));
|
|
172
|
-
return
|
|
210
|
+
return [&]() {
|
|
211
|
+
auto __promise = Promise<void>::create();
|
|
212
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
213
|
+
__promise->resolve();
|
|
214
|
+
});
|
|
215
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
216
|
+
jni::JniException __jniError(__throwable);
|
|
217
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
218
|
+
});
|
|
219
|
+
return __promise;
|
|
220
|
+
}();
|
|
173
221
|
}
|
|
174
222
|
std::variant<nitro::NullType, std::string> JHybridEqualizerSpec::getCurrentPresetName() {
|
|
175
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
223
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
176
224
|
auto __result = method(_javaPart);
|
|
177
225
|
return __result->toCpp();
|
|
178
226
|
}
|
|
179
|
-
|
|
180
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
227
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::saveCustomPreset(const std::string& name) {
|
|
228
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* name */)>("saveCustomPreset");
|
|
181
229
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
182
|
-
return
|
|
230
|
+
return [&]() {
|
|
231
|
+
auto __promise = Promise<void>::create();
|
|
232
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
233
|
+
__promise->resolve();
|
|
234
|
+
});
|
|
235
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
236
|
+
jni::JniException __jniError(__throwable);
|
|
237
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
238
|
+
});
|
|
239
|
+
return __promise;
|
|
240
|
+
}();
|
|
183
241
|
}
|
|
184
|
-
|
|
185
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
242
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::deleteCustomPreset(const std::string& name) {
|
|
243
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* name */)>("deleteCustomPreset");
|
|
186
244
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
187
|
-
return
|
|
245
|
+
return [&]() {
|
|
246
|
+
auto __promise = Promise<void>::create();
|
|
247
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
248
|
+
__promise->resolve();
|
|
249
|
+
});
|
|
250
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
251
|
+
jni::JniException __jniError(__throwable);
|
|
252
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
253
|
+
});
|
|
254
|
+
return __promise;
|
|
255
|
+
}();
|
|
188
256
|
}
|
|
189
|
-
EqualizerState JHybridEqualizerSpec::getState() {
|
|
190
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<
|
|
257
|
+
std::shared_ptr<Promise<EqualizerState>> JHybridEqualizerSpec::getState() {
|
|
258
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
191
259
|
auto __result = method(_javaPart);
|
|
192
|
-
return
|
|
260
|
+
return [&]() {
|
|
261
|
+
auto __promise = Promise<EqualizerState>::create();
|
|
262
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
263
|
+
auto __result = jni::static_ref_cast<JEqualizerState>(__boxedResult);
|
|
264
|
+
__promise->resolve(__result->toCpp());
|
|
265
|
+
});
|
|
266
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
267
|
+
jni::JniException __jniError(__throwable);
|
|
268
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
269
|
+
});
|
|
270
|
+
return __promise;
|
|
271
|
+
}();
|
|
193
272
|
}
|
|
194
|
-
void JHybridEqualizerSpec::reset() {
|
|
195
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
196
|
-
method(_javaPart);
|
|
273
|
+
std::shared_ptr<Promise<void>> JHybridEqualizerSpec::reset() {
|
|
274
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("reset");
|
|
275
|
+
auto __result = method(_javaPart);
|
|
276
|
+
return [&]() {
|
|
277
|
+
auto __promise = Promise<void>::create();
|
|
278
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
279
|
+
__promise->resolve();
|
|
280
|
+
});
|
|
281
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
282
|
+
jni::JniException __jniError(__throwable);
|
|
283
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
284
|
+
});
|
|
285
|
+
return __promise;
|
|
286
|
+
}();
|
|
197
287
|
}
|
|
198
288
|
void JHybridEqualizerSpec::onEnabledChange(const std::function<void(bool /* enabled */)>& callback) {
|
|
199
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
289
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
200
290
|
method(_javaPart, JFunc_void_bool_cxx::fromCpp(callback));
|
|
201
291
|
}
|
|
202
292
|
void JHybridEqualizerSpec::onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) {
|
|
203
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> /* callback */)>("onBandChange_cxx");
|
|
293
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> /* callback */)>("onBandChange_cxx");
|
|
204
294
|
method(_javaPart, JFunc_void_std__vector_EqualizerBand__cxx::fromCpp(callback));
|
|
205
295
|
}
|
|
206
296
|
void JHybridEqualizerSpec::onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) {
|
|
207
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("onPresetChange_cxx");
|
|
297
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("onPresetChange_cxx");
|
|
208
298
|
method(_javaPart, JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::fromCpp(callback));
|
|
209
299
|
}
|
|
210
300
|
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroplayer {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridEqualizerSpec: public
|
|
22
|
-
public virtual HybridEqualizerSpec {
|
|
21
|
+
class JHybridEqualizerSpec: public virtual HybridEqualizerSpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizerSpec;";
|
|
25
|
+
std::shared_ptr<JHybridEqualizerSpec> getJHybridEqualizerSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizerSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
34
35
|
|
|
35
36
|
public:
|
|
37
|
+
explicit JHybridEqualizerSpec(const jni::local_ref<JHybridEqualizerSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridEqualizerSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridEqualizerSpec() override {
|
|
37
42
|
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
43
|
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
public:
|
|
42
|
-
|
|
43
|
-
bool equals(const std::shared_ptr<HybridObject>& other) override;
|
|
44
|
-
void dispose() noexcept override;
|
|
45
|
-
std::string toString() override;
|
|
46
|
-
|
|
47
|
-
public:
|
|
48
|
-
inline const jni::global_ref<JHybridEqualizerSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridEqualizerSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -55,29 +54,27 @@ namespace margelo::nitro::nitroplayer {
|
|
|
55
54
|
|
|
56
55
|
public:
|
|
57
56
|
// Methods
|
|
58
|
-
|
|
57
|
+
std::shared_ptr<Promise<void>> setEnabled(bool enabled) override;
|
|
59
58
|
bool isEnabled() override;
|
|
60
|
-
std::vector<EqualizerBand
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
std::shared_ptr<Promise<std::vector<EqualizerBand>>> getBands() override;
|
|
60
|
+
std::shared_ptr<Promise<void>> setBandGain(double bandIndex, double gainDb) override;
|
|
61
|
+
std::shared_ptr<Promise<void>> setAllBandGains(const std::vector<double>& gains) override;
|
|
63
62
|
GainRange getBandRange() override;
|
|
64
63
|
std::vector<EqualizerPreset> getPresets() override;
|
|
65
64
|
std::vector<EqualizerPreset> getBuiltInPresets() override;
|
|
66
65
|
std::vector<EqualizerPreset> getCustomPresets() override;
|
|
67
|
-
|
|
66
|
+
std::shared_ptr<Promise<void>> applyPreset(const std::string& presetName) override;
|
|
68
67
|
std::variant<nitro::NullType, std::string> getCurrentPresetName() override;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
EqualizerState getState() override;
|
|
72
|
-
void reset() override;
|
|
68
|
+
std::shared_ptr<Promise<void>> saveCustomPreset(const std::string& name) override;
|
|
69
|
+
std::shared_ptr<Promise<void>> deleteCustomPreset(const std::string& name) override;
|
|
70
|
+
std::shared_ptr<Promise<EqualizerState>> getState() override;
|
|
71
|
+
std::shared_ptr<Promise<void>> reset() override;
|
|
73
72
|
void onEnabledChange(const std::function<void(bool /* enabled */)>& callback) override;
|
|
74
73
|
void onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) override;
|
|
75
74
|
void onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) override;
|
|
76
75
|
|
|
77
76
|
private:
|
|
78
|
-
|
|
79
|
-
using HybridBase::HybridBase;
|
|
80
|
-
jni::global_ref<JHybridEqualizerSpec::javaobject> _javaPart;
|
|
77
|
+
jni::global_ref<JHybridEqualizerSpec::JavaPart> _javaPart;
|
|
81
78
|
};
|
|
82
79
|
|
|
83
80
|
} // namespace margelo::nitro::nitroplayer
|