react-native-nitro-player 0.3.0-alpha.9 → 0.4.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.
Files changed (257) hide show
  1. package/README.md +444 -4
  2. package/android/build.gradle +4 -1
  3. package/android/src/main/AndroidManifest.xml +16 -1
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +2 -0
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +8 -0
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +225 -0
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +105 -0
  8. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +6 -6
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +37 -12
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +970 -213
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +475 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadFileManager.kt +159 -0
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +489 -0
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +209 -0
  15. package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +486 -0
  16. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +3 -1
  17. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +14 -6
  18. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +27 -0
  19. package/ios/HybridDownloadManager.swift +226 -0
  20. package/ios/HybridEqualizer.swift +111 -0
  21. package/ios/HybridTrackPlayer.swift +36 -8
  22. package/ios/core/TrackPlayerCore.swift +998 -276
  23. package/ios/download/DownloadDatabase.swift +493 -0
  24. package/ios/download/DownloadFileManager.swift +241 -0
  25. package/ios/download/DownloadManagerCore.swift +923 -0
  26. package/ios/equalizer/EqualizerCore.swift +685 -0
  27. package/ios/media/MediaSessionManager.swift +40 -28
  28. package/ios/playlist/PlaylistManager.swift +40 -9
  29. package/ios/queue/HybridPlayerQueue.swift +33 -13
  30. package/lib/hooks/downloadCallbackManager.d.ts +36 -0
  31. package/lib/hooks/downloadCallbackManager.js +108 -0
  32. package/lib/hooks/equalizerCallbackManager.d.ts +37 -0
  33. package/lib/hooks/equalizerCallbackManager.js +109 -0
  34. package/lib/hooks/index.d.ts +16 -0
  35. package/lib/hooks/index.js +10 -0
  36. package/lib/hooks/useActualQueue.d.ts +48 -0
  37. package/lib/hooks/useActualQueue.js +98 -0
  38. package/lib/hooks/useDownloadActions.d.ts +26 -0
  39. package/lib/hooks/useDownloadActions.js +117 -0
  40. package/lib/hooks/useDownloadProgress.d.ts +25 -0
  41. package/lib/hooks/useDownloadProgress.js +79 -0
  42. package/lib/hooks/useDownloadStorage.d.ts +19 -0
  43. package/lib/hooks/useDownloadStorage.js +60 -0
  44. package/lib/hooks/useDownloadedTracks.d.ts +25 -0
  45. package/lib/hooks/useDownloadedTracks.js +69 -0
  46. package/lib/hooks/useEqualizer.d.ts +25 -0
  47. package/lib/hooks/useEqualizer.js +124 -0
  48. package/lib/hooks/useEqualizerPresets.d.ts +22 -0
  49. package/lib/hooks/useEqualizerPresets.js +96 -0
  50. package/lib/hooks/useNowPlaying.js +3 -2
  51. package/lib/hooks/useOnChangeTrack.js +15 -12
  52. package/lib/hooks/useOnPlaybackStateChange.js +16 -13
  53. package/lib/hooks/usePlaylist.d.ts +48 -0
  54. package/lib/hooks/usePlaylist.js +136 -0
  55. package/lib/index.d.ts +6 -0
  56. package/lib/index.js +6 -0
  57. package/lib/specs/DownloadManager.nitro.d.ts +152 -0
  58. package/lib/specs/DownloadManager.nitro.js +1 -0
  59. package/lib/specs/Equalizer.nitro.d.ts +43 -0
  60. package/lib/specs/Equalizer.nitro.js +1 -0
  61. package/lib/specs/TrackPlayer.nitro.d.ts +6 -2
  62. package/lib/types/DownloadTypes.d.ts +110 -0
  63. package/lib/types/DownloadTypes.js +1 -0
  64. package/lib/types/EqualizerTypes.d.ts +52 -0
  65. package/lib/types/EqualizerTypes.js +1 -0
  66. package/lib/types/PlayerQueue.d.ts +4 -0
  67. package/nitro.json +8 -0
  68. package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +10 -1
  69. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +32 -2
  70. package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +65 -0
  71. package/nitrogen/generated/android/c++/JDownloadConfig.hpp +92 -0
  72. package/nitrogen/generated/android/c++/JDownloadError.hpp +71 -0
  73. package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +74 -0
  74. package/nitrogen/generated/android/c++/JDownloadProgress.hpp +79 -0
  75. package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +81 -0
  76. package/nitrogen/generated/android/c++/JDownloadState.hpp +71 -0
  77. package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +73 -0
  78. package/nitrogen/generated/android/c++/JDownloadTask.hpp +108 -0
  79. package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +111 -0
  80. package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +92 -0
  81. package/nitrogen/generated/android/c++/JEqualizerBand.hpp +69 -0
  82. package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +78 -0
  83. package/nitrogen/generated/android/c++/JEqualizerState.hpp +91 -0
  84. package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +80 -0
  85. package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +89 -0
  86. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -0
  87. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +81 -0
  88. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -0
  89. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +83 -0
  90. package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +97 -0
  91. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -0
  92. package/nitrogen/generated/android/c++/JGainRange.hpp +61 -0
  93. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +470 -0
  94. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +99 -0
  95. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +204 -0
  96. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +82 -0
  97. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +2 -0
  98. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +117 -15
  99. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +6 -2
  100. package/nitrogen/generated/android/c++/JPlaybackSource.hpp +62 -0
  101. package/nitrogen/generated/android/c++/JPlayerState.hpp +11 -3
  102. package/nitrogen/generated/android/c++/JPlaylist.hpp +2 -0
  103. package/nitrogen/generated/android/c++/JPresetType.hpp +59 -0
  104. package/nitrogen/generated/android/c++/JStorageLocation.hpp +59 -0
  105. package/nitrogen/generated/android/c++/JTrackItem.hpp +9 -3
  106. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +3 -3
  107. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  108. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  109. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +26 -0
  110. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +74 -0
  111. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +26 -0
  112. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +84 -0
  113. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +26 -0
  114. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +85 -0
  115. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +26 -0
  116. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +80 -0
  117. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +2 -0
  118. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +2 -0
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +23 -0
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +59 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +47 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +26 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +53 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +56 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +25 -0
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +50 -0
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +65 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +53 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +56 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +47 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +44 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +44 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +80 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +80 -0
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +80 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +80 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +41 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +210 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +141 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +19 -2
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +22 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +6 -3
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +21 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +21 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +7 -3
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +2 -2
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +59 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +59 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +59 -0
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +59 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +59 -0
  153. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +138 -8
  154. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +1046 -121
  155. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +66 -0
  156. package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +16 -0
  157. package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +30 -0
  158. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +11 -0
  159. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +386 -0
  160. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +11 -0
  161. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +223 -0
  162. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +1 -0
  163. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +46 -6
  164. package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +48 -0
  165. package/nitrogen/generated/ios/swift/DownloadConfig.swift +270 -0
  166. package/nitrogen/generated/ios/swift/DownloadError.swift +69 -0
  167. package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +60 -0
  168. package/nitrogen/generated/ios/swift/DownloadProgress.swift +91 -0
  169. package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +102 -0
  170. package/nitrogen/generated/ios/swift/DownloadState.swift +56 -0
  171. package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +80 -0
  172. package/nitrogen/generated/ios/swift/DownloadTask.swift +315 -0
  173. package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +103 -0
  174. package/nitrogen/generated/ios/swift/DownloadedTrack.swift +147 -0
  175. package/nitrogen/generated/ios/swift/EqualizerBand.swift +69 -0
  176. package/nitrogen/generated/ios/swift/EqualizerPreset.swift +70 -0
  177. package/nitrogen/generated/ios/swift/EqualizerState.swift +115 -0
  178. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  179. package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +47 -0
  180. package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +47 -0
  181. package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +47 -0
  182. package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +47 -0
  183. package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
  184. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  185. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +66 -0
  186. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  187. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +47 -0
  188. package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +47 -0
  189. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +47 -0
  190. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
  191. package/nitrogen/generated/ios/swift/GainRange.swift +47 -0
  192. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +90 -0
  193. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +705 -0
  194. package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +73 -0
  195. package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +396 -0
  196. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +6 -2
  197. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +105 -8
  198. package/nitrogen/generated/ios/swift/PlaybackSource.swift +44 -0
  199. package/nitrogen/generated/ios/swift/PlayerState.swift +13 -2
  200. package/nitrogen/generated/ios/swift/PresetType.swift +40 -0
  201. package/nitrogen/generated/ios/swift/StorageLocation.swift +40 -0
  202. package/nitrogen/generated/ios/swift/TrackItem.swift +31 -1
  203. package/nitrogen/generated/ios/swift/TrackPlayerState.swift +4 -4
  204. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  205. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +18 -0
  206. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +18 -0
  207. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +18 -0
  208. package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +18 -0
  209. package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +84 -0
  210. package/nitrogen/generated/shared/c++/DownloadConfig.hpp +108 -0
  211. package/nitrogen/generated/shared/c++/DownloadError.hpp +89 -0
  212. package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +96 -0
  213. package/nitrogen/generated/shared/c++/DownloadProgress.hpp +97 -0
  214. package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +99 -0
  215. package/nitrogen/generated/shared/c++/DownloadState.hpp +92 -0
  216. package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +91 -0
  217. package/nitrogen/generated/shared/c++/DownloadTask.hpp +122 -0
  218. package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +101 -0
  219. package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +107 -0
  220. package/nitrogen/generated/shared/c++/EqualizerBand.hpp +87 -0
  221. package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +86 -0
  222. package/nitrogen/generated/shared/c++/EqualizerState.hpp +89 -0
  223. package/nitrogen/generated/shared/c++/GainRange.hpp +79 -0
  224. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +55 -0
  225. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +134 -0
  226. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +38 -0
  227. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +95 -0
  228. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +4 -0
  229. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +11 -5
  230. package/nitrogen/generated/shared/c++/PlaybackSource.hpp +80 -0
  231. package/nitrogen/generated/shared/c++/PlayerState.hpp +9 -2
  232. package/nitrogen/generated/shared/c++/PresetType.hpp +76 -0
  233. package/nitrogen/generated/shared/c++/StorageLocation.hpp +76 -0
  234. package/nitrogen/generated/shared/c++/TrackItem.hpp +7 -2
  235. package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +5 -5
  236. package/package.json +1 -1
  237. package/src/hooks/downloadCallbackManager.ts +149 -0
  238. package/src/hooks/equalizerCallbackManager.ts +138 -0
  239. package/src/hooks/index.ts +23 -0
  240. package/src/hooks/useActualQueue.ts +116 -0
  241. package/src/hooks/useDownloadActions.ts +179 -0
  242. package/src/hooks/useDownloadProgress.ts +126 -0
  243. package/src/hooks/useDownloadStorage.ts +84 -0
  244. package/src/hooks/useDownloadedTracks.ts +138 -0
  245. package/src/hooks/useEqualizer.ts +173 -0
  246. package/src/hooks/useEqualizerPresets.ts +140 -0
  247. package/src/hooks/useNowPlaying.ts +3 -2
  248. package/src/hooks/useOnChangeTrack.ts +15 -11
  249. package/src/hooks/useOnPlaybackStateChange.ts +19 -15
  250. package/src/hooks/usePlaylist.ts +161 -0
  251. package/src/index.ts +12 -0
  252. package/src/specs/DownloadManager.nitro.ts +203 -0
  253. package/src/specs/Equalizer.nitro.ts +69 -0
  254. package/src/specs/TrackPlayer.nitro.ts +6 -2
  255. package/src/types/DownloadTypes.ts +135 -0
  256. package/src/types/EqualizerTypes.ts +72 -0
  257. package/src/types/PlayerQueue.ts +9 -0
