react-native-nitro-player 0.6.0 → 0.7.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/core/TrackPlayerCore.kt +43 -0
- package/ios/core/TrackPlayerCore.swift +15 -0
- package/nitro.json +44 -11
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +61 -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++/JGainRange.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +20 -26
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +20 -26
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +53 -59
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +36 -42
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +31 -37
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +19 -22
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +47 -53
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +19 -22
- 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/HybridAndroidAutoMediaLibrarySpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +15 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +15 -18
- 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/package.json +3 -3
|
@@ -37,37 +37,31 @@ namespace margelo::nitro::nitroplayer { enum class QueueOperation; }
|
|
|
37
37
|
|
|
38
38
|
namespace margelo::nitro::nitroplayer {
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
});
|
|
40
|
+
std::shared_ptr<JHybridPlayerQueueSpec> JHybridPlayerQueueSpec::JavaPart::getJHybridPlayerQueueSpec() {
|
|
41
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
42
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridPlayerQueueSpec>(hybridObject);
|
|
43
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
44
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridPlayerQueueSpec!");
|
|
45
|
+
}
|
|
46
|
+
return castHybridObject;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return method(_javaPart);
|
|
49
|
+
jni::local_ref<JHybridPlayerQueueSpec::CxxPart::jhybriddata> JHybridPlayerQueueSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
50
|
+
return makeCxxInstance(jThis);
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
std::shared_ptr<JHybridObject> JHybridPlayerQueueSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
54
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridPlayerQueueSpec::JavaPart>(javaPart);
|
|
55
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
56
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridPlayerQueueSpec::JavaPart!");
|
|
58
57
|
}
|
|
59
|
-
return
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
void JHybridPlayerQueueSpec::dispose() noexcept {
|
|
63
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
64
|
-
method(_javaPart);
|
|
58
|
+
return std::make_shared<JHybridPlayerQueueSpec>(castJavaPart);
|
|
65
59
|
}
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
void JHybridPlayerQueueSpec::CxxPart::registerNatives() {
|
|
62
|
+
registerHybrid({
|
|
63
|
+
makeNativeMethod("initHybrid", JHybridPlayerQueueSpec::CxxPart::initHybrid),
|
|
64
|
+
});
|
|
71
65
|
}
|
|
72
66
|
|
|
73
67
|
// Properties
|
|
@@ -75,25 +69,25 @@ namespace margelo::nitro::nitroplayer {
|
|
|
75
69
|
|
|
76
70
|
// Methods
|
|
77
71
|
std::string JHybridPlayerQueueSpec::createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) {
|
|
78
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JString> /* description */, jni::alias_ref<jni::JString> /* artwork */)>("createPlaylist");
|
|
72
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JString> /* description */, jni::alias_ref<jni::JString> /* artwork */)>("createPlaylist");
|
|
79
73
|
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);
|
|
80
74
|
return __result->toStdString();
|
|
81
75
|
}
|
|
82
76
|
void JHybridPlayerQueueSpec::deletePlaylist(const std::string& playlistId) {
|
|
83
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */)>("deletePlaylist");
|
|
77
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */)>("deletePlaylist");
|
|
84
78
|
method(_javaPart, jni::make_jstring(playlistId));
|
|
85
79
|
}
|
|
86
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) {
|
|
87
|
-
static const auto method = javaClassStatic()->getMethod<void(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");
|
|
81
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(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");
|
|
88
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);
|
|
89
83
|
}
|
|
90
84
|
std::variant<nitro::NullType, Playlist> JHybridPlayerQueueSpec::getPlaylist(const std::string& playlistId) {
|
|
91
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_Playlist>(jni::alias_ref<jni::JString> /* playlistId */)>("getPlaylist");
|
|
85
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_Playlist>(jni::alias_ref<jni::JString> /* playlistId */)>("getPlaylist");
|
|
92
86
|
auto __result = method(_javaPart, jni::make_jstring(playlistId));
|
|
93
87
|
return __result->toCpp();
|
|
94
88
|
}
|
|
95
89
|
std::vector<Playlist> JHybridPlayerQueueSpec::getAllPlaylists() {
|
|
96
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JPlaylist>>()>("getAllPlaylists");
|
|
90
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JPlaylist>>()>("getAllPlaylists");
|
|
97
91
|
auto __result = method(_javaPart);
|
|
98
92
|
return [&]() {
|
|
99
93
|
size_t __size = __result->size();
|
|
@@ -107,11 +101,11 @@ namespace margelo::nitro::nitroplayer {
|
|
|
107
101
|
}();
|
|
108
102
|
}
|
|
109
103
|
void JHybridPlayerQueueSpec::addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) {
|
|
110
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<JTrackItem> /* track */, jni::alias_ref<jni::JDouble> /* index */)>("addTrackToPlaylist");
|
|
104
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<JTrackItem> /* track */, jni::alias_ref<jni::JDouble> /* index */)>("addTrackToPlaylist");
|
|
111
105
|
method(_javaPart, jni::make_jstring(playlistId), JTrackItem::fromCpp(track), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
112
106
|
}
|
|
113
107
|
void JHybridPlayerQueueSpec::addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) {
|
|
114
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */, jni::alias_ref<jni::JDouble> /* index */)>("addTracksToPlaylist");
|
|
108
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */, jni::alias_ref<jni::JDouble> /* index */)>("addTracksToPlaylist");
|
|
115
109
|
method(_javaPart, jni::make_jstring(playlistId), [&]() {
|
|
116
110
|
size_t __size = tracks.size();
|
|
117
111
|
jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
|
|
@@ -124,28 +118,28 @@ namespace margelo::nitro::nitroplayer {
|
|
|
124
118
|
}(), index.has_value() ? jni::JDouble::valueOf(index.value()) : nullptr);
|
|
125
119
|
}
|
|
126
120
|
void JHybridPlayerQueueSpec::removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) {
|
|
127
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */)>("removeTrackFromPlaylist");
|
|
121
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */)>("removeTrackFromPlaylist");
|
|
128
122
|
method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId));
|
|
129
123
|
}
|
|
130
124
|
void JHybridPlayerQueueSpec::reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) {
|
|
131
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */, double /* newIndex */)>("reorderTrackInPlaylist");
|
|
125
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */, jni::alias_ref<jni::JString> /* trackId */, double /* newIndex */)>("reorderTrackInPlaylist");
|
|
132
126
|
method(_javaPart, jni::make_jstring(playlistId), jni::make_jstring(trackId), newIndex);
|
|
133
127
|
}
|
|
134
128
|
void JHybridPlayerQueueSpec::loadPlaylist(const std::string& playlistId) {
|
|
135
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */)>("loadPlaylist");
|
|
129
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playlistId */)>("loadPlaylist");
|
|
136
130
|
method(_javaPart, jni::make_jstring(playlistId));
|
|
137
131
|
}
|
|
138
132
|
std::variant<nitro::NullType, std::string> JHybridPlayerQueueSpec::getCurrentPlaylistId() {
|
|
139
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPlaylistId");
|
|
133
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPlaylistId");
|
|
140
134
|
auto __result = method(_javaPart);
|
|
141
135
|
return __result->toCpp();
|
|
142
136
|
}
|
|
143
137
|
void JHybridPlayerQueueSpec::onPlaylistsChanged(const std::function<void(const std::vector<Playlist>& /* playlists */, std::optional<QueueOperation> /* operation */)>& callback) {
|
|
144
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_Playlist__std__optional_QueueOperation_::javaobject> /* callback */)>("onPlaylistsChanged_cxx");
|
|
138
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_Playlist__std__optional_QueueOperation_::javaobject> /* callback */)>("onPlaylistsChanged_cxx");
|
|
145
139
|
method(_javaPart, JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx::fromCpp(callback));
|
|
146
140
|
}
|
|
147
141
|
void JHybridPlayerQueueSpec::onPlaylistChanged(const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& callback) {
|
|
148
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string_Playlist_std__optional_QueueOperation_::javaobject> /* callback */)>("onPlaylistChanged_cxx");
|
|
142
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string_Playlist_std__optional_QueueOperation_::javaobject> /* callback */)>("onPlaylistChanged_cxx");
|
|
149
143
|
method(_javaPart, JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::fromCpp(callback));
|
|
150
144
|
}
|
|
151
145
|
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroplayer {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridPlayerQueueSpec: public
|
|
22
|
-
public virtual HybridPlayerQueueSpec {
|
|
21
|
+
class JHybridPlayerQueueSpec: public virtual HybridPlayerQueueSpec, 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/HybridPlayerQueueSpec;";
|
|
25
|
+
std::shared_ptr<JHybridPlayerQueueSpec> getJHybridPlayerQueueSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridPlayerQueueSpec$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 JHybridPlayerQueueSpec(const jni::local_ref<JHybridPlayerQueueSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridPlayerQueueSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridPlayerQueueSpec() 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<JHybridPlayerQueueSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridPlayerQueueSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -70,9 +69,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
70
69
|
void onPlaylistChanged(const std::function<void(const std::string& /* playlistId */, const Playlist& /* playlist */, std::optional<QueueOperation> /* operation */)>& callback) override;
|
|
71
70
|
|
|
72
71
|
private:
|
|
73
|
-
|
|
74
|
-
using HybridBase::HybridBase;
|
|
75
|
-
jni::global_ref<JHybridPlayerQueueSpec::javaobject> _javaPart;
|
|
72
|
+
jni::global_ref<JHybridPlayerQueueSpec::JavaPart> _javaPart;
|
|
76
73
|
};
|
|
77
74
|
|
|
78
75
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -60,37 +60,31 @@ namespace margelo::nitro::nitroplayer { enum class Reason; }
|
|
|
60
60
|
|
|
61
61
|
namespace margelo::nitro::nitroplayer {
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
63
|
+
std::shared_ptr<JHybridTrackPlayerSpec> JHybridTrackPlayerSpec::JavaPart::getJHybridTrackPlayerSpec() {
|
|
64
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
65
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridTrackPlayerSpec>(hybridObject);
|
|
66
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
67
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridTrackPlayerSpec!");
|
|
68
|
+
}
|
|
69
|
+
return castHybridObject;
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return method(_javaPart);
|
|
72
|
+
jni::local_ref<JHybridTrackPlayerSpec::CxxPart::jhybriddata> JHybridTrackPlayerSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
73
|
+
return makeCxxInstance(jThis);
|
|
76
74
|
}
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
std::shared_ptr<JHybridObject> JHybridTrackPlayerSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
77
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridTrackPlayerSpec::JavaPart>(javaPart);
|
|
78
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
79
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridTrackPlayerSpec::JavaPart!");
|
|
81
80
|
}
|
|
82
|
-
return
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
void JHybridTrackPlayerSpec::dispose() noexcept {
|
|
86
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
87
|
-
method(_javaPart);
|
|
81
|
+
return std::make_shared<JHybridTrackPlayerSpec>(castJavaPart);
|
|
88
82
|
}
|
|
89
83
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
void JHybridTrackPlayerSpec::CxxPart::registerNatives() {
|
|
85
|
+
registerHybrid({
|
|
86
|
+
makeNativeMethod("initHybrid", JHybridTrackPlayerSpec::CxxPart::initHybrid),
|
|
87
|
+
});
|
|
94
88
|
}
|
|
95
89
|
|
|
96
90
|
// Properties
|
|
@@ -98,15 +92,15 @@ namespace margelo::nitro::nitroplayer {
|
|
|
98
92
|
|
|
99
93
|
// Methods
|
|
100
94
|
void JHybridTrackPlayerSpec::play() {
|
|
101
|
-
static const auto method = javaClassStatic()->getMethod<void()>("play");
|
|
95
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("play");
|
|
102
96
|
method(_javaPart);
|
|
103
97
|
}
|
|
104
98
|
void JHybridTrackPlayerSpec::pause() {
|
|
105
|
-
static const auto method = javaClassStatic()->getMethod<void()>("pause");
|
|
99
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("pause");
|
|
106
100
|
method(_javaPart);
|
|
107
101
|
}
|
|
108
102
|
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");
|
|
103
|
+
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
104
|
auto __result = method(_javaPart, jni::make_jstring(songId), fromPlaylist.has_value() ? jni::make_jstring(fromPlaylist.value()) : nullptr);
|
|
111
105
|
return [&]() {
|
|
112
106
|
auto __promise = Promise<void>::create();
|
|
@@ -121,11 +115,11 @@ namespace margelo::nitro::nitroplayer {
|
|
|
121
115
|
}();
|
|
122
116
|
}
|
|
123
117
|
void JHybridTrackPlayerSpec::skipToNext() {
|
|
124
|
-
static const auto method = javaClassStatic()->getMethod<void()>("skipToNext");
|
|
118
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("skipToNext");
|
|
125
119
|
method(_javaPart);
|
|
126
120
|
}
|
|
127
121
|
std::shared_ptr<Promise<bool>> JHybridTrackPlayerSpec::skipToIndex(double index) {
|
|
128
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* index */)>("skipToIndex");
|
|
122
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* index */)>("skipToIndex");
|
|
129
123
|
auto __result = method(_javaPart, index);
|
|
130
124
|
return [&]() {
|
|
131
125
|
auto __promise = Promise<bool>::create();
|
|
@@ -141,15 +135,15 @@ namespace margelo::nitro::nitroplayer {
|
|
|
141
135
|
}();
|
|
142
136
|
}
|
|
143
137
|
void JHybridTrackPlayerSpec::skipToPrevious() {
|
|
144
|
-
static const auto method = javaClassStatic()->getMethod<void()>("skipToPrevious");
|
|
138
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("skipToPrevious");
|
|
145
139
|
method(_javaPart);
|
|
146
140
|
}
|
|
147
141
|
void JHybridTrackPlayerSpec::seek(double position) {
|
|
148
|
-
static const auto method = javaClassStatic()->getMethod<void(double /* position */)>("seek");
|
|
142
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* position */)>("seek");
|
|
149
143
|
method(_javaPart, position);
|
|
150
144
|
}
|
|
151
145
|
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");
|
|
146
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("addToUpNext");
|
|
153
147
|
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
154
148
|
return [&]() {
|
|
155
149
|
auto __promise = Promise<void>::create();
|
|
@@ -164,7 +158,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
164
158
|
}();
|
|
165
159
|
}
|
|
166
160
|
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");
|
|
161
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* trackId */)>("playNext");
|
|
168
162
|
auto __result = method(_javaPart, jni::make_jstring(trackId));
|
|
169
163
|
return [&]() {
|
|
170
164
|
auto __promise = Promise<void>::create();
|
|
@@ -179,7 +173,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
179
173
|
}();
|
|
180
174
|
}
|
|
181
175
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getActualQueue() {
|
|
182
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getActualQueue");
|
|
176
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getActualQueue");
|
|
183
177
|
auto __result = method(_javaPart);
|
|
184
178
|
return [&]() {
|
|
185
179
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -204,7 +198,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
204
198
|
}();
|
|
205
199
|
}
|
|
206
200
|
std::shared_ptr<Promise<PlayerState>> JHybridTrackPlayerSpec::getState() {
|
|
207
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
201
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getState");
|
|
208
202
|
auto __result = method(_javaPart);
|
|
209
203
|
return [&]() {
|
|
210
204
|
auto __promise = Promise<PlayerState>::create();
|
|
@@ -220,51 +214,51 @@ namespace margelo::nitro::nitroplayer {
|
|
|
220
214
|
}();
|
|
221
215
|
}
|
|
222
216
|
bool JHybridTrackPlayerSpec::setRepeatMode(RepeatMode mode) {
|
|
223
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<JRepeatMode> /* mode */)>("setRepeatMode");
|
|
217
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<JRepeatMode> /* mode */)>("setRepeatMode");
|
|
224
218
|
auto __result = method(_javaPart, JRepeatMode::fromCpp(mode));
|
|
225
219
|
return static_cast<bool>(__result);
|
|
226
220
|
}
|
|
227
221
|
RepeatMode JHybridTrackPlayerSpec::getRepeatMode() {
|
|
228
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRepeatMode>()>("getRepeatMode");
|
|
222
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JRepeatMode>()>("getRepeatMode");
|
|
229
223
|
auto __result = method(_javaPart);
|
|
230
224
|
return __result->toCpp();
|
|
231
225
|
}
|
|
232
226
|
void JHybridTrackPlayerSpec::configure(const PlayerConfig& config) {
|
|
233
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPlayerConfig> /* config */)>("configure");
|
|
227
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JPlayerConfig> /* config */)>("configure");
|
|
234
228
|
method(_javaPart, JPlayerConfig::fromCpp(config));
|
|
235
229
|
}
|
|
236
230
|
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");
|
|
231
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackItem_std__optional_Reason_::javaobject> /* callback */)>("onChangeTrack_cxx");
|
|
238
232
|
method(_javaPart, JFunc_void_TrackItem_std__optional_Reason__cxx::fromCpp(callback));
|
|
239
233
|
}
|
|
240
234
|
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");
|
|
235
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_TrackPlayerState_std__optional_Reason_::javaobject> /* callback */)>("onPlaybackStateChange_cxx");
|
|
242
236
|
method(_javaPart, JFunc_void_TrackPlayerState_std__optional_Reason__cxx::fromCpp(callback));
|
|
243
237
|
}
|
|
244
238
|
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");
|
|
239
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double::javaobject> /* callback */)>("onSeek_cxx");
|
|
246
240
|
method(_javaPart, JFunc_void_double_double_cxx::fromCpp(callback));
|
|
247
241
|
}
|
|
248
242
|
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");
|
|
243
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double_double_std__optional_bool_::javaobject> /* callback */)>("onPlaybackProgressChange_cxx");
|
|
250
244
|
method(_javaPart, JFunc_void_double_double_std__optional_bool__cxx::fromCpp(callback));
|
|
251
245
|
}
|
|
252
246
|
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");
|
|
247
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onAndroidAutoConnectionChange_cxx");
|
|
254
248
|
method(_javaPart, JFunc_void_bool_cxx::fromCpp(callback));
|
|
255
249
|
}
|
|
256
250
|
bool JHybridTrackPlayerSpec::isAndroidAutoConnected() {
|
|
257
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("isAndroidAutoConnected");
|
|
251
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isAndroidAutoConnected");
|
|
258
252
|
auto __result = method(_javaPart);
|
|
259
253
|
return static_cast<bool>(__result);
|
|
260
254
|
}
|
|
261
255
|
bool JHybridTrackPlayerSpec::setVolume(double volume) {
|
|
262
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(double /* volume */)>("setVolume");
|
|
256
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(double /* volume */)>("setVolume");
|
|
263
257
|
auto __result = method(_javaPart, volume);
|
|
264
258
|
return static_cast<bool>(__result);
|
|
265
259
|
}
|
|
266
260
|
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");
|
|
261
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<JTrackItem>> /* tracks */)>("updateTracks");
|
|
268
262
|
auto __result = method(_javaPart, [&]() {
|
|
269
263
|
size_t __size = tracks.size();
|
|
270
264
|
jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
|
|
@@ -288,7 +282,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
288
282
|
}();
|
|
289
283
|
}
|
|
290
284
|
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");
|
|
285
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JArrayClass<jni::JString>> /* trackIds */)>("getTracksById");
|
|
292
286
|
auto __result = method(_javaPart, [&]() {
|
|
293
287
|
size_t __size = trackIds.size();
|
|
294
288
|
jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
|
|
@@ -322,7 +316,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
322
316
|
}();
|
|
323
317
|
}
|
|
324
318
|
std::shared_ptr<Promise<std::vector<TrackItem>>> JHybridTrackPlayerSpec::getTracksNeedingUrls() {
|
|
325
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getTracksNeedingUrls");
|
|
319
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getTracksNeedingUrls");
|
|
326
320
|
auto __result = method(_javaPart);
|
|
327
321
|
return [&]() {
|
|
328
322
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -347,7 +341,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
347
341
|
}();
|
|
348
342
|
}
|
|
349
343
|
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");
|
|
344
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* count */)>("getNextTracks");
|
|
351
345
|
auto __result = method(_javaPart, count);
|
|
352
346
|
return [&]() {
|
|
353
347
|
auto __promise = Promise<std::vector<TrackItem>>::create();
|
|
@@ -372,7 +366,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
372
366
|
}();
|
|
373
367
|
}
|
|
374
368
|
std::shared_ptr<Promise<double>> JHybridTrackPlayerSpec::getCurrentTrackIndex() {
|
|
375
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getCurrentTrackIndex");
|
|
369
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getCurrentTrackIndex");
|
|
376
370
|
auto __result = method(_javaPart);
|
|
377
371
|
return [&]() {
|
|
378
372
|
auto __promise = Promise<double>::create();
|
|
@@ -388,11 +382,11 @@ namespace margelo::nitro::nitroplayer {
|
|
|
388
382
|
}();
|
|
389
383
|
}
|
|
390
384
|
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");
|
|
385
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_TrackItem__double::javaobject> /* callback */)>("onTracksNeedUpdate_cxx");
|
|
392
386
|
method(_javaPart, JFunc_void_std__vector_TrackItem__double_cxx::fromCpp(callback));
|
|
393
387
|
}
|
|
394
388
|
std::shared_ptr<Promise<void>> JHybridTrackPlayerSpec::setPlaybackSpeed(double speed) {
|
|
395
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* speed */)>("setPlaybackSpeed");
|
|
389
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(double /* speed */)>("setPlaybackSpeed");
|
|
396
390
|
auto __result = method(_javaPart, speed);
|
|
397
391
|
return [&]() {
|
|
398
392
|
auto __promise = Promise<void>::create();
|
|
@@ -407,7 +401,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
407
401
|
}();
|
|
408
402
|
}
|
|
409
403
|
std::shared_ptr<Promise<double>> JHybridTrackPlayerSpec::getPlaybackSpeed() {
|
|
410
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getPlaybackSpeed");
|
|
404
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getPlaybackSpeed");
|
|
411
405
|
auto __result = method(_javaPart);
|
|
412
406
|
return [&]() {
|
|
413
407
|
auto __promise = Promise<double>::create();
|
|
@@ -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
|
|
|
@@ -86,9 +85,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
86
85
|
std::shared_ptr<Promise<double>> getPlaybackSpeed() override;
|
|
87
86
|
|
|
88
87
|
private:
|
|
89
|
-
|
|
90
|
-
using HybridBase::HybridBase;
|
|
91
|
-
jni::global_ref<JHybridTrackPlayerSpec::javaobject> _javaPart;
|
|
88
|
+
jni::global_ref<JHybridTrackPlayerSpec::JavaPart> _javaPart;
|
|
92
89
|
};
|
|
93
90
|
|
|
94
91
|
} // 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
|
/**
|
|
@@ -35,7 +35,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
35
35
|
*/
|
|
36
36
|
struct JPlayerState final: public jni::JavaClass<JPlayerState> {
|
|
37
37
|
public:
|
|
38
|
-
static auto
|
|
38
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlayerState;";
|
|
39
39
|
|
|
40
40
|
public:
|
|
41
41
|
/**
|
|
@@ -31,7 +31,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
31
31
|
*/
|
|
32
32
|
struct JPlaylist final: public jni::JavaClass<JPlaylist> {
|
|
33
33
|
public:
|
|
34
|
-
static auto
|
|
34
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Playlist;";
|
|
35
35
|
|
|
36
36
|
public:
|
|
37
37
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JPresetType final: public jni::JavaClass<JPresetType> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PresetType;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JQueueOperation final: public jni::JavaClass<JQueueOperation> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/QueueOperation;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JReason final: public jni::JavaClass<JReason> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Reason;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JRepeatMode final: public jni::JavaClass<JRepeatMode> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/RepeatMode;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JStorageLocation final: public jni::JavaClass<JStorageLocation> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/StorageLocation;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|