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
|
@@ -1201,6 +1201,20 @@ class TrackPlayerCore private constructor(
|
|
|
1201
1201
|
val currentIndex = player.currentMediaItemIndex
|
|
1202
1202
|
if (currentIndex < 0) return
|
|
1203
1203
|
|
|
1204
|
+
// Handle removed-current-track case: if the currently playing media item is no longer
|
|
1205
|
+
// in currentTracks (e.g. the user removed it while it was playing), delegate to
|
|
1206
|
+
// playFromIndexInternal so the player immediately starts the next track.
|
|
1207
|
+
val currentTrackId = player.currentMediaItem?.mediaId?.let { extractTrackId(it) }
|
|
1208
|
+
if (currentTrackId != null && currentTracks.none { it.id == currentTrackId }) {
|
|
1209
|
+
val targetIndex = when {
|
|
1210
|
+
currentTracks.isEmpty() -> return
|
|
1211
|
+
currentTrackIndex < currentTracks.size -> currentTrackIndex
|
|
1212
|
+
else -> currentTracks.size - 1
|
|
1213
|
+
}
|
|
1214
|
+
playFromIndexInternal(targetIndex)
|
|
1215
|
+
return
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1204
1218
|
val newQueueTracks = ArrayList<TrackItem>(playNextStack.size + upNextQueue.size + currentTracks.size)
|
|
1205
1219
|
|
|
1206
1220
|
// Add playNext stack (LIFO - most recently added plays first)
|
|
@@ -1609,6 +1623,35 @@ class TrackPlayerCore private constructor(
|
|
|
1609
1623
|
if (currentPlaylistId != null && affectedPlaylists.containsKey(currentPlaylistId)) {
|
|
1610
1624
|
NitroPlayerLogger.log("TrackPlayerCore") { "🔄 Rebuilding queue - ${affectedPlaylists[currentPlaylistId]} tracks updated in current playlist" }
|
|
1611
1625
|
|
|
1626
|
+
// PlaylistManager.updateTracks() creates a new Playlist via .copy(tracks = newTracks),
|
|
1627
|
+
// so our currentTracks reference still points at the old list with empty URLs.
|
|
1628
|
+
// Refresh it now so rebuildQueueFromCurrentPosition builds MediaItems with the
|
|
1629
|
+
// resolved URLs, allowing ExoPlayer to pre-buffer the next track for gapless playback.
|
|
1630
|
+
val refreshedPlaylist = playlistManager.getPlaylist(currentPlaylistId!!)
|
|
1631
|
+
if (refreshedPlaylist != null) {
|
|
1632
|
+
currentTracks = refreshedPlaylist.tracks
|
|
1633
|
+
|
|
1634
|
+
// Also reconcile any queued items that still reference old TrackItem instances
|
|
1635
|
+
// from this playlist, so that gapless pre-buffering uses tracks with resolved URLs.
|
|
1636
|
+
val updatedTrackById = currentTracks.associateBy { it.id }
|
|
1637
|
+
|
|
1638
|
+
// Update playNextStack entries to point at the refreshed TrackItem objects.
|
|
1639
|
+
playNextStack.forEachIndexed { index, track ->
|
|
1640
|
+
val updated = updatedTrackById[track.id]
|
|
1641
|
+
if (updated != null && updated !== track) {
|
|
1642
|
+
playNextStack[index] = updated
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
// Update upNextQueue entries to point at the refreshed TrackItem objects.
|
|
1647
|
+
upNextQueue.forEachIndexed { index, track ->
|
|
1648
|
+
val updated = updatedTrackById[track.id]
|
|
1649
|
+
if (updated != null && updated !== track) {
|
|
1650
|
+
upNextQueue[index] = updated
|
|
1651
|
+
}
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1612
1655
|
// This method preserves current item and gapless buffering
|
|
1613
1656
|
rebuildQueueFromCurrentPosition()
|
|
1614
1657
|
|
|
@@ -1931,6 +1931,21 @@ class TrackPlayerCore: NSObject {
|
|
|
1931
1931
|
let currentItem = player.currentItem
|
|
1932
1932
|
let playingItems = player.items()
|
|
1933
1933
|
|
|
1934
|
+
// ---- Handle removed-current-track case ----
|
|
1935
|
+
// If the currently playing AVPlayerItem is no longer in currentTracks (e.g. the user
|
|
1936
|
+
// removed it while it was playing), delegate to rebuildQueueFromPlaylistIndex so the
|
|
1937
|
+
// player immediately starts what is now at currentTrackIndex in the updated list.
|
|
1938
|
+
if let playingTrackId = currentItem?.trackId,
|
|
1939
|
+
!currentTracks.contains(where: { $0.id == playingTrackId }) {
|
|
1940
|
+
let targetIndex = currentTrackIndex < currentTracks.count
|
|
1941
|
+
? currentTrackIndex
|
|
1942
|
+
: currentTracks.count - 1
|
|
1943
|
+
if targetIndex >= 0 {
|
|
1944
|
+
_ = rebuildQueueFromPlaylistIndex(index: targetIndex)
|
|
1945
|
+
}
|
|
1946
|
+
return
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1934
1949
|
// ---- Build the desired upcoming track list ----
|
|
1935
1950
|
|
|
1936
1951
|
var newQueueTracks: [TrackItem] = []
|
package/nitro.json
CHANGED
|
@@ -10,29 +10,62 @@
|
|
|
10
10
|
},
|
|
11
11
|
"autolinking": {
|
|
12
12
|
"PlayerQueue": {
|
|
13
|
-
"
|
|
14
|
-
|
|
13
|
+
"ios": {
|
|
14
|
+
"language": "swift",
|
|
15
|
+
"implementationClassName": "HybridPlayerQueue"
|
|
16
|
+
},
|
|
17
|
+
"android": {
|
|
18
|
+
"language": "kotlin",
|
|
19
|
+
"implementationClassName": "HybridPlayerQueue"
|
|
20
|
+
}
|
|
15
21
|
},
|
|
16
22
|
"TrackPlayer": {
|
|
17
|
-
"
|
|
18
|
-
|
|
23
|
+
"ios": {
|
|
24
|
+
"language": "swift",
|
|
25
|
+
"implementationClassName": "HybridTrackPlayer"
|
|
26
|
+
},
|
|
27
|
+
"android": {
|
|
28
|
+
"language": "kotlin",
|
|
29
|
+
"implementationClassName": "HybridTrackPlayer"
|
|
30
|
+
}
|
|
19
31
|
},
|
|
20
32
|
"AndroidAutoMediaLibrary": {
|
|
21
|
-
"
|
|
33
|
+
"android": {
|
|
34
|
+
"language": "kotlin",
|
|
35
|
+
"implementationClassName": "HybridAndroidAutoMediaLibrary"
|
|
36
|
+
}
|
|
22
37
|
},
|
|
23
38
|
"AudioDevices": {
|
|
24
|
-
"
|
|
39
|
+
"android": {
|
|
40
|
+
"language": "kotlin",
|
|
41
|
+
"implementationClassName": "HybridAudioDevices"
|
|
42
|
+
}
|
|
25
43
|
},
|
|
26
44
|
"AudioRoutePicker": {
|
|
27
|
-
"
|
|
45
|
+
"ios": {
|
|
46
|
+
"language": "swift",
|
|
47
|
+
"implementationClassName": "HybridAudioRoutePicker"
|
|
48
|
+
}
|
|
28
49
|
},
|
|
29
50
|
"DownloadManager": {
|
|
30
|
-
"
|
|
31
|
-
|
|
51
|
+
"ios": {
|
|
52
|
+
"language": "swift",
|
|
53
|
+
"implementationClassName": "HybridDownloadManager"
|
|
54
|
+
},
|
|
55
|
+
"android": {
|
|
56
|
+
"language": "kotlin",
|
|
57
|
+
"implementationClassName": "HybridDownloadManager"
|
|
58
|
+
}
|
|
32
59
|
},
|
|
33
60
|
"Equalizer": {
|
|
34
|
-
"
|
|
35
|
-
|
|
61
|
+
"ios": {
|
|
62
|
+
"language": "swift",
|
|
63
|
+
"implementationClassName": "HybridEqualizer"
|
|
64
|
+
},
|
|
65
|
+
"android": {
|
|
66
|
+
"language": "kotlin",
|
|
67
|
+
"implementationClassName": "HybridEqualizer"
|
|
68
|
+
}
|
|
36
69
|
}
|
|
37
70
|
},
|
|
38
71
|
"ignorePaths": ["**/node_modules"]
|
|
@@ -44,25 +44,74 @@ int initialize(JavaVM* vm) {
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
struct JHybridPlayerQueueSpecImpl: public jni::JavaClass<JHybridPlayerQueueSpecImpl, JHybridPlayerQueueSpec::JavaPart> {
|
|
48
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridPlayerQueue;";
|
|
49
|
+
static std::shared_ptr<JHybridPlayerQueueSpec> create() {
|
|
50
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridPlayerQueueSpecImpl::javaobject()>();
|
|
51
|
+
jni::local_ref<JHybridPlayerQueueSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
52
|
+
return javaPart->getJHybridPlayerQueueSpec();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
struct JHybridTrackPlayerSpecImpl: public jni::JavaClass<JHybridTrackPlayerSpecImpl, JHybridTrackPlayerSpec::JavaPart> {
|
|
56
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridTrackPlayer;";
|
|
57
|
+
static std::shared_ptr<JHybridTrackPlayerSpec> create() {
|
|
58
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridTrackPlayerSpecImpl::javaobject()>();
|
|
59
|
+
jni::local_ref<JHybridTrackPlayerSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
60
|
+
return javaPart->getJHybridTrackPlayerSpec();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
struct JHybridAndroidAutoMediaLibrarySpecImpl: public jni::JavaClass<JHybridAndroidAutoMediaLibrarySpecImpl, JHybridAndroidAutoMediaLibrarySpec::JavaPart> {
|
|
64
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary;";
|
|
65
|
+
static std::shared_ptr<JHybridAndroidAutoMediaLibrarySpec> create() {
|
|
66
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridAndroidAutoMediaLibrarySpecImpl::javaobject()>();
|
|
67
|
+
jni::local_ref<JHybridAndroidAutoMediaLibrarySpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
68
|
+
return javaPart->getJHybridAndroidAutoMediaLibrarySpec();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
struct JHybridAudioDevicesSpecImpl: public jni::JavaClass<JHybridAudioDevicesSpecImpl, JHybridAudioDevicesSpec::JavaPart> {
|
|
72
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridAudioDevices;";
|
|
73
|
+
static std::shared_ptr<JHybridAudioDevicesSpec> create() {
|
|
74
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridAudioDevicesSpecImpl::javaobject()>();
|
|
75
|
+
jni::local_ref<JHybridAudioDevicesSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
76
|
+
return javaPart->getJHybridAudioDevicesSpec();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
struct JHybridDownloadManagerSpecImpl: public jni::JavaClass<JHybridDownloadManagerSpecImpl, JHybridDownloadManagerSpec::JavaPart> {
|
|
80
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridDownloadManager;";
|
|
81
|
+
static std::shared_ptr<JHybridDownloadManagerSpec> create() {
|
|
82
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridDownloadManagerSpecImpl::javaobject()>();
|
|
83
|
+
jni::local_ref<JHybridDownloadManagerSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
84
|
+
return javaPart->getJHybridDownloadManagerSpec();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
struct JHybridEqualizerSpecImpl: public jni::JavaClass<JHybridEqualizerSpecImpl, JHybridEqualizerSpec::JavaPart> {
|
|
88
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/HybridEqualizer;";
|
|
89
|
+
static std::shared_ptr<JHybridEqualizerSpec> create() {
|
|
90
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridEqualizerSpecImpl::javaobject()>();
|
|
91
|
+
jni::local_ref<JHybridEqualizerSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
92
|
+
return javaPart->getJHybridEqualizerSpec();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
47
96
|
void registerAllNatives() {
|
|
48
97
|
using namespace margelo::nitro;
|
|
49
98
|
using namespace margelo::nitro::nitroplayer;
|
|
50
99
|
|
|
51
100
|
// Register native JNI methods
|
|
52
|
-
margelo::nitro::nitroplayer::JHybridAndroidAutoMediaLibrarySpec::registerNatives();
|
|
53
|
-
margelo::nitro::nitroplayer::JHybridAudioDevicesSpec::registerNatives();
|
|
54
|
-
margelo::nitro::nitroplayer::JHybridDownloadManagerSpec::registerNatives();
|
|
101
|
+
margelo::nitro::nitroplayer::JHybridAndroidAutoMediaLibrarySpec::CxxPart::registerNatives();
|
|
102
|
+
margelo::nitro::nitroplayer::JHybridAudioDevicesSpec::CxxPart::registerNatives();
|
|
103
|
+
margelo::nitro::nitroplayer::JHybridDownloadManagerSpec::CxxPart::registerNatives();
|
|
55
104
|
margelo::nitro::nitroplayer::JFunc_void_DownloadProgress_cxx::registerNatives();
|
|
56
105
|
margelo::nitro::nitroplayer::JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError__cxx::registerNatives();
|
|
57
106
|
margelo::nitro::nitroplayer::JFunc_void_DownloadedTrack_cxx::registerNatives();
|
|
58
|
-
margelo::nitro::nitroplayer::JHybridEqualizerSpec::registerNatives();
|
|
107
|
+
margelo::nitro::nitroplayer::JHybridEqualizerSpec::CxxPart::registerNatives();
|
|
59
108
|
margelo::nitro::nitroplayer::JFunc_void_bool_cxx::registerNatives();
|
|
60
109
|
margelo::nitro::nitroplayer::JFunc_void_std__vector_EqualizerBand__cxx::registerNatives();
|
|
61
110
|
margelo::nitro::nitroplayer::JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::registerNatives();
|
|
62
|
-
margelo::nitro::nitroplayer::JHybridPlayerQueueSpec::registerNatives();
|
|
111
|
+
margelo::nitro::nitroplayer::JHybridPlayerQueueSpec::CxxPart::registerNatives();
|
|
63
112
|
margelo::nitro::nitroplayer::JFunc_void_std__vector_Playlist__std__optional_QueueOperation__cxx::registerNatives();
|
|
64
113
|
margelo::nitro::nitroplayer::JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::registerNatives();
|
|
65
|
-
margelo::nitro::nitroplayer::JHybridTrackPlayerSpec::registerNatives();
|
|
114
|
+
margelo::nitro::nitroplayer::JHybridTrackPlayerSpec::CxxPart::registerNatives();
|
|
66
115
|
margelo::nitro::nitroplayer::JFunc_void_TrackItem_std__optional_Reason__cxx::registerNatives();
|
|
67
116
|
margelo::nitro::nitroplayer::JFunc_void_TrackPlayerState_std__optional_Reason__cxx::registerNatives();
|
|
68
117
|
margelo::nitro::nitroplayer::JFunc_void_double_double_cxx::registerNatives();
|
|
@@ -73,49 +122,37 @@ void registerAllNatives() {
|
|
|
73
122
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
74
123
|
"PlayerQueue",
|
|
75
124
|
[]() -> std::shared_ptr<HybridObject> {
|
|
76
|
-
|
|
77
|
-
auto instance = object.create();
|
|
78
|
-
return instance->cthis()->shared();
|
|
125
|
+
return JHybridPlayerQueueSpecImpl::create();
|
|
79
126
|
}
|
|
80
127
|
);
|
|
81
128
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
82
129
|
"TrackPlayer",
|
|
83
130
|
[]() -> std::shared_ptr<HybridObject> {
|
|
84
|
-
|
|
85
|
-
auto instance = object.create();
|
|
86
|
-
return instance->cthis()->shared();
|
|
131
|
+
return JHybridTrackPlayerSpecImpl::create();
|
|
87
132
|
}
|
|
88
133
|
);
|
|
89
134
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
90
135
|
"AndroidAutoMediaLibrary",
|
|
91
136
|
[]() -> std::shared_ptr<HybridObject> {
|
|
92
|
-
|
|
93
|
-
auto instance = object.create();
|
|
94
|
-
return instance->cthis()->shared();
|
|
137
|
+
return JHybridAndroidAutoMediaLibrarySpecImpl::create();
|
|
95
138
|
}
|
|
96
139
|
);
|
|
97
140
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
98
141
|
"AudioDevices",
|
|
99
142
|
[]() -> std::shared_ptr<HybridObject> {
|
|
100
|
-
|
|
101
|
-
auto instance = object.create();
|
|
102
|
-
return instance->cthis()->shared();
|
|
143
|
+
return JHybridAudioDevicesSpecImpl::create();
|
|
103
144
|
}
|
|
104
145
|
);
|
|
105
146
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
106
147
|
"DownloadManager",
|
|
107
148
|
[]() -> std::shared_ptr<HybridObject> {
|
|
108
|
-
|
|
109
|
-
auto instance = object.create();
|
|
110
|
-
return instance->cthis()->shared();
|
|
149
|
+
return JHybridDownloadManagerSpecImpl::create();
|
|
111
150
|
}
|
|
112
151
|
);
|
|
113
152
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
114
153
|
"Equalizer",
|
|
115
154
|
[]() -> std::shared_ptr<HybridObject> {
|
|
116
|
-
|
|
117
|
-
auto instance = object.create();
|
|
118
|
-
return instance->cthis()->shared();
|
|
155
|
+
return JHybridEqualizerSpecImpl::create();
|
|
119
156
|
}
|
|
120
157
|
);
|
|
121
158
|
}
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JCurrentPlayingType final: public jni::JavaClass<JCurrentPlayingType> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/CurrentPlayingType;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -28,7 +28,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
28
28
|
*/
|
|
29
29
|
struct JDownloadConfig final: public jni::JavaClass<JDownloadConfig> {
|
|
30
30
|
public:
|
|
31
|
-
static auto
|
|
31
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadConfig;";
|
|
32
32
|
|
|
33
33
|
public:
|
|
34
34
|
/**
|
|
@@ -23,7 +23,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
23
23
|
*/
|
|
24
24
|
struct JDownloadError final: public jni::JavaClass<JDownloadError> {
|
|
25
25
|
public:
|
|
26
|
-
static auto
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadError;";
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JDownloadErrorReason final: public jni::JavaClass<JDownloadErrorReason> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadErrorReason;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -23,7 +23,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
23
23
|
*/
|
|
24
24
|
struct JDownloadProgress final: public jni::JavaClass<JDownloadProgress> {
|
|
25
25
|
public:
|
|
26
|
-
static auto
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadProgress;";
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
/**
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JDownloadQueueStatus final: public jni::JavaClass<JDownloadQueueStatus> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadQueueStatus;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JDownloadState final: public jni::JavaClass<JDownloadState> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadState;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JDownloadStorageInfo final: public jni::JavaClass<JDownloadStorageInfo> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadStorageInfo;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -36,7 +36,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
36
36
|
*/
|
|
37
37
|
struct JDownloadTask final: public jni::JavaClass<JDownloadTask> {
|
|
38
38
|
public:
|
|
39
|
-
static auto
|
|
39
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadTask;";
|
|
40
40
|
|
|
41
41
|
public:
|
|
42
42
|
/**
|
|
@@ -37,7 +37,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
37
37
|
*/
|
|
38
38
|
struct JDownloadedPlaylist final: public jni::JavaClass<JDownloadedPlaylist> {
|
|
39
39
|
public:
|
|
40
|
-
static auto
|
|
40
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadedPlaylist;";
|
|
41
41
|
|
|
42
42
|
public:
|
|
43
43
|
/**
|
|
@@ -32,7 +32,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
32
32
|
*/
|
|
33
33
|
struct JDownloadedTrack final: public jni::JavaClass<JDownloadedTrack> {
|
|
34
34
|
public:
|
|
35
|
-
static auto
|
|
35
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/DownloadedTrack;";
|
|
36
36
|
|
|
37
37
|
public:
|
|
38
38
|
/**
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JEqualizerBand final: public jni::JavaClass<JEqualizerBand> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/EqualizerBand;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -24,7 +24,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
24
24
|
*/
|
|
25
25
|
struct JEqualizerPreset final: public jni::JavaClass<JEqualizerPreset> {
|
|
26
26
|
public:
|
|
27
|
-
static auto
|
|
27
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/EqualizerPreset;";
|
|
28
28
|
|
|
29
29
|
public:
|
|
30
30
|
/**
|
|
@@ -29,7 +29,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
29
29
|
*/
|
|
30
30
|
struct JEqualizerState final: public jni::JavaClass<JEqualizerState> {
|
|
31
31
|
public:
|
|
32
|
-
static auto
|
|
32
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/EqualizerState;";
|
|
33
33
|
|
|
34
34
|
public:
|
|
35
35
|
/**
|
|
@@ -28,7 +28,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
28
28
|
*/
|
|
29
29
|
struct JFunc_void_DownloadProgress: public jni::JavaClass<JFunc_void_DownloadProgress> {
|
|
30
30
|
public:
|
|
31
|
-
static auto
|
|
31
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_DownloadProgress;";
|
|
32
32
|
|
|
33
33
|
public:
|
|
34
34
|
/**
|
|
@@ -64,7 +64,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
public:
|
|
67
|
-
static auto
|
|
67
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_DownloadProgress_cxx;";
|
|
68
68
|
static void registerNatives() {
|
|
69
69
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_DownloadProgress_cxx::invoke_cxx)});
|
|
70
70
|
}
|
|
@@ -37,7 +37,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
37
37
|
*/
|
|
38
38
|
struct JFunc_void_DownloadedTrack: public jni::JavaClass<JFunc_void_DownloadedTrack> {
|
|
39
39
|
public:
|
|
40
|
-
static auto
|
|
40
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_DownloadedTrack;";
|
|
41
41
|
|
|
42
42
|
public:
|
|
43
43
|
/**
|
|
@@ -73,7 +73,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
public:
|
|
76
|
-
static auto
|
|
76
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_DownloadedTrack_cxx;";
|
|
77
77
|
static void registerNatives() {
|
|
78
78
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_DownloadedTrack_cxx::invoke_cxx)});
|
|
79
79
|
}
|
|
@@ -35,7 +35,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
35
35
|
*/
|
|
36
36
|
struct JFunc_void_TrackItem_std__optional_Reason_: public jni::JavaClass<JFunc_void_TrackItem_std__optional_Reason_> {
|
|
37
37
|
public:
|
|
38
|
-
static auto
|
|
38
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackItem_std__optional_Reason_;";
|
|
39
39
|
|
|
40
40
|
public:
|
|
41
41
|
/**
|
|
@@ -71,7 +71,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
public:
|
|
74
|
-
static auto
|
|
74
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackItem_std__optional_Reason__cxx;";
|
|
75
75
|
static void registerNatives() {
|
|
76
76
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_TrackItem_std__optional_Reason__cxx::invoke_cxx)});
|
|
77
77
|
}
|
package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp
CHANGED
|
@@ -28,7 +28,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
28
28
|
*/
|
|
29
29
|
struct JFunc_void_TrackPlayerState_std__optional_Reason_: public jni::JavaClass<JFunc_void_TrackPlayerState_std__optional_Reason_> {
|
|
30
30
|
public:
|
|
31
|
-
static auto
|
|
31
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason_;";
|
|
32
32
|
|
|
33
33
|
public:
|
|
34
34
|
/**
|
|
@@ -64,7 +64,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
public:
|
|
67
|
-
static auto
|
|
67
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason__cxx;";
|
|
68
68
|
static void registerNatives() {
|
|
69
69
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_TrackPlayerState_std__optional_Reason__cxx::invoke_cxx)});
|
|
70
70
|
}
|
|
@@ -23,7 +23,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
23
23
|
*/
|
|
24
24
|
struct JFunc_void_bool: public jni::JavaClass<JFunc_void_bool> {
|
|
25
25
|
public:
|
|
26
|
-
static auto
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_bool;";
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
/**
|
|
@@ -59,7 +59,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
public:
|
|
62
|
-
static auto
|
|
62
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_bool_cxx;";
|
|
63
63
|
static void registerNatives() {
|
|
64
64
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_bool_cxx::invoke_cxx)});
|
|
65
65
|
}
|
|
@@ -23,7 +23,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
23
23
|
*/
|
|
24
24
|
struct JFunc_void_double_double: public jni::JavaClass<JFunc_void_double_double> {
|
|
25
25
|
public:
|
|
26
|
-
static auto
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double;";
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
/**
|
|
@@ -59,7 +59,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
public:
|
|
62
|
-
static auto
|
|
62
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_cxx;";
|
|
63
63
|
static void registerNatives() {
|
|
64
64
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_double_double_cxx::invoke_cxx)});
|
|
65
65
|
}
|
|
@@ -24,7 +24,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
24
24
|
*/
|
|
25
25
|
struct JFunc_void_double_double_std__optional_bool_: public jni::JavaClass<JFunc_void_double_double_std__optional_bool_> {
|
|
26
26
|
public:
|
|
27
|
-
static auto
|
|
27
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool_;";
|
|
28
28
|
|
|
29
29
|
public:
|
|
30
30
|
/**
|
|
@@ -60,7 +60,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
public:
|
|
63
|
-
static auto
|
|
63
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool__cxx;";
|
|
64
64
|
static void registerNatives() {
|
|
65
65
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_double_double_std__optional_bool__cxx::invoke_cxx)});
|
|
66
66
|
}
|
|
@@ -29,7 +29,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
29
29
|
*/
|
|
30
30
|
struct JFunc_void_std__optional_std__variant_nitro__NullType__std__string__: public jni::JavaClass<JFunc_void_std__optional_std__variant_nitro__NullType__std__string__> {
|
|
31
31
|
public:
|
|
32
|
-
static auto
|
|
32
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__;";
|
|
33
33
|
|
|
34
34
|
public:
|
|
35
35
|
/**
|
|
@@ -65,7 +65,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
public:
|
|
68
|
-
static auto
|
|
68
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string___cxx;";
|
|
69
69
|
static void registerNatives() {
|
|
70
70
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__optional_std__variant_nitro__NullType__std__string___cxx::invoke_cxx)});
|
|
71
71
|
}
|
|
@@ -38,7 +38,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
38
38
|
*/
|
|
39
39
|
struct JFunc_void_std__string_Playlist_std__optional_QueueOperation_: public jni::JavaClass<JFunc_void_std__string_Playlist_std__optional_QueueOperation_> {
|
|
40
40
|
public:
|
|
41
|
-
static auto
|
|
41
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation_;";
|
|
42
42
|
|
|
43
43
|
public:
|
|
44
44
|
/**
|
|
@@ -74,7 +74,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
public:
|
|
77
|
-
static auto
|
|
77
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation__cxx;";
|
|
78
78
|
static void registerNatives() {
|
|
79
79
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__string_Playlist_std__optional_QueueOperation__cxx::invoke_cxx)});
|
|
80
80
|
}
|
|
@@ -31,7 +31,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
31
31
|
*/
|
|
32
32
|
struct JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_: public jni::JavaClass<JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_> {
|
|
33
33
|
public:
|
|
34
|
-
static auto
|
|
34
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_;";
|
|
35
35
|
|
|
36
36
|
public:
|
|
37
37
|
/**
|
|
@@ -67,7 +67,7 @@ namespace margelo::nitro::nitroplayer {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
public:
|
|
70
|
-
static auto
|
|
70
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError__cxx;";
|
|
71
71
|
static void registerNatives() {
|
|
72
72
|
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError__cxx::invoke_cxx)});
|
|
73
73
|
}
|