react-native-nitro-player 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NitroPlayer.podspec +31 -0
- package/README.md +610 -0
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +147 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +7 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +29 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +116 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +167 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +93 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/NitroPlayerPackage.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/connection/AndroidAutoConnectionDetector.kt +171 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +639 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +352 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibrary.kt +58 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryManager.kt +77 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaLibraryParser.kt +73 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +506 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/Playlist.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +454 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/queue/Queue.kt +94 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/queue/QueueManager.kt +143 -0
- package/ios/HybridAudioRoutePicker.swift +53 -0
- package/ios/HybridTrackPlayer.swift +100 -0
- package/ios/core/TrackPlayerCore.swift +1040 -0
- package/ios/media/MediaSessionManager.swift +230 -0
- package/ios/playlist/PlaylistManager.swift +446 -0
- package/ios/playlist/PlaylistModel.swift +49 -0
- package/ios/queue/HybridPlayerQueue.swift +95 -0
- package/ios/queue/Queue.swift +126 -0
- package/ios/queue/QueueManager.swift +157 -0
- package/lib/hooks/index.d.ts +6 -0
- package/lib/hooks/index.js +6 -0
- package/lib/hooks/useAndroidAutoConnection.d.ts +13 -0
- package/lib/hooks/useAndroidAutoConnection.js +26 -0
- package/lib/hooks/useAudioDevices.d.ts +26 -0
- package/lib/hooks/useAudioDevices.js +55 -0
- package/lib/hooks/useOnChangeTrack.d.ts +9 -0
- package/lib/hooks/useOnChangeTrack.js +17 -0
- package/lib/hooks/useOnPlaybackProgressChange.d.ts +9 -0
- package/lib/hooks/useOnPlaybackProgressChange.js +19 -0
- package/lib/hooks/useOnPlaybackStateChange.d.ts +9 -0
- package/lib/hooks/useOnPlaybackStateChange.js +17 -0
- package/lib/hooks/useOnSeek.d.ts +8 -0
- package/lib/hooks/useOnSeek.js +17 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.js +24 -0
- package/lib/specs/AndroidAutoMediaLibrary.nitro.d.ts +21 -0
- package/lib/specs/AndroidAutoMediaLibrary.nitro.js +1 -0
- package/lib/specs/AudioDevices.nitro.d.ts +24 -0
- package/lib/specs/AudioDevices.nitro.js +1 -0
- package/lib/specs/AudioRoutePicker.nitro.d.ts +10 -0
- package/lib/specs/AudioRoutePicker.nitro.js +1 -0
- package/lib/specs/TrackPlayer.nitro.d.ts +39 -0
- package/lib/specs/TrackPlayer.nitro.js +1 -0
- package/lib/types/AndroidAutoMediaLibrary.d.ts +44 -0
- package/lib/types/AndroidAutoMediaLibrary.js +1 -0
- package/lib/types/PlayerQueue.d.ts +32 -0
- package/lib/types/PlayerQueue.js +1 -0
- package/lib/utils/androidAutoMediaLibrary.d.ts +47 -0
- package/lib/utils/androidAutoMediaLibrary.js +62 -0
- package/nitro.json +31 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +91 -0
- package/nitrogen/generated/android/NitroPlayer+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +88 -0
- package/nitrogen/generated/android/NitroPlayerOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +85 -0
- package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +88 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +106 -0
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +55 -0
- package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +70 -0
- package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +143 -0
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +77 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +137 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +78 -0
- package/nitrogen/generated/android/c++/JPlayerConfig.hpp +65 -0
- package/nitrogen/generated/android/c++/JPlayerState.hpp +87 -0
- package/nitrogen/generated/android/c++/JPlaylist.hpp +99 -0
- package/nitrogen/generated/android/c++/JQueueOperation.hpp +65 -0
- package/nitrogen/generated/android/c++/JReason.hpp +65 -0
- package/nitrogen/generated/android/c++/JTAudioDevice.hpp +69 -0
- package/nitrogen/generated/android/c++/JTrackItem.hpp +86 -0
- package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +62 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +77 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +74 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackItem_std__optional_Reason_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_TrackPlayerState_std__optional_Reason_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_double_double_std__optional_bool_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_Playlist_std__optional_QueueOperation_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_Playlist__std__optional_QueueOperation_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +116 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +134 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/NitroPlayerOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerConfig.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Playlist.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/QueueOperation.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Reason.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TAudioDevice.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +59 -0
- package/nitrogen/generated/ios/NitroPlayer+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +123 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +531 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +80 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +49 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +55 -0
- package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridAudioRoutePickerSpecSwift.hpp +74 -0
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +167 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +174 -0
- package/nitrogen/generated/ios/swift/Func_void_TrackItem_std__optional_Reason_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_TrackPlayerState_std__optional_Reason_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double_double_std__optional_bool_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_Playlist_std__optional_QueueOperation_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_Playlist__std__optional_QueueOperation_.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridAudioRoutePickerSpec_cxx.swift +130 -0
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +68 -0
- package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +349 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +69 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +325 -0
- package/nitrogen/generated/ios/swift/PlayerConfig.swift +115 -0
- package/nitrogen/generated/ios/swift/PlayerState.swift +181 -0
- package/nitrogen/generated/ios/swift/Playlist.swift +182 -0
- package/nitrogen/generated/ios/swift/QueueOperation.swift +48 -0
- package/nitrogen/generated/ios/swift/Reason.swift +48 -0
- package/nitrogen/generated/ios/swift/TrackItem.swift +147 -0
- package/nitrogen/generated/ios/swift/TrackPlayerState.swift +44 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Playlist.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_TrackItem.swift +18 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +63 -0
- package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridAudioRoutePickerSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.cpp +33 -0
- package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +87 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +34 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +91 -0
- package/nitrogen/generated/shared/c++/PlayerConfig.hpp +83 -0
- package/nitrogen/generated/shared/c++/PlayerState.hpp +103 -0
- package/nitrogen/generated/shared/c++/Playlist.hpp +97 -0
- package/nitrogen/generated/shared/c++/QueueOperation.hpp +84 -0
- package/nitrogen/generated/shared/c++/Reason.hpp +84 -0
- package/nitrogen/generated/shared/c++/TAudioDevice.hpp +87 -0
- package/nitrogen/generated/shared/c++/TrackItem.hpp +102 -0
- package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +80 -0
- package/package.json +172 -0
- package/react-native.config.js +16 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/useAndroidAutoConnection.ts +30 -0
- package/src/hooks/useAudioDevices.ts +64 -0
- package/src/hooks/useOnChangeTrack.ts +24 -0
- package/src/hooks/useOnPlaybackProgressChange.ts +30 -0
- package/src/hooks/useOnPlaybackStateChange.ts +24 -0
- package/src/hooks/useOnSeek.ts +25 -0
- package/src/index.ts +47 -0
- package/src/specs/AndroidAutoMediaLibrary.nitro.ts +22 -0
- package/src/specs/AudioDevices.nitro.ts +25 -0
- package/src/specs/AudioRoutePicker.nitro.ts +9 -0
- package/src/specs/TrackPlayer.nitro.ts +81 -0
- package/src/types/AndroidAutoMediaLibrary.ts +58 -0
- package/src/types/PlayerQueue.ts +38 -0
- package/src/utils/androidAutoMediaLibrary.ts +66 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JPlayerState.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "PlayerState.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JTrackItem.hpp"
|
|
14
|
+
#include "JTrackPlayerState.hpp"
|
|
15
|
+
#include "JVariant_NullType_String.hpp"
|
|
16
|
+
#include "JVariant_NullType_TrackItem.hpp"
|
|
17
|
+
#include "TrackItem.hpp"
|
|
18
|
+
#include "TrackPlayerState.hpp"
|
|
19
|
+
#include <NitroModules/JNull.hpp>
|
|
20
|
+
#include <NitroModules/Null.hpp>
|
|
21
|
+
#include <optional>
|
|
22
|
+
#include <string>
|
|
23
|
+
#include <variant>
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::nitroplayer {
|
|
26
|
+
|
|
27
|
+
using namespace facebook;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The C++ JNI bridge between the C++ struct "PlayerState" and the the Kotlin data class "PlayerState".
|
|
31
|
+
*/
|
|
32
|
+
struct JPlayerState final: public jni::JavaClass<JPlayerState> {
|
|
33
|
+
public:
|
|
34
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlayerState;";
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
/**
|
|
38
|
+
* Convert this Java/Kotlin-based struct to the C++ struct PlayerState by copying all values to C++.
|
|
39
|
+
*/
|
|
40
|
+
[[maybe_unused]]
|
|
41
|
+
[[nodiscard]]
|
|
42
|
+
PlayerState toCpp() const {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldCurrentTrack = clazz->getField<JVariant_NullType_TrackItem>("currentTrack");
|
|
45
|
+
jni::local_ref<JVariant_NullType_TrackItem> currentTrack = this->getFieldValue(fieldCurrentTrack);
|
|
46
|
+
static const auto fieldCurrentPosition = clazz->getField<double>("currentPosition");
|
|
47
|
+
double currentPosition = this->getFieldValue(fieldCurrentPosition);
|
|
48
|
+
static const auto fieldTotalDuration = clazz->getField<double>("totalDuration");
|
|
49
|
+
double totalDuration = this->getFieldValue(fieldTotalDuration);
|
|
50
|
+
static const auto fieldCurrentState = clazz->getField<JTrackPlayerState>("currentState");
|
|
51
|
+
jni::local_ref<JTrackPlayerState> currentState = this->getFieldValue(fieldCurrentState);
|
|
52
|
+
static const auto fieldCurrentPlaylistId = clazz->getField<JVariant_NullType_String>("currentPlaylistId");
|
|
53
|
+
jni::local_ref<JVariant_NullType_String> currentPlaylistId = this->getFieldValue(fieldCurrentPlaylistId);
|
|
54
|
+
static const auto fieldCurrentIndex = clazz->getField<double>("currentIndex");
|
|
55
|
+
double currentIndex = this->getFieldValue(fieldCurrentIndex);
|
|
56
|
+
return PlayerState(
|
|
57
|
+
currentTrack != nullptr ? std::make_optional(currentTrack->toCpp()) : std::nullopt,
|
|
58
|
+
currentPosition,
|
|
59
|
+
totalDuration,
|
|
60
|
+
currentState->toCpp(),
|
|
61
|
+
currentPlaylistId != nullptr ? std::make_optional(currentPlaylistId->toCpp()) : std::nullopt,
|
|
62
|
+
currentIndex
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public:
|
|
67
|
+
/**
|
|
68
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
69
|
+
*/
|
|
70
|
+
[[maybe_unused]]
|
|
71
|
+
static jni::local_ref<JPlayerState::javaobject> fromCpp(const PlayerState& value) {
|
|
72
|
+
using JSignature = JPlayerState(jni::alias_ref<JVariant_NullType_TrackItem>, double, double, jni::alias_ref<JTrackPlayerState>, jni::alias_ref<JVariant_NullType_String>, double);
|
|
73
|
+
static const auto clazz = javaClassStatic();
|
|
74
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
75
|
+
return create(
|
|
76
|
+
clazz,
|
|
77
|
+
value.currentTrack.has_value() ? JVariant_NullType_TrackItem::fromCpp(value.currentTrack.value()) : nullptr,
|
|
78
|
+
value.currentPosition,
|
|
79
|
+
value.totalDuration,
|
|
80
|
+
JTrackPlayerState::fromCpp(value.currentState),
|
|
81
|
+
value.currentPlaylistId.has_value() ? JVariant_NullType_String::fromCpp(value.currentPlaylistId.value()) : nullptr,
|
|
82
|
+
value.currentIndex
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JPlaylist.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "Playlist.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JTrackItem.hpp"
|
|
14
|
+
#include "JVariant_NullType_String.hpp"
|
|
15
|
+
#include "TrackItem.hpp"
|
|
16
|
+
#include <NitroModules/JNull.hpp>
|
|
17
|
+
#include <NitroModules/Null.hpp>
|
|
18
|
+
#include <optional>
|
|
19
|
+
#include <string>
|
|
20
|
+
#include <variant>
|
|
21
|
+
#include <vector>
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::nitroplayer {
|
|
24
|
+
|
|
25
|
+
using namespace facebook;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The C++ JNI bridge between the C++ struct "Playlist" and the the Kotlin data class "Playlist".
|
|
29
|
+
*/
|
|
30
|
+
struct JPlaylist final: public jni::JavaClass<JPlaylist> {
|
|
31
|
+
public:
|
|
32
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Playlist;";
|
|
33
|
+
|
|
34
|
+
public:
|
|
35
|
+
/**
|
|
36
|
+
* Convert this Java/Kotlin-based struct to the C++ struct Playlist by copying all values to C++.
|
|
37
|
+
*/
|
|
38
|
+
[[maybe_unused]]
|
|
39
|
+
[[nodiscard]]
|
|
40
|
+
Playlist toCpp() const {
|
|
41
|
+
static const auto clazz = javaClassStatic();
|
|
42
|
+
static const auto fieldId = clazz->getField<jni::JString>("id");
|
|
43
|
+
jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
|
|
44
|
+
static const auto fieldName = clazz->getField<jni::JString>("name");
|
|
45
|
+
jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
|
|
46
|
+
static const auto fieldDescription = clazz->getField<JVariant_NullType_String>("description");
|
|
47
|
+
jni::local_ref<JVariant_NullType_String> description = this->getFieldValue(fieldDescription);
|
|
48
|
+
static const auto fieldArtwork = clazz->getField<JVariant_NullType_String>("artwork");
|
|
49
|
+
jni::local_ref<JVariant_NullType_String> artwork = this->getFieldValue(fieldArtwork);
|
|
50
|
+
static const auto fieldTracks = clazz->getField<jni::JArrayClass<JTrackItem>>("tracks");
|
|
51
|
+
jni::local_ref<jni::JArrayClass<JTrackItem>> tracks = this->getFieldValue(fieldTracks);
|
|
52
|
+
return Playlist(
|
|
53
|
+
id->toStdString(),
|
|
54
|
+
name->toStdString(),
|
|
55
|
+
description != nullptr ? std::make_optional(description->toCpp()) : std::nullopt,
|
|
56
|
+
artwork != nullptr ? std::make_optional(artwork->toCpp()) : std::nullopt,
|
|
57
|
+
[&]() {
|
|
58
|
+
size_t __size = tracks->size();
|
|
59
|
+
std::vector<TrackItem> __vector;
|
|
60
|
+
__vector.reserve(__size);
|
|
61
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
62
|
+
auto __element = tracks->getElement(__i);
|
|
63
|
+
__vector.push_back(__element->toCpp());
|
|
64
|
+
}
|
|
65
|
+
return __vector;
|
|
66
|
+
}()
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public:
|
|
71
|
+
/**
|
|
72
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
73
|
+
*/
|
|
74
|
+
[[maybe_unused]]
|
|
75
|
+
static jni::local_ref<JPlaylist::javaobject> fromCpp(const Playlist& value) {
|
|
76
|
+
using JSignature = JPlaylist(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<jni::JArrayClass<JTrackItem>>);
|
|
77
|
+
static const auto clazz = javaClassStatic();
|
|
78
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
79
|
+
return create(
|
|
80
|
+
clazz,
|
|
81
|
+
jni::make_jstring(value.id),
|
|
82
|
+
jni::make_jstring(value.name),
|
|
83
|
+
value.description.has_value() ? JVariant_NullType_String::fromCpp(value.description.value()) : nullptr,
|
|
84
|
+
value.artwork.has_value() ? JVariant_NullType_String::fromCpp(value.artwork.value()) : nullptr,
|
|
85
|
+
[&]() {
|
|
86
|
+
size_t __size = value.tracks.size();
|
|
87
|
+
jni::local_ref<jni::JArrayClass<JTrackItem>> __array = jni::JArrayClass<JTrackItem>::newArray(__size);
|
|
88
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
89
|
+
const auto& __element = value.tracks[__i];
|
|
90
|
+
auto __elementJni = JTrackItem::fromCpp(__element);
|
|
91
|
+
__array->setElement(__i, *__elementJni);
|
|
92
|
+
}
|
|
93
|
+
return __array;
|
|
94
|
+
}()
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JQueueOperation.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "QueueOperation.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroplayer {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "QueueOperation" and the the Kotlin enum "QueueOperation".
|
|
19
|
+
*/
|
|
20
|
+
struct JQueueOperation final: public jni::JavaClass<JQueueOperation> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/QueueOperation;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum QueueOperation.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
QueueOperation toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<QueueOperation>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JQueueOperation> fromCpp(QueueOperation value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldADD = clazz->getStaticField<JQueueOperation>("ADD");
|
|
45
|
+
static const auto fieldREMOVE = clazz->getStaticField<JQueueOperation>("REMOVE");
|
|
46
|
+
static const auto fieldCLEAR = clazz->getStaticField<JQueueOperation>("CLEAR");
|
|
47
|
+
static const auto fieldUPDATE = clazz->getStaticField<JQueueOperation>("UPDATE");
|
|
48
|
+
|
|
49
|
+
switch (value) {
|
|
50
|
+
case QueueOperation::ADD:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldADD);
|
|
52
|
+
case QueueOperation::REMOVE:
|
|
53
|
+
return clazz->getStaticFieldValue(fieldREMOVE);
|
|
54
|
+
case QueueOperation::CLEAR:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldCLEAR);
|
|
56
|
+
case QueueOperation::UPDATE:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldUPDATE);
|
|
58
|
+
default:
|
|
59
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
60
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JReason.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "Reason.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroplayer {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "Reason" and the the Kotlin enum "Reason".
|
|
19
|
+
*/
|
|
20
|
+
struct JReason final: public jni::JavaClass<JReason> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Reason;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum Reason.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
Reason toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<Reason>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JReason> fromCpp(Reason value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldUSER_ACTION = clazz->getStaticField<JReason>("USER_ACTION");
|
|
45
|
+
static const auto fieldSKIP = clazz->getStaticField<JReason>("SKIP");
|
|
46
|
+
static const auto fieldEND = clazz->getStaticField<JReason>("END");
|
|
47
|
+
static const auto fieldERROR = clazz->getStaticField<JReason>("ERROR");
|
|
48
|
+
|
|
49
|
+
switch (value) {
|
|
50
|
+
case Reason::USER_ACTION:
|
|
51
|
+
return clazz->getStaticFieldValue(fieldUSER_ACTION);
|
|
52
|
+
case Reason::SKIP:
|
|
53
|
+
return clazz->getStaticFieldValue(fieldSKIP);
|
|
54
|
+
case Reason::END:
|
|
55
|
+
return clazz->getStaticFieldValue(fieldEND);
|
|
56
|
+
case Reason::ERROR:
|
|
57
|
+
return clazz->getStaticFieldValue(fieldERROR);
|
|
58
|
+
default:
|
|
59
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
60
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JTAudioDevice.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "TAudioDevice.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::nitroplayer {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "TAudioDevice" and the the Kotlin data class "TAudioDevice".
|
|
21
|
+
*/
|
|
22
|
+
struct JTAudioDevice final: public jni::JavaClass<JTAudioDevice> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TAudioDevice;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct TAudioDevice by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
TAudioDevice toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldId = clazz->getField<double>("id");
|
|
35
|
+
double id = this->getFieldValue(fieldId);
|
|
36
|
+
static const auto fieldName = clazz->getField<jni::JString>("name");
|
|
37
|
+
jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
|
|
38
|
+
static const auto fieldType = clazz->getField<double>("type");
|
|
39
|
+
double type = this->getFieldValue(fieldType);
|
|
40
|
+
static const auto fieldIsActive = clazz->getField<jboolean>("isActive");
|
|
41
|
+
jboolean isActive = this->getFieldValue(fieldIsActive);
|
|
42
|
+
return TAudioDevice(
|
|
43
|
+
id,
|
|
44
|
+
name->toStdString(),
|
|
45
|
+
type,
|
|
46
|
+
static_cast<bool>(isActive)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
/**
|
|
52
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
53
|
+
*/
|
|
54
|
+
[[maybe_unused]]
|
|
55
|
+
static jni::local_ref<JTAudioDevice::javaobject> fromCpp(const TAudioDevice& value) {
|
|
56
|
+
using JSignature = JTAudioDevice(double, jni::alias_ref<jni::JString>, double, jboolean);
|
|
57
|
+
static const auto clazz = javaClassStatic();
|
|
58
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
59
|
+
return create(
|
|
60
|
+
clazz,
|
|
61
|
+
value.id,
|
|
62
|
+
jni::make_jstring(value.name),
|
|
63
|
+
value.type,
|
|
64
|
+
value.isActive
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JTrackItem.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "TrackItem.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JVariant_NullType_String.hpp"
|
|
14
|
+
#include <NitroModules/JNull.hpp>
|
|
15
|
+
#include <NitroModules/Null.hpp>
|
|
16
|
+
#include <optional>
|
|
17
|
+
#include <string>
|
|
18
|
+
#include <variant>
|
|
19
|
+
|
|
20
|
+
namespace margelo::nitro::nitroplayer {
|
|
21
|
+
|
|
22
|
+
using namespace facebook;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The C++ JNI bridge between the C++ struct "TrackItem" and the the Kotlin data class "TrackItem".
|
|
26
|
+
*/
|
|
27
|
+
struct JTrackItem final: public jni::JavaClass<JTrackItem> {
|
|
28
|
+
public:
|
|
29
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackItem;";
|
|
30
|
+
|
|
31
|
+
public:
|
|
32
|
+
/**
|
|
33
|
+
* Convert this Java/Kotlin-based struct to the C++ struct TrackItem by copying all values to C++.
|
|
34
|
+
*/
|
|
35
|
+
[[maybe_unused]]
|
|
36
|
+
[[nodiscard]]
|
|
37
|
+
TrackItem toCpp() const {
|
|
38
|
+
static const auto clazz = javaClassStatic();
|
|
39
|
+
static const auto fieldId = clazz->getField<jni::JString>("id");
|
|
40
|
+
jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
|
|
41
|
+
static const auto fieldTitle = clazz->getField<jni::JString>("title");
|
|
42
|
+
jni::local_ref<jni::JString> title = this->getFieldValue(fieldTitle);
|
|
43
|
+
static const auto fieldArtist = clazz->getField<jni::JString>("artist");
|
|
44
|
+
jni::local_ref<jni::JString> artist = this->getFieldValue(fieldArtist);
|
|
45
|
+
static const auto fieldAlbum = clazz->getField<jni::JString>("album");
|
|
46
|
+
jni::local_ref<jni::JString> album = this->getFieldValue(fieldAlbum);
|
|
47
|
+
static const auto fieldDuration = clazz->getField<double>("duration");
|
|
48
|
+
double duration = this->getFieldValue(fieldDuration);
|
|
49
|
+
static const auto fieldUrl = clazz->getField<jni::JString>("url");
|
|
50
|
+
jni::local_ref<jni::JString> url = this->getFieldValue(fieldUrl);
|
|
51
|
+
static const auto fieldArtwork = clazz->getField<JVariant_NullType_String>("artwork");
|
|
52
|
+
jni::local_ref<JVariant_NullType_String> artwork = this->getFieldValue(fieldArtwork);
|
|
53
|
+
return TrackItem(
|
|
54
|
+
id->toStdString(),
|
|
55
|
+
title->toStdString(),
|
|
56
|
+
artist->toStdString(),
|
|
57
|
+
album->toStdString(),
|
|
58
|
+
duration,
|
|
59
|
+
url->toStdString(),
|
|
60
|
+
artwork != nullptr ? std::make_optional(artwork->toCpp()) : std::nullopt
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
/**
|
|
66
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
67
|
+
*/
|
|
68
|
+
[[maybe_unused]]
|
|
69
|
+
static jni::local_ref<JTrackItem::javaobject> fromCpp(const TrackItem& value) {
|
|
70
|
+
using JSignature = JTrackItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<JVariant_NullType_String>);
|
|
71
|
+
static const auto clazz = javaClassStatic();
|
|
72
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
73
|
+
return create(
|
|
74
|
+
clazz,
|
|
75
|
+
jni::make_jstring(value.id),
|
|
76
|
+
jni::make_jstring(value.title),
|
|
77
|
+
jni::make_jstring(value.artist),
|
|
78
|
+
jni::make_jstring(value.album),
|
|
79
|
+
value.duration,
|
|
80
|
+
jni::make_jstring(value.url),
|
|
81
|
+
value.artwork.has_value() ? JVariant_NullType_String::fromCpp(value.artwork.value()) : nullptr
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JTrackPlayerState.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "TrackPlayerState.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::nitroplayer {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "TrackPlayerState" and the the Kotlin enum "TrackPlayerState".
|
|
19
|
+
*/
|
|
20
|
+
struct JTrackPlayerState final: public jni::JavaClass<JTrackPlayerState> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackPlayerState;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum TrackPlayerState.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
TrackPlayerState toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("value");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<TrackPlayerState>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JTrackPlayerState> fromCpp(TrackPlayerState value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldPLAYING = clazz->getStaticField<JTrackPlayerState>("PLAYING");
|
|
45
|
+
static const auto fieldPAUSED = clazz->getStaticField<JTrackPlayerState>("PAUSED");
|
|
46
|
+
static const auto fieldSTOPPED = clazz->getStaticField<JTrackPlayerState>("STOPPED");
|
|
47
|
+
|
|
48
|
+
switch (value) {
|
|
49
|
+
case TrackPlayerState::PLAYING:
|
|
50
|
+
return clazz->getStaticFieldValue(fieldPLAYING);
|
|
51
|
+
case TrackPlayerState::PAUSED:
|
|
52
|
+
return clazz->getStaticFieldValue(fieldPAUSED);
|
|
53
|
+
case TrackPlayerState::STOPPED:
|
|
54
|
+
return clazz->getStaticFieldValue(fieldSTOPPED);
|
|
55
|
+
default:
|
|
56
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
57
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JVariant_NullType_Playlist.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JVariant_NullType_Playlist.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::nitroplayer {
|
|
11
|
+
/**
|
|
12
|
+
* Converts JVariant_NullType_Playlist to std::variant<nitro::NullType, Playlist>
|
|
13
|
+
*/
|
|
14
|
+
std::variant<nitro::NullType, Playlist> JVariant_NullType_Playlist::toCpp() const {
|
|
15
|
+
if (isInstanceOf(JVariant_NullType_Playlist_impl::First::javaClassStatic())) {
|
|
16
|
+
// It's a `nitro::NullType`
|
|
17
|
+
auto jniValue = static_cast<const JVariant_NullType_Playlist_impl::First*>(this)->getValue();
|
|
18
|
+
return nitro::null;
|
|
19
|
+
} else if (isInstanceOf(JVariant_NullType_Playlist_impl::Second::javaClassStatic())) {
|
|
20
|
+
// It's a `Playlist`
|
|
21
|
+
auto jniValue = static_cast<const JVariant_NullType_Playlist_impl::Second*>(this)->getValue();
|
|
22
|
+
return jniValue->toCpp();
|
|
23
|
+
}
|
|
24
|
+
throw std::invalid_argument("Variant is unknown Kotlin instance!");
|
|
25
|
+
}
|
|
26
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JVariant_NullType_Playlist.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include <variant>
|
|
12
|
+
|
|
13
|
+
#include <NitroModules/Null.hpp>
|
|
14
|
+
#include "Playlist.hpp"
|
|
15
|
+
#include <variant>
|
|
16
|
+
#include <NitroModules/JNull.hpp>
|
|
17
|
+
#include "JPlaylist.hpp"
|
|
18
|
+
#include <string>
|
|
19
|
+
#include <optional>
|
|
20
|
+
#include "JVariant_NullType_String.hpp"
|
|
21
|
+
#include "TrackItem.hpp"
|
|
22
|
+
#include <vector>
|
|
23
|
+
#include "JTrackItem.hpp"
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::nitroplayer {
|
|
26
|
+
|
|
27
|
+
using namespace facebook;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_Playlist".
|
|
31
|
+
*/
|
|
32
|
+
class JVariant_NullType_Playlist: public jni::JavaClass<JVariant_NullType_Playlist> {
|
|
33
|
+
public:
|
|
34
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist;";
|
|
35
|
+
|
|
36
|
+
static jni::local_ref<JVariant_NullType_Playlist> create_0(jni::alias_ref<JNull> value) {
|
|
37
|
+
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Playlist(jni::alias_ref<JNull>)>("create");
|
|
38
|
+
return method(javaClassStatic(), value);
|
|
39
|
+
}
|
|
40
|
+
static jni::local_ref<JVariant_NullType_Playlist> create_1(jni::alias_ref<JPlaylist> value) {
|
|
41
|
+
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Playlist(jni::alias_ref<JPlaylist>)>("create");
|
|
42
|
+
return method(javaClassStatic(), value);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static jni::local_ref<JVariant_NullType_Playlist> fromCpp(const std::variant<nitro::NullType, Playlist>& variant) {
|
|
46
|
+
switch (variant.index()) {
|
|
47
|
+
case 0: return create_0(JNull::null());
|
|
48
|
+
case 1: return create_1(JPlaylist::fromCpp(std::get<1>(variant)));
|
|
49
|
+
default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
[[nodiscard]] std::variant<nitro::NullType, Playlist> toCpp() const;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
namespace JVariant_NullType_Playlist_impl {
|
|
57
|
+
class First: public jni::JavaClass<First, JVariant_NullType_Playlist> {
|
|
58
|
+
public:
|
|
59
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$First;";
|
|
60
|
+
|
|
61
|
+
[[nodiscard]] jni::local_ref<JNull> getValue() const {
|
|
62
|
+
static const auto field = javaClassStatic()->getField<JNull>("value");
|
|
63
|
+
return getFieldValue(field);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
class Second: public jni::JavaClass<Second, JVariant_NullType_Playlist> {
|
|
68
|
+
public:
|
|
69
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$Second;";
|
|
70
|
+
|
|
71
|
+
[[nodiscard]] jni::local_ref<JPlaylist> getValue() const {
|
|
72
|
+
static const auto field = javaClassStatic()->getField<JPlaylist>("value");
|
|
73
|
+
return getFieldValue(field);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
} // namespace JVariant_NullType_Playlist_impl
|
|
77
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JVariant_NullType_String.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JVariant_NullType_String.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::nitroplayer {
|
|
11
|
+
/**
|
|
12
|
+
* Converts JVariant_NullType_String to std::variant<nitro::NullType, std::string>
|
|
13
|
+
*/
|
|
14
|
+
std::variant<nitro::NullType, std::string> JVariant_NullType_String::toCpp() const {
|
|
15
|
+
if (isInstanceOf(JVariant_NullType_String_impl::First::javaClassStatic())) {
|
|
16
|
+
// It's a `nitro::NullType`
|
|
17
|
+
auto jniValue = static_cast<const JVariant_NullType_String_impl::First*>(this)->getValue();
|
|
18
|
+
return nitro::null;
|
|
19
|
+
} else if (isInstanceOf(JVariant_NullType_String_impl::Second::javaClassStatic())) {
|
|
20
|
+
// It's a `std::string`
|
|
21
|
+
auto jniValue = static_cast<const JVariant_NullType_String_impl::Second*>(this)->getValue();
|
|
22
|
+
return jniValue->toStdString();
|
|
23
|
+
}
|
|
24
|
+
throw std::invalid_argument("Variant is unknown Kotlin instance!");
|
|
25
|
+
}
|
|
26
|
+
} // namespace margelo::nitro::nitroplayer
|