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
|
@@ -57,56 +57,73 @@ namespace margelo::nitro::nitroplayer { enum class Reason; }
|
|
|
57
57
|
#include "JFunc_void_double_double_std__optional_bool_.hpp"
|
|
58
58
|
#include "JFunc_void_bool.hpp"
|
|
59
59
|
#include "JFunc_void_std__vector_TrackItem__double.hpp"
|
|
60
|
+
#include "JFunc_void_std__vector_TrackItem__std__vector_TrackItem_.hpp"
|
|
60
61
|
|
|
61
62
|
namespace margelo::nitro::nitroplayer {
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
64
|
+
std::shared_ptr<JHybridTrackPlayerSpec> JHybridTrackPlayerSpec::JavaPart::getJHybridTrackPlayerSpec() {
|
|
65
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
66
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridTrackPlayerSpec>(hybridObject);
|
|
67
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
68
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridTrackPlayerSpec!");
|
|
69
|
+
}
|
|
70
|
+
return castHybridObject;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return method(_javaPart);
|
|
73
|
+
jni::local_ref<JHybridTrackPlayerSpec::CxxPart::jhybriddata> JHybridTrackPlayerSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
74
|
+
return makeCxxInstance(jThis);
|
|
76
75
|
}
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
std::shared_ptr<JHybridObject> JHybridTrackPlayerSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
78
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridTrackPlayerSpec::JavaPart>(javaPart);
|
|
79
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
80
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridTrackPlayerSpec::JavaPart!");
|
|
81
81
|
}
|
|
82
|
-
return
|
|
82
|
+
return std::make_shared<JHybridTrackPlayerSpec>(castJavaPart);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
void JHybridTrackPlayerSpec::
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
std::string JHybridTrackPlayerSpec::toString() {
|
|
91
|
-
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
92
|
-
auto javaString = method(_javaPart);
|
|
93
|
-
return javaString->toStdString();
|
|
85
|
+
void JHybridTrackPlayerSpec::CxxPart::registerNatives() {
|
|
86
|
+
registerHybrid({
|
|
87
|
+
makeNativeMethod("initHybrid", JHybridTrackPlayerSpec::CxxPart::initHybrid),
|
|
88
|
+
});
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
// Properties
|
|
97
92
|
|
|
98
93
|
|
|
99
94
|
// Methods
|
|
100
|
-
void JHybridTrackPlayerSpec::play() {
|
|
101
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
102
|
-
method(_javaPart);
|
|
95
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::play() {
|
|
96
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("play");
|
|
97
|
+
auto __result = method(_javaPart);
|
|
98
|
+
return [&]() {
|
|
99
|
+
auto __promise = Promise<void>::create();
|
|
100
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
101
|
+
__promise->resolve();
|
|
102
|
+
});
|
|
103
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
104
|
+
jni::JniException __jniError(__throwable);
|
|
105
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
106
|
+
});
|
|
107
|
+
return __promise;
|
|
108
|
+
}();
|
|
103
109
|
}
|
|
104
|
-
void JHybridTrackPlayerSpec::pause() {
|
|
105
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
106
|
-
method(_javaPart);
|
|
110
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::pause() {
|
|
111
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("pause");
|
|
112
|
+
auto __result = method(_javaPart);
|
|
113
|
+
return [&]() {
|
|
114
|
+
auto __promise = Promise<void>::create();
|
|
115
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
116
|
+
__promise->resolve();
|
|
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;
|
|
123
|
+
}();
|
|
107
124
|
}
|
|
108
125
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) {
|
|
109
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* songId */, jni::alias_ref<jni::JString> /* fromPlaylist */)>("playSong");
|
|
126
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* songId */, jni::alias_ref<jni::JString> /* fromPlaylist */)>("playSong");
|
|
110
127
|
auto __result = method(_javaPart, jni::make_jstring(songId), fromPlaylist.has_value() ? jni::make_jstring(fromPlaylist.value()) : nullptr);
|
|
111
128
|
return [&]() {
|
|
112
129
|
auto __promise = Promise<void>::create();
|
|
@@ -120,12 +137,23 @@ namespace margelo::nitro::nitroplayer {
|
|
|
120
137
|
return __promise;
|
|
121
138
|
}();
|
|
122
139
|
}
|
|
123
|
-
void JHybridTrackPlayerSpec::skipToNext() {
|
|
124
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
125
|
-
method(_javaPart);
|
|
140
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::skipToNext() {
|
|
141
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("skipToNext");
|
|
142
|
+
auto __result = method(_javaPart);
|
|
143
|
+
return [&]() {
|
|
144
|
+
auto __promise = Promise<void>::create();
|
|
145
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
146
|
+
__promise->resolve();
|
|
147
|
+
});
|
|
148
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
149
|
+
jni::JniException __jniError(__throwable);
|
|
150
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
151
|
+
});
|
|
152
|
+
return __promise;
|
|
153
|
+
}();
|
|
126
154
|
}
|
|
127
155
|
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::skipToIndex(double index) {
|
|
128
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* index */)>("skipToIndex");
|
|
156
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* index */)>("skipToIndex");
|
|
129
157
|
auto __result = method(_javaPart, index);
|
|
130
158
|
return [&]() {
|
|
131
159
|
auto __promise = Promise<bool>::create();
|
|
@@ -140,16 +168,38 @@ namespace margelo::nitro::nitroplayer {
|
|
|
140
168
|
return __promise;
|
|
141
169
|
}();
|
|
142
170
|
}
|
|
143
|
-
void JHybridTrackPlayerSpec::skipToPrevious() {
|
|
144
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
145
|
-
method(_javaPart);
|
|
171
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::skipToPrevious() {
|
|
172
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("skipToPrevious");
|
|
173
|
+
auto __result = method(_javaPart);
|
|
174
|
+
return [&]() {
|
|
175
|
+
auto __promise = Promise<void>::create();
|
|
176
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
177
|
+
__promise->resolve();
|
|
178
|
+
});
|
|
179
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
180
|
+
jni::JniException __jniError(__throwable);
|
|
181
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
182
|
+
});
|
|
183
|
+
return __promise;
|
|
184
|
+
}();
|
|
146
185
|
}
|
|
147
|
-
void JHybridTrackPlayerSpec::seek(double position) {
|
|
148
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
149
|
-
method(_javaPart, position);
|
|
186
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::seek(double position) {
|
|
187
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* position */)>("seek");
|
|
188
|
+
auto __result = method(_javaPart, position);
|
|
189
|
+
return [&]() {
|
|
190
|
+
auto __promise = Promise<void>::create();
|
|
191
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
192
|
+
__promise->resolve();
|
|
193
|
+
});
|
|
194
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
195
|
+
jni::JniException __jniError(__throwable);
|
|
196
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
197
|
+
});
|
|
198
|
+
return __promise;
|
|
199
|
+
}();
|
|
150
200
|
}
|
|
151
201
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::addToUpNext(const std::string& trackId) {
|
|
152
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("addToUpNext");
|
|
202
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("addToUpNext");
|
|
153
203
|
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
154
204
|
return [&]() {
|
|
155
205
|
auto __promise = Promise<void>::create();
|
|
@@ -164,7 +214,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
164
214
|
}();
|
|
165
215
|
}
|
|
166
216
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::playNext(const std::string& trackId) {
|
|
167
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("playNext");
|
|
217
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("playNext");
|
|
168
218
|
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
169
219
|
return [&]() {
|
|
170
220
|
auto __promise = Promise<void>::create();
|
|
@@ -179,7 +229,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
179
229
|
}();
|
|
180
230
|
}
|
|
181
231
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getActualQueue() {
|
|
182
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getActualQueue");
|
|
232
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getActualQueue");
|
|
183
233
|
auto __result = method(_javaPart);
|
|
184
234
|
return [&]() {
|
|
185
235
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -204,7 +254,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
204
254
|
}();
|
|
205
255
|
}
|
|
206
256
|
std::shared_ptr<Promise<PlayerState>> JHybridTrackPlayerSpec::getState() {
|
|
207
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
257
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
208
258
|
auto __result = method(_javaPart);
|
|
209
259
|
return [&]() {
|
|
210
260
|
auto __promise = Promise<PlayerState>::create();
|
|
@@ -219,52 +269,83 @@ namespace margelo::nitro::nitroplayer {
|
|
|
219
269
|
return __promise;
|
|
220
270
|
}();
|
|
221
271
|
}
|
|
222
|
-
|
|
223
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
272
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::setRepeatMode(RepeatMode mode) {
|
|
273
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JRepeatMode> /* mode */)>("setRepeatMode");
|
|
224
274
|
auto __result = method(_javaPart, JRepeatMode::fromCpp(mode));
|
|
225
|
-
return
|
|
275
|
+
return [&]() {
|
|
276
|
+
auto __promise = Promise<void>::create();
|
|
277
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
278
|
+
__promise->resolve();
|
|
279
|
+
});
|
|
280
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
281
|
+
jni::JniException __jniError(__throwable);
|
|
282
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
283
|
+
});
|
|
284
|
+
return __promise;
|
|
285
|
+
}();
|
|
226
286
|
}
|
|
227
287
|
RepeatMode JHybridTrackPlayerSpec::getRepeatMode() {
|
|
228
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRepeatMode>()>("getRepeatMode");
|
|
288
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JRepeatMode>()>("getRepeatMode");
|
|
229
289
|
auto __result = method(_javaPart);
|
|
230
290
|
return __result->toCpp();
|
|
231
291
|
}
|
|
232
|
-
void JHybridTrackPlayerSpec::configure(const PlayerConfig& config) {
|
|
233
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
234
|
-
method(_javaPart, JPlayerConfig::fromCpp(config));
|
|
292
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::configure(const PlayerConfig& config) {
|
|
293
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JPlayerConfig> /* config */)>("configure");
|
|
294
|
+
auto __result = method(_javaPart, JPlayerConfig::fromCpp(config));
|
|
295
|
+
return [&]() {
|
|
296
|
+
auto __promise = Promise<void>::create();
|
|
297
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
298
|
+
__promise->resolve();
|
|
299
|
+
});
|
|
300
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
301
|
+
jni::JniException __jniError(__throwable);
|
|
302
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
303
|
+
});
|
|
304
|
+
return __promise;
|
|
305
|
+
}();
|
|
235
306
|
}
|
|
236
307
|
void JHybridTrackPlayerSpec::onChangeTrack(const std::function<void(const TrackItem& /* track */, std::optional<Reason> /* reason */)>& callback) {
|
|
237
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackItem_std__optional_Reason_::javaobject> /* callback */)>("onChangeTrack_cxx");
|
|
308
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackItem_std__optional_Reason_::javaobject> /* callback */)>("onChangeTrack_cxx");
|
|
238
309
|
method(_javaPart, JFunc_void_TrackItem_std__optional_Reason__cxx::fromCpp(callback));
|
|
239
310
|
}
|
|
240
311
|
void JHybridTrackPlayerSpec::onPlaybackStateChange(const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& callback) {
|
|
241
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackPlayerState_std__optional_Reason_::javaobject> /* callback */)>("onPlaybackStateChange_cxx");
|
|
312
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackPlayerState_std__optional_Reason_::javaobject> /* callback */)>("onPlaybackStateChange_cxx");
|
|
242
313
|
method(_javaPart, JFunc_void_TrackPlayerState_std__optional_Reason__cxx::fromCpp(callback));
|
|
243
314
|
}
|
|
244
315
|
void JHybridTrackPlayerSpec::onSeek(const std::function<void(double /* position */, double /* totalDuration */)>& callback) {
|
|
245
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double::javaobject> /* callback */)>("onSeek_cxx");
|
|
316
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double::javaobject> /* callback */)>("onSeek_cxx");
|
|
246
317
|
method(_javaPart, JFunc_void_double_double_cxx::fromCpp(callback));
|
|
247
318
|
}
|
|
248
319
|
void JHybridTrackPlayerSpec::onPlaybackProgressChange(const std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)>& callback) {
|
|
249
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double_std__optional_bool_::javaobject> /* callback */)>("onPlaybackProgressChange_cxx");
|
|
320
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double_std__optional_bool_::javaobject> /* callback */)>("onPlaybackProgressChange_cxx");
|
|
250
321
|
method(_javaPart, JFunc_void_double_double_std__optional_bool__cxx::fromCpp(callback));
|
|
251
322
|
}
|
|
252
323
|
void JHybridTrackPlayerSpec::onAndroidAutoConnectionChange(const std::function<void(bool /* connected */)>& callback) {
|
|
253
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onAndroidAutoConnectionChange_cxx");
|
|
324
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onAndroidAutoConnectionChange_cxx");
|
|
254
325
|
method(_javaPart, JFunc_void_bool_cxx::fromCpp(callback));
|
|
255
326
|
}
|
|
256
327
|
bool JHybridTrackPlayerSpec::isAndroidAutoConnected() {
|
|
257
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("isAndroidAutoConnected");
|
|
328
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isAndroidAutoConnected");
|
|
258
329
|
auto __result = method(_javaPart);
|
|
259
330
|
return static_cast<bool>(__result);
|
|
260
331
|
}
|
|
261
|
-
|
|
262
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
332
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::setVolume(double volume) {
|
|
333
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* volume */)>("setVolume");
|
|
263
334
|
auto __result = method(_javaPart, volume);
|
|
264
|
-
return
|
|
335
|
+
return [&]() {
|
|
336
|
+
auto __promise = Promise<void>::create();
|
|
337
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
338
|
+
__promise->resolve();
|
|
339
|
+
});
|
|
340
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
341
|
+
jni::JniException __jniError(__throwable);
|
|
342
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
343
|
+
});
|
|
344
|
+
return __promise;
|
|
345
|
+
}();
|
|
265
346
|
}
|
|
266
347
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::updateTracks(const std::vector<TrackItem>& tracks) {
|
|
267
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */)>("updateTracks");
|
|
348
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */)>("updateTracks");
|
|
268
349
|
auto __result = method(_javaPart, [&]() {
|
|
269
350
|
size_t __size = tracks.size();
|
|
270
351
|
jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
|
|
@@ -288,7 +369,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
288
369
|
}();
|
|
289
370
|
}
|
|
290
371
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getTracksById(const std::vector<std::string>& trackIds) {
|
|
291
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* trackIds */)>("getTracksById");
|
|
372
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* trackIds */)>("getTracksById");
|
|
292
373
|
auto __result = method(_javaPart, [&]() {
|
|
293
374
|
size_t __size = trackIds.size();
|
|
294
375
|
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
@@ -322,7 +403,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
322
403
|
}();
|
|
323
404
|
}
|
|
324
405
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getTracksNeedingUrls() {
|
|
325
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getTracksNeedingUrls");
|
|
406
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getTracksNeedingUrls");
|
|
326
407
|
auto __result = method(_javaPart);
|
|
327
408
|
return [&]() {
|
|
328
409
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -347,7 +428,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
347
428
|
}();
|
|
348
429
|
}
|
|
349
430
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getNextTracks(double count) {
|
|
350
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* count */)>("getNextTracks");
|
|
431
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* count */)>("getNextTracks");
|
|
351
432
|
auto __result = method(_javaPart, count);
|
|
352
433
|
return [&]() {
|
|
353
434
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -372,7 +453,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
372
453
|
}();
|
|
373
454
|
}
|
|
374
455
|
std::shared_ptr<Promise<double>> JHybridTrackPlayerSpec::getCurrentTrackIndex() {
|
|
375
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getCurrentTrackIndex");
|
|
456
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getCurrentTrackIndex");
|
|
376
457
|
auto __result = method(_javaPart);
|
|
377
458
|
return [&]() {
|
|
378
459
|
auto __promise = Promise<double>::create();
|
|
@@ -388,11 +469,11 @@ namespace margelo::nitro::nitroplayer {
|
|
|
388
469
|
}();
|
|
389
470
|
}
|
|
390
471
|
void JHybridTrackPlayerSpec::onTracksNeedUpdate(const std::function<void(const std::vector<TrackItem>& /* tracks */, double /* lookahead */)>& callback) {
|
|
391
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_TrackItem__double::javaobject> /* callback */)>("onTracksNeedUpdate_cxx");
|
|
472
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_TrackItem__double::javaobject> /* callback */)>("onTracksNeedUpdate_cxx");
|
|
392
473
|
method(_javaPart, JFunc_void_std__vector_TrackItem__double_cxx::fromCpp(callback));
|
|
393
474
|
}
|
|
394
475
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::setPlaybackSpeed(double speed) {
|
|
395
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* speed */)>("setPlaybackSpeed");
|
|
476
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* speed */)>("setPlaybackSpeed");
|
|
396
477
|
auto __result = method(_javaPart, speed);
|
|
397
478
|
return [&]() {
|
|
398
479
|
auto __promise = Promise<void>::create();
|
|
@@ -407,7 +488,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
407
488
|
}();
|
|
408
489
|
}
|
|
409
490
|
std::shared_ptr<Promise<double>> JHybridTrackPlayerSpec::getPlaybackSpeed() {
|
|
410
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getPlaybackSpeed");
|
|
491
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getPlaybackSpeed");
|
|
411
492
|
auto __result = method(_javaPart);
|
|
412
493
|
return [&]() {
|
|
413
494
|
auto __promise = Promise<double>::create();
|
|
@@ -422,5 +503,137 @@ namespace margelo::nitro::nitroplayer {
|
|
|
422
503
|
return __promise;
|
|
423
504
|
}();
|
|
424
505
|
}
|
|
506
|
+
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::removeFromPlayNext(const std::string& trackId) {
|
|
507
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("removeFromPlayNext");
|
|
508
|
+
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
509
|
+
return [&]() {
|
|
510
|
+
auto __promise = Promise<bool>::create();
|
|
511
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
512
|
+
auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
|
|
513
|
+
__promise->resolve(static_cast<bool>(__result->value()));
|
|
514
|
+
});
|
|
515
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
516
|
+
jni::JniException __jniError(__throwable);
|
|
517
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
518
|
+
});
|
|
519
|
+
return __promise;
|
|
520
|
+
}();
|
|
521
|
+
}
|
|
522
|
+
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::removeFromUpNext(const std::string& trackId) {
|
|
523
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("removeFromUpNext");
|
|
524
|
+
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
525
|
+
return [&]() {
|
|
526
|
+
auto __promise = Promise<bool>::create();
|
|
527
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
528
|
+
auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
|
|
529
|
+
__promise->resolve(static_cast<bool>(__result->value()));
|
|
530
|
+
});
|
|
531
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
532
|
+
jni::JniException __jniError(__throwable);
|
|
533
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
534
|
+
});
|
|
535
|
+
return __promise;
|
|
536
|
+
}();
|
|
537
|
+
}
|
|
538
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::clearPlayNext() {
|
|
539
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("clearPlayNext");
|
|
540
|
+
auto __result = method(_javaPart);
|
|
541
|
+
return [&]() {
|
|
542
|
+
auto __promise = Promise<void>::create();
|
|
543
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
544
|
+
__promise->resolve();
|
|
545
|
+
});
|
|
546
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
547
|
+
jni::JniException __jniError(__throwable);
|
|
548
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
549
|
+
});
|
|
550
|
+
return __promise;
|
|
551
|
+
}();
|
|
552
|
+
}
|
|
553
|
+
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::clearUpNext() {
|
|
554
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("clearUpNext");
|
|
555
|
+
auto __result = method(_javaPart);
|
|
556
|
+
return [&]() {
|
|
557
|
+
auto __promise = Promise<void>::create();
|
|
558
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
559
|
+
__promise->resolve();
|
|
560
|
+
});
|
|
561
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
562
|
+
jni::JniException __jniError(__throwable);
|
|
563
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
564
|
+
});
|
|
565
|
+
return __promise;
|
|
566
|
+
}();
|
|
567
|
+
}
|
|
568
|
+
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::reorderTemporaryTrack(const std::string& trackId, double newIndex) {
|
|
569
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */, double /* newIndex */)>("reorderTemporaryTrack");
|
|
570
|
+
auto __result = method(_javaPart, jni::make_jstring(trackId), newIndex);
|
|
571
|
+
return [&]() {
|
|
572
|
+
auto __promise = Promise<bool>::create();
|
|
573
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
574
|
+
auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
|
|
575
|
+
__promise->resolve(static_cast<bool>(__result->value()));
|
|
576
|
+
});
|
|
577
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
578
|
+
jni::JniException __jniError(__throwable);
|
|
579
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
580
|
+
});
|
|
581
|
+
return __promise;
|
|
582
|
+
}();
|
|
583
|
+
}
|
|
584
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getPlayNextQueue() {
|
|
585
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getPlayNextQueue");
|
|
586
|
+
auto __result = method(_javaPart);
|
|
587
|
+
return [&]() {
|
|
588
|
+
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
589
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
590
|
+
auto __result = jni::static_ref_cast<jni::JArrayClass<JTrackItem>>(__boxedResult);
|
|
591
|
+
__promise->resolve([&]() {
|
|
592
|
+
size_t __size = __result->size();
|
|
593
|
+
std::vector<TrackItem> __vector;
|
|
594
|
+
__vector.reserve(__size);
|
|
595
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
596
|
+
auto __element = __result->getElement(__i);
|
|
597
|
+
__vector.push_back(__element->toCpp());
|
|
598
|
+
}
|
|
599
|
+
return __vector;
|
|
600
|
+
}());
|
|
601
|
+
});
|
|
602
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
603
|
+
jni::JniException __jniError(__throwable);
|
|
604
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
605
|
+
});
|
|
606
|
+
return __promise;
|
|
607
|
+
}();
|
|
608
|
+
}
|
|
609
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getUpNextQueue() {
|
|
610
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getUpNextQueue");
|
|
611
|
+
auto __result = method(_javaPart);
|
|
612
|
+
return [&]() {
|
|
613
|
+
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
614
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
615
|
+
auto __result = jni::static_ref_cast<jni::JArrayClass<JTrackItem>>(__boxedResult);
|
|
616
|
+
__promise->resolve([&]() {
|
|
617
|
+
size_t __size = __result->size();
|
|
618
|
+
std::vector<TrackItem> __vector;
|
|
619
|
+
__vector.reserve(__size);
|
|
620
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
621
|
+
auto __element = __result->getElement(__i);
|
|
622
|
+
__vector.push_back(__element->toCpp());
|
|
623
|
+
}
|
|
624
|
+
return __vector;
|
|
625
|
+
}());
|
|
626
|
+
});
|
|
627
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
628
|
+
jni::JniException __jniError(__throwable);
|
|
629
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
630
|
+
});
|
|
631
|
+
return __promise;
|
|
632
|
+
}();
|
|
633
|
+
}
|
|
634
|
+
void JHybridTrackPlayerSpec::onTemporaryQueueChange(const std::function<void(const std::vector<TrackItem>& /* playNextQueue */, const std::vector<TrackItem>& /* upNextQueue */)>& callback) {
|
|
635
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_TrackItem__std__vector_TrackItem_::javaobject> /* callback */)>("onTemporaryQueueChange_cxx");
|
|
636
|
+
method(_javaPart, JFunc_void_std__vector_TrackItem__std__vector_TrackItem__cxx::fromCpp(callback));
|
|
637
|
+
}
|
|
425
638
|
|
|
426
639
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroplayer {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridTrackPlayerSpec: public
|
|
22
|
-
public virtual HybridTrackPlayerSpec {
|
|
21
|
+
class JHybridTrackPlayerSpec: public virtual HybridTrackPlayerSpec, 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/HybridTrackPlayerSpec;";
|
|
25
|
+
std::shared_ptr<JHybridTrackPlayerSpec> getJHybridTrackPlayerSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridTrackPlayerSpec$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 JHybridTrackPlayerSpec(const jni::local_ref<JHybridTrackPlayerSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridTrackPlayerSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridTrackPlayerSpec() 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<JHybridTrackPlayerSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridTrackPlayerSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -55,27 +54,27 @@ namespace margelo::nitro::nitroplayer {
|
|
|
55
54
|
|
|
56
55
|
public:
|
|
57
56
|
// Methods
|
|
58
|
-
void play() override;
|
|
59
|
-
void pause() override;
|
|
57
|
+
std::shared_ptr<Promise<void>> play() override;
|
|
58
|
+
std::shared_ptr<Promise<void>> pause() override;
|
|
60
59
|
std::shared_ptr<Promise<void>> playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) override;
|
|
61
|
-
void skipToNext() override;
|
|
60
|
+
std::shared_ptr<Promise<void>> skipToNext() override;
|
|
62
61
|
std::shared_ptr<Promise<bool>> skipToIndex(double index) override;
|
|
63
|
-
void skipToPrevious() override;
|
|
64
|
-
void seek(double position) override;
|
|
62
|
+
std::shared_ptr<Promise<void>> skipToPrevious() override;
|
|
63
|
+
std::shared_ptr<Promise<void>> seek(double position) override;
|
|
65
64
|
std::shared_ptr<Promise<void>> addToUpNext(const std::string& trackId) override;
|
|
66
65
|
std::shared_ptr<Promise<void>> playNext(const std::string& trackId) override;
|
|
67
66
|
std::shared_ptr<Promise<std::vector<TrackItem>>> getActualQueue() override;
|
|
68
67
|
std::shared_ptr<Promise<PlayerState>> getState() override;
|
|
69
|
-
|
|
68
|
+
std::shared_ptr<Promise<void>> setRepeatMode(RepeatMode mode) override;
|
|
70
69
|
RepeatMode getRepeatMode() override;
|
|
71
|
-
void configure(const PlayerConfig& config) override;
|
|
70
|
+
std::shared_ptr<Promise<void>> configure(const PlayerConfig& config) override;
|
|
72
71
|
void onChangeTrack(const std::function<void(const TrackItem& /* track */, std::optional<Reason> /* reason */)>& callback) override;
|
|
73
72
|
void onPlaybackStateChange(const std::function<void(TrackPlayerState /* state */, std::optional<Reason> /* reason */)>& callback) override;
|
|
74
73
|
void onSeek(const std::function<void(double /* position */, double /* totalDuration */)>& callback) override;
|
|
75
74
|
void onPlaybackProgressChange(const std::function<void(double /* position */, double /* totalDuration */, std::optional<bool> /* isManuallySeeked */)>& callback) override;
|
|
76
75
|
void onAndroidAutoConnectionChange(const std::function<void(bool /* connected */)>& callback) override;
|
|
77
76
|
bool isAndroidAutoConnected() override;
|
|
78
|
-
|
|
77
|
+
std::shared_ptr<Promise<void>> setVolume(double volume) override;
|
|
79
78
|
std::shared_ptr<Promise<void>> updateTracks(const std::vector<TrackItem>& tracks) override;
|
|
80
79
|
std::shared_ptr<Promise<std::vector<TrackItem>>> getTracksById(const std::vector<std::string>& trackIds) override;
|
|
81
80
|
std::shared_ptr<Promise<std::vector<TrackItem>>> getTracksNeedingUrls() override;
|
|
@@ -84,11 +83,17 @@ namespace margelo::nitro::nitroplayer {
|
|
|
84
83
|
void onTracksNeedUpdate(const std::function<void(const std::vector<TrackItem>& /* tracks */, double /* lookahead */)>& callback) override;
|
|
85
84
|
std::shared_ptr<Promise<void>> setPlaybackSpeed(double speed) override;
|
|
86
85
|
std::shared_ptr<Promise<double>> getPlaybackSpeed() override;
|
|
86
|
+
std::shared_ptr<Promise<bool>> removeFromPlayNext(const std::string& trackId) override;
|
|
87
|
+
std::shared_ptr<Promise<bool>> removeFromUpNext(const std::string& trackId) override;
|
|
88
|
+
std::shared_ptr<Promise<void>> clearPlayNext() override;
|
|
89
|
+
std::shared_ptr<Promise<void>> clearUpNext() override;
|
|
90
|
+
std::shared_ptr<Promise<bool>> reorderTemporaryTrack(const std::string& trackId, double newIndex) override;
|
|
91
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> getPlayNextQueue() override;
|
|
92
|
+
std::shared_ptr<Promise<std::vector<TrackItem>>> getUpNextQueue() override;
|
|
93
|
+
void onTemporaryQueueChange(const std::function<void(const std::vector<TrackItem>& /* playNextQueue */, const std::vector<TrackItem>& /* upNextQueue */)>& callback) override;
|
|
87
94
|
|
|
88
95
|
private:
|
|
89
|
-
|
|
90
|
-
using HybridBase::HybridBase;
|
|
91
|
-
jni::global_ref<JHybridTrackPlayerSpec::javaobject> _javaPart;
|
|
96
|
+
jni::global_ref<JHybridTrackPlayerSpec::JavaPart> _javaPart;
|
|
92
97
|
};
|
|
93
98
|
|
|
94
99
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JPlaybackSource final: public jni::JavaClass<JPlaybackSource> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlaybackSource;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JPlayerConfig final: public jni::JavaClass<JPlayerConfig> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlayerConfig;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|