react-native-nitro-player 0.7.0 → 0.7.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -46
- 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 +179 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueueBuild.kt +170 -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 +150 -135
- 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 +221 -0
- package/ios/core/TrackPlayerQueueBuild.swift +493 -0
- package/ios/core/TrackPlayerTempQueue.swift +167 -0
- package/ios/core/TrackPlayerUrlLoader.swift +169 -0
- package/ios/equalizer/EqualizerCore.swift +63 -123
- 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 +22 -17
- 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 +10 -10
- package/lib/specs/TrackPlayer.nitro.d.ts +38 -16
- package/lib/types/EqualizerTypes.d.ts +3 -3
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__std__vector_TrackItem_.hpp +122 -0
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +31 -6
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +2 -2
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +16 -3
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +154 -44
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +10 -10
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +130 -34
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +9 -9
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +115 -24
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +8 -8
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +243 -24
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +16 -8
- 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 +3 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +2 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +10 -10
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +10 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +9 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +45 -8
- 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 +5 -5
- package/src/hooks/useDownloadedTracks.ts +17 -13
- package/src/hooks/useEqualizer.ts +26 -21
- 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 +10 -10
- package/src/specs/TrackPlayer.nitro.ts +52 -16
- package/src/types/EqualizerTypes.ts +17 -13
|
@@ -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"
|
|
@@ -74,44 +77,85 @@ namespace margelo::nitro::nitroplayer {
|
|
|
74
77
|
|
|
75
78
|
|
|
76
79
|
// Methods
|
|
77
|
-
|
|
78
|
-
static const auto method = _javaPart->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");
|
|
79
82
|
auto __result = method(_javaPart, enabled);
|
|
80
|
-
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
|
+
}();
|
|
81
94
|
}
|
|
82
95
|
bool JHybridEqualizerSpec::isEnabled() {
|
|
83
96
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
84
97
|
auto __result = method(_javaPart);
|
|
85
98
|
return static_cast<bool>(__result);
|
|
86
99
|
}
|
|
87
|
-
std::vector<EqualizerBand
|
|
88
|
-
static const auto method = _javaPart->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");
|
|
89
102
|
auto __result = method(_javaPart);
|
|
90
103
|
return [&]() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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;
|
|
99
123
|
}();
|
|
100
124
|
}
|
|
101
|
-
|
|
102
|
-
static const auto method = _javaPart->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");
|
|
103
127
|
auto __result = method(_javaPart, bandIndex, gainDb);
|
|
104
|
-
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
|
+
}();
|
|
105
139
|
}
|
|
106
|
-
|
|
107
|
-
static const auto method = _javaPart->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");
|
|
108
142
|
auto __result = method(_javaPart, [&]() {
|
|
109
143
|
size_t __size = gains.size();
|
|
110
144
|
jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
|
|
111
145
|
__array->setRegion(0, __size, gains.data());
|
|
112
146
|
return __array;
|
|
113
147
|
}());
|
|
114
|
-
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
|
+
}();
|
|
115
159
|
}
|
|
116
160
|
GainRange JHybridEqualizerSpec::getBandRange() {
|
|
117
161
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
@@ -160,34 +204,86 @@ namespace margelo::nitro::nitroplayer {
|
|
|
160
204
|
return __vector;
|
|
161
205
|
}();
|
|
162
206
|
}
|
|
163
|
-
|
|
164
|
-
static const auto method = _javaPart->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");
|
|
165
209
|
auto __result = method(_javaPart, jni::make_jstring(presetName));
|
|
166
|
-
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
|
+
}();
|
|
167
221
|
}
|
|
168
222
|
std::variant<nitro::NullType, std::string> JHybridEqualizerSpec::getCurrentPresetName() {
|
|
169
223
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
170
224
|
auto __result = method(_javaPart);
|
|
171
225
|
return __result->toCpp();
|
|
172
226
|
}
|
|
173
|
-
|
|
174
|
-
static const auto method = _javaPart->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");
|
|
175
229
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
176
|
-
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
|
+
}();
|
|
177
241
|
}
|
|
178
|
-
|
|
179
|
-
static const auto method = _javaPart->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");
|
|
180
244
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
181
|
-
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
|
+
}();
|
|
182
256
|
}
|
|
183
|
-
EqualizerState JHybridEqualizerSpec::getState() {
|
|
184
|
-
static const auto method = _javaPart->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");
|
|
185
259
|
auto __result = method(_javaPart);
|
|
186
|
-
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
|
+
}();
|
|
187
272
|
}
|
|
188
|
-
void JHybridEqualizerSpec::reset() {
|
|
189
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
190
|
-
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
|
+
}();
|
|
191
287
|
}
|
|
192
288
|
void JHybridEqualizerSpec::onEnabledChange(const std::function<void(bool /* enabled */)>& callback) {
|
|
193
289
|
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
@@ -54,21 +54,21 @@ namespace margelo::nitro::nitroplayer {
|
|
|
54
54
|
|
|
55
55
|
public:
|
|
56
56
|
// Methods
|
|
57
|
-
|
|
57
|
+
std::shared_ptr<Promise<void>> setEnabled(bool enabled) override;
|
|
58
58
|
bool isEnabled() override;
|
|
59
|
-
std::vector<EqualizerBand
|
|
60
|
-
|
|
61
|
-
|
|
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;
|
|
62
62
|
GainRange getBandRange() override;
|
|
63
63
|
std::vector<EqualizerPreset> getPresets() override;
|
|
64
64
|
std::vector<EqualizerPreset> getBuiltInPresets() override;
|
|
65
65
|
std::vector<EqualizerPreset> getCustomPresets() override;
|
|
66
|
-
|
|
66
|
+
std::shared_ptr<Promise<void>> applyPreset(const std::string& presetName) override;
|
|
67
67
|
std::variant<nitro::NullType, std::string> getCurrentPresetName() override;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
EqualizerState getState() override;
|
|
71
|
-
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;
|
|
72
72
|
void onEnabledChange(const std::function<void(bool /* enabled */)>& callback) override;
|
|
73
73
|
void onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) override;
|
|
74
74
|
void onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) override;
|
|
@@ -15,6 +15,9 @@ namespace margelo::nitro::nitroplayer { struct TrackItem; }
|
|
|
15
15
|
namespace margelo::nitro::nitroplayer { enum class QueueOperation; }
|
|
16
16
|
|
|
17
17
|
#include <string>
|
|
18
|
+
#include <NitroModules/Promise.hpp>
|
|
19
|
+
#include <NitroModules/JPromise.hpp>
|
|
20
|
+
#include <NitroModules/JUnit.hpp>
|
|
18
21
|
#include <NitroModules/Null.hpp>
|
|
19
22
|
#include "Playlist.hpp"
|
|
20
23
|
#include <variant>
|
|
@@ -68,18 +71,51 @@ namespace margelo::nitro::nitroplayer {
|
|
|
68
71
|
|
|
69
72
|
|
|
70
73
|
// Methods
|
|
71
|
-
std::string JHybridPlayerQueueSpec::createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) {
|
|
72
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<
|
|
74
|
+
std::shared_ptr<Promise<std::string>> JHybridPlayerQueueSpec::createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) {
|
|
75
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JString> /* description */, jni::alias_ref<jni::JString> /* artwork */)>("createPlaylist");
|
|
73
76
|
auto __result = method(_javaPart, jni::make_jstring(name), description.has_value() ? jni::make_jstring(description.value()) : nullptr, artwork.has_value() ? jni::make_jstring(artwork.value()) : nullptr);
|
|
74
|
-
return
|
|
77
|
+
return [&]() {
|
|
78
|
+
auto __promise = Promise<std::string>::create();
|
|
79
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
80
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
81
|
+
__promise->resolve(__result->toStdString());
|
|
82
|
+
});
|
|
83
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
84
|
+
jni::JniException __jniError(__throwable);
|
|
85
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
86
|
+
});
|
|
87
|
+
return __promise;
|
|
88
|
+
}();
|
|
75
89
|
}
|
|
76
|
-
void JHybridPlayerQueueSpec::deletePlaylist(const std::string& playlistId) {
|
|
77
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
78
|
-
method(_javaPart, jni::make_jstring(playlistId));
|
|
90
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::deletePlaylist(const std::string& playlistId) {
|
|
91
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */)>("deletePlaylist");
|
|
92
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId));
|
|
93
|
+
return [&]() {
|
|
94
|
+
auto __promise = Promise<void>::create();
|
|
95
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
96
|
+
__promise->resolve();
|
|
97
|
+
});
|
|
98
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
99
|
+
jni::JniException __jniError(__throwable);
|
|
100
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
101
|
+
});
|
|
102
|
+
return __promise;
|
|
103
|
+
}();
|
|
79
104
|
}
|
|
80
|
-
void JHybridPlayerQueueSpec::updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) {
|
|
81
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
82
|
-
method(_javaPart, jni::make_jstring(playlistId), name.has_value() ? jni::make_jstring(name.value()) : nullptr, description.has_value() ? jni::make_jstring(description.value()) : nullptr, artwork.has_value() ? jni::make_jstring(artwork.value()) : nullptr);
|
|
105
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) {
|
|
106
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JString> /* description */, jni::alias_ref<jni::JString> /* artwork */)>("updatePlaylist");
|
|
107
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId), name.has_value() ? jni::make_jstring(name.value()) : nullptr, description.has_value() ? jni::make_jstring(description.value()) : nullptr, artwork.has_value() ? jni::make_jstring(artwork.value()) : nullptr);
|
|
108
|
+
return [&]() {
|
|
109
|
+
auto __promise = Promise<void>::create();
|
|
110
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
111
|
+
__promise->resolve();
|
|
112
|
+
});
|
|
113
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
114
|
+
jni::JniException __jniError(__throwable);
|
|
115
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
116
|
+
});
|
|
117
|
+
return __promise;
|
|
118
|
+
}();
|
|
83
119
|
}
|
|
84
120
|
std::variant<nitro::NullType, Playlist> JHybridPlayerQueueSpec::getPlaylist(const std::string& playlistId) {
|
|
85
121
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_Playlist>(jni::alias_ref<jni::JString> /* playlistId */)>("getPlaylist");
|
|
@@ -100,13 +136,24 @@ namespace margelo::nitro::nitroplayer {
|
|
|
100
136
|
return __vector;
|
|
101
137
|
}();
|
|
102
138
|
}
|
|
103
|
-
void JHybridPlayerQueueSpec::addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) {
|
|
104
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
105
|
-
method(_javaPart, jni::make_jstring(playlistId), JTrackItem::fromCpp(track), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
139
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) {
|
|
140
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<JTrackItem> /* track */, jni::alias_ref<jni::JDouble> /* index */)>("addTrackToPlaylist");
|
|
141
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId), JTrackItem::fromCpp(track), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
142
|
+
return [&]() {
|
|
143
|
+
auto __promise = Promise<void>::create();
|
|
144
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
145
|
+
__promise->resolve();
|
|
146
|
+
});
|
|
147
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
148
|
+
jni::JniException __jniError(__throwable);
|
|
149
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
150
|
+
});
|
|
151
|
+
return __promise;
|
|
152
|
+
}();
|
|
106
153
|
}
|
|
107
|
-
void JHybridPlayerQueueSpec::addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) {
|
|
108
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
109
|
-
method(_javaPart, jni::make_jstring(playlistId), [&]() {
|
|
154
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) {
|
|
155
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */, jni::alias_ref<jni::JDouble> /* index */)>("addTracksToPlaylist");
|
|
156
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId), [&]() {
|
|
110
157
|
size_t __size = tracks.size();
|
|
111
158
|
jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
|
|
112
159
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
@@ -116,18 +163,62 @@ namespace margelo::nitro::nitroplayer {
|
|
|
116
163
|
}
|
|
117
164
|
return __array;
|
|
118
165
|
}(), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
166
|
+
return [&]() {
|
|
167
|
+
auto __promise = Promise<void>::create();
|
|
168
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
169
|
+
__promise->resolve();
|
|
170
|
+
});
|
|
171
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
172
|
+
jni::JniException __jniError(__throwable);
|
|
173
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
174
|
+
});
|
|
175
|
+
return __promise;
|
|
176
|
+
}();
|
|
119
177
|
}
|
|
120
|
-
void JHybridPlayerQueueSpec::removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) {
|
|
121
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
122
|
-
method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId));
|
|
178
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) {
|
|
179
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */)>("removeTrackFromPlaylist");
|
|
180
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId));
|
|
181
|
+
return [&]() {
|
|
182
|
+
auto __promise = Promise<void>::create();
|
|
183
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
184
|
+
__promise->resolve();
|
|
185
|
+
});
|
|
186
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
187
|
+
jni::JniException __jniError(__throwable);
|
|
188
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
189
|
+
});
|
|
190
|
+
return __promise;
|
|
191
|
+
}();
|
|
123
192
|
}
|
|
124
|
-
void JHybridPlayerQueueSpec::reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) {
|
|
125
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
126
|
-
method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId), newIndex);
|
|
193
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) {
|
|
194
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */, double /* newIndex */)>("reorderTrackInPlaylist");
|
|
195
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId), newIndex);
|
|
196
|
+
return [&]() {
|
|
197
|
+
auto __promise = Promise<void>::create();
|
|
198
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
199
|
+
__promise->resolve();
|
|
200
|
+
});
|
|
201
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
202
|
+
jni::JniException __jniError(__throwable);
|
|
203
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
204
|
+
});
|
|
205
|
+
return __promise;
|
|
206
|
+
}();
|
|
127
207
|
}
|
|
128
|
-
void JHybridPlayerQueueSpec::loadPlaylist(const std::string& playlistId) {
|
|
129
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<
|
|
130
|
-
method(_javaPart, jni::make_jstring(playlistId));
|
|
208
|
+
std::shared_ptr<Promise<void>> JHybridPlayerQueueSpec::loadPlaylist(const std::string& playlistId) {
|
|
209
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playlistId */)>("loadPlaylist");
|
|
210
|
+
auto __result = method(_javaPart, jni::make_jstring(playlistId));
|
|
211
|
+
return [&]() {
|
|
212
|
+
auto __promise = Promise<void>::create();
|
|
213
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
214
|
+
__promise->resolve();
|
|
215
|
+
});
|
|
216
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
217
|
+
jni::JniException __jniError(__throwable);
|
|
218
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
219
|
+
});
|
|
220
|
+
return __promise;
|
|
221
|
+
}();
|
|
131
222
|
}
|
|
132
223
|
std::variant<nitro::NullType, std::string> JHybridPlayerQueueSpec::getCurrentPlaylistId() {
|
|
133
224
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPlaylistId");
|
|
@@ -54,16 +54,16 @@ namespace margelo::nitro::nitroplayer {
|
|
|
54
54
|
|
|
55
55
|
public:
|
|
56
56
|
// Methods
|
|
57
|
-
std::string createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override;
|
|
58
|
-
void deletePlaylist(const std::string& playlistId) override;
|
|
59
|
-
void updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override;
|
|
57
|
+
std::shared_ptr<Promise<std::string>> createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override;
|
|
58
|
+
std::shared_ptr<Promise<void>> deletePlaylist(const std::string& playlistId) override;
|
|
59
|
+
std::shared_ptr<Promise<void>> updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override;
|
|
60
60
|
std::variant<nitro::NullType, Playlist> getPlaylist(const std::string& playlistId) override;
|
|
61
61
|
std::vector<Playlist> getAllPlaylists() override;
|
|
62
|
-
void addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) override;
|
|
63
|
-
void addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) override;
|
|
64
|
-
void removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) override;
|
|
65
|
-
void reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) override;
|
|
66
|
-
void loadPlaylist(const std::string& playlistId) override;
|
|
62
|
+
std::shared_ptr<Promise<void>> addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) override;
|
|
63
|
+
std::shared_ptr<Promise<void>> addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) override;
|
|
64
|
+
std::shared_ptr<Promise<void>> removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) override;
|
|
65
|
+
std::shared_ptr<Promise<void>> reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) override;
|
|
66
|
+
std::shared_ptr<Promise<void>> loadPlaylist(const std::string& playlistId) override;
|
|
67
67
|
std::variant<nitro::NullType, std::string> getCurrentPlaylistId() override;
|
|
68
68
|
void onPlaylistsChanged(const std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)>& callback) override;
|
|
69
69
|
void onPlaylistChanged(const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& callback) override;
|