@@ -0,0 +1,210 @@
1
+ ///
2
+ /// HybridDownloadManagerSpec.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.Promise
14
+ import com.margelo.nitro.core.NullType
15
+ import com.margelo.nitro.core.HybridObject
16
+
17
+ /**
18
+ * A Kotlin class representing the DownloadManager HybridObject.
19
+ * Implement this abstract class to create Kotlin-based instances of DownloadManager.
20
+ */
21
+ @DoNotStrip
22
+ @Keep
23
+ @Suppress(
24
+ "KotlinJniMissingFunction", "unused",
25
+ "RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
26
+ "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
27
+ )
28
+ abstract class HybridDownloadManagerSpec: HybridObject() {
29
+ @DoNotStrip
30
+ private var mHybridData: HybridData = initHybrid()
31
+
32
+ init {
33
+ super.updateNative(mHybridData)
34
+ }
35
+
36
+ override fun updateNative(hybridData: HybridData) {
37
+ mHybridData = hybridData
38
+ super.updateNative(hybridData)
39
+ }
40
+
41
+ // Default implementation of `HybridObject.toString()`
42
+ override fun toString(): String {
43
+ return "[HybridObject DownloadManager]"
44
+ }
45
+
46
+ // Properties
47
+
48
+
49
+ // Methods
50
+ @DoNotStrip
51
+ @Keep
52
+ abstract fun configure(config: DownloadConfig): Unit
53
+
54
+ @DoNotStrip
55
+ @Keep
56
+ abstract fun getConfig(): DownloadConfig
57
+
58
+ @DoNotStrip
59
+ @Keep
60
+ abstract fun downloadTrack(track: TrackItem, playlistId: String?): Promise<String>
61
+
62
+ @DoNotStrip
63
+ @Keep
64
+ abstract fun downloadPlaylist(playlistId: String, tracks: Array<TrackItem>): Promise<Array<String>>
65
+
66
+ @DoNotStrip
67
+ @Keep
68
+ abstract fun pauseDownload(downloadId: String): Promise<Unit>
69
+
70
+ @DoNotStrip
71
+ @Keep
72
+ abstract fun resumeDownload(downloadId: String): Promise<Unit>
73
+
74
+ @DoNotStrip
75
+ @Keep
76
+ abstract fun cancelDownload(downloadId: String): Promise<Unit>
77
+
78
+ @DoNotStrip
79
+ @Keep
80
+ abstract fun retryDownload(downloadId: String): Promise<Unit>
81
+
82
+ @DoNotStrip
83
+ @Keep
84
+ abstract fun pauseAllDownloads(): Promise<Unit>
85
+
86
+ @DoNotStrip
87
+ @Keep
88
+ abstract fun resumeAllDownloads(): Promise<Unit>
89
+
90
+ @DoNotStrip
91
+ @Keep
92
+ abstract fun cancelAllDownloads(): Promise<Unit>
93
+
94
+ @DoNotStrip
95
+ @Keep
96
+ abstract fun getDownloadTask(downloadId: String): Variant_NullType_DownloadTask
97
+
98
+ @DoNotStrip
99
+ @Keep
100
+ abstract fun getActiveDownloads(): Array<DownloadTask>
101
+
102
+ @DoNotStrip
103
+ @Keep
104
+ abstract fun getQueueStatus(): DownloadQueueStatus
105
+
106
+ @DoNotStrip
107
+ @Keep
108
+ abstract fun isDownloading(trackId: String): Boolean
109
+
110
+ @DoNotStrip
111
+ @Keep
112
+ abstract fun getDownloadState(trackId: String): DownloadState
113
+
114
+ @DoNotStrip
115
+ @Keep
116
+ abstract fun isTrackDownloaded(trackId: String): Boolean
117
+
118
+ @DoNotStrip
119
+ @Keep
120
+ abstract fun isPlaylistDownloaded(playlistId: String): Boolean
121
+
122
+ @DoNotStrip
123
+ @Keep
124
+ abstract fun isPlaylistPartiallyDownloaded(playlistId: String): Boolean
125
+
126
+ @DoNotStrip
127
+ @Keep
128
+ abstract fun getDownloadedTrack(trackId: String): Variant_NullType_DownloadedTrack
129
+
130
+ @DoNotStrip
131
+ @Keep
132
+ abstract fun getAllDownloadedTracks(): Array<DownloadedTrack>
133
+
134
+ @DoNotStrip
135
+ @Keep
136
+ abstract fun getDownloadedPlaylist(playlistId: String): Variant_NullType_DownloadedPlaylist
137
+
138
+ @DoNotStrip
139
+ @Keep
140
+ abstract fun getAllDownloadedPlaylists(): Array<DownloadedPlaylist>
141
+
142
+ @DoNotStrip
143
+ @Keep
144
+ abstract fun getLocalPath(trackId: String): Variant_NullType_String
145
+
146
+ @DoNotStrip
147
+ @Keep
148
+ abstract fun deleteDownloadedTrack(trackId: String): Promise<Unit>
149
+
150
+ @DoNotStrip
151
+ @Keep
152
+ abstract fun deleteDownloadedPlaylist(playlistId: String): Promise<Unit>
153
+
154
+ @DoNotStrip
155
+ @Keep
156
+ abstract fun deleteAllDownloads(): Promise<Unit>
157
+
158
+ @DoNotStrip
159
+ @Keep
160
+ abstract fun getStorageInfo(): Promise<DownloadStorageInfo>
161
+
162
+ @DoNotStrip
163
+ @Keep
164
+ abstract fun syncDownloads(): Double
165
+
166
+ @DoNotStrip
167
+ @Keep
168
+ abstract fun setPlaybackSourcePreference(preference: PlaybackSource): Unit
169
+
170
+ @DoNotStrip
171
+ @Keep
172
+ abstract fun getPlaybackSourcePreference(): PlaybackSource
173
+
174
+ @DoNotStrip
175
+ @Keep
176
+ abstract fun getEffectiveUrl(track: TrackItem): String
177
+
178
+ abstract fun onDownloadProgress(callback: (progress: DownloadProgress) -> Unit): Unit
179
+
180
+ @DoNotStrip
181
+ @Keep
182
+ private fun onDownloadProgress_cxx(callback: Func_void_DownloadProgress): Unit {
183
+ val __result = onDownloadProgress(callback)
184
+ return __result
185
+ }
186
+
187
+ abstract fun onDownloadStateChange(callback: (downloadId: String, trackId: String, state: DownloadState, error: DownloadError?) -> Unit): Unit
188
+
189
+ @DoNotStrip
190
+ @Keep
191
+ private fun onDownloadStateChange_cxx(callback: Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_): Unit {
192
+ val __result = onDownloadStateChange(callback)
193
+ return __result
194
+ }
195
+
196
+ abstract fun onDownloadComplete(callback: (downloadedTrack: DownloadedTrack) -> Unit): Unit
197
+
198
+ @DoNotStrip
199
+ @Keep
200
+ private fun onDownloadComplete_cxx(callback: Func_void_DownloadedTrack): Unit {
201
+ val __result = onDownloadComplete(callback)
202
+ return __result
203
+ }
204
+
205
+ private external fun initHybrid(): HybridData
206
+
207
+ companion object {
208
+ protected const val TAG = "HybridDownloadManagerSpec"
209
+ }
210
+ }
@@ -0,0 +1,141 @@
1
+ ///
2
+ /// HybridEqualizerSpec.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.NullType
14
+ import com.margelo.nitro.core.HybridObject
15
+
16
+ /**
17
+ * A Kotlin class representing the Equalizer HybridObject.
18
+ * Implement this abstract class to create Kotlin-based instances of Equalizer.
19
+ */
20
+ @DoNotStrip
21
+ @Keep
22
+ @Suppress(
23
+ "KotlinJniMissingFunction", "unused",
24
+ "RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
25
+ "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
26
+ )
27
+ abstract class HybridEqualizerSpec: HybridObject() {
28
+ @DoNotStrip
29
+ private var mHybridData: HybridData = initHybrid()
30
+
31
+ init {
32
+ super.updateNative(mHybridData)
33
+ }
34
+
35
+ override fun updateNative(hybridData: HybridData) {
36
+ mHybridData = hybridData
37
+ super.updateNative(hybridData)
38
+ }
39
+
40
+ // Default implementation of `HybridObject.toString()`
41
+ override fun toString(): String {
42
+ return "[HybridObject Equalizer]"
43
+ }
44
+
45
+ // Properties
46
+
47
+
48
+ // Methods
49
+ @DoNotStrip
50
+ @Keep
51
+ abstract fun setEnabled(enabled: Boolean): Boolean
52
+
53
+ @DoNotStrip
54
+ @Keep
55
+ abstract fun isEnabled(): Boolean
56
+
57
+ @DoNotStrip
58
+ @Keep
59
+ abstract fun getBands(): Array<EqualizerBand>
60
+
61
+ @DoNotStrip
62
+ @Keep
63
+ abstract fun setBandGain(bandIndex: Double, gainDb: Double): Boolean
64
+
65
+ @DoNotStrip
66
+ @Keep
67
+ abstract fun setAllBandGains(gains: DoubleArray): Boolean
68
+
69
+ @DoNotStrip
70
+ @Keep
71
+ abstract fun getBandRange(): GainRange
72
+
73
+ @DoNotStrip
74
+ @Keep
75
+ abstract fun getPresets(): Array<EqualizerPreset>
76
+
77
+ @DoNotStrip
78
+ @Keep
79
+ abstract fun getBuiltInPresets(): Array<EqualizerPreset>
80
+
81
+ @DoNotStrip
82
+ @Keep
83
+ abstract fun getCustomPresets(): Array<EqualizerPreset>
84
+
85
+ @DoNotStrip
86
+ @Keep
87
+ abstract fun applyPreset(presetName: String): Boolean
88
+
89
+ @DoNotStrip
90
+ @Keep
91
+ abstract fun getCurrentPresetName(): Variant_NullType_String
92
+
93
+ @DoNotStrip
94
+ @Keep
95
+ abstract fun saveCustomPreset(name: String): Boolean
96
+
97
+ @DoNotStrip
98
+ @Keep
99
+ abstract fun deleteCustomPreset(name: String): Boolean
100
+
101
+ @DoNotStrip
102
+ @Keep
103
+ abstract fun getState(): EqualizerState
104
+
105
+ @DoNotStrip
106
+ @Keep
107
+ abstract fun reset(): Unit
108
+
109
+ abstract fun onEnabledChange(callback: (enabled: Boolean) -> Unit): Unit
110
+
111
+ @DoNotStrip
112
+ @Keep
113
+ private fun onEnabledChange_cxx(callback: Func_void_bool): Unit {
114
+ val __result = onEnabledChange(callback)
115
+ return __result
116
+ }
117
+
118
+ abstract fun onBandChange(callback: (bands: Array<EqualizerBand>) -> Unit): Unit
119
+
120
+ @DoNotStrip
121
+ @Keep
122
+ private fun onBandChange_cxx(callback: Func_void_std__vector_EqualizerBand_): Unit {
123
+ val __result = onBandChange(callback)
124
+ return __result
125
+ }
126
+
127
+ abstract fun onPresetChange(callback: (presetName: Variant_NullType_String?) -> Unit): Unit
128
+
129
+ @DoNotStrip
130
+ @Keep
131
+ private fun onPresetChange_cxx(callback: Func_void_std__optional_std__variant_nitro__NullType__std__string__): Unit {
132
+ val __result = onPresetChange(callback)
133
+ return __result
134
+ }
135
+
136
+ private external fun initHybrid(): HybridData
137
+
138
+ companion object {
139
+ protected const val TAG = "HybridEqualizerSpec"
140
+ }
141
+ }
@@ -10,6 +10,7 @@ package com.margelo.nitro.nitroplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.Promise
13
14
  import com.margelo.nitro.core.HybridObject
