react-native-nitro-player 0.6.1 → 0.7.1-alpha.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 (164) hide show
  1. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +9 -13
  2. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +45 -90
  3. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +48 -182
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +21 -77
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +55 -104
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +113 -123
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ExoPlayerCore.kt +82 -0
  8. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ListenerRegistry.kt +48 -0
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerAndroidAuto.kt +62 -0
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +153 -1887
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerListener.kt +122 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerNotify.kt +44 -0
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerPlayback.kt +162 -0
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueue.kt +165 -0
  15. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueueBuild.kt +161 -0
  16. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerSetup.kt +28 -0
  17. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerTempQueue.kt +121 -0
  18. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerUrlLoader.kt +98 -0
  19. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +27 -18
  20. package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +11 -58
  21. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +13 -30
  22. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +102 -162
  23. package/ios/HybridDownloadManager.swift +32 -26
  24. package/ios/HybridEqualizer.swift +48 -35
  25. package/ios/HybridTrackPlayer.swift +127 -102
  26. package/ios/core/ListenerRegistry.swift +60 -0
  27. package/ios/core/TrackPlayerCore.swift +130 -2356
  28. package/ios/core/TrackPlayerListener.swift +395 -0
  29. package/ios/core/TrackPlayerNotify.swift +52 -0
  30. package/ios/core/TrackPlayerPlayback.swift +274 -0
  31. package/ios/core/TrackPlayerQueue.swift +212 -0
  32. package/ios/core/TrackPlayerQueueBuild.swift +482 -0
  33. package/ios/core/TrackPlayerTempQueue.swift +167 -0
  34. package/ios/core/TrackPlayerUrlLoader.swift +169 -0
  35. package/ios/equalizer/EqualizerCore.swift +24 -89
  36. package/ios/media/MediaSessionManager.swift +32 -49
  37. package/ios/playlist/PlaylistManager.swift +2 -9
  38. package/ios/queue/HybridPlayerQueue.swift +69 -66
  39. package/lib/hooks/useDownloadedTracks.js +16 -13
  40. package/lib/hooks/useEqualizer.d.ts +4 -4
  41. package/lib/hooks/useEqualizer.js +12 -12
  42. package/lib/hooks/useEqualizerPresets.d.ts +3 -3
  43. package/lib/hooks/useEqualizerPresets.js +12 -18
  44. package/lib/specs/AndroidAutoMediaLibrary.nitro.d.ts +2 -2
  45. package/lib/specs/AudioDevices.nitro.d.ts +2 -2
  46. package/lib/specs/DownloadManager.nitro.d.ts +10 -10
  47. package/lib/specs/Equalizer.nitro.d.ts +9 -9
  48. package/lib/specs/TrackPlayer.nitro.d.ts +38 -16
  49. package/nitro.json +44 -11
  50. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +63 -24
  51. package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +1 -1
  52. package/nitrogen/generated/android/c++/JDownloadConfig.hpp +1 -1
  53. package/nitrogen/generated/android/c++/JDownloadError.hpp +1 -1
  54. package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +1 -1
  55. package/nitrogen/generated/android/c++/JDownloadProgress.hpp +1 -1
  56. package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +1 -1
  57. package/nitrogen/generated/android/c++/JDownloadState.hpp +1 -1
  58. package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +1 -1
  59. package/nitrogen/generated/android/c++/JDownloadTask.hpp +1 -1
  60. package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +1 -1
  61. package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +1 -1
  62. package/nitrogen/generated/android/c++/JEqualizerBand.hpp +1 -1
  63. package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +1 -1
  64. package/nitrogen/generated/android/c++/JEqualizerState.hpp +1 -1
  65. package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +2 -2
  66. package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +2 -2
  67. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -2
  68. package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +2 -2
  69. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
  70. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +2 -2
  71. package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +2 -2
  72. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +2 -2
  73. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -2
  74. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +2 -2
  75. package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +2 -2
  76. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -2
  77. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double.hpp +2 -2
  78. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__std__vector_TrackItem_.hpp +122 -0
  79. package/nitrogen/generated/android/c++/JGainRange.hpp +1 -1
  80. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +49 -30
  81. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +21 -24
  82. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +35 -28
  83. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +20 -23
  84. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +197 -93
  85. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +29 -32
  86. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +157 -67
  87. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +28 -31
  88. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +138 -53
  89. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +27 -30
  90. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +282 -69
  91. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +35 -30
  92. package/nitrogen/generated/android/c++/JPlaybackSource.hpp +1 -1
  93. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +1 -1
  94. package/nitrogen/generated/android/c++/JPlayerState.hpp +1 -1
  95. package/nitrogen/generated/android/c++/JPlaylist.hpp +1 -1
  96. package/nitrogen/generated/android/c++/JPresetType.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JQueueOperation.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JReason.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JRepeatMode.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JStorageLocation.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JTAudioDevice.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JTrackItem.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
  105. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +3 -3
  106. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +3 -3
  107. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +3 -3
  108. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +3 -3
  109. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +3 -3
  110. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
  111. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +3 -3
  112. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_TrackItem__std__vector_TrackItem_.kt +80 -0
  113. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +18 -20
  114. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +17 -19
  115. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +25 -28
  116. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +25 -27
  117. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +24 -26
  118. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +60 -26
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +0 -6
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +0 -6
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +0 -6
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +0 -6
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +0 -6
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +0 -6
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +0 -6
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +0 -6
  127. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +74 -18
  128. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +380 -151
  129. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +10 -10
  130. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +12 -9
  131. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +23 -8
  132. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +82 -8
  133. package/nitrogen/generated/ios/swift/Func_void_EqualizerState.swift +46 -0
  134. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedPlaylist_.swift +58 -0
  135. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedTrack_.swift +58 -0
  136. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +58 -0
  137. package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedPlaylist_.swift +46 -0
  138. package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedTrack_.swift +46 -0
  139. package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +5 -5
  140. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__std__vector_TrackItem_.swift +46 -0
  141. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +10 -10
  142. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +141 -71
  143. package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +9 -9
  144. package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +105 -41
  145. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +8 -8
  146. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +95 -32
  147. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +16 -8
  148. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +267 -32
  149. package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +3 -2
  150. package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +2 -1
  151. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +10 -10
  152. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +10 -9
  153. package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +9 -8
  154. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +8 -0
  155. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +16 -8
  156. package/package.json +3 -3
  157. package/src/hooks/useDownloadedTracks.ts +17 -13
  158. package/src/hooks/useEqualizer.ts +16 -16
  159. package/src/hooks/useEqualizerPresets.ts +15 -21
  160. package/src/specs/AndroidAutoMediaLibrary.nitro.ts +2 -2
  161. package/src/specs/AudioDevices.nitro.ts +2 -2
  162. package/src/specs/DownloadManager.nitro.ts +10 -10
  163. package/src/specs/Equalizer.nitro.ts +9 -9
  164. package/src/specs/TrackPlayer.nitro.ts +52 -16
