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,182 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Playlist.swift
|
|
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
|
+
import Foundation
|
|
9
|
+
import NitroModules
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Represents an instance of `Playlist`, backed by a C++ struct.
|
|
13
|
+
*/
|
|
14
|
+
public typealias Playlist = margelo.nitro.nitroplayer.Playlist
|
|
15
|
+
|
|
16
|
+
public extension Playlist {
|
|
17
|
+
private typealias bridge = margelo.nitro.nitroplayer.bridge.swift
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a new instance of `Playlist`.
|
|
21
|
+
*/
|
|
22
|
+
init(id: String, name: String, description: Variant_NullType_String?, artwork: Variant_NullType_String?, tracks: [TrackItem]) {
|
|
23
|
+
self.init(std.string(id), std.string(name), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
24
|
+
if let __unwrappedValue = description {
|
|
25
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
26
|
+
switch __unwrappedValue {
|
|
27
|
+
case .first(let __value):
|
|
28
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
29
|
+
case .second(let __value):
|
|
30
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
31
|
+
}
|
|
32
|
+
}().variant)
|
|
33
|
+
} else {
|
|
34
|
+
return .init()
|
|
35
|
+
}
|
|
36
|
+
}(), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
37
|
+
if let __unwrappedValue = artwork {
|
|
38
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
39
|
+
switch __unwrappedValue {
|
|
40
|
+
case .first(let __value):
|
|
41
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
42
|
+
case .second(let __value):
|
|
43
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
44
|
+
}
|
|
45
|
+
}().variant)
|
|
46
|
+
} else {
|
|
47
|
+
return .init()
|
|
48
|
+
}
|
|
49
|
+
}(), { () -> bridge.std__vector_TrackItem_ in
|
|
50
|
+
var __vector = bridge.create_std__vector_TrackItem_(tracks.count)
|
|
51
|
+
for __item in tracks {
|
|
52
|
+
__vector.push_back(__item)
|
|
53
|
+
}
|
|
54
|
+
return __vector
|
|
55
|
+
}())
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var id: String {
|
|
59
|
+
@inline(__always)
|
|
60
|
+
get {
|
|
61
|
+
return String(self.__id)
|
|
62
|
+
}
|
|
63
|
+
@inline(__always)
|
|
64
|
+
set {
|
|
65
|
+
self.__id = std.string(newValue)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var name: String {
|
|
70
|
+
@inline(__always)
|
|
71
|
+
get {
|
|
72
|
+
return String(self.__name)
|
|
73
|
+
}
|
|
74
|
+
@inline(__always)
|
|
75
|
+
set {
|
|
76
|
+
self.__name = std.string(newValue)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
var description: Variant_NullType_String? {
|
|
81
|
+
@inline(__always)
|
|
82
|
+
get {
|
|
83
|
+
return { () -> Variant_NullType_String? in
|
|
84
|
+
if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__description) {
|
|
85
|
+
let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__description)
|
|
86
|
+
return { () -> Variant_NullType_String in
|
|
87
|
+
let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
|
|
88
|
+
switch __variant.index() {
|
|
89
|
+
case 0:
|
|
90
|
+
let __actual = __variant.get_0()
|
|
91
|
+
return .first(NullType.null)
|
|
92
|
+
case 1:
|
|
93
|
+
let __actual = __variant.get_1()
|
|
94
|
+
return .second(String(__actual))
|
|
95
|
+
default:
|
|
96
|
+
fatalError("Variant can never have index \(__variant.index())!")
|
|
97
|
+
}
|
|
98
|
+
}()
|
|
99
|
+
} else {
|
|
100
|
+
return nil
|
|
101
|
+
}
|
|
102
|
+
}()
|
|
103
|
+
}
|
|
104
|
+
@inline(__always)
|
|
105
|
+
set {
|
|
106
|
+
self.__description = { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
107
|
+
if let __unwrappedValue = newValue {
|
|
108
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
109
|
+
switch __unwrappedValue {
|
|
110
|
+
case .first(let __value):
|
|
111
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
112
|
+
case .second(let __value):
|
|
113
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
114
|
+
}
|
|
115
|
+
}().variant)
|
|
116
|
+
} else {
|
|
117
|
+
return .init()
|
|
118
|
+
}
|
|
119
|
+
}()
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var artwork: Variant_NullType_String? {
|
|
124
|
+
@inline(__always)
|
|
125
|
+
get {
|
|
126
|
+
return { () -> Variant_NullType_String? in
|
|
127
|
+
if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__artwork) {
|
|
128
|
+
let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__artwork)
|
|
129
|
+
return { () -> Variant_NullType_String in
|
|
130
|
+
let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
|
|
131
|
+
switch __variant.index() {
|
|
132
|
+
case 0:
|
|
133
|
+
let __actual = __variant.get_0()
|
|
134
|
+
return .first(NullType.null)
|
|
135
|
+
case 1:
|
|
136
|
+
let __actual = __variant.get_1()
|
|
137
|
+
return .second(String(__actual))
|
|
138
|
+
default:
|
|
139
|
+
fatalError("Variant can never have index \(__variant.index())!")
|
|
140
|
+
}
|
|
141
|
+
}()
|
|
142
|
+
} else {
|
|
143
|
+
return nil
|
|
144
|
+
}
|
|
145
|
+
}()
|
|
146
|
+
}
|
|
147
|
+
@inline(__always)
|
|
148
|
+
set {
|
|
149
|
+
self.__artwork = { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
150
|
+
if let __unwrappedValue = newValue {
|
|
151
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
152
|
+
switch __unwrappedValue {
|
|
153
|
+
case .first(let __value):
|
|
154
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
155
|
+
case .second(let __value):
|
|
156
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
157
|
+
}
|
|
158
|
+
}().variant)
|
|
159
|
+
} else {
|
|
160
|
+
return .init()
|
|
161
|
+
}
|
|
162
|
+
}()
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var tracks: [TrackItem] {
|
|
167
|
+
@inline(__always)
|
|
168
|
+
get {
|
|
169
|
+
return self.__tracks.map({ __item in __item })
|
|
170
|
+
}
|
|
171
|
+
@inline(__always)
|
|
172
|
+
set {
|
|
173
|
+
self.__tracks = { () -> bridge.std__vector_TrackItem_ in
|
|
174
|
+
var __vector = bridge.create_std__vector_TrackItem_(newValue.count)
|
|
175
|
+
for __item in newValue {
|
|
176
|
+
__vector.push_back(__item)
|
|
177
|
+
}
|
|
178
|
+
return __vector
|
|
179
|
+
}()
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// QueueOperation.swift
|
|
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
|
+
/**
|
|
9
|
+
* Represents the JS union `QueueOperation`, backed by a C++ enum.
|
|
10
|
+
*/
|
|
11
|
+
public typealias QueueOperation = margelo.nitro.nitroplayer.QueueOperation
|
|
12
|
+
|
|
13
|
+
public extension QueueOperation {
|
|
14
|
+
/**
|
|
15
|
+
* Get a QueueOperation for the given String value, or
|
|
16
|
+
* return `nil` if the given value was invalid/unknown.
|
|
17
|
+
*/
|
|
18
|
+
init?(fromString string: String) {
|
|
19
|
+
switch string {
|
|
20
|
+
case "add":
|
|
21
|
+
self = .add
|
|
22
|
+
case "remove":
|
|
23
|
+
self = .remove
|
|
24
|
+
case "clear":
|
|
25
|
+
self = .clear
|
|
26
|
+
case "update":
|
|
27
|
+
self = .update
|
|
28
|
+
default:
|
|
29
|
+
return nil
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Get the String value this QueueOperation represents.
|
|
35
|
+
*/
|
|
36
|
+
var stringValue: String {
|
|
37
|
+
switch self {
|
|
38
|
+
case .add:
|
|
39
|
+
return "add"
|
|
40
|
+
case .remove:
|
|
41
|
+
return "remove"
|
|
42
|
+
case .clear:
|
|
43
|
+
return "clear"
|
|
44
|
+
case .update:
|
|
45
|
+
return "update"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Reason.swift
|
|
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
|
+
/**
|
|
9
|
+
* Represents the JS union `Reason`, backed by a C++ enum.
|
|
10
|
+
*/
|
|
11
|
+
public typealias Reason = margelo.nitro.nitroplayer.Reason
|
|
12
|
+
|
|
13
|
+
public extension Reason {
|
|
14
|
+
/**
|
|
15
|
+
* Get a Reason for the given String value, or
|
|
16
|
+
* return `nil` if the given value was invalid/unknown.
|
|
17
|
+
*/
|
|
18
|
+
init?(fromString string: String) {
|
|
19
|
+
switch string {
|
|
20
|
+
case "user_action":
|
|
21
|
+
self = .userAction
|
|
22
|
+
case "skip":
|
|
23
|
+
self = .skip
|
|
24
|
+
case "end":
|
|
25
|
+
self = .end
|
|
26
|
+
case "error":
|
|
27
|
+
self = .error
|
|
28
|
+
default:
|
|
29
|
+
return nil
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Get the String value this Reason represents.
|
|
35
|
+
*/
|
|
36
|
+
var stringValue: String {
|
|
37
|
+
switch self {
|
|
38
|
+
case .userAction:
|
|
39
|
+
return "user_action"
|
|
40
|
+
case .skip:
|
|
41
|
+
return "skip"
|
|
42
|
+
case .end:
|
|
43
|
+
return "end"
|
|
44
|
+
case .error:
|
|
45
|
+
return "error"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// TrackItem.swift
|
|
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
|
+
import Foundation
|
|
9
|
+
import NitroModules
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Represents an instance of `TrackItem`, backed by a C++ struct.
|
|
13
|
+
*/
|
|
14
|
+
public typealias TrackItem = margelo.nitro.nitroplayer.TrackItem
|
|
15
|
+
|
|
16
|
+
public extension TrackItem {
|
|
17
|
+
private typealias bridge = margelo.nitro.nitroplayer.bridge.swift
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a new instance of `TrackItem`.
|
|
21
|
+
*/
|
|
22
|
+
init(id: String, title: String, artist: String, album: String, duration: Double, url: String, artwork: Variant_NullType_String?) {
|
|
23
|
+
self.init(std.string(id), std.string(title), std.string(artist), std.string(album), duration, std.string(url), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
24
|
+
if let __unwrappedValue = artwork {
|
|
25
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
26
|
+
switch __unwrappedValue {
|
|
27
|
+
case .first(let __value):
|
|
28
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
29
|
+
case .second(let __value):
|
|
30
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
31
|
+
}
|
|
32
|
+
}().variant)
|
|
33
|
+
} else {
|
|
34
|
+
return .init()
|
|
35
|
+
}
|
|
36
|
+
}())
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var id: String {
|
|
40
|
+
@inline(__always)
|
|
41
|
+
get {
|
|
42
|
+
return String(self.__id)
|
|
43
|
+
}
|
|
44
|
+
@inline(__always)
|
|
45
|
+
set {
|
|
46
|
+
self.__id = std.string(newValue)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var title: String {
|
|
51
|
+
@inline(__always)
|
|
52
|
+
get {
|
|
53
|
+
return String(self.__title)
|
|
54
|
+
}
|
|
55
|
+
@inline(__always)
|
|
56
|
+
set {
|
|
57
|
+
self.__title = std.string(newValue)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var artist: String {
|
|
62
|
+
@inline(__always)
|
|
63
|
+
get {
|
|
64
|
+
return String(self.__artist)
|
|
65
|
+
}
|
|
66
|
+
@inline(__always)
|
|
67
|
+
set {
|
|
68
|
+
self.__artist = std.string(newValue)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
var album: String {
|
|
73
|
+
@inline(__always)
|
|
74
|
+
get {
|
|
75
|
+
return String(self.__album)
|
|
76
|
+
}
|
|
77
|
+
@inline(__always)
|
|
78
|
+
set {
|
|
79
|
+
self.__album = std.string(newValue)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
var duration: Double {
|
|
84
|
+
@inline(__always)
|
|
85
|
+
get {
|
|
86
|
+
return self.__duration
|
|
87
|
+
}
|
|
88
|
+
@inline(__always)
|
|
89
|
+
set {
|
|
90
|
+
self.__duration = newValue
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var url: String {
|
|
95
|
+
@inline(__always)
|
|
96
|
+
get {
|
|
97
|
+
return String(self.__url)
|
|
98
|
+
}
|
|
99
|
+
@inline(__always)
|
|
100
|
+
set {
|
|
101
|
+
self.__url = std.string(newValue)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
var artwork: Variant_NullType_String? {
|
|
106
|
+
@inline(__always)
|
|
107
|
+
get {
|
|
108
|
+
return { () -> Variant_NullType_String? in
|
|
109
|
+
if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__artwork) {
|
|
110
|
+
let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__artwork)
|
|
111
|
+
return { () -> Variant_NullType_String in
|
|
112
|
+
let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
|
|
113
|
+
switch __variant.index() {
|
|
114
|
+
case 0:
|
|
115
|
+
let __actual = __variant.get_0()
|
|
116
|
+
return .first(NullType.null)
|
|
117
|
+
case 1:
|
|
118
|
+
let __actual = __variant.get_1()
|
|
119
|
+
return .second(String(__actual))
|
|
120
|
+
default:
|
|
121
|
+
fatalError("Variant can never have index \(__variant.index())!")
|
|
122
|
+
}
|
|
123
|
+
}()
|
|
124
|
+
} else {
|
|
125
|
+
return nil
|
|
126
|
+
}
|
|
127
|
+
}()
|
|
128
|
+
}
|
|
129
|
+
@inline(__always)
|
|
130
|
+
set {
|
|
131
|
+
self.__artwork = { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
|
|
132
|
+
if let __unwrappedValue = newValue {
|
|
133
|
+
return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
|
|
134
|
+
switch __unwrappedValue {
|
|
135
|
+
case .first(let __value):
|
|
136
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
|
|
137
|
+
case .second(let __value):
|
|
138
|
+
return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
|
|
139
|
+
}
|
|
140
|
+
}().variant)
|
|
141
|
+
} else {
|
|
142
|
+
return .init()
|
|
143
|
+
}
|
|
144
|
+
}()
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// TrackPlayerState.swift
|
|
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
|
+
/**
|
|
9
|
+
* Represents the JS union `TrackPlayerState`, backed by a C++ enum.
|
|
10
|
+
*/
|
|
11
|
+
public typealias TrackPlayerState = margelo.nitro.nitroplayer.TrackPlayerState
|
|
12
|
+
|
|
13
|
+
public extension TrackPlayerState {
|
|
14
|
+
/**
|
|
15
|
+
* Get a TrackPlayerState for the given String value, or
|
|
16
|
+
* return `nil` if the given value was invalid/unknown.
|
|
17
|
+
*/
|
|
18
|
+
init?(fromString string: String) {
|
|
19
|
+
switch string {
|
|
20
|
+
case "playing":
|
|
21
|
+
self = .playing
|
|
22
|
+
case "paused":
|
|
23
|
+
self = .paused
|
|
24
|
+
case "stopped":
|
|
25
|
+
self = .stopped
|
|
26
|
+
default:
|
|
27
|
+
return nil
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get the String value this TrackPlayerState represents.
|
|
33
|
+
*/
|
|
34
|
+
var stringValue: String {
|
|
35
|
+
switch self {
|
|
36
|
+
case .playing:
|
|
37
|
+
return "playing"
|
|
38
|
+
case .paused:
|
|
39
|
+
return "paused"
|
|
40
|
+
case .stopped:
|
|
41
|
+
return "stopped"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Variant_NullType_Playlist.swift
|
|
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
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An Swift enum with associated values representing a Variant/Union type.
|
|
12
|
+
* JS type: `null | struct`
|
|
13
|
+
*/
|
|
14
|
+
@frozen
|
|
15
|
+
public indirect enum Variant_NullType_Playlist {
|
|
16
|
+
case first(NullType)
|
|
17
|
+
case second(Playlist)
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Variant_NullType_String.swift
|
|
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
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An Swift enum with associated values representing a Variant/Union type.
|
|
12
|
+
* JS type: `null | string`
|
|
13
|
+
*/
|
|
14
|
+
@frozen
|
|
15
|
+
public enum Variant_NullType_String {
|
|
16
|
+
case first(NullType)
|
|
17
|
+
case second(String)
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Variant_NullType_TrackItem.swift
|
|
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
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An Swift enum with associated values representing a Variant/Union type.
|
|
12
|
+
* JS type: `null | struct`
|
|
13
|
+
*/
|
|
14
|
+
@frozen
|
|
15
|
+
public indirect enum Variant_NullType_TrackItem {
|
|
16
|
+
case first(NullType)
|
|
17
|
+
case second(TrackItem)
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridAndroidAutoMediaLibrarySpec.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 "HybridAndroidAutoMediaLibrarySpec.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::nitroplayer {
|
|
11
|
+
|
|
12
|
+
void HybridAndroidAutoMediaLibrarySpec::loadHybridMethods() {
|
|
13
|
+
// load base methods/properties
|
|
14
|
+
HybridObject::loadHybridMethods();
|
|
15
|
+
// load custom methods/properties
|
|
16
|
+
registerHybrids(this, [](Prototype& prototype) {
|
|
17
|
+
prototype.registerHybridMethod("setMediaLibrary", &HybridAndroidAutoMediaLibrarySpec::setMediaLibrary);
|
|
18
|
+
prototype.registerHybridMethod("clearMediaLibrary", &HybridAndroidAutoMediaLibrarySpec::clearMediaLibrary);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridAndroidAutoMediaLibrarySpec.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
|
+
#if __has_include(<NitroModules/HybridObject.hpp>)
|
|
11
|
+
#include <NitroModules/HybridObject.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#include <string>
|
|
19
|
+
|
|
20
|
+
namespace margelo::nitro::nitroplayer {
|
|
21
|
+
|
|
22
|
+
using namespace margelo::nitro;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* An abstract base class for `AndroidAutoMediaLibrary`
|
|
26
|
+
* Inherit this class to create instances of `HybridAndroidAutoMediaLibrarySpec` in C++.
|
|
27
|
+
* You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
|
|
28
|
+
* @example
|
|
29
|
+
* ```cpp
|
|
30
|
+
* class HybridAndroidAutoMediaLibrary: public HybridAndroidAutoMediaLibrarySpec {
|
|
31
|
+
* public:
|
|
32
|
+
* HybridAndroidAutoMediaLibrary(...): HybridObject(TAG) { ... }
|
|
33
|
+
* // ...
|
|
34
|
+
* };
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
class HybridAndroidAutoMediaLibrarySpec: public virtual HybridObject {
|
|
38
|
+
public:
|
|
39
|
+
// Constructor
|
|
40
|
+
explicit HybridAndroidAutoMediaLibrarySpec(): HybridObject(TAG) { }
|
|
41
|
+
|
|
42
|
+
// Destructor
|
|
43
|
+
~HybridAndroidAutoMediaLibrarySpec() override = default;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
// Properties
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
// Methods
|
|
51
|
+
virtual void setMediaLibrary(const std::string& libraryJson) = 0;
|
|
52
|
+
virtual void clearMediaLibrary() = 0;
|
|
53
|
+
|
|
54
|
+
protected:
|
|
55
|
+
// Hybrid Setup
|
|
56
|
+
void loadHybridMethods() override;
|
|
57
|
+
|
|
58
|
+
protected:
|
|
59
|
+
// Tag for logging
|
|
60
|
+
static constexpr auto TAG = "AndroidAutoMediaLibrary";
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
} // namespace margelo::nitro::nitroplayer
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridAudioDevicesSpec.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 "HybridAudioDevicesSpec.hpp"
|
|
9
|
+
|
|
10
|
+
namespace margelo::nitro::nitroplayer {
|
|
11
|
+
|
|
12
|
+
void HybridAudioDevicesSpec::loadHybridMethods() {
|
|
13
|
+
// load base methods/properties
|
|
14
|
+
HybridObject::loadHybridMethods();
|
|
15
|
+
// load custom methods/properties
|
|
16
|
+
registerHybrids(this, [](Prototype& prototype) {
|
|
17
|
+
prototype.registerHybridMethod("getAudioDevices", &HybridAudioDevicesSpec::getAudioDevices);
|
|
18
|
+
prototype.registerHybridMethod("setAudioDevice", &HybridAudioDevicesSpec::setAudioDevice);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
} // namespace margelo::nitro::nitroplayer
|