14
15
 
15
16
  /**
@@ -55,12 +56,16 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
55
56
 
56
57
  @DoNotStrip
57
58
  @Keep
58
- abstract fun playSong(songId: String, fromPlaylist: String?): Unit
59
+ abstract fun playSong(songId: String, fromPlaylist: String?): Promise<Unit>
59
60
 
60
61
  @DoNotStrip
61
62
  @Keep
62
63
  abstract fun skipToNext(): Unit
63
64
 
65
+ @DoNotStrip
66
+ @Keep
67
+ abstract fun skipToIndex(index: Double): Promise<Boolean>
68
+
64
69
  @DoNotStrip
65
70
  @Keep
66
71
  abstract fun skipToPrevious(): Unit
@@ -71,7 +76,19 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
71
76
 
72
77
  @DoNotStrip
73
78
  @Keep
74
- abstract fun getState(): PlayerState
79
+ abstract fun addToUpNext(trackId: String): Promise<Unit>
80
+
81
+ @DoNotStrip
82
+ @Keep
83
+ abstract fun playNext(trackId: String): Promise<Unit>
84
+
85
+ @DoNotStrip
86
+ @Keep
87
+ abstract fun getActualQueue(): Promise<Array<TrackItem>>
88
+
89
+ @DoNotStrip
90
+ @Keep
91
+ abstract fun getState(): Promise<PlayerState>
75
92
 
76
93
  @DoNotStrip
77
94
  @Keep
@@ -0,0 +1,22 @@
1
+ ///
2
+ /// PlaybackSource.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "PlaybackSource".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class PlaybackSource(@DoNotStrip @Keep val value: Int) {
19
+ AUTO(0),
20
+ DOWNLOAD(1),
21
+ NETWORK(2);
22
+ }
@@ -34,7 +34,10 @@ data class PlayerState(
34
34
  val currentPlaylistId: Variant_NullType_String?,
35
35
  @DoNotStrip
36
36
  @Keep
37
- val currentIndex: Double
37
+ val currentIndex: Double,
38
+ @DoNotStrip
39
+ @Keep
40
+ val currentPlayingType: CurrentPlayingType
38
41
  ) {
39
42
  /* primary constructor */