@@ -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.NullType
14
15
  import com.margelo.nitro.core.HybridObject
15
16
 
@@ -25,30 +26,13 @@ import com.margelo.nitro.core.HybridObject
25
26
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
26
27
  )
27
28
  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
29
  // Properties
46
30
 
47
31
 
48
32
  // Methods
49
33
  @DoNotStrip
50
34
  @Keep
51
- abstract fun setEnabled(enabled: Boolean): Boolean
35
+ abstract fun setEnabled(enabled: Boolean): Promise<Unit>
52
36
 
53
37
  @DoNotStrip
54
38
  @Keep
@@ -56,15 +40,15 @@ abstract class HybridEqualizerSpec: HybridObject() {
56
40
 
57
41
  @DoNotStrip
58
42
  @Keep
59
- abstract fun getBands(): Array<EqualizerBand>
43
+ abstract fun getBands(): Promise<Array<EqualizerBand>>
60
44
 
61
45
  @DoNotStrip
62
46
  @Keep
63
- abstract fun setBandGain(bandIndex: Double, gainDb: Double): Boolean
47
+ abstract fun setBandGain(bandIndex: Double, gainDb: Double): Promise<Unit>
64
48
 
65
49
  @DoNotStrip
66
50
  @Keep
67
- abstract fun setAllBandGains(gains: DoubleArray): Boolean
51
+ abstract fun setAllBandGains(gains: DoubleArray): Promise<Unit>
68
52
 
69
53
  @DoNotStrip
70
54
  @Keep
@@ -84,7 +68,7 @@ abstract class HybridEqualizerSpec: HybridObject() {
84
68
 
85
69
  @DoNotStrip
86
70
  @Keep
87
- abstract fun applyPreset(presetName: String): Boolean
71
+ abstract fun applyPreset(presetName: String): Promise<Unit>
88
72
 
89
73
  @DoNotStrip
90
74
  @Keep
@@ -92,19 +76,19 @@ abstract class HybridEqualizerSpec: HybridObject() {
92
76
 
93
77
  @DoNotStrip
94
78
  @Keep
95
- abstract fun saveCustomPreset(name: String): Boolean
79
+ abstract fun saveCustomPreset(name: String): Promise<Unit>
96
80
 
97
81
  @DoNotStrip
98
82
  @Keep
99
- abstract fun deleteCustomPreset(name: String): Boolean
83
+ abstract fun deleteCustomPreset(name: String): Promise<Unit>
100
84
 
101
85
  @DoNotStrip
102
86
  @Keep
103
- abstract fun getState(): EqualizerState
87
+ abstract fun getState(): Promise<EqualizerState>
104
88
 
105
89
  @DoNotStrip
106
90
  @Keep
107
- abstract fun reset(): Unit
91
+ abstract fun reset(): Promise<Unit>
108
92
 
109
93
  abstract fun onEnabledChange(callback: (enabled: Boolean) -> Unit): Unit
110
94
 
@@ -133,7 +117,21 @@ abstract class HybridEqualizerSpec: HybridObject() {
133
117
  return __result
134
118
  }
135
119
 
136
- private external fun initHybrid(): HybridData
120
+ // Default implementation of `HybridObject.toString()`
121
+ override fun toString(): String {
122
+ return "[HybridObject Equalizer]"
123
+ }
124
+
125
+ // C++ backing class
126
+ @DoNotStrip
127
+ @Keep
128
+ protected open class CxxPart(javaPart: HybridEqualizerSpec): HybridObject.CxxPart(javaPart) {
129
+ // C++ JHybridEqualizerSpec::CxxPart::initHybrid(...)
130
+ external override fun initHybrid(): HybridData
131
+ }
132
+ override fun createCxxPart(): CxxPart {
133
+ return CxxPart(this)
134
+ }
137
135
 
138
136
  companion object {
139
137
  protected const val TAG = "HybridEqualizerSpec"
@@ -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.NullType
14
15
  import com.margelo.nitro.core.HybridObject
15
16
 
@@ -25,38 +26,21 @@ import com.margelo.nitro.core.HybridObject
25
26
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
26
27
  )
27
28
  abstract class HybridPlayerQueueSpec: 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 PlayerQueue]"
43
- }
44
-
45
29
  // Properties
46
30
 
47
31
 
48
32
  // Methods
49
33
  @DoNotStrip
50
34
  @Keep
51
- abstract fun createPlaylist(name: String, description: String?, artwork: String?): String
35
+ abstract fun createPlaylist(name: String, description: String?, artwork: String?): Promise<String>
52
36
 
53
37
  @DoNotStrip
54
38
  @Keep
55
- abstract fun deletePlaylist(playlistId: String): Unit
39
+ abstract fun deletePlaylist(playlistId: String): Promise<Unit>
56
40
 
57
41
  @DoNotStrip
58
42
  @Keep
59
- abstract fun updatePlaylist(playlistId: String, name: String?, description: String?, artwork: String?): Unit
43
+ abstract fun updatePlaylist(playlistId: String, name: String?, description: String?, artwork: String?): Promise<Unit>
60
44
 
61
45
  @DoNotStrip
62
46
  @Keep
@@ -68,23 +52,23 @@ abstract class HybridPlayerQueueSpec: HybridObject() {
68
52
 
69
53
  @DoNotStrip
70
54
  @Keep
71
- abstract fun addTrackToPlaylist(playlistId: String, track: TrackItem, index: Double?): Unit
55
+ abstract fun addTrackToPlaylist(playlistId: String, track: TrackItem, index: Double?): Promise<Unit>
72
56
 
73
57
  @DoNotStrip
74
58
  @Keep
75
- abstract fun addTracksToPlaylist(playlistId: String, tracks: Array<TrackItem>, index: Double?): Unit
59
+ abstract fun addTracksToPlaylist(playlistId: String, tracks: Array<TrackItem>, index: Double?): Promise<Unit>
76
60
 
77
61
  @DoNotStrip
78
62
  @Keep
79
- abstract fun removeTrackFromPlaylist(playlistId: String, trackId: String): Unit
63
+ abstract fun removeTrackFromPlaylist(playlistId: String, trackId: String): Promise<Unit>
80
64
 
81
65
  @DoNotStrip
82
66
  @Keep
83
- abstract fun reorderTrackInPlaylist(playlistId: String, trackId: String, newIndex: Double): Unit
67
+ abstract fun reorderTrackInPlaylist(playlistId: String, trackId: String, newIndex: Double): Promise<Unit>
84
68
 
85
69
  @DoNotStrip
86
70
  @Keep
87
- abstract fun loadPlaylist(playlistId: String): Unit
71
+ abstract fun loadPlaylist(playlistId: String): Promise<Unit>
88
72
 
89
73
  @DoNotStrip
90
74
  @Keep
@@ -108,7 +92,21 @@ abstract class HybridPlayerQueueSpec: HybridObject() {
108
92
  return __result
109
93
  }
110
94
 
111
- private external fun initHybrid(): HybridData
95
+ // Default implementation of `HybridObject.toString()`
96
+ override fun toString(): String {
97
+ return "[HybridObject PlayerQueue]"
98
+ }
99
+
100
+ // C++ backing class
101
+ @DoNotStrip
102
+ @Keep
103
+ protected open class CxxPart(javaPart: HybridPlayerQueueSpec): HybridObject.CxxPart(javaPart) {
104
+ // C++ JHybridPlayerQueueSpec::CxxPart::initHybrid(...)
105
+ external override fun initHybrid(): HybridData
106
+ }
107
+ override fun createCxxPart(): CxxPart {
108
+ return CxxPart(this)
109
+ }
112
110
 
113
111
  companion object {
114
112
  protected const val TAG = "HybridPlayerQueueSpec"
@@ -25,34 +25,17 @@ import com.margelo.nitro.core.HybridObject
25
25
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
26
26
  )
27
27
  abstract class HybridTrackPlayerSpec: 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 TrackPlayer]"
43
- }
44
-
45
28
  // Properties
