one 2.11.5 → 2.12.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/one/HybridOneAudio.kt +309 -124
- package/dist/cjs/cli/build.cjs +31 -33
- package/dist/cjs/cli/build.native.cjs +31 -33
- package/dist/cjs/cli/build.native.js +31 -33
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +11 -7
- package/dist/cjs/cli/buildPage.native.cjs +11 -7
- package/dist/cjs/cli/buildPage.native.js +11 -7
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.cjs +1 -1
- package/dist/cjs/cli/buildPageWorker.native.cjs +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/headless-server.cjs +2 -5
- package/dist/cjs/headless-server.native.cjs +2 -5
- package/dist/cjs/headless-server.native.js +2 -5
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/platform/audio/index.cjs +83 -76
- package/dist/cjs/platform/audio/index.native.cjs +2 -2
- package/dist/cjs/platform/audio/index.native.js +2 -2
- package/dist/cjs/platform/audio/index.native.js.map +1 -1
- package/dist/cjs/platform/audio/nowPlaying.cjs +126 -0
- package/dist/cjs/platform/audio/nowPlaying.native.cjs +160 -0
- package/dist/cjs/platform/audio/nowPlaying.native.js +162 -0
- package/dist/cjs/platform/audio/nowPlaying.native.js.map +1 -0
- package/dist/cjs/platform/audio/player.cjs +15 -0
- package/dist/cjs/platform/audio/player.native.cjs +14 -0
- package/dist/cjs/platform/audio/player.native.js +14 -0
- package/dist/cjs/platform/audio/player.native.js.map +1 -1
- package/dist/cjs/platform/audio/unavailable.cjs +1 -1
- package/dist/cjs/platform/audio/unavailable.native.cjs +1 -1
- package/dist/cjs/platform/audio/unavailable.native.js +1 -1
- package/dist/cjs/platform/audio/unavailable.native.js.map +1 -1
- package/dist/cjs/serve-worker.cjs +0 -3
- package/dist/cjs/serve-worker.native.cjs +0 -3
- package/dist/cjs/serve-worker.native.js +0 -3
- package/dist/cjs/serve-worker.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +0 -6
- package/dist/cjs/server/oneServe.native.cjs +0 -6
- package/dist/cjs/server/oneServe.native.js +0 -6
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.cjs +12 -10
- package/dist/cjs/server/workerHandler.native.cjs +14 -10
- package/dist/cjs/server/workerHandler.native.js +14 -10
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.cjs +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +31 -33
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +31 -33
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +11 -7
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +11 -7
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/buildPageWorker.mjs +1 -1
- package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
- package/dist/esm/cli/buildPageWorker.native.js +1 -1
- package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
- package/dist/esm/headless-server.mjs +2 -3
- package/dist/esm/headless-server.mjs.map +1 -1
- package/dist/esm/headless-server.native.js +2 -3
- package/dist/esm/headless-server.native.js.map +1 -1
- package/dist/esm/platform/audio/index.mjs +83 -76
- package/dist/esm/platform/audio/index.mjs.map +1 -1
- package/dist/esm/platform/audio/index.native.js +2 -2
- package/dist/esm/platform/audio/index.native.js.map +1 -1
- package/dist/esm/platform/audio/nowPlaying.mjs +102 -0
- package/dist/esm/platform/audio/nowPlaying.mjs.map +1 -0
- package/dist/esm/platform/audio/nowPlaying.native.js +134 -0
- package/dist/esm/platform/audio/nowPlaying.native.js.map +1 -0
- package/dist/esm/platform/audio/player.mjs +15 -0
- package/dist/esm/platform/audio/player.mjs.map +1 -1
- package/dist/esm/platform/audio/player.native.js +14 -0
- package/dist/esm/platform/audio/player.native.js.map +1 -1
- package/dist/esm/platform/audio/unavailable.mjs +1 -1
- package/dist/esm/platform/audio/unavailable.mjs.map +1 -1
- package/dist/esm/platform/audio/unavailable.native.js +1 -1
- package/dist/esm/platform/audio/unavailable.native.js.map +1 -1
- package/dist/esm/serve-worker.mjs +1 -2
- package/dist/esm/serve-worker.mjs.map +1 -1
- package/dist/esm/serve-worker.native.js +1 -2
- package/dist/esm/serve-worker.native.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +0 -6
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +0 -6
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/workerHandler.mjs +12 -10
- package/dist/esm/server/workerHandler.mjs.map +1 -1
- package/dist/esm/server/workerHandler.native.js +14 -10
- package/dist/esm/server/workerHandler.native.js.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs +33 -37
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js +33 -37
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/ios/Nitro/HybridOneAudio.swift +309 -96
- package/nitrogen/generated/android/c++/JAudioPlayOptions.hpp +61 -0
- package/nitrogen/generated/android/c++/JAudioRemoteCommandEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_void_AudioRemoteCommandEvent.hpp +1 -0
- package/nitrogen/generated/android/c++/JHybridOneAudioSpec.cpp +37 -3
- package/nitrogen/generated/android/c++/JHybridOneAudioSpec.hpp +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioPlayOptions.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioRemoteCommandEvent.kt +9 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneAudioSpec.kt +40 -32
- package/nitrogen/generated/ios/One-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridOneAudioSpecSwift.hpp +21 -2
- package/nitrogen/generated/ios/swift/AudioPlayOptions.swift +60 -0
- package/nitrogen/generated/ios/swift/AudioRemoteCommandEvent.swift +19 -1
- package/nitrogen/generated/ios/swift/HybridOneAudioSpec.swift +3 -1
- package/nitrogen/generated/ios/swift/HybridOneAudioSpec_cxx.swift +70 -32
- package/nitrogen/generated/shared/c++/AudioPlayOptions.hpp +87 -0
- package/nitrogen/generated/shared/c++/AudioRemoteCommandEvent.hpp +7 -2
- package/nitrogen/generated/shared/c++/HybridOneAudioSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridOneAudioSpec.hpp +6 -1
- package/package.json +13 -13
- package/src/cli/build.ts +35 -32
- package/src/cli/buildPage.test.ts +152 -0
- package/src/cli/buildPage.ts +14 -9
- package/src/cli/buildPageWorker.ts +2 -1
- package/src/cli/workerPool.ts +1 -0
- package/src/headless-server.ts +2 -2
- package/src/index.ts +1 -0
- package/src/platform/audio/index.native.ts +4 -2
- package/src/platform/audio/index.ts +102 -74
- package/src/platform/audio/nowPlaying.ts +122 -0
- package/src/platform/audio/player.native.ts +17 -1
- package/src/platform/audio/player.ts +23 -1
- package/src/platform/audio/types.ts +6 -1
- package/src/platform/audio/unavailable.ts +3 -1
- package/src/platform/index.native.ts +1 -0
- package/src/platform/index.ts +1 -0
- package/src/platform/specs/OneAudio.nitro.ts +11 -1
- package/src/serve-worker.ts +2 -3
- package/src/server/oneServe.ts +0 -6
- package/src/server/workerHandler.ts +34 -18
- package/src/vite/plugins/workerdDevPlugin.ts +33 -37
- package/src/vite/resolveResponse.ts +2 -2
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/cli/workerPool.d.ts +1 -0
- package/types/cli/workerPool.d.ts.map +1 -1
- package/types/headless-server.d.ts +3 -3
- package/types/headless-server.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/platform/audio/index.d.ts +2 -2
- package/types/platform/audio/index.d.ts.map +1 -1
- package/types/platform/audio/index.native.d.ts +3 -3
- package/types/platform/audio/index.native.d.ts.map +1 -1
- package/types/platform/audio/nowPlaying.d.ts +12 -0
- package/types/platform/audio/nowPlaying.d.ts.map +1 -0
- package/types/platform/audio/player.d.ts +3 -1
- package/types/platform/audio/player.d.ts.map +1 -1
- package/types/platform/audio/player.native.d.ts +3 -1
- package/types/platform/audio/player.native.d.ts.map +1 -1
- package/types/platform/audio/types.d.ts +3 -1
- package/types/platform/audio/types.d.ts.map +1 -1
- package/types/platform/audio/unavailable.d.ts +3 -3
- package/types/platform/audio/unavailable.d.ts.map +1 -1
- package/types/platform/index.d.ts +1 -1
- package/types/platform/index.d.ts.map +1 -1
- package/types/platform/index.native.d.ts +1 -1
- package/types/platform/index.native.d.ts.map +1 -1
- package/types/platform/specs/OneAudio.nitro.d.ts +8 -1
- package/types/platform/specs/OneAudio.nitro.d.ts.map +1 -1
- package/types/serve-worker.d.ts +3 -3
- package/types/serve-worker.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/server/workerHandler.d.ts +1 -1
- package/types/server/workerHandler.d.ts.map +1 -1
- package/types/vite/plugins/workerdDevPlugin.d.ts.map +1 -1
- package/types/vite/resolveResponse.d.ts +1 -1
- package/types/vite/resolveResponse.d.ts.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.cjs +0 -33
- package/dist/cjs/server/staticHtmlFetcher.native.cjs +0 -35
- package/dist/cjs/server/staticHtmlFetcher.native.js +0 -37
- package/dist/cjs/server/staticHtmlFetcher.native.js.map +0 -1
- package/dist/esm/server/staticHtmlFetcher.mjs +0 -10
- package/dist/esm/server/staticHtmlFetcher.mjs.map +0 -1
- package/dist/esm/server/staticHtmlFetcher.native.js +0 -10
- package/dist/esm/server/staticHtmlFetcher.native.js.map +0 -1
- package/src/server/staticHtmlFetcher.ts +0 -12
- package/types/server/staticHtmlFetcher.d.ts +0 -3
- package/types/server/staticHtmlFetcher.d.ts.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JAudioPlayOptions.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
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "AudioPlayOptions.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::one {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "AudioPlayOptions" and the Kotlin data class "AudioPlayOptions".
|
|
21
|
+
*/
|
|
22
|
+
struct JAudioPlayOptions final: public jni::JavaClass<JAudioPlayOptions> {
|
|
23
|
+
public:
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/one/AudioPlayOptions;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct AudioPlayOptions by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
AudioPlayOptions toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldPositionMs = clazz->getField<jni::JDouble>("positionMs");
|
|
35
|
+
jni::local_ref<jni::JDouble> positionMs = this->getFieldValue(fieldPositionMs);
|
|
36
|
+
static const auto fieldPaused = clazz->getField<jni::JBoolean>("paused");
|
|
37
|
+
jni::local_ref<jni::JBoolean> paused = this->getFieldValue(fieldPaused);
|
|
38
|
+
return AudioPlayOptions(
|
|
39
|
+
positionMs != nullptr ? std::make_optional(positionMs->value()) : std::nullopt,
|
|
40
|
+
paused != nullptr ? std::make_optional(static_cast<bool>(paused->value())) : std::nullopt
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
/**
|
|
46
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
47
|
+
*/
|
|
48
|
+
[[maybe_unused]]
|
|
49
|
+
static jni::local_ref<JAudioPlayOptions::javaobject> fromCpp(const AudioPlayOptions& value) {
|
|
50
|
+
using JSignature = JAudioPlayOptions(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>);
|
|
51
|
+
static const auto clazz = javaClassStatic();
|
|
52
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
53
|
+
return create(
|
|
54
|
+
clazz,
|
|
55
|
+
value.positionMs.has_value() ? jni::JDouble::valueOf(value.positionMs.value()) : nullptr,
|
|
56
|
+
value.paused.has_value() ? jni::JBoolean::valueOf(value.paused.value()) : nullptr
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::one
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#include "AudioRemoteCommandType.hpp"
|
|
14
14
|
#include "JAudioRemoteCommandType.hpp"
|
|
15
15
|
#include <optional>
|
|
16
|
+
#include <string>
|
|
16
17
|
|
|
17
18
|
namespace margelo::nitro::one {
|
|
18
19
|
|
|
@@ -37,9 +38,12 @@ namespace margelo::nitro::one {
|
|
|
37
38
|
jni::local_ref<JAudioRemoteCommandType> type = this->getFieldValue(fieldType);
|
|
38
39
|
static const auto fieldPositionMs = clazz->getField<jni::JDouble>("positionMs");
|
|
39
40
|
jni::local_ref<jni::JDouble> positionMs = this->getFieldValue(fieldPositionMs);
|
|
41
|
+
static const auto fieldPlayerId = clazz->getField<jni::JString>("playerId");
|
|
42
|
+
jni::local_ref<jni::JString> playerId = this->getFieldValue(fieldPlayerId);
|
|
40
43
|
return AudioRemoteCommandEvent(
|
|
41
44
|
type->toCpp(),
|
|
42
|
-
positionMs != nullptr ? std::make_optional(positionMs->value()) : std::nullopt
|
|
45
|
+
positionMs != nullptr ? std::make_optional(positionMs->value()) : std::nullopt,
|
|
46
|
+
playerId != nullptr ? std::make_optional(playerId->toStdString()) : std::nullopt
|
|
43
47
|
);
|
|
44
48
|
}
|
|
45
49
|
|
|
@@ -49,13 +53,14 @@ namespace margelo::nitro::one {
|
|
|
49
53
|
*/
|
|
50
54
|
[[maybe_unused]]
|
|
51
55
|
static jni::local_ref<JAudioRemoteCommandEvent::javaobject> fromCpp(const AudioRemoteCommandEvent& value) {
|
|
52
|
-
using JSignature = JAudioRemoteCommandEvent(jni::alias_ref<JAudioRemoteCommandType>, jni::alias_ref<jni::JDouble>);
|
|
56
|
+
using JSignature = JAudioRemoteCommandEvent(jni::alias_ref<JAudioRemoteCommandType>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>);
|
|
53
57
|
static const auto clazz = javaClassStatic();
|
|
54
58
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
55
59
|
return create(
|
|
56
60
|
clazz,
|
|
57
61
|
JAudioRemoteCommandType::fromCpp(value.type),
|
|
58
|
-
value.positionMs.has_value() ? jni::JDouble::valueOf(value.positionMs.value()) : nullptr
|
|
62
|
+
value.positionMs.has_value() ? jni::JDouble::valueOf(value.positionMs.value()) : nullptr,
|
|
63
|
+
value.playerId.has_value() ? jni::make_jstring(value.playerId.value()) : nullptr
|
|
59
64
|
);
|
|
60
65
|
}
|
|
61
66
|
};
|
|
@@ -21,6 +21,8 @@ namespace margelo::nitro::one { enum class AudioRecordingState; }
|
|
|
21
21
|
namespace margelo::nitro::one { struct AudioRecordingResult; }
|
|
22
22
|
// Forward declaration of `AudioPlayerStatus` to properly resolve imports.
|
|
23
23
|
namespace margelo::nitro::one { struct AudioPlayerStatus; }
|
|
24
|
+
// Forward declaration of `AudioPlayOptions` to properly resolve imports.
|
|
25
|
+
namespace margelo::nitro::one { struct AudioPlayOptions; }
|
|
24
26
|
// Forward declaration of `AudioInterruptionEvent` to properly resolve imports.
|
|
25
27
|
namespace margelo::nitro::one { struct AudioInterruptionEvent; }
|
|
26
28
|
// Forward declaration of `AudioInterruptionType` to properly resolve imports.
|
|
@@ -56,6 +58,8 @@ namespace margelo::nitro::one { enum class PitchCorrectionQuality; }
|
|
|
56
58
|
#include <NitroModules/JNICallable.hpp>
|
|
57
59
|
#include "AudioPlayerStatus.hpp"
|
|
58
60
|
#include "JAudioPlayerStatus.hpp"
|
|
61
|
+
#include "AudioPlayOptions.hpp"
|
|
62
|
+
#include "JAudioPlayOptions.hpp"
|
|
59
63
|
#include "AudioInterruptionEvent.hpp"
|
|
60
64
|
#include "JFunc_void_AudioInterruptionEvent.hpp"
|
|
61
65
|
#include "JAudioInterruptionEvent.hpp"
|
|
@@ -137,9 +141,9 @@ namespace margelo::nitro::one {
|
|
|
137
141
|
return __promise;
|
|
138
142
|
}();
|
|
139
143
|
}
|
|
140
|
-
std::shared_ptr<Promise<AudioPlaybackStatus>> JHybridOneAudioSpec::play(const std::string& uri) {
|
|
141
|
-
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* uri */)>("play");
|
|
142
|
-
auto __result = method(_javaPart, jni::make_jstring(uri));
|
|
144
|
+
std::shared_ptr<Promise<AudioPlaybackStatus>> JHybridOneAudioSpec::play(const std::string& uri, const AudioPlayOptions& options) {
|
|
145
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* uri */, jni::alias_ref<JAudioPlayOptions> /* options */)>("play");
|
|
146
|
+
auto __result = method(_javaPart, jni::make_jstring(uri), JAudioPlayOptions::fromCpp(options));
|
|
143
147
|
return [&]() {
|
|
144
148
|
auto __promise = Promise<AudioPlaybackStatus>::create();
|
|
145
149
|
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
@@ -416,6 +420,36 @@ namespace margelo::nitro::one {
|
|
|
416
420
|
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* playerId */)>("removePlayer");
|
|
417
421
|
method(_javaPart, jni::make_jstring(playerId));
|
|
418
422
|
}
|
|
423
|
+
std::shared_ptr<Promise<void>> JHybridOneAudioSpec::setPlayerNowPlayingInfo(const std::string& playerId, const AudioNowPlayingInfo& info) {
|
|
424
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playerId */, jni::alias_ref<JAudioNowPlayingInfo> /* info */)>("setPlayerNowPlayingInfo");
|
|
425
|
+
auto __result = method(_javaPart, jni::make_jstring(playerId), JAudioNowPlayingInfo::fromCpp(info));
|
|
426
|
+
return [&]() {
|
|
427
|
+
auto __promise = Promise<void>::create();
|
|
428
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
429
|
+
__promise->resolve();
|
|
430
|
+
});
|
|
431
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
432
|
+
jni::JniException __jniError(__throwable);
|
|
433
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
434
|
+
});
|
|
435
|
+
return __promise;
|
|
436
|
+
}();
|
|
437
|
+
}
|
|
438
|
+
std::shared_ptr<Promise<void>> JHybridOneAudioSpec::clearPlayerNowPlayingInfo(const std::string& playerId) {
|
|
439
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* playerId */)>("clearPlayerNowPlayingInfo");
|
|
440
|
+
auto __result = method(_javaPart, jni::make_jstring(playerId));
|
|
441
|
+
return [&]() {
|
|
442
|
+
auto __promise = Promise<void>::create();
|
|
443
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
|
|
444
|
+
__promise->resolve();
|
|
445
|
+
});
|
|
446
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
447
|
+
jni::JniException __jniError(__throwable);
|
|
448
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
449
|
+
});
|
|
450
|
+
return __promise;
|
|
451
|
+
}();
|
|
452
|
+
}
|
|
419
453
|
AudioPlayerStatus JHybridOneAudioSpec::getPlayerStatus(const std::string& playerId) {
|
|
420
454
|
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JAudioPlayerStatus>(jni::alias_ref<jni::JString> /* playerId */)>("getPlayerStatus");
|
|
421
455
|
auto __result = method(_javaPart, jni::make_jstring(playerId));
|
|
@@ -56,7 +56,7 @@ namespace margelo::nitro::one {
|
|
|
56
56
|
// Methods
|
|
57
57
|
std::shared_ptr<Promise<AudioRecordingPermission>> getRecordingPermissionStatus() override;
|
|
58
58
|
std::shared_ptr<Promise<AudioRecordingPermission>> requestRecordingPermission() override;
|
|
59
|
-
std::shared_ptr<Promise<AudioPlaybackStatus>> play(const std::string& uri) override;
|
|
59
|
+
std::shared_ptr<Promise<AudioPlaybackStatus>> play(const std::string& uri, const AudioPlayOptions& options) override;
|
|
60
60
|
std::shared_ptr<Promise<AudioPlaybackStatus>> getPlaybackStatus() override;
|
|
61
61
|
std::shared_ptr<Promise<AudioPlaybackStatus>> pause() override;
|
|
62
62
|
std::shared_ptr<Promise<AudioPlaybackStatus>> resume() override;
|
|
@@ -77,6 +77,8 @@ namespace margelo::nitro::one {
|
|
|
77
77
|
std::shared_ptr<Promise<void>> playerSeek(const std::string& playerId, double seconds, std::optional<double> toleranceBeforeMs, std::optional<double> toleranceAfterMs) override;
|
|
78
78
|
void playerReplace(const std::string& playerId, const std::optional<std::string>& sourceUri, const std::optional<std::unordered_map<std::string, std::string>>& headers) override;
|
|
79
79
|
void removePlayer(const std::string& playerId) override;
|
|
80
|
+
std::shared_ptr<Promise<void>> setPlayerNowPlayingInfo(const std::string& playerId, const AudioNowPlayingInfo& info) override;
|
|
81
|
+
std::shared_ptr<Promise<void>> clearPlayerNowPlayingInfo(const std::string& playerId) override;
|
|
80
82
|
AudioPlayerStatus getPlayerStatus(const std::string& playerId) override;
|
|
81
83
|
void setPlayerRate(const std::string& playerId, double rate, std::optional<PitchCorrectionQuality> pitchQuality) override;
|
|
82
84
|
void setPlayerVolume(const std::string& playerId, double volume) override;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// AudioPlayOptions.kt
|
|
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
|
+
package com.margelo.nitro.one
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import java.util.Objects
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "AudioPlayOptions".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class AudioPlayOptions(
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
val positionMs: Double?,
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val paused: Boolean?
|
|
27
|
+
) {
|
|
28
|
+
/* primary constructor */
|
|
29
|
+
|
|
30
|
+
override fun equals(other: Any?): Boolean {
|
|
31
|
+
if (this === other) return true
|
|
32
|
+
if (other !is AudioPlayOptions) return false
|
|
33
|
+
return Objects.deepEquals(this.positionMs, other.positionMs)
|
|
34
|
+
&& Objects.deepEquals(this.paused, other.paused)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun hashCode(): Int {
|
|
38
|
+
return arrayOf<Any?>(
|
|
39
|
+
positionMs,
|
|
40
|
+
paused
|
|
41
|
+
).contentDeepHashCode()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
companion object {
|
|
45
|
+
/**
|
|
46
|
+
* Constructor called from C++
|
|
47
|
+
*/
|
|
48
|
+
@DoNotStrip
|
|
49
|
+
@Keep
|
|
50
|
+
@Suppress("unused")
|
|
51
|
+
@JvmStatic
|
|
52
|
+
private fun fromCpp(positionMs: Double?, paused: Boolean?): AudioPlayOptions {
|
|
53
|
+
return AudioPlayOptions(positionMs, paused)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -23,7 +23,10 @@ data class AudioRemoteCommandEvent(
|
|
|
23
23
|
val type: AudioRemoteCommandType,
|
|
24
24
|
@DoNotStrip
|
|
25
25
|
@Keep
|
|
26
|
-
val positionMs: Double
|
|
26
|
+
val positionMs: Double?,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val playerId: String?
|
|
27
30
|
) {
|
|
28
31
|
/* primary constructor */
|
|
29
32
|
|
|
@@ -32,12 +35,14 @@ data class AudioRemoteCommandEvent(
|
|
|
32
35
|
if (other !is AudioRemoteCommandEvent) return false
|
|
33
36
|
return Objects.deepEquals(this.type, other.type)
|
|
34
37
|
&& Objects.deepEquals(this.positionMs, other.positionMs)
|
|
38
|
+
&& Objects.deepEquals(this.playerId, other.playerId)
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
override fun hashCode(): Int {
|
|
38
42
|
return arrayOf<Any?>(
|
|
39
43
|
type,
|
|
40
|
-
positionMs
|
|
44
|
+
positionMs,
|
|
45
|
+
playerId
|
|
41
46
|
).contentDeepHashCode()
|
|
42
47
|
}
|
|
43
48
|
|
|
@@ -49,8 +54,8 @@ data class AudioRemoteCommandEvent(
|
|
|
49
54
|
@Keep
|
|
50
55
|
@Suppress("unused")
|
|
51
56
|
@JvmStatic
|
|
52
|
-
private fun fromCpp(type: AudioRemoteCommandType, positionMs: Double?): AudioRemoteCommandEvent {
|
|
53
|
-
return AudioRemoteCommandEvent(type, positionMs)
|
|
57
|
+
private fun fromCpp(type: AudioRemoteCommandType, positionMs: Double?, playerId: String?): AudioRemoteCommandEvent {
|
|
58
|
+
return AudioRemoteCommandEvent(type, positionMs, playerId)
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
}
|
|
@@ -27,131 +27,139 @@ import com.margelo.nitro.core.HybridObject
|
|
|
27
27
|
)
|
|
28
28
|
abstract class HybridOneAudioSpec: HybridObject() {
|
|
29
29
|
// Properties
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
|
|
32
32
|
// Methods
|
|
33
33
|
@DoNotStrip
|
|
34
34
|
@Keep
|
|
35
35
|
abstract fun getRecordingPermissionStatus(): Promise<AudioRecordingPermission>
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
@DoNotStrip
|
|
38
38
|
@Keep
|
|
39
39
|
abstract fun requestRecordingPermission(): Promise<AudioRecordingPermission>
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
abstract fun play(uri: String): Promise<AudioPlaybackStatus>
|
|
44
|
-
|
|
43
|
+
abstract fun play(uri: String, options: AudioPlayOptions): Promise<AudioPlaybackStatus>
|
|
44
|
+
|
|
45
45
|
@DoNotStrip
|
|
46
46
|
@Keep
|
|
47
47
|
abstract fun getPlaybackStatus(): Promise<AudioPlaybackStatus>
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
@DoNotStrip
|
|
50
50
|
@Keep
|
|
51
51
|
abstract fun pause(): Promise<AudioPlaybackStatus>
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
@DoNotStrip
|
|
54
54
|
@Keep
|
|
55
55
|
abstract fun resume(): Promise<AudioPlaybackStatus>
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
@DoNotStrip
|
|
58
58
|
@Keep
|
|
59
59
|
abstract fun seek(positionMs: Double): Promise<AudioPlaybackStatus>
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
@DoNotStrip
|
|
62
62
|
@Keep
|
|
63
63
|
abstract fun stop(): Promise<Unit>
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
@DoNotStrip
|
|
66
66
|
@Keep
|
|
67
67
|
abstract fun startRecording(): Promise<AudioRecordingStatus>
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
@DoNotStrip
|
|
70
70
|
@Keep
|
|
71
71
|
abstract fun getRecordingStatus(): Promise<AudioRecordingStatus>
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
@DoNotStrip
|
|
74
74
|
@Keep
|
|
75
75
|
abstract fun pauseRecording(): Promise<AudioRecordingStatus>
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
@DoNotStrip
|
|
78
78
|
@Keep
|
|
79
79
|
abstract fun resumeRecording(): Promise<AudioRecordingStatus>
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
@DoNotStrip
|
|
82
82
|
@Keep
|
|
83
83
|
abstract fun stopRecording(): Promise<AudioRecordingResult>
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
abstract fun addInterruptionListener(onEvent: (event: AudioInterruptionEvent) -> Unit): () -> Unit
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
@DoNotStrip
|
|
88
88
|
@Keep
|
|
89
89
|
private fun addInterruptionListener_cxx(onEvent: Func_void_AudioInterruptionEvent): Func_void {
|
|
90
90
|
val __result = addInterruptionListener(onEvent)
|
|
91
91
|
return Func_void_java(__result)
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
@DoNotStrip
|
|
95
95
|
@Keep
|
|
96
96
|
abstract fun setNowPlayingInfo(info: AudioNowPlayingInfo): Promise<Unit>
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
@DoNotStrip
|
|
99
99
|
@Keep
|
|
100
100
|
abstract fun clearNowPlayingInfo(): Promise<Unit>
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
abstract fun addRemoteCommandListener(onEvent: (event: AudioRemoteCommandEvent) -> Unit): () -> Unit
|
|
103
|
-
|
|
103
|
+
|
|
104
104
|
@DoNotStrip
|
|
105
105
|
@Keep
|
|
106
106
|
private fun addRemoteCommandListener_cxx(onEvent: Func_void_AudioRemoteCommandEvent): Func_void {
|
|
107
107
|
val __result = addRemoteCommandListener(onEvent)
|
|
108
108
|
return Func_void_java(__result)
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
@DoNotStrip
|
|
112
112
|
@Keep
|
|
113
113
|
abstract fun createPlayer(sourceUri: String?, headers: Map<String, String>?): String
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
@DoNotStrip
|
|
116
116
|
@Keep
|
|
117
117
|
abstract fun playerPlay(playerId: String): Unit
|
|
118
|
-
|
|
118
|
+
|
|
119
119
|
@DoNotStrip
|
|
120
120
|
@Keep
|
|
121
121
|
abstract fun playerPause(playerId: String): Unit
|
|
122
|
-
|
|
122
|
+
|
|
123
123
|
@DoNotStrip
|
|
124
124
|
@Keep
|
|
125
125
|
abstract fun playerSeek(playerId: String, seconds: Double, toleranceBeforeMs: Double?, toleranceAfterMs: Double?): Promise<Unit>
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
@DoNotStrip
|
|
128
128
|
@Keep
|
|
129
129
|
abstract fun playerReplace(playerId: String, sourceUri: String?, headers: Map<String, String>?): Unit
|
|
130
|
-
|
|
130
|
+
|
|
131
131
|
@DoNotStrip
|
|
132
132
|
@Keep
|
|
133
133
|
abstract fun removePlayer(playerId: String): Unit
|
|
134
|
-
|
|
134
|
+
|
|
135
|
+
@DoNotStrip
|
|
136
|
+
@Keep
|
|
137
|
+
abstract fun setPlayerNowPlayingInfo(playerId: String, info: AudioNowPlayingInfo): Promise<Unit>
|
|
138
|
+
|
|
139
|
+
@DoNotStrip
|
|
140
|
+
@Keep
|
|
141
|
+
abstract fun clearPlayerNowPlayingInfo(playerId: String): Promise<Unit>
|
|
142
|
+
|
|
135
143
|
@DoNotStrip
|
|
136
144
|
@Keep
|
|
137
145
|
abstract fun getPlayerStatus(playerId: String): AudioPlayerStatus
|
|
138
|
-
|
|
146
|
+
|
|
139
147
|
@DoNotStrip
|
|
140
148
|
@Keep
|
|
141
149
|
abstract fun setPlayerRate(playerId: String, rate: Double, pitchQuality: PitchCorrectionQuality?): Unit
|
|
142
|
-
|
|
150
|
+
|
|
143
151
|
@DoNotStrip
|
|
144
152
|
@Keep
|
|
145
153
|
abstract fun setPlayerVolume(playerId: String, volume: Double): Unit
|
|
146
|
-
|
|
154
|
+
|
|
147
155
|
@DoNotStrip
|
|
148
156
|
@Keep
|
|
149
157
|
abstract fun setPlayerMuted(playerId: String, muted: Boolean): Unit
|
|
150
|
-
|
|
158
|
+
|
|
151
159
|
@DoNotStrip
|
|
152
160
|
@Keep
|
|
153
161
|
abstract fun setPlayerLoop(playerId: String, loop: Boolean): Unit
|
|
154
|
-
|
|
162
|
+
|
|
155
163
|
@DoNotStrip
|
|
156
164
|
@Keep
|
|
157
165
|
abstract fun setPlayerPitchCorrection(playerId: String, enabled: Boolean): Unit
|
|
@@ -36,6 +36,8 @@ namespace margelo::nitro::one { struct AudioInterruptionEvent; }
|
|
|
36
36
|
namespace margelo::nitro::one { enum class AudioInterruptionType; }
|
|
37
37
|
// Forward declaration of `AudioNowPlayingInfo` to properly resolve imports.
|
|
38
38
|
namespace margelo::nitro::one { struct AudioNowPlayingInfo; }
|
|
39
|
+
// Forward declaration of `AudioPlayOptions` to properly resolve imports.
|
|
40
|
+
namespace margelo::nitro::one { struct AudioPlayOptions; }
|
|
39
41
|
// Forward declaration of `AudioPlaybackState` to properly resolve imports.
|
|
40
42
|
namespace margelo::nitro::one { enum class AudioPlaybackState; }
|
|
41
43
|
// Forward declaration of `AudioPlaybackStatus` to properly resolve imports.
|
|
@@ -486,6 +488,7 @@ namespace margelo::nitro::one { enum class UserInterfaceSizeClass; }
|
|
|
486
488
|
#include "AudioInterruptionEvent.hpp"
|
|
487
489
|
#include "AudioInterruptionType.hpp"
|
|
488
490
|
#include "AudioNowPlayingInfo.hpp"
|
|
491
|
+
#include "AudioPlayOptions.hpp"
|
|
489
492
|
#include "AudioPlaybackState.hpp"
|
|
490
493
|
#include "AudioPlaybackStatus.hpp"
|
|
491
494
|
#include "AudioPlayerStatus.hpp"
|
|
@@ -18,6 +18,8 @@ namespace margelo::nitro::one { enum class AudioRecordingPermission; }
|
|
|
18
18
|
namespace margelo::nitro::one { struct AudioPlaybackStatus; }
|
|
19
19
|
// Forward declaration of `AudioPlaybackState` to properly resolve imports.
|
|
20
20
|
namespace margelo::nitro::one { enum class AudioPlaybackState; }
|
|
21
|
+
// Forward declaration of `AudioPlayOptions` to properly resolve imports.
|
|
22
|
+
namespace margelo::nitro::one { struct AudioPlayOptions; }
|
|
21
23
|
// Forward declaration of `AudioRecordingStatus` to properly resolve imports.
|
|
22
24
|
namespace margelo::nitro::one { struct AudioRecordingStatus; }
|
|
23
25
|
// Forward declaration of `AudioRecordingState` to properly resolve imports.
|
|
@@ -45,6 +47,7 @@ namespace margelo::nitro::one { enum class PitchCorrectionQuality; }
|
|
|
45
47
|
#include "AudioPlaybackState.hpp"
|
|
46
48
|
#include <string>
|
|
47
49
|
#include <optional>
|
|
50
|
+
#include "AudioPlayOptions.hpp"
|
|
48
51
|
#include "AudioRecordingStatus.hpp"
|
|
49
52
|
#include "AudioRecordingState.hpp"
|
|
50
53
|
#include "AudioRecordingResult.hpp"
|
|
@@ -124,8 +127,8 @@ namespace margelo::nitro::one {
|
|
|
124
127
|
auto __value = std::move(__result.value());
|
|
125
128
|
return __value;
|
|
126
129
|
}
|
|
127
|
-
inline std::shared_ptr<Promise<AudioPlaybackStatus>> play(const std::string& uri) override {
|
|
128
|
-
auto __result = _swiftPart.play(uri);
|
|
130
|
+
inline std::shared_ptr<Promise<AudioPlaybackStatus>> play(const std::string& uri, const AudioPlayOptions& options) override {
|
|
131
|
+
auto __result = _swiftPart.play(uri, std::forward<decltype(options)>(options));
|
|
129
132
|
if (__result.hasError()) [[unlikely]] {
|
|
130
133
|
std::rethrow_exception(__result.error());
|
|
131
134
|
}
|
|
@@ -284,6 +287,22 @@ namespace margelo::nitro::one {
|
|
|
284
287
|
std::rethrow_exception(__result.error());
|
|
285
288
|
}
|
|
286
289
|
}
|
|
290
|
+
inline std::shared_ptr<Promise<void>> setPlayerNowPlayingInfo(const std::string& playerId, const AudioNowPlayingInfo& info) override {
|
|
291
|
+
auto __result = _swiftPart.setPlayerNowPlayingInfo(playerId, std::forward<decltype(info)>(info));
|
|
292
|
+
if (__result.hasError()) [[unlikely]] {
|
|
293
|
+
std::rethrow_exception(__result.error());
|
|
294
|
+
}
|
|
295
|
+
auto __value = std::move(__result.value());
|
|
296
|
+
return __value;
|
|
297
|
+
}
|
|
298
|
+
inline std::shared_ptr<Promise<void>> clearPlayerNowPlayingInfo(const std::string& playerId) override {
|
|
299
|
+
auto __result = _swiftPart.clearPlayerNowPlayingInfo(playerId);
|
|
300
|
+
if (__result.hasError()) [[unlikely]] {
|
|
301
|
+
std::rethrow_exception(__result.error());
|
|
302
|
+
}
|
|
303
|
+
auto __value = std::move(__result.value());
|
|
304
|
+
return __value;
|
|
305
|
+
}
|
|
287
306
|
inline AudioPlayerStatus getPlayerStatus(const std::string& playerId) override {
|
|
288
307
|
auto __result = _swiftPart.getPlayerStatus(playerId);
|
|
289
308
|
if (__result.hasError()) [[unlikely]] {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// AudioPlayOptions.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 `AudioPlayOptions`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias AudioPlayOptions = margelo.nitro.one.AudioPlayOptions
|
|
14
|
+
|
|
15
|
+
public extension AudioPlayOptions {
|
|
16
|
+
private typealias bridge = margelo.nitro.one.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `AudioPlayOptions`.
|
|
20
|
+
*/
|
|
21
|
+
init(positionMs: Double?, paused: Bool?) {
|
|
22
|
+
self.init({ () -> bridge.std__optional_double_ in
|
|
23
|
+
if let __unwrappedValue = positionMs {
|
|
24
|
+
return bridge.create_std__optional_double_(__unwrappedValue)
|
|
25
|
+
} else {
|
|
26
|
+
return .init()
|
|
27
|
+
}
|
|
28
|
+
}(), { () -> bridge.std__optional_bool_ in
|
|
29
|
+
if let __unwrappedValue = paused {
|
|
30
|
+
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
31
|
+
} else {
|
|
32
|
+
return .init()
|
|
33
|
+
}
|
|
34
|
+
}())
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@inline(__always)
|
|
38
|
+
var positionMs: Double? {
|
|
39
|
+
return { () -> Double? in
|
|
40
|
+
if bridge.has_value_std__optional_double_(self.__positionMs) {
|
|
41
|
+
let __unwrapped = bridge.get_std__optional_double_(self.__positionMs)
|
|
42
|
+
return __unwrapped
|
|
43
|
+
} else {
|
|
44
|
+
return nil
|
|
45
|
+
}
|
|
46
|
+
}()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@inline(__always)
|
|
50
|
+
var paused: Bool? {
|
|
51
|
+
return { () -> Bool? in
|
|
52
|
+
if bridge.has_value_std__optional_bool_(self.__paused) {
|
|
53
|
+
let __unwrapped = bridge.get_std__optional_bool_(self.__paused)
|
|
54
|
+
return __unwrapped
|
|
55
|
+
} else {
|
|
56
|
+
return nil
|
|
57
|
+
}
|
|
58
|
+
}()
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -18,13 +18,19 @@ public extension AudioRemoteCommandEvent {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `AudioRemoteCommandEvent`.
|
|
20
20
|
*/
|
|
21
|
-
init(type: AudioRemoteCommandType, positionMs: Double?) {
|
|
21
|
+
init(type: AudioRemoteCommandType, positionMs: Double?, playerId: String?) {
|
|
22
22
|
self.init(type, { () -> bridge.std__optional_double_ in
|
|
23
23
|
if let __unwrappedValue = positionMs {
|
|
24
24
|
return bridge.create_std__optional_double_(__unwrappedValue)
|
|
25
25
|
} else {
|
|
26
26
|
return .init()
|
|
27
27
|
}
|
|
28
|
+
}(), { () -> bridge.std__optional_std__string_ in
|
|
29
|
+
if let __unwrappedValue = playerId {
|
|
30
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
31
|
+
} else {
|
|
32
|
+
return .init()
|
|
33
|
+
}
|
|
28
34
|
}())
|
|
29
35
|
}
|
|
30
36
|
|
|
@@ -44,4 +50,16 @@ public extension AudioRemoteCommandEvent {
|
|
|
44
50
|
}
|
|
45
51
|
}()
|
|
46
52
|
}
|
|
53
|
+
|
|
54
|
+
@inline(__always)
|
|
55
|
+
var playerId: String? {
|
|
56
|
+
return { () -> String? in
|
|
57
|
+
if bridge.has_value_std__optional_std__string_(self.__playerId) {
|
|
58
|
+
let __unwrapped = bridge.get_std__optional_std__string_(self.__playerId)
|
|
59
|
+
return String(__unwrapped)
|
|
60
|
+
} else {
|
|
61
|
+
return nil
|
|
62
|
+
}
|
|
63
|
+
}()
|
|
64
|
+
}
|
|
47
65
|
}
|
|
@@ -15,7 +15,7 @@ public protocol HybridOneAudioSpec_protocol: HybridObject {
|
|
|
15
15
|
// Methods
|
|
16
16
|
func getRecordingPermissionStatus() throws -> Promise<AudioRecordingPermission>
|
|
17
17
|
func requestRecordingPermission() throws -> Promise<AudioRecordingPermission>
|
|
18
|
-
func play(uri: String) throws -> Promise<AudioPlaybackStatus>
|
|
18
|
+
func play(uri: String, options: AudioPlayOptions) throws -> Promise<AudioPlaybackStatus>
|
|
19
19
|
func getPlaybackStatus() throws -> Promise<AudioPlaybackStatus>
|
|
20
20
|
func pause() throws -> Promise<AudioPlaybackStatus>
|
|
21
21
|
func resume() throws -> Promise<AudioPlaybackStatus>
|
|
@@ -36,6 +36,8 @@ public protocol HybridOneAudioSpec_protocol: HybridObject {
|
|
|
36
36
|
func playerSeek(playerId: String, seconds: Double, toleranceBeforeMs: Double?, toleranceAfterMs: Double?) throws -> Promise<Void>
|
|
37
37
|
func playerReplace(playerId: String, sourceUri: String?, headers: Dictionary<String, String>?) throws -> Void
|
|
38
38
|
func removePlayer(playerId: String) throws -> Void
|
|
39
|
+
func setPlayerNowPlayingInfo(playerId: String, info: AudioNowPlayingInfo) throws -> Promise<Void>
|
|
40
|
+
func clearPlayerNowPlayingInfo(playerId: String) throws -> Promise<Void>
|
|
39
41
|
func getPlayerStatus(playerId: String) throws -> AudioPlayerStatus
|
|
40
42
|
func setPlayerRate(playerId: String, rate: Double, pitchQuality: PitchCorrectionQuality?) throws -> Void
|
|
41
43
|
func setPlayerVolume(playerId: String, volume: Double) throws -> Void
|