40
43
 
@@ -46,8 +49,8 @@ data class PlayerState(
46
49
  @Keep
47
50
  @Suppress("unused")
48
51
  @JvmStatic
49
- private fun fromCpp(currentTrack: Variant_NullType_TrackItem?, currentPosition: Double, totalDuration: Double, currentState: TrackPlayerState, currentPlaylistId: Variant_NullType_String?, currentIndex: Double): PlayerState {
50
- return PlayerState(currentTrack, currentPosition, totalDuration, currentState, currentPlaylistId, currentIndex)
52
+ private fun fromCpp(currentTrack: Variant_NullType_TrackItem?, currentPosition: Double, totalDuration: Double, currentState: TrackPlayerState, currentPlaylistId: Variant_NullType_String?, currentIndex: Double, currentPlayingType: CurrentPlayingType): PlayerState {
53
+ return PlayerState(currentTrack, currentPosition, totalDuration, currentState, currentPlaylistId, currentIndex, currentPlayingType)
51
54
  }
52
55
  }
53
56
  }
@@ -0,0 +1,21 @@
1
+ ///
2
+ /// PresetType.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "PresetType".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class PresetType(@DoNotStrip @Keep val value: Int) {
19
+ BUILT_IN(0),
20
+ CUSTOM(1);
21
+ }
@@ -0,0 +1,21 @@
1
+ ///
2
+ /// StorageLocation.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "StorageLocation".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class StorageLocation(@DoNotStrip @Keep val value: Int) {
19
+ PRIVATE(0),
20
+ PUBLIC(1);
21
+ }
@@ -10,6 +10,7 @@ package com.margelo.nitro.nitroplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.proguard.annotations.DoNotStrip
12
12
  import com.margelo.nitro.core.NullType