46
29
 
47
30
 
48
31
  // Methods
49
32
  @DoNotStrip
50
33
  @Keep
51
- abstract fun play(): Unit
34
+ abstract fun play(): Promise<Unit>
52
35
 
53
36
  @DoNotStrip
54
37
  @Keep
55
- abstract fun pause(): Unit
38
+ abstract fun pause(): Promise<Unit>
56
39
 
57
40
  @DoNotStrip
58
41
  @Keep
@@ -60,7 +43,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
60
43
 
61
44
  @DoNotStrip
62
45
  @Keep
63
- abstract fun skipToNext(): Unit
46
+ abstract fun skipToNext(): Promise<Unit>
64
47
 
65
48
  @DoNotStrip
66
49
  @Keep
@@ -68,11 +51,11 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
68
51
 
69
52
  @DoNotStrip
70
53
  @Keep
71
- abstract fun skipToPrevious(): Unit
54
+ abstract fun skipToPrevious(): Promise<Unit>
72
55
 
73
56
  @DoNotStrip
74
57
  @Keep
75
- abstract fun seek(position: Double): Unit
58
+ abstract fun seek(position: Double): Promise<Unit>
76
59
 
77
60
  @DoNotStrip
78
61
  @Keep
@@ -92,7 +75,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
92
75
 
