react-native-nitro-player 0.6.1 → 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/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
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroplayer {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridDownloadManagerSpec: public
|
|
22
|
-
public virtual HybridDownloadManagerSpec {
|
|
21
|
+
class JHybridDownloadManagerSpec: public virtual HybridDownloadManagerSpec, 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/HybridDownloadManagerSpec;";
|
|
25
|
+
std::shared_ptr<JHybridDownloadManagerSpec> getJHybridDownloadManagerSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridDownloadManagerSpec$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 JHybridDownloadManagerSpec(const jni::local_ref<JHybridDownloadManagerSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridDownloadManagerSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridDownloadManagerSpec() 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<JHybridDownloadManagerSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridDownloadManagerSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -92,9 +91,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
92
91
|
void onDownloadComplete(const std::function<void(const DownloadedTrack& /* downloadedTrack */)>& callback) override;
|
|
93
92
|
|
|
94
93
|
private:
|
|
95
|
-
|
|
96
|
-
using HybridBase::HybridBase;
|
|
97
|
-
jni::global_ref<JHybridDownloadManagerSpec::javaobject> _javaPart;
|
|
94
|
+
jni::global_ref<JHybridDownloadManagerSpec::JavaPart> _javaPart;
|
|
98
95
|
};
|
|
99
96
|
|
|
100
97
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -43,37 +43,31 @@ namespace margelo::nitro::nitroplayer { struct EqualizerState; }
|
|
|
43
43
|
|
|
44
44
|
namespace margelo::nitro::nitroplayer {
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
46
|
+
std::shared_ptr<JHybridEqualizerSpec> JHybridEqualizerSpec::JavaPart::getJHybridEqualizerSpec() {
|
|
47
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
48
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridEqualizerSpec>(hybridObject);
|
|
49
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
50
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridEqualizerSpec!");
|
|
51
|
+
}
|
|
52
|
+
return castHybridObject;
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return method(_javaPart);
|
|
55
|
+
jni::local_ref<JHybridEqualizerSpec::CxxPart::jhybriddata> JHybridEqualizerSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
56
|
+
return makeCxxInstance(jThis);
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
std::shared_ptr<JHybridObject> JHybridEqualizerSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
60
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridEqualizerSpec::JavaPart>(javaPart);
|
|
61
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
62
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridEqualizerSpec::JavaPart!");
|
|
64
63
|
}
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
void JHybridEqualizerSpec::dispose() noexcept {
|
|
69
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
70
|
-
method(_javaPart);
|
|
64
|
+
return std::make_shared<JHybridEqualizerSpec>(castJavaPart);
|
|
71
65
|
}
|
|
72
66
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
void JHybridEqualizerSpec::CxxPart::registerNatives() {
|
|
68
|
+
registerHybrid({
|
|
69
|
+
makeNativeMethod("initHybrid", JHybridEqualizerSpec::CxxPart::initHybrid),
|
|
70
|
+
});
|
|
77
71
|
}
|
|
78
72
|
|
|
79
73
|
// Properties
|
|
@@ -81,17 +75,17 @@ namespace margelo::nitro::nitroplayer {
|
|
|
81
75
|
|
|
82
76
|
// Methods
|
|
83
77
|
bool JHybridEqualizerSpec::setEnabled(bool enabled) {
|
|
84
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jboolean /* enabled */)>("setEnabled");
|
|
78
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jboolean /* enabled */)>("setEnabled");
|
|
85
79
|
auto __result = method(_javaPart, enabled);
|
|
86
80
|
return static_cast<bool>(__result);
|
|
87
81
|
}
|
|
88
82
|
bool JHybridEqualizerSpec::isEnabled() {
|
|
89
|
-
static const auto method = javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
83
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isEnabled");
|
|
90
84
|
auto __result = method(_javaPart);
|
|
91
85
|
return static_cast<bool>(__result);
|
|
92
86
|
}
|
|
93
87
|
std::vector<EqualizerBand> JHybridEqualizerSpec::getBands() {
|
|
94
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerBand>>()>("getBands");
|
|
88
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerBand>>()>("getBands");
|
|
95
89
|
auto __result = method(_javaPart);
|
|
96
90
|
return [&]() {
|
|
97
91
|
size_t __size = __result->size();
|
|
@@ -105,12 +99,12 @@ namespace margelo::nitro::nitroplayer {
|
|
|
105
99
|
}();
|
|
106
100
|
}
|
|
107
101
|
bool JHybridEqualizerSpec::setBandGain(double bandIndex, double gainDb) {
|
|
108
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(double /* bandIndex */, double /* gainDb */)>("setBandGain");
|
|
102
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(double /* bandIndex */, double /* gainDb */)>("setBandGain");
|
|
109
103
|
auto __result = method(_javaPart, bandIndex, gainDb);
|
|
110
104
|
return static_cast<bool>(__result);
|
|
111
105
|
}
|
|
112
106
|
bool JHybridEqualizerSpec::setAllBandGains(const std::vector<double>& gains) {
|
|
113
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JArrayDouble> /* gains */)>("setAllBandGains");
|
|
107
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JArrayDouble> /* gains */)>("setAllBandGains");
|
|
114
108
|
auto __result = method(_javaPart, [&]() {
|
|
115
109
|
size_t __size = gains.size();
|
|
116
110
|
jni::local_ref<jni::JArrayDouble> __array = jni::JArrayDouble::newArray(__size);
|
|
@@ -120,12 +114,12 @@ namespace margelo::nitro::nitroplayer {
|
|
|
120
114
|
return static_cast<bool>(__result);
|
|
121
115
|
}
|
|
122
116
|
GainRange JHybridEqualizerSpec::getBandRange() {
|
|
123
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
117
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JGainRange>()>("getBandRange");
|
|
124
118
|
auto __result = method(_javaPart);
|
|
125
119
|
return __result->toCpp();
|
|
126
120
|
}
|
|
127
121
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getPresets() {
|
|
128
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getPresets");
|
|
122
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getPresets");
|
|
129
123
|
auto __result = method(_javaPart);
|
|
130
124
|
return [&]() {
|
|
131
125
|
size_t __size = __result->size();
|
|
@@ -139,7 +133,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
139
133
|
}();
|
|
140
134
|
}
|
|
141
135
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getBuiltInPresets() {
|
|
142
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getBuiltInPresets");
|
|
136
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getBuiltInPresets");
|
|
143
137
|
auto __result = method(_javaPart);
|
|
144
138
|
return [&]() {
|
|
145
139
|
size_t __size = __result->size();
|
|
@@ -153,7 +147,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
153
147
|
}();
|
|
154
148
|
}
|
|
155
149
|
std::vector<EqualizerPreset> JHybridEqualizerSpec::getCustomPresets() {
|
|
156
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getCustomPresets");
|
|
150
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JEqualizerPreset>>()>("getCustomPresets");
|
|
157
151
|
auto __result = method(_javaPart);
|
|
158
152
|
return [&]() {
|
|
159
153
|
size_t __size = __result->size();
|
|
@@ -167,44 +161,44 @@ namespace margelo::nitro::nitroplayer {
|
|
|
167
161
|
}();
|
|
168
162
|
}
|
|
169
163
|
bool JHybridEqualizerSpec::applyPreset(const std::string& presetName) {
|
|
170
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* presetName */)>("applyPreset");
|
|
164
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* presetName */)>("applyPreset");
|
|
171
165
|
auto __result = method(_javaPart, jni::make_jstring(presetName));
|
|
172
166
|
return static_cast<bool>(__result);
|
|
173
167
|
}
|
|
174
168
|
std::variant<nitro::NullType, std::string> JHybridEqualizerSpec::getCurrentPresetName() {
|
|
175
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
169
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_String>()>("getCurrentPresetName");
|
|
176
170
|
auto __result = method(_javaPart);
|
|
177
171
|
return __result->toCpp();
|
|
178
172
|
}
|
|
179
173
|
bool JHybridEqualizerSpec::saveCustomPreset(const std::string& name) {
|
|
180
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("saveCustomPreset");
|
|
174
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("saveCustomPreset");
|
|
181
175
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
182
176
|
return static_cast<bool>(__result);
|
|
183
177
|
}
|
|
184
178
|
bool JHybridEqualizerSpec::deleteCustomPreset(const std::string& name) {
|
|
185
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("deleteCustomPreset");
|
|
179
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* name */)>("deleteCustomPreset");
|
|
186
180
|
auto __result = method(_javaPart, jni::make_jstring(name));
|
|
187
181
|
return static_cast<bool>(__result);
|
|
188
182
|
}
|
|
189
183
|
EqualizerState JHybridEqualizerSpec::getState() {
|
|
190
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JEqualizerState>()>("getState");
|
|
184
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JEqualizerState>()>("getState");
|
|
191
185
|
auto __result = method(_javaPart);
|
|
192
186
|
return __result->toCpp();
|
|
193
187
|
}
|
|
194
188
|
void JHybridEqualizerSpec::reset() {
|
|
195
|
-
static const auto method = javaClassStatic()->getMethod<void()>("reset");
|
|
189
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("reset");
|
|
196
190
|
method(_javaPart);
|
|
197
191
|
}
|
|
198
192
|
void JHybridEqualizerSpec::onEnabledChange(const std::function<void(bool /* enabled */)>& callback) {
|
|
199
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
193
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_bool::javaobject> /* callback */)>("onEnabledChange_cxx");
|
|
200
194
|
method(_javaPart, JFunc_void_bool_cxx::fromCpp(callback));
|
|
201
195
|
}
|
|
202
196
|
void JHybridEqualizerSpec::onBandChange(const std::function<void(const std::vector<EqualizerBand>& /* bands */)>& callback) {
|
|
203
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> /* callback */)>("onBandChange_cxx");
|
|
197
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__vector_EqualizerBand_::javaobject> /* callback */)>("onBandChange_cxx");
|
|
204
198
|
method(_javaPart, JFunc_void_std__vector_EqualizerBand__cxx::fromCpp(callback));
|
|
205
199
|
}
|
|
206
200
|
void JHybridEqualizerSpec::onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) {
|
|
207
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("onPresetChange_cxx");
|
|
201
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__::javaobject> /* callback */)>("onPresetChange_cxx");
|
|
208
202
|
method(_javaPart, JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::fromCpp(callback));
|
|
209
203
|
}
|
|
210
204
|
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroplayer {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridEqualizerSpec: public
|
|
22
|
-
public virtual HybridEqualizerSpec {
|
|
21
|
+
class JHybridEqualizerSpec: public virtual HybridEqualizerSpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizerSpec;";
|
|
25
|
+
std::shared_ptr<JHybridEqualizerSpec> getJHybridEqualizerSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizerSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
34
35
|
|
|
35
36
|
public:
|
|
37
|
+
explicit JHybridEqualizerSpec(const jni::local_ref<JHybridEqualizerSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridEqualizerSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridEqualizerSpec() override {
|
|
37
42
|
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
43
|
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
public:
|
|
42
|
-
|
|
43
|
-
bool equals(const std::shared_ptr<HybridObject>& other) override;
|
|
44
|
-
void dispose() noexcept override;
|
|
45
|
-
std::string toString() override;
|
|
46
|
-
|
|
47
|
-
public:
|
|
48
|
-
inline const jni::global_ref<JHybridEqualizerSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridEqualizerSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -75,9 +74,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
75
74
|
void onPresetChange(const std::function<void(const std::optional<std::variant<nitro::NullType, std::string>>& /* presetName */)>& callback) override;
|
|
76
75
|
|
|
77
76
|
private:
|
|
78
|
-
|
|
79
|
-
using HybridBase::HybridBase;
|
|
80
|
-
jni::global_ref<JHybridEqualizerSpec::javaobject> _javaPart;
|
|
77
|
+
jni::global_ref<JHybridEqualizerSpec::JavaPart> _javaPart;
|
|
81
78
|
};
|
|
82
79
|
|
|
83
80
|
} // namespace margelo::nitro::nitroplayer
|
|
@@ -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
|