13
+ import com.margelo.nitro.core.AnyMap
13
14
 
14
15
  /**
15
16
  * Represents the JavaScript object/struct "TrackItem".
@@ -37,7 +38,10 @@ data class TrackItem(
37
38
  val url: String,
38
39
  @DoNotStrip
39
40
  @Keep
40
- val artwork: Variant_NullType_String?
41
+ val artwork: Variant_NullType_String?,
42
+ @DoNotStrip
43
+ @Keep
44
+ val extraPayload: AnyMap?
41
45
  ) {
42
46
  /* primary constructor */
43
47
 
@@ -49,8 +53,8 @@ data class TrackItem(
49
53
  @Keep
50
54
  @Suppress("unused")
51
55
  @JvmStatic
52
- private fun fromCpp(id: String, title: String, artist: String, album: String, duration: Double, url: String, artwork: Variant_NullType_String?): TrackItem {
53
- return TrackItem(id, title, artist, album, duration, url, artwork)
56
+ private fun fromCpp(id: String, title: String, artist: String, album: String, duration: Double, url: String, artwork: Variant_NullType_String?, extraPayload: AnyMap?): TrackItem {
57
+ return TrackItem(id, title, artist, album, duration, url, artwork, extraPayload)
54
58
  }
55
59
  }
56
60
  }