93
76
  @DoNotStrip
94
77
  @Keep
95
- abstract fun setRepeatMode(mode: RepeatMode): Boolean
78
+ abstract fun setRepeatMode(mode: RepeatMode): Promise<Unit>
96
79
 
97
80
  @DoNotStrip
98
81
  @Keep
@@ -100,7 +83,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
100
83
 
101
84
  @DoNotStrip
102
85
  @Keep
103
- abstract fun configure(config: PlayerConfig): Unit
86
+ abstract fun configure(config: PlayerConfig): Promise<Unit>
104
87
 
105
88
  abstract fun onChangeTrack(callback: (track: TrackItem, reason: Reason?) -> Unit): Unit
106
89
 
@@ -153,7 +136,7 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
153
136
 
154
137
  @DoNotStrip
155
138
  @Keep
156
- abstract fun setVolume(volume: Double): Boolean
139
+ abstract fun setVolume(volume: Double): Promise<Unit>
157
140
 
158
141
  @DoNotStrip
159
142
  @Keep
@@ -191,8 +174,59 @@ abstract class HybridTrackPlayerSpec: HybridObject() {
191
174
  @DoNotStrip
192
175
  @Keep
193
176
  abstract fun getPlaybackSpeed(): Promise<Double>
177
+
178
+ @DoNotStrip
179
+ @Keep
180
+ abstract fun removeFromPlayNext(trackId: String): Promise<Boolean>
181
+
182
+ @DoNotStrip
183
+ @Keep
184
+ abstract fun removeFromUpNext(trackId: String): Promise<Boolean>
185
+
186
+ @DoNotStrip
187
+ @Keep
188
+ abstract fun clearPlayNext(): Promise<Unit>
189
+
190
+ @DoNotStrip
191
+ @Keep
192
+ abstract fun clearUpNext(): Promise<Unit>
193
+
194
+ @DoNotStrip
195
+ @Keep
196
+ abstract fun reorderTemporaryTrack(trackId: String, newIndex: Double): Promise<Boolean>
197
+
198
+ @DoNotStrip
199
+ @Keep
200
+ abstract fun getPlayNextQueue(): Promise<Array<TrackItem>>
201
+
202
+ @DoNotStrip
203
+ @Keep
204
+ abstract fun getUpNextQueue(): Promise<Array<TrackItem>>
205
+
206
+ abstract fun onTemporaryQueueChange(callback: (playNextQueue: Array<TrackItem>, upNextQueue: Array<TrackItem>) -> Unit): Unit
207
+
208
+ @DoNotStrip
209
+ @Keep
210
+ private fun onTemporaryQueueChange_cxx(callback: Func_void_std__vector_TrackItem__std__vector_TrackItem_): Unit {
211
+ val __result = onTemporaryQueueChange(callback)
212
+ return __result
213
+ }
194
214
 
195
- private external fun initHybrid(): HybridData
215
+ // Default implementation of `HybridObject.toString()`
216
+ override fun toString(): String {
217
+ return "[HybridObject TrackPlayer]"
218
+ }
219
+
220
+ // C++ backing class
221
+ @DoNotStrip
222
+ @Keep
223
+ protected open class CxxPart(javaPart: HybridTrackPlayerSpec): HybridObject.CxxPart(javaPart) {
224
+ // C++ JHybridTrackPlayerSpec::CxxPart::initHybrid(...)
225
+ external override fun initHybrid(): HybridData
226
+ }
227
+ override fun createCxxPart(): CxxPart {
228
+ return CxxPart(this)
229
+ }
196
230
 
197
231
  companion object {
198
232
  protected const val TAG = "HybridTrackPlayerSpec"
@@ -21,12 +21,6 @@ sealed class Variant_NullType_Double {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: Double): Variant_NullType_Double()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_DownloadError {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: DownloadError): Variant_NullType_DownloadError()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_DownloadTask {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: DownloadTask): Variant_NullType_DownloadTask()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_DownloadedPlaylist {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: DownloadedPlaylist): Variant_NullType_DownloadedPlaylist()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_DownloadedTrack {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: DownloadedTrack): Variant_NullType_DownloadedTrack()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_Playlist {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: Playlist): Variant_NullType_Playlist()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_String {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: String): Variant_NullType_String()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -21,12 +21,6 @@ sealed class Variant_NullType_TrackItem {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: TrackItem): Variant_NullType_TrackItem()
23
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
24
  val isFirst: Boolean
31
25
  get() = this is First
32
26
  val isSecond: Boolean
@@ -66,6 +66,54 @@ namespace margelo::nitro::nitroplayer::bridge::swift {
66
66
  };
67
67
  }
68
68
 
69
+ // pragma MARK: std::function<void(bool /* result */)>
70
+ Func_void_bool create_Func_void_bool(void* NON_NULL swiftClosureWrapper) noexcept {
71
+ auto swiftClosure = NitroPlayer::Func_void_bool::fromUnsafe(swiftClosureWrapper);
72
+ return [swiftClosure = std::move(swiftClosure)](bool result) mutable -> void {
73
+ swiftClosure.call(result);
74
+ };
75
+ }
76
+
77
+ // pragma MARK: std::function<void(const std::variant<nitro::NullType, DownloadedTrack>& /* result */)>
78
+ Func_void_std__variant_nitro__NullType__DownloadedTrack_ create_Func_void_std__variant_nitro__NullType__DownloadedTrack_(void* NON_NULL swiftClosureWrapper) noexcept {
79
+ auto swiftClosure = NitroPlayer::Func_void_std__variant_nitro__NullType__DownloadedTrack_::fromUnsafe(swiftClosureWrapper);
80
+ return [swiftClosure = std::move(swiftClosure)](const std::variant<nitro::NullType, DownloadedTrack>& result) mutable -> void {
81
+ swiftClosure.call(result);
82
+ };
83
+ }
84
+
85
+ // pragma MARK: std::function<void(const std::vector<DownloadedTrack>& /* result */)>
86
+ Func_void_std__vector_DownloadedTrack_ create_Func_void_std__vector_DownloadedTrack_(void* NON_NULL swiftClosureWrapper) noexcept {
87
+ auto swiftClosure = NitroPlayer::Func_void_std__vector_DownloadedTrack_::fromUnsafe(swiftClosureWrapper);
88
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<DownloadedTrack>& result) mutable -> void {
89
+ swiftClosure.call(result);
90
+ };
91
+ }
92
+
93
+ // pragma MARK: std::function<void(const std::variant<nitro::NullType, DownloadedPlaylist>& /* result */)>
94
+ Func_void_std__variant_nitro__NullType__DownloadedPlaylist_ create_Func_void_std__variant_nitro__NullType__DownloadedPlaylist_(void* NON_NULL swiftClosureWrapper) noexcept {
95
+ auto swiftClosure = NitroPlayer::Func_void_std__variant_nitro__NullType__DownloadedPlaylist_::fromUnsafe(swiftClosureWrapper);
96
+ return [swiftClosure = std::move(swiftClosure)](const std::variant<nitro::NullType, DownloadedPlaylist>& result) mutable -> void {
97
+ swiftClosure.call(result);
98
+ };
99
+ }
100
+
101
+ // pragma MARK: std::function<void(const std::vector<DownloadedPlaylist>& /* result */)>
102
+ Func_void_std__vector_DownloadedPlaylist_ create_Func_void_std__vector_DownloadedPlaylist_(void* NON_NULL swiftClosureWrapper) noexcept {
103
+ auto swiftClosure = NitroPlayer::Func_void_std__vector_DownloadedPlaylist_::fromUnsafe(swiftClosureWrapper);
104
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<DownloadedPlaylist>& result) mutable -> void {
105
+ swiftClosure.call(result);
106
+ };
107
+ }
108
+
109
+ // pragma MARK: std::function<void(const std::variant<nitro::NullType, std::string>& /* result */)>
110
+ Func_void_std__variant_nitro__NullType__std__string_ create_Func_void_std__variant_nitro__NullType__std__string_(void* NON_NULL swiftClosureWrapper) noexcept {
111
+ auto swiftClosure = NitroPlayer::Func_void_std__variant_nitro__NullType__std__string_::fromUnsafe(swiftClosureWrapper);
112
+ return [swiftClosure = std::move(swiftClosure)](const std::variant<nitro::NullType, std::string>& result) mutable -> void {
113
+ swiftClosure.call(result);
114
+ };
115
+ }
116
+
69
117
  // pragma MARK: std::function<void(const DownloadStorageInfo& /* result */)>
