react-native-audio-browser 0.2.0-next.4 → 0.2.0-next.5
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/audiobrowser/model/PlayerUpdateOptions.kt +11 -11
- package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +111 -58
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +9 -5
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +218 -252
- package/android/src/main/java/com/audiobrowser/player/Player.kt +19 -8
- package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +100 -56
- package/android/src/test/java/com/audiobrowser/player/MediaSessionSlotMappingTest.kt +45 -0
- package/lib/commonjs/features/player/options.js +45 -15
- package/lib/commonjs/features/player/options.js.map +1 -1
- package/lib/commonjs/features/player/setup.js +13 -6
- package/lib/commonjs/features/player/setup.js.map +1 -1
- package/lib/module/features/player/options.js +45 -15
- package/lib/module/features/player/options.js.map +1 -1
- package/lib/module/features/player/setup.js +13 -6
- package/lib/module/features/player/setup.js.map +1 -1
- package/lib/typescript/src/features/player/options.d.ts +84 -35
- package/lib/typescript/src/features/player/options.d.ts.map +1 -1
- package/lib/typescript/src/features/player/setup.d.ts +10 -3
- package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
- package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +1 -1
- package/nitrogen/generated/android/c++/JAndroidOptions.hpp +10 -10
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +5 -5
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +9 -9
- package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +5 -5
- package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +5 -5
- package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +10 -10
- package/nitrogen/generated/android/c++/JOptions.hpp +5 -5
- package/nitrogen/generated/android/c++/{JNotificationButton.hpp → JRemoteButton.hpp} +19 -19
- package/nitrogen/generated/android/c++/JRemoteButtonLayout.hpp +86 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.hpp +75 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NotificationButton.kt → RemoteButton.kt} +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButtonLayout.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Variant_NullType_NotificationButtonLayout.kt → Variant_NullType_RemoteButtonLayout.kt} +9 -9
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +36 -51
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +6 -6
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +6 -6
- package/nitrogen/generated/ios/swift/AndroidOptions.swift +12 -12
- package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +12 -12
- package/nitrogen/generated/ios/swift/{NotificationButton.swift → RemoteButton.swift} +6 -6
- package/nitrogen/generated/ios/swift/RemoteButtonLayout.swift +57 -0
- package/nitrogen/generated/ios/swift/{Variant_NullType_NotificationButtonLayout.swift → Variant_NullType_RemoteButtonLayout.swift} +3 -3
- package/nitrogen/generated/shared/c++/AndroidOptions.hpp +8 -8
- package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +8 -8
- package/nitrogen/generated/shared/c++/{NotificationButton.hpp → RemoteButton.hpp} +19 -19
- package/nitrogen/generated/shared/c++/RemoteButtonLayout.hpp +94 -0
- package/package.json +1 -1
- package/src/features/player/options.ts +95 -36
- package/src/features/player/setup.test.ts +12 -4
- package/src/features/player/setup.ts +13 -6
- package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +0 -94
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +0 -75
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +0 -50
- package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +0 -92
- package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +0 -102
|
@@ -132,10 +132,10 @@ namespace margelo::nitro::audiobrowser { struct Options; }
|
|
|
132
132
|
namespace margelo::nitro::audiobrowser { struct AndroidOptions; }
|
|
133
133
|
// Forward declaration of `AppKilledPlaybackBehavior` to properly resolve imports.
|
|
134
134
|
namespace margelo::nitro::audiobrowser { enum class AppKilledPlaybackBehavior; }
|
|
135
|
-
// Forward declaration of `
|
|
136
|
-
namespace margelo::nitro::audiobrowser { struct
|
|
137
|
-
// Forward declaration of `
|
|
138
|
-
namespace margelo::nitro::audiobrowser { enum class
|
|
135
|
+
// Forward declaration of `RemoteButtonLayout` to properly resolve imports.
|
|
136
|
+
namespace margelo::nitro::audiobrowser { struct RemoteButtonLayout; }
|
|
137
|
+
// Forward declaration of `RemoteButton` to properly resolve imports.
|
|
138
|
+
namespace margelo::nitro::audiobrowser { enum class RemoteButton; }
|
|
139
139
|
// Forward declaration of `PlayerCapabilities` to properly resolve imports.
|
|
140
140
|
namespace margelo::nitro::audiobrowser { struct PlayerCapabilities; }
|
|
141
141
|
// Forward declaration of `FavoriteConfig` to properly resolve imports.
|
|
@@ -267,8 +267,8 @@ namespace margelo::nitro::audiobrowser { struct Progress; }
|
|
|
267
267
|
#include "Options.hpp"
|
|
268
268
|
#include "AndroidOptions.hpp"
|
|
269
269
|
#include "AppKilledPlaybackBehavior.hpp"
|
|
270
|
-
#include "
|
|
271
|
-
#include "
|
|
270
|
+
#include "RemoteButtonLayout.hpp"
|
|
271
|
+
#include "RemoteButton.hpp"
|
|
272
272
|
#include "PlayerCapabilities.hpp"
|
|
273
273
|
#include "FavoriteConfig.hpp"
|
|
274
274
|
#include "FavoritesMatchMode.hpp"
|
|
@@ -18,15 +18,15 @@ public extension AndroidOptions {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `AndroidOptions`.
|
|
20
20
|
*/
|
|
21
|
-
init(appKilledPlaybackBehavior: AppKilledPlaybackBehavior, skipSilence: Bool,
|
|
22
|
-
self.init(appKilledPlaybackBehavior, skipSilence, { () -> bridge.
|
|
23
|
-
if let __unwrappedValue =
|
|
24
|
-
return bridge.
|
|
21
|
+
init(appKilledPlaybackBehavior: AppKilledPlaybackBehavior, skipSilence: Bool, remoteButtonLayout: Variant_NullType_RemoteButtonLayout?) {
|
|
22
|
+
self.init(appKilledPlaybackBehavior, skipSilence, { () -> bridge.std__optional_std__variant_nitro__NullType__RemoteButtonLayout__ in
|
|
23
|
+
if let __unwrappedValue = remoteButtonLayout {
|
|
24
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__({ () -> bridge.std__variant_nitro__NullType__RemoteButtonLayout_ in
|
|
25
25
|
switch __unwrappedValue {
|
|
26
26
|
case .first(let __value):
|
|
27
|
-
return bridge.
|
|
27
|
+
return bridge.create_std__variant_nitro__NullType__RemoteButtonLayout_(margelo.nitro.NullType.null)
|
|
28
28
|
case .second(let __value):
|
|
29
|
-
return bridge.
|
|
29
|
+
return bridge.create_std__variant_nitro__NullType__RemoteButtonLayout_(__value)
|
|
30
30
|
}
|
|
31
31
|
}().variant)
|
|
32
32
|
} else {
|
|
@@ -46,12 +46,12 @@ public extension AndroidOptions {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
@inline(__always)
|
|
49
|
-
var
|
|
50
|
-
return { () ->
|
|
51
|
-
if bridge.
|
|
52
|
-
let __unwrapped = bridge.
|
|
53
|
-
return { () ->
|
|
54
|
-
let __variant = bridge.
|
|
49
|
+
var remoteButtonLayout: Variant_NullType_RemoteButtonLayout? {
|
|
50
|
+
return { () -> Variant_NullType_RemoteButtonLayout? in
|
|
51
|
+
if bridge.has_value_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__(self.__remoteButtonLayout) {
|
|
52
|
+
let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__(self.__remoteButtonLayout)
|
|
53
|
+
return { () -> Variant_NullType_RemoteButtonLayout in
|
|
54
|
+
let __variant = bridge.std__variant_nitro__NullType__RemoteButtonLayout_(__unwrapped)
|
|
55
55
|
switch __variant.index() {
|
|
56
56
|
case 0:
|
|
57
57
|
let __actual = __variant.get_0()
|
|
@@ -18,7 +18,7 @@ public extension NitroAndroidUpdateOptions {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `NitroAndroidUpdateOptions`.
|
|
20
20
|
*/
|
|
21
|
-
init(appKilledPlaybackBehavior: AppKilledPlaybackBehavior?, skipSilence: Bool?,
|
|
21
|
+
init(appKilledPlaybackBehavior: AppKilledPlaybackBehavior?, skipSilence: Bool?, remoteButtonLayout: Variant_NullType_RemoteButtonLayout?) {
|
|
22
22
|
self.init({ () -> bridge.std__optional_AppKilledPlaybackBehavior_ in
|
|
23
23
|
if let __unwrappedValue = appKilledPlaybackBehavior {
|
|
24
24
|
return bridge.create_std__optional_AppKilledPlaybackBehavior_(__unwrappedValue)
|
|
@@ -31,14 +31,14 @@ public extension NitroAndroidUpdateOptions {
|
|
|
31
31
|
} else {
|
|
32
32
|
return .init()
|
|
33
33
|
}
|
|
34
|
-
}(), { () -> bridge.
|
|
35
|
-
if let __unwrappedValue =
|
|
36
|
-
return bridge.
|
|
34
|
+
}(), { () -> bridge.std__optional_std__variant_nitro__NullType__RemoteButtonLayout__ in
|
|
35
|
+
if let __unwrappedValue = remoteButtonLayout {
|
|
36
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__({ () -> bridge.std__variant_nitro__NullType__RemoteButtonLayout_ in
|
|
37
37
|
switch __unwrappedValue {
|
|
38
38
|
case .first(let __value):
|
|
39
|
-
return bridge.
|
|
39
|
+
return bridge.create_std__variant_nitro__NullType__RemoteButtonLayout_(margelo.nitro.NullType.null)
|
|
40
40
|
case .second(let __value):
|
|
41
|
-
return bridge.
|
|
41
|
+
return bridge.create_std__variant_nitro__NullType__RemoteButtonLayout_(__value)
|
|
42
42
|
}
|
|
43
43
|
}().variant)
|
|
44
44
|
} else {
|
|
@@ -65,12 +65,12 @@ public extension NitroAndroidUpdateOptions {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
@inline(__always)
|
|
68
|
-
var
|
|
69
|
-
return { () ->
|
|
70
|
-
if bridge.
|
|
71
|
-
let __unwrapped = bridge.
|
|
72
|
-
return { () ->
|
|
73
|
-
let __variant = bridge.
|
|
68
|
+
var remoteButtonLayout: Variant_NullType_RemoteButtonLayout? {
|
|
69
|
+
return { () -> Variant_NullType_RemoteButtonLayout? in
|
|
70
|
+
if bridge.has_value_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__(self.__remoteButtonLayout) {
|
|
71
|
+
let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__RemoteButtonLayout__(self.__remoteButtonLayout)
|
|
72
|
+
return { () -> Variant_NullType_RemoteButtonLayout in
|
|
73
|
+
let __variant = bridge.std__variant_nitro__NullType__RemoteButtonLayout_(__unwrapped)
|
|
74
74
|
switch __variant.index() {
|
|
75
75
|
case 0:
|
|
76
76
|
let __actual = __variant.get_0()
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
///
|
|
2
|
-
///
|
|
2
|
+
/// RemoteButton.swift
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
5
|
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Represents the JS union `
|
|
9
|
+
* Represents the JS union `RemoteButton`, backed by a C++ enum.
|
|
10
10
|
*/
|
|
11
|
-
public typealias
|
|
11
|
+
public typealias RemoteButton = margelo.nitro.audiobrowser.RemoteButton
|
|
12
12
|
|
|
13
|
-
public extension
|
|
13
|
+
public extension RemoteButton {
|
|
14
14
|
/**
|
|
15
|
-
* Get a
|
|
15
|
+
* Get a RemoteButton for the given String value, or
|
|
16
16
|
* return `nil` if the given value was invalid/unknown.
|
|
17
17
|
*/
|
|
18
18
|
init?(fromString string: String) {
|
|
@@ -33,7 +33,7 @@ public extension NotificationButton {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
* Get the String value this
|
|
36
|
+
* Get the String value this RemoteButton represents.
|
|
37
37
|
*/
|
|
38
38
|
var stringValue: String {
|
|
39
39
|
switch self {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RemoteButtonLayout.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `RemoteButtonLayout`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias RemoteButtonLayout = margelo.nitro.audiobrowser.RemoteButtonLayout
|
|
14
|
+
|
|
15
|
+
public extension RemoteButtonLayout {
|
|
16
|
+
private typealias bridge = margelo.nitro.audiobrowser.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `RemoteButtonLayout`.
|
|
20
|
+
*/
|
|
21
|
+
init(back: RemoteButton?, forward: RemoteButton?, overflow: [RemoteButton]) {
|
|
22
|
+
self.init({ () -> bridge.std__optional_RemoteButton_ in
|
|
23
|
+
if let __unwrappedValue = back {
|
|
24
|
+
return bridge.create_std__optional_RemoteButton_(__unwrappedValue)
|
|
25
|
+
} else {
|
|
26
|
+
return .init()
|
|
27
|
+
}
|
|
28
|
+
}(), { () -> bridge.std__optional_RemoteButton_ in
|
|
29
|
+
if let __unwrappedValue = forward {
|
|
30
|
+
return bridge.create_std__optional_RemoteButton_(__unwrappedValue)
|
|
31
|
+
} else {
|
|
32
|
+
return .init()
|
|
33
|
+
}
|
|
34
|
+
}(), { () -> bridge.std__vector_RemoteButton_ in
|
|
35
|
+
var __vector = bridge.create_std__vector_RemoteButton_(overflow.count)
|
|
36
|
+
for __item in overflow {
|
|
37
|
+
__vector.push_back(__item)
|
|
38
|
+
}
|
|
39
|
+
return __vector
|
|
40
|
+
}())
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@inline(__always)
|
|
44
|
+
var back: RemoteButton? {
|
|
45
|
+
return self.__back.value
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@inline(__always)
|
|
49
|
+
var forward: RemoteButton? {
|
|
50
|
+
return self.__forward.value
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@inline(__always)
|
|
54
|
+
var overflow: [RemoteButton] {
|
|
55
|
+
return self.__overflow.map({ __item in __item })
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///
|
|
2
|
-
///
|
|
2
|
+
/// Variant_NullType_RemoteButtonLayout.swift
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
5
|
/// Copyright © Marc Rousavy @ Margelo
|
|
@@ -12,7 +12,7 @@ import NitroModules
|
|
|
12
12
|
* JS type: `null | struct`
|
|
13
13
|
*/
|
|
14
14
|
@frozen
|
|
15
|
-
public indirect enum
|
|
15
|
+
public indirect enum Variant_NullType_RemoteButtonLayout {
|
|
16
16
|
case first(NullType)
|
|
17
|
-
case second(
|
|
17
|
+
case second(RemoteButtonLayout)
|
|
18
18
|
}
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
|
|
31
31
|
// Forward declaration of `AppKilledPlaybackBehavior` to properly resolve imports.
|
|
32
32
|
namespace margelo::nitro::audiobrowser { enum class AppKilledPlaybackBehavior; }
|
|
33
|
-
// Forward declaration of `
|
|
34
|
-
namespace margelo::nitro::audiobrowser { struct
|
|
33
|
+
// Forward declaration of `RemoteButtonLayout` to properly resolve imports.
|
|
34
|
+
namespace margelo::nitro::audiobrowser { struct RemoteButtonLayout; }
|
|
35
35
|
|
|
36
36
|
#include "AppKilledPlaybackBehavior.hpp"
|
|
37
37
|
#include <NitroModules/Null.hpp>
|
|
38
|
-
#include "
|
|
38
|
+
#include "RemoteButtonLayout.hpp"
|
|
39
39
|
#include <variant>
|
|
40
40
|
#include <optional>
|
|
41
41
|
|
|
@@ -48,11 +48,11 @@ namespace margelo::nitro::audiobrowser {
|
|
|
48
48
|
public:
|
|
49
49
|
AppKilledPlaybackBehavior appKilledPlaybackBehavior SWIFT_PRIVATE;
|
|
50
50
|
bool skipSilence SWIFT_PRIVATE;
|
|
51
|
-
std::optional<std::variant<nitro::NullType,
|
|
51
|
+
std::optional<std::variant<nitro::NullType, RemoteButtonLayout>> remoteButtonLayout SWIFT_PRIVATE;
|
|
52
52
|
|
|
53
53
|
public:
|
|
54
54
|
AndroidOptions() = default;
|
|
55
|
-
explicit AndroidOptions(AppKilledPlaybackBehavior appKilledPlaybackBehavior, bool skipSilence, std::optional<std::variant<nitro::NullType,
|
|
55
|
+
explicit AndroidOptions(AppKilledPlaybackBehavior appKilledPlaybackBehavior, bool skipSilence, std::optional<std::variant<nitro::NullType, RemoteButtonLayout>> remoteButtonLayout): appKilledPlaybackBehavior(appKilledPlaybackBehavior), skipSilence(skipSilence), remoteButtonLayout(remoteButtonLayout) {}
|
|
56
56
|
|
|
57
57
|
public:
|
|
58
58
|
friend bool operator==(const AndroidOptions& lhs, const AndroidOptions& rhs) = default;
|
|
@@ -70,14 +70,14 @@ namespace margelo::nitro {
|
|
|
70
70
|
return margelo::nitro::audiobrowser::AndroidOptions(
|
|
71
71
|
JSIConverter<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior"))),
|
|
72
72
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipSilence"))),
|
|
73
|
-
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::
|
|
73
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout")))
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::AndroidOptions& arg) {
|
|
77
77
|
jsi::Object obj(runtime);
|
|
78
78
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior"), JSIConverter<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>::toJSI(runtime, arg.appKilledPlaybackBehavior));
|
|
79
79
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "skipSilence"), JSIConverter<bool>::toJSI(runtime, arg.skipSilence));
|
|
80
|
-
obj.setProperty(runtime, PropNameIDCache::get(runtime, "
|
|
80
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout"), JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::toJSI(runtime, arg.remoteButtonLayout));
|
|
81
81
|
return obj;
|
|
82
82
|
}
|
|
83
83
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -90,7 +90,7 @@ namespace margelo::nitro {
|
|
|
90
90
|
}
|
|
91
91
|
if (!JSIConverter<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior")))) return false;
|
|
92
92
|
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipSilence")))) return false;
|
|
93
|
-
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::
|
|
93
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout")))) return false;
|
|
94
94
|
return true;
|
|
95
95
|
}
|
|
96
96
|
};
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
|
|
31
31
|
// Forward declaration of `AppKilledPlaybackBehavior` to properly resolve imports.
|
|
32
32
|
namespace margelo::nitro::audiobrowser { enum class AppKilledPlaybackBehavior; }
|
|
33
|
-
// Forward declaration of `
|
|
34
|
-
namespace margelo::nitro::audiobrowser { struct
|
|
33
|
+
// Forward declaration of `RemoteButtonLayout` to properly resolve imports.
|
|
34
|
+
namespace margelo::nitro::audiobrowser { struct RemoteButtonLayout; }
|
|
35
35
|
|
|
36
36
|
#include "AppKilledPlaybackBehavior.hpp"
|
|
37
37
|
#include <optional>
|
|
38
38
|
#include <NitroModules/Null.hpp>
|
|
39
|
-
#include "
|
|
39
|
+
#include "RemoteButtonLayout.hpp"
|
|
40
40
|
#include <variant>
|
|
41
41
|
|
|
42
42
|
namespace margelo::nitro::audiobrowser {
|
|
@@ -48,11 +48,11 @@ namespace margelo::nitro::audiobrowser {
|
|
|
48
48
|
public:
|
|
49
49
|
std::optional<AppKilledPlaybackBehavior> appKilledPlaybackBehavior SWIFT_PRIVATE;
|
|
50
50
|
std::optional<bool> skipSilence SWIFT_PRIVATE;
|
|
51
|
-
std::optional<std::variant<nitro::NullType,
|
|
51
|
+
std::optional<std::variant<nitro::NullType, RemoteButtonLayout>> remoteButtonLayout SWIFT_PRIVATE;
|
|
52
52
|
|
|
53
53
|
public:
|
|
54
54
|
NitroAndroidUpdateOptions() = default;
|
|
55
|
-
explicit NitroAndroidUpdateOptions(std::optional<AppKilledPlaybackBehavior> appKilledPlaybackBehavior, std::optional<bool> skipSilence, std::optional<std::variant<nitro::NullType,
|
|
55
|
+
explicit NitroAndroidUpdateOptions(std::optional<AppKilledPlaybackBehavior> appKilledPlaybackBehavior, std::optional<bool> skipSilence, std::optional<std::variant<nitro::NullType, RemoteButtonLayout>> remoteButtonLayout): appKilledPlaybackBehavior(appKilledPlaybackBehavior), skipSilence(skipSilence), remoteButtonLayout(remoteButtonLayout) {}
|
|
56
56
|
|
|
57
57
|
public:
|
|
58
58
|
friend bool operator==(const NitroAndroidUpdateOptions& lhs, const NitroAndroidUpdateOptions& rhs) = default;
|
|
@@ -70,14 +70,14 @@ namespace margelo::nitro {
|
|
|
70
70
|
return margelo::nitro::audiobrowser::NitroAndroidUpdateOptions(
|
|
71
71
|
JSIConverter<std::optional<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior"))),
|
|
72
72
|
JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipSilence"))),
|
|
73
|
-
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::
|
|
73
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout")))
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::NitroAndroidUpdateOptions& arg) {
|
|
77
77
|
jsi::Object obj(runtime);
|
|
78
78
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior"), JSIConverter<std::optional<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>>::toJSI(runtime, arg.appKilledPlaybackBehavior));
|
|
79
79
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "skipSilence"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.skipSilence));
|
|
80
|
-
obj.setProperty(runtime, PropNameIDCache::get(runtime, "
|
|
80
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout"), JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::toJSI(runtime, arg.remoteButtonLayout));
|
|
81
81
|
return obj;
|
|
82
82
|
}
|
|
83
83
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -90,7 +90,7 @@ namespace margelo::nitro {
|
|
|
90
90
|
}
|
|
91
91
|
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::AppKilledPlaybackBehavior>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "appKilledPlaybackBehavior")))) return false;
|
|
92
92
|
if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "skipSilence")))) return false;
|
|
93
|
-
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::
|
|
93
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::audiobrowser::RemoteButtonLayout>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "remoteButtonLayout")))) return false;
|
|
94
94
|
return true;
|
|
95
95
|
}
|
|
96
96
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///
|
|
2
|
-
///
|
|
2
|
+
/// RemoteButton.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
5
|
/// Copyright © Marc Rousavy @ Margelo
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
namespace margelo::nitro::audiobrowser {
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* An enum which can be represented as a JavaScript union (
|
|
29
|
+
* An enum which can be represented as a JavaScript union (RemoteButton).
|
|
30
30
|
*/
|
|
31
|
-
enum class
|
|
31
|
+
enum class RemoteButton {
|
|
32
32
|
SKIP_TO_PREVIOUS SWIFT_NAME(skipToPrevious) = 0,
|
|
33
33
|
SKIP_TO_NEXT SWIFT_NAME(skipToNext) = 1,
|
|
34
34
|
JUMP_BACKWARD SWIFT_NAME(jumpBackward) = 2,
|
|
@@ -40,30 +40,30 @@ namespace margelo::nitro::audiobrowser {
|
|
|
40
40
|
|
|
41
41
|
namespace margelo::nitro {
|
|
42
42
|
|
|
43
|
-
// C++
|
|
43
|
+
// C++ RemoteButton <> JS RemoteButton (union)
|
|
44
44
|
template <>
|
|
45
|
-
struct JSIConverter<margelo::nitro::audiobrowser::
|
|
46
|
-
static inline margelo::nitro::audiobrowser::
|
|
45
|
+
struct JSIConverter<margelo::nitro::audiobrowser::RemoteButton> final {
|
|
46
|
+
static inline margelo::nitro::audiobrowser::RemoteButton fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
47
47
|
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
48
48
|
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
49
|
-
case hashString("skip-to-previous"): return margelo::nitro::audiobrowser::
|
|
50
|
-
case hashString("skip-to-next"): return margelo::nitro::audiobrowser::
|
|
51
|
-
case hashString("jump-backward"): return margelo::nitro::audiobrowser::
|
|
52
|
-
case hashString("jump-forward"): return margelo::nitro::audiobrowser::
|
|
53
|
-
case hashString("favorite"): return margelo::nitro::audiobrowser::
|
|
49
|
+
case hashString("skip-to-previous"): return margelo::nitro::audiobrowser::RemoteButton::SKIP_TO_PREVIOUS;
|
|
50
|
+
case hashString("skip-to-next"): return margelo::nitro::audiobrowser::RemoteButton::SKIP_TO_NEXT;
|
|
51
|
+
case hashString("jump-backward"): return margelo::nitro::audiobrowser::RemoteButton::JUMP_BACKWARD;
|
|
52
|
+
case hashString("jump-forward"): return margelo::nitro::audiobrowser::RemoteButton::JUMP_FORWARD;
|
|
53
|
+
case hashString("favorite"): return margelo::nitro::audiobrowser::RemoteButton::FAVORITE;
|
|
54
54
|
default: [[unlikely]]
|
|
55
|
-
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum
|
|
55
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum RemoteButton - invalid value!");
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::
|
|
58
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::RemoteButton arg) {
|
|
59
59
|
switch (arg) {
|
|
60
|
-
case margelo::nitro::audiobrowser::
|
|
61
|
-
case margelo::nitro::audiobrowser::
|
|
62
|
-
case margelo::nitro::audiobrowser::
|
|
63
|
-
case margelo::nitro::audiobrowser::
|
|
64
|
-
case margelo::nitro::audiobrowser::
|
|
60
|
+
case margelo::nitro::audiobrowser::RemoteButton::SKIP_TO_PREVIOUS: return JSIConverter<std::string>::toJSI(runtime, "skip-to-previous");
|
|
61
|
+
case margelo::nitro::audiobrowser::RemoteButton::SKIP_TO_NEXT: return JSIConverter<std::string>::toJSI(runtime, "skip-to-next");
|
|
62
|
+
case margelo::nitro::audiobrowser::RemoteButton::JUMP_BACKWARD: return JSIConverter<std::string>::toJSI(runtime, "jump-backward");
|
|
63
|
+
case margelo::nitro::audiobrowser::RemoteButton::JUMP_FORWARD: return JSIConverter<std::string>::toJSI(runtime, "jump-forward");
|
|
64
|
+
case margelo::nitro::audiobrowser::RemoteButton::FAVORITE: return JSIConverter<std::string>::toJSI(runtime, "favorite");
|
|
65
65
|
default: [[unlikely]]
|
|
66
|
-
throw std::invalid_argument("Cannot convert
|
|
66
|
+
throw std::invalid_argument("Cannot convert RemoteButton to JS - invalid value: "
|
|
67
67
|
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RemoteButtonLayout.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
#if __has_include(<NitroModules/PropNameIDCache.hpp>)
|
|
26
|
+
#include <NitroModules/PropNameIDCache.hpp>
|
|
27
|
+
#else
|
|
28
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
// Forward declaration of `RemoteButton` to properly resolve imports.
|
|
32
|
+
namespace margelo::nitro::audiobrowser { enum class RemoteButton; }
|
|
33
|
+
|
|
34
|
+
#include "RemoteButton.hpp"
|
|
35
|
+
#include <optional>
|
|
36
|
+
#include <vector>
|
|
37
|
+
|
|
38
|
+
namespace margelo::nitro::audiobrowser {
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A struct which can be represented as a JavaScript object (RemoteButtonLayout).
|
|
42
|
+
*/
|
|
43
|
+
struct RemoteButtonLayout final {
|
|
44
|
+
public:
|
|
45
|
+
std::optional<RemoteButton> back SWIFT_PRIVATE;
|
|
46
|
+
std::optional<RemoteButton> forward SWIFT_PRIVATE;
|
|
47
|
+
std::vector<RemoteButton> overflow SWIFT_PRIVATE;
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
RemoteButtonLayout() = default;
|
|
51
|
+
explicit RemoteButtonLayout(std::optional<RemoteButton> back, std::optional<RemoteButton> forward, std::vector<RemoteButton> overflow): back(back), forward(forward), overflow(overflow) {}
|
|
52
|
+
|
|
53
|
+
public:
|
|
54
|
+
friend bool operator==(const RemoteButtonLayout& lhs, const RemoteButtonLayout& rhs) = default;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
} // namespace margelo::nitro::audiobrowser
|
|
58
|
+
|
|
59
|
+
namespace margelo::nitro {
|
|
60
|
+
|
|
61
|
+
// C++ RemoteButtonLayout <> JS RemoteButtonLayout (object)
|
|
62
|
+
template <>
|
|
63
|
+
struct JSIConverter<margelo::nitro::audiobrowser::RemoteButtonLayout> final {
|
|
64
|
+
static inline margelo::nitro::audiobrowser::RemoteButtonLayout fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
65
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
66
|
+
return margelo::nitro::audiobrowser::RemoteButtonLayout(
|
|
67
|
+
JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "back"))),
|
|
68
|
+
JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "forward"))),
|
|
69
|
+
JSIConverter<std::vector<margelo::nitro::audiobrowser::RemoteButton>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "overflow")))
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::RemoteButtonLayout& arg) {
|
|
73
|
+
jsi::Object obj(runtime);
|
|
74
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "back"), JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::toJSI(runtime, arg.back));
|
|
75
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "forward"), JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::toJSI(runtime, arg.forward));
|
|
76
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "overflow"), JSIConverter<std::vector<margelo::nitro::audiobrowser::RemoteButton>>::toJSI(runtime, arg.overflow));
|
|
77
|
+
return obj;
|
|
78
|
+
}
|
|
79
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
80
|
+
if (!value.isObject()) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
jsi::Object obj = value.getObject(runtime);
|
|
84
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "back")))) return false;
|
|
88
|
+
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::RemoteButton>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "forward")))) return false;
|
|
89
|
+
if (!JSIConverter<std::vector<margelo::nitro::audiobrowser::RemoteButton>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "overflow")))) return false;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
} // namespace margelo::nitro
|