@@ -16,7 +16,7 @@ import com.facebook.proguard.annotations.DoNotStrip
16
16
  @DoNotStrip
17
17
  @Keep
18
18
  enum class TrackPlayerState(@DoNotStrip @Keep val value: Int) {
19
- PLAYING(0),
20
- PAUSED(1),
19
+ PAUSED(0),
20
+ PLAYING(1),
21
21
  STOPPED(2);
22
22
  }
@@ -0,0 +1,59 @@
1
+ ///
2
+ /// Variant_NullType_Double.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import com.facebook.proguard.annotations.DoNotStrip
11
+ import com.margelo.nitro.core.NullType
12
+
13
+ /**
14
+ * Represents the TypeScript variant "NullType | Double".
15
+ */
16
+ @Suppress("ClassName")
17
+ @DoNotStrip
18
+ sealed class Variant_NullType_Double {
19
+ @DoNotStrip
20
+ data class First(@DoNotStrip val value: NullType): Variant_NullType_Double()
21
+ @DoNotStrip
22
+ data class Second(@DoNotStrip val value: Double): Variant_NullType_Double()
23
+
24
+ @Deprecated("getAs() is not type-safe. Use fold/asFirstOrNull/asSecondOrNull instead.", level = DeprecationLevel.ERROR)
25
+ inline fun <reified T> getAs(): T? = when (this) {
26
+ is First -> value as? T
27
+ is Second -> value as? T
28
+ }
29
+
30
+ val isFirst: Boolean
31
+ get() = this is First
32
+ val isSecond: Boolean
33
+ get() = this is Second
34
+
35
+ fun asFirstOrNull(): NullType? {
36
+ val value = (this as? First)?.value ?: return null
37
+ return value
38
+ }
39
+ fun asSecondOrNull(): Double? {
40
+ val value = (this as? Second)?.value ?: return null
41
+ return value
42
+ }
43
+
44
+ inline fun <R> match(first: (NullType) -> R, second: (Double) -> R): R {
45
+ return when (this) {
46
+ is First -> first(value)
47
+ is Second -> second(value)
48
+ }
49
+ }
50
+
51
+ companion object {
52
+ @JvmStatic
53
+ @DoNotStrip
54
+ fun create(value: NullType): Variant_NullType_Double = First(value)
55
+ @JvmStatic
56
+ @DoNotStrip
57
+ fun create(value: Double): Variant_NullType_Double = Second(value)
58
+ }
59
+ }
@@ -0,0 +1,59 @@
1
+ ///
2
+ /// Variant_NullType_DownloadError.kt
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
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import com.facebook.proguard.annotations.DoNotStrip
11
+ import com.margelo.nitro.core.NullType
12
+
13
+ /**
14
+ * Represents the TypeScript variant "NullType | DownloadError".
15
+ */
16
+ @Suppress("ClassName")
17
+ @DoNotStrip
18
+ sealed class Variant_NullType_DownloadError {
19
+ @DoNotStrip
20
+ data class First(@DoNotStrip val value: NullType): Variant_NullType_DownloadError()
21
+ @DoNotStrip
22
+ data class Second(@DoNotStrip val value: DownloadError): Variant_NullType_DownloadError()
23
+
24
+ @Deprecated("getAs() is not type-safe. Use fold/asFirstOrNull/asSecondOrNull instead.", level = DeprecationLevel.ERROR)
25
+ inline fun <reified T> getAs(): T? = when (this) {
26
+ is First -> value as? T
27
+ is Second -> value as? T
28
+ }
29
+
30
+ val isFirst: Boolean
31
+ get() = this is First
32
+ val isSecond: Boolean
33
+ get() = this is Second
34
+
35
+ fun asFirstOrNull(): NullType? {
36
+ val value = (this as? First)?.value ?: return null
37
+ return value
38
+ }
39
+ fun asSecondOrNull(): DownloadError? {
40
+ val value = (this as? Second)?.value ?: return null
41
+ return value
42
+ }
43
+
44
+ inline fun <R> match(first: (NullType) -> R, second: (DownloadError) -> R): R {
45
+ return when (this) {
46
+ is First -> first(value)
47
+ is Second -> second(value)
48
+ }
49
+ }
50
+
51
+ companion object {
52
+ @JvmStatic
53
+ @DoNotStrip
54
+ fun create(value: NullType): Variant_NullType_DownloadError = First(value)
55
+ @JvmStatic
56
+ @DoNotStrip
57
+ fun create(value: DownloadError): Variant_NullType_DownloadError = Second(value)
58
+ }
59
+ }