70
118
  Func_void_DownloadStorageInfo create_Func_void_DownloadStorageInfo(void* NON_NULL swiftClosureWrapper) noexcept {
71
119
  auto swiftClosure = NitroPlayer::Func_void_DownloadStorageInfo::fromUnsafe(swiftClosureWrapper);
@@ -74,6 +122,14 @@ namespace margelo::nitro::nitroplayer::bridge::swift {
74
122
  };
75
123
  }
76
124
 
125
+ // pragma MARK: std::function<void(double /* result */)>
126
+ Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept {
127
+ auto swiftClosure = NitroPlayer::Func_void_double::fromUnsafe(swiftClosureWrapper);
128
+ return [swiftClosure = std::move(swiftClosure)](double result) mutable -> void {
129
+ swiftClosure.call(result);
130
+ };
131
+ }
132
+
77
133
  // pragma MARK: std::function<void(const DownloadProgress& /* progress */)>
78
134
  Func_void_DownloadProgress create_Func_void_DownloadProgress(void* NON_NULL swiftClosureWrapper) noexcept {
79
135
  auto swiftClosure = NitroPlayer::Func_void_DownloadProgress::fromUnsafe(swiftClosureWrapper);
@@ -114,19 +170,19 @@ namespace margelo::nitro::nitroplayer::bridge::swift {
114
170
  return swiftPart.toUnsafe();
115
171
  }
116
172
 
117
- // pragma MARK: std::function<void(bool /* enabled */)>
118
- Func_void_bool create_Func_void_bool(void* NON_NULL swiftClosureWrapper) noexcept {
119
- auto swiftClosure = NitroPlayer::Func_void_bool::fromUnsafe(swiftClosureWrapper);
120
- return [swiftClosure = std::move(swiftClosure)](bool enabled) mutable -> void {
121
- swiftClosure.call(enabled);
173
+ // pragma MARK: std::function<void(const std::vector<EqualizerBand>& /* result */)>
174
+ Func_void_std__vector_EqualizerBand_ create_Func_void_std__vector_EqualizerBand_(void* NON_NULL swiftClosureWrapper) noexcept {
175
+ auto swiftClosure = NitroPlayer::Func_void_std__vector_EqualizerBand_::fromUnsafe(swiftClosureWrapper);
176
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<EqualizerBand>& result) mutable -> void {
177
+ swiftClosure.call(result);
122
178
  };
123
179
  }
124
180
 
125
- // pragma MARK: std::function<void(const std::vector<EqualizerBand>& /* bands */)>
126
- Func_void_std__vector_EqualizerBand_ create_Func_void_std__vector_EqualizerBand_(void* NON_NULL swiftClosureWrapper) noexcept {
127
- auto swiftClosure = NitroPlayer::Func_void_std__vector_EqualizerBand_::fromUnsafe(swiftClosureWrapper);
128
- return [swiftClosure = std::move(swiftClosure)](const std::vector<EqualizerBand>& bands) mutable -> void {
129
- swiftClosure.call(bands);
181
+ // pragma MARK: std::function<void(const EqualizerState& /* result */)>
182
+ Func_void_EqualizerState create_Func_void_EqualizerState(void* NON_NULL swiftClosureWrapper) noexcept {
183
+ auto swiftClosure = NitroPlayer::Func_void_EqualizerState::fromUnsafe(swiftClosureWrapper);
184
+ return [swiftClosure = std::move(swiftClosure)](const EqualizerState& result) mutable -> void {
185
+ swiftClosure.call(result);
130
186
  };
131
187
  }
132
188
 
@@ -234,14 +290,6 @@ namespace margelo::nitro::nitroplayer::bridge::swift {
234
290
  };
235
291
  }
236
292
 
237
- // pragma MARK: std::function<void(double /* result */)>
238
- Func_void_double create_Func_void_double(void* NON_NULL swiftClosureWrapper) noexcept {
239
- auto swiftClosure = NitroPlayer::Func_void_double::fromUnsafe(swiftClosureWrapper);
240
- return [swiftClosure = std::move(swiftClosure)](double result) mutable -> void {
241
- swiftClosure.call(result);
242
- };
243
- }
244
-
245
293
  // pragma MARK: std::function<void(const std::vector<TrackItem>& /* tracks */, double /* lookahead */)>
246
294
  Func_void_std__vector_TrackItem__double create_Func_void_std__vector_TrackItem__double(void* NON_NULL swiftClosureWrapper) noexcept {
247
295
  auto swiftClosure = NitroPlayer::Func_void_std__vector_TrackItem__double::fromUnsafe(swiftClosureWrapper);
@@ -250,6 +298,14 @@ namespace margelo::nitro::nitroplayer::bridge::swift {
250
298
  };
251
299
  }
252
300
 
301
+ // pragma MARK: std::function<void(const std::vector<TrackItem>& /* playNextQueue */, const std::vector<TrackItem>& /* upNextQueue */)>
302
+ Func_void_std__vector_TrackItem__std__vector_TrackItem_ create_Func_void_std__vector_TrackItem__std__vector_TrackItem_(void* NON_NULL swiftClosureWrapper) noexcept {
303
+ auto swiftClosure = NitroPlayer::Func_void_std__vector_TrackItem__std__vector_TrackItem_::fromUnsafe(swiftClosureWrapper);
304
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<TrackItem>& playNextQueue, const std::vector<TrackItem>& upNextQueue) mutable -> void {
305
+ swiftClosure.call(playNextQueue, upNextQueue);
306
+ };
307
+ }
308
+
253
309
  // pragma MARK: std::shared_ptr<HybridTrackPlayerSpec>
254
310
  std::shared_ptr<HybridTrackPlayerSpec> create_std__shared_ptr_HybridTrackPlayerSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
255
311
  NitroPlayer::HybridTrackPlayerSpec_cxx swiftPart = NitroPlayer::HybridTrackPlayerSpec_cxx::fromUnsafe(swiftUnsafePointer);