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
@@ -240,7 +240,7 @@ namespace margelo::nitro::nitroplayer {
240
240
  auto __value = std::move(__result.value());
241
241
  return __value;
242
242
  }
243
- inline bool isTrackDownloaded(const std::string& trackId) override {
243
+ inline std::shared_ptr<Promise<bool>> isTrackDownloaded(const std::string& trackId) override {
244
244
  auto __result = _swiftPart.isTrackDownloaded(trackId);
245
245
  if (__result.hasError()) [[unlikely]] {
246
246
  std::rethrow_exception(__result.error());
@@ -248,7 +248,7 @@ namespace margelo::nitro::nitroplayer {
248
248
  auto __value = std::move(__result.value());
249
249
  return __value;
250
250
  }
251
- inline bool isPlaylistDownloaded(const std::string& playlistId) override {
251
+ inline std::shared_ptr<Promise<bool>> isPlaylistDownloaded(const std::string& playlistId) override {
252
252
  auto __result = _swiftPart.isPlaylistDownloaded(playlistId);
253
253
  if (__result.hasError()) [[unlikely]] {
254
254
  std::rethrow_exception(__result.error());
@@ -256,7 +256,7 @@ namespace margelo::nitro::nitroplayer {
256
256
  auto __value = std::move(__result.value());
257
257
  return __value;
258
258
  }
259
- inline bool isPlaylistPartiallyDownloaded(const std::string& playlistId) override {
259
+ inline std::shared_ptr<Promise<bool>> isPlaylistPartiallyDownloaded(const std::string& playlistId) override {
260
260
  auto __result = _swiftPart.isPlaylistPartiallyDownloaded(playlistId);
261
261
  if (__result.hasError()) [[unlikely]] {
262
262
  std::rethrow_exception(__result.error());
@@ -264,7 +264,7 @@ namespace margelo::nitro::nitroplayer {
264
264
  auto __value = std::move(__result.value());
265
265
  return __value;
266
266
  }
267
- inline std::variant<nitro::NullType, DownloadedTrack> getDownloadedTrack(const std::string& trackId) override {
267
+ inline std::shared_ptr<Promise<std::variant<nitro::NullType, DownloadedTrack>>> getDownloadedTrack(const std::string& trackId) override {
268
268
  auto __result = _swiftPart.getDownloadedTrack(trackId);
269
269
  if (__result.hasError()) [[unlikely]] {
270
270
  std::rethrow_exception(__result.error());
@@ -272,7 +272,7 @@ namespace margelo::nitro::nitroplayer {
272
272
  auto __value = std::move(__result.value());
273
273
  return __value;
274
274
  }
275
- inline std::vector<DownloadedTrack> getAllDownloadedTracks() override {
275
+ inline std::shared_ptr<Promise<std::vector<DownloadedTrack>>> getAllDownloadedTracks() override {
276
276
  auto __result = _swiftPart.getAllDownloadedTracks();
277
277
  if (__result.hasError()) [[unlikely]] {
278
278
  std::rethrow_exception(__result.error());
@@ -280,7 +280,7 @@ namespace margelo::nitro::nitroplayer {
280
280
  auto __value = std::move(__result.value());
281
281
  return __value;
282
282
  }
283
- inline std::variant<nitro::NullType, DownloadedPlaylist> getDownloadedPlaylist(const std::string& playlistId) override {
283
+ inline std::shared_ptr<Promise<std::variant<nitro::NullType, DownloadedPlaylist>>> getDownloadedPlaylist(const std::string& playlistId) override {
284
284
  auto __result = _swiftPart.getDownloadedPlaylist(playlistId);
285
285
  if (__result.hasError()) [[unlikely]] {
286
286
  std::rethrow_exception(__result.error());
@@ -288,7 +288,7 @@ namespace margelo::nitro::nitroplayer {
288
288
  auto __value = std::move(__result.value());
289
289
  return __value;
290
290
  }
291
- inline std::vector<DownloadedPlaylist> getAllDownloadedPlaylists() override {
291
+ inline std::shared_ptr<Promise<std::vector<DownloadedPlaylist>>> getAllDownloadedPlaylists() override {
292
292
  auto __result = _swiftPart.getAllDownloadedPlaylists();
293
293
  if (__result.hasError()) [[unlikely]] {
294
294
  std::rethrow_exception(__result.error());
@@ -296,7 +296,7 @@ namespace margelo::nitro::nitroplayer {
296
296
  auto __value = std::move(__result.value());
297
297
  return __value;
298
298
  }
299
- inline std::variant<nitro::NullType, std::string> getLocalPath(const std::string& trackId) override {
299
+ inline std::shared_ptr<Promise<std::variant<nitro::NullType, std::string>>> getLocalPath(const std::string& trackId) override {
300
300
  auto __result = _swiftPart.getLocalPath(trackId);
301
301
  if (__result.hasError()) [[unlikely]] {
302
302
  std::rethrow_exception(__result.error());
@@ -336,7 +336,7 @@ namespace margelo::nitro::nitroplayer {
336
336
  auto __value = std::move(__result.value());
337
337
  return __value;
338
338
  }
339
- inline double syncDownloads() override {
339
+ inline std::shared_ptr<Promise<double>> syncDownloads() override {
340
340
  auto __result = _swiftPart.syncDownloads();
341
341
  if (__result.hasError()) [[unlikely]] {
342
342
  std::rethrow_exception(__result.error());
@@ -358,7 +358,7 @@ namespace margelo::nitro::nitroplayer {
358
358
  auto __value = std::move(__result.value());
359
359
  return __value;
360
360
  }
361
- inline std::string getEffectiveUrl(const TrackItem& track) override {
361
+ inline std::shared_ptr<Promise<std::string>> getEffectiveUrl(const TrackItem& track) override {
362
362
  auto __result = _swiftPart.getEffectiveUrl(std::forward<decltype(track)>(track));
363
363
  if (__result.hasError()) [[unlikely]] {
364
364
  std::rethrow_exception(__result.error());
@@ -23,6 +23,7 @@ namespace margelo::nitro::nitroplayer { enum class PresetType; }
23
23
  // Forward declaration of `EqualizerState` to properly resolve imports.
24
24
  namespace margelo::nitro::nitroplayer { struct EqualizerState; }
25
25
 
26
+ #include <NitroModules/Promise.hpp>
26
27
  #include "EqualizerBand.hpp"
27
28
  #include <vector>
28
29
  #include <string>
@@ -85,7 +86,7 @@ namespace margelo::nitro::nitroplayer {
85
86
 
86
87
  public:
87
88
  // Methods
88
- inline bool setEnabled(bool enabled) override {
89
+ inline std::shared_ptr<Promise<void>> setEnabled(bool enabled) override {
89
90
  auto __result = _swiftPart.setEnabled(std::forward<decltype(enabled)>(enabled));
90
91
  if (__result.hasError()) [[unlikely]] {
91
92
  std::rethrow_exception(__result.error());
@@ -101,7 +102,7 @@ namespace margelo::nitro::nitroplayer {
101
102
  auto __value = std::move(__result.value());
102
103
  return __value;
103
104
  }
104
- inline std::vector<EqualizerBand> getBands() override {
105
+ inline std::shared_ptr<Promise<std::vector<EqualizerBand>>> getBands() override {
105
106
  auto __result = _swiftPart.getBands();
106
107
  if (__result.hasError()) [[unlikely]] {
107
108
  std::rethrow_exception(__result.error());
@@ -109,7 +110,7 @@ namespace margelo::nitro::nitroplayer {
109
110
  auto __value = std::move(__result.value());
110
111
  return __value;
111
112
  }
112
- inline bool setBandGain(double bandIndex, double gainDb) override {
113
+ inline std::shared_ptr<Promise<void>> setBandGain(double bandIndex, double gainDb) override {
113
114
  auto __result = _swiftPart.setBandGain(std::forward<decltype(bandIndex)>(bandIndex), std::forward<decltype(gainDb)>(gainDb));
114
115
  if (__result.hasError()) [[unlikely]] {
115
116
  std::rethrow_exception(__result.error());
@@ -117,7 +118,7 @@ namespace margelo::nitro::nitroplayer {
117
118
  auto __value = std::move(__result.value());
118
119
  return __value;
119
120
  }
120
- inline bool setAllBandGains(const std::vector<double>& gains) override {
121
+ inline std::shared_ptr<Promise<void>> setAllBandGains(const std::vector<double>& gains) override {
121
122
  auto __result = _swiftPart.setAllBandGains(gains);
122
123
  if (__result.hasError()) [[unlikely]] {
123
124
  std::rethrow_exception(__result.error());
@@ -157,7 +158,7 @@ namespace margelo::nitro::nitroplayer {
157
158
  auto __value = std::move(__result.value());
158
159
  return __value;
159
160
  }
160
- inline bool applyPreset(const std::string& presetName) override {
161
+ inline std::shared_ptr<Promise<void>> applyPreset(const std::string& presetName) override {
161
162
  auto __result = _swiftPart.applyPreset(presetName);
162
163
  if (__result.hasError()) [[unlikely]] {
163
164
  std::rethrow_exception(__result.error());
@@ -173,7 +174,7 @@ namespace margelo::nitro::nitroplayer {
173
174
  auto __value = std::move(__result.value());
174
175
  return __value;
175
176
  }
176
- inline bool saveCustomPreset(const std::string& name) override {
177
+ inline std::shared_ptr<Promise<void>> saveCustomPreset(const std::string& name) override {
177
178
  auto __result = _swiftPart.saveCustomPreset(name);
178
179
  if (__result.hasError()) [[unlikely]] {
179
180
  std::rethrow_exception(__result.error());
@@ -181,7 +182,7 @@ namespace margelo::nitro::nitroplayer {
181
182
  auto __value = std::move(__result.value());
182
183
  return __value;
183
184
  }
184
- inline bool deleteCustomPreset(const std::string& name) override {
185
+ inline std::shared_ptr<Promise<void>> deleteCustomPreset(const std::string& name) override {
185
186
  auto __result = _swiftPart.deleteCustomPreset(name);
186
187
  if (__result.hasError()) [[unlikely]] {
187
188
  std::rethrow_exception(__result.error());
@@ -189,7 +190,7 @@ namespace margelo::nitro::nitroplayer {
189
190
  auto __value = std::move(__result.value());
190
191
  return __value;
191
192
  }
192
- inline EqualizerState getState() override {
193
+ inline std::shared_ptr<Promise<EqualizerState>> getState() override {
193
194
  auto __result = _swiftPart.getState();
194
195
  if (__result.hasError()) [[unlikely]] {
195
196
  std::rethrow_exception(__result.error());
@@ -197,11 +198,13 @@ namespace margelo::nitro::nitroplayer {
197
198
  auto __value = std::move(__result.value());
198
199
  return __value;
199
200
  }
200
- inline void reset() override {
201
+ inline std::shared_ptr<Promise<void>> reset() override {
201
202
  auto __result = _swiftPart.reset();
202
203
  if (__result.hasError()) [[unlikely]] {
203
204
  std::rethrow_exception(__result.error());
204
205
  }
206
+ auto __value = std::move(__result.value());
207
+ return __value;
205
208
  }
206
209
  inline void onEnabledChange(const std::function<void(bool /* enabled */)>& callback) override {
207
210
  auto __result = _swiftPart.onEnabledChange(callback);
@@ -20,6 +20,7 @@ namespace margelo::nitro::nitroplayer { struct TrackItem; }
20
20
  namespace margelo::nitro::nitroplayer { enum class QueueOperation; }
21
21
 
22
22
  #include <string>
23
+ #include <NitroModules/Promise.hpp>
23
24
  #include <optional>
24
25
  #include <NitroModules/Null.hpp>
25
26
  #include "Playlist.hpp"
@@ -80,7 +81,7 @@ namespace margelo::nitro::nitroplayer {
80
81
 
81
82
  public:
82
83
  // Methods
83
- inline std::string createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override {
84
+ inline std::shared_ptr<Promise<std::string>> createPlaylist(const std::string& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override {
84
85
  auto __result = _swiftPart.createPlaylist(name, description, artwork);
85
86
  if (__result.hasError()) [[unlikely]] {
86
87
  std::rethrow_exception(__result.error());
@@ -88,17 +89,21 @@ namespace margelo::nitro::nitroplayer {
88
89
  auto __value = std::move(__result.value());
89
90
  return __value;
90
91
  }
91
- inline void deletePlaylist(const std::string& playlistId) override {
92
+ inline std::shared_ptr<Promise<void>> deletePlaylist(const std::string& playlistId) override {
92
93
  auto __result = _swiftPart.deletePlaylist(playlistId);
93
94
  if (__result.hasError()) [[unlikely]] {
94
95
  std::rethrow_exception(__result.error());
95
96
  }
97
+ auto __value = std::move(__result.value());
98
+ return __value;
96
99
  }
97
- inline void updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override {
100
+ inline std::shared_ptr<Promise<void>> updatePlaylist(const std::string& playlistId, const std::optional<std::string>& name, const std::optional<std::string>& description, const std::optional<std::string>& artwork) override {
98
101
  auto __result = _swiftPart.updatePlaylist(playlistId, name, description, artwork);
99
102
  if (__result.hasError()) [[unlikely]] {
100
103
  std::rethrow_exception(__result.error());
101
104
  }
105
+ auto __value = std::move(__result.value());
106
+ return __value;
102
107
  }
103
108
  inline std::variant<nitro::NullType, Playlist> getPlaylist(const std::string& playlistId) override {
104
109
  auto __result = _swiftPart.getPlaylist(playlistId);
@@ -116,35 +121,45 @@ namespace margelo::nitro::nitroplayer {
116
121
  auto __value = std::move(__result.value());
117
122
  return __value;
118
123
  }
119
- inline void addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) override {
124
+ inline std::shared_ptr<Promise<void>> addTrackToPlaylist(const std::string& playlistId, const TrackItem& track, std::optional<double> index) override {
120
125
  auto __result = _swiftPart.addTrackToPlaylist(playlistId, std::forward<decltype(track)>(track), index);
121
126
  if (__result.hasError()) [[unlikely]] {
122
127
  std::rethrow_exception(__result.error());
123
128
  }
129
+ auto __value = std::move(__result.value());
130
+ return __value;
124
131
  }
125
- inline void addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) override {
132
+ inline std::shared_ptr<Promise<void>> addTracksToPlaylist(const std::string& playlistId, const std::vector<TrackItem>& tracks, std::optional<double> index) override {
126
133
  auto __result = _swiftPart.addTracksToPlaylist(playlistId, tracks, index);
127
134
  if (__result.hasError()) [[unlikely]] {
128
135
  std::rethrow_exception(__result.error());
129
136
  }
137
+ auto __value = std::move(__result.value());
138
+ return __value;
130
139
  }
131
- inline void removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) override {
140
+ inline std::shared_ptr<Promise<void>> removeTrackFromPlaylist(const std::string& playlistId, const std::string& trackId) override {
132
141
  auto __result = _swiftPart.removeTrackFromPlaylist(playlistId, trackId);
133
142
  if (__result.hasError()) [[unlikely]] {
134
143
  std::rethrow_exception(__result.error());
135
144
  }
145
+ auto __value = std::move(__result.value());
146
+ return __value;
136
147
  }
137
- inline void reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) override {
148
+ inline std::shared_ptr<Promise<void>> reorderTrackInPlaylist(const std::string& playlistId, const std::string& trackId, double newIndex) override {
138
149
  auto __result = _swiftPart.reorderTrackInPlaylist(playlistId, trackId, std::forward<decltype(newIndex)>(newIndex));
139
150
  if (__result.hasError()) [[unlikely]] {
140
151
  std::rethrow_exception(__result.error());
141
152
  }
153
+ auto __value = std::move(__result.value());
154
+ return __value;
142
155
  }
143
- inline void loadPlaylist(const std::string& playlistId) override {
156
+ inline std::shared_ptr<Promise<void>> loadPlaylist(const std::string& playlistId) override {
144
157
  auto __result = _swiftPart.loadPlaylist(playlistId);
145
158
  if (__result.hasError()) [[unlikely]] {
146
159
  std::rethrow_exception(__result.error());
147
160
  }
161
+ auto __value = std::move(__result.value());
162
+ return __value;
148
163
  }
149
164
  inline std::variant<nitro::NullType, std::string> getCurrentPlaylistId() override {
150
165
  auto __result = _swiftPart.getCurrentPlaylistId();
@@ -93,17 +93,21 @@ namespace margelo::nitro::nitroplayer {
93
93
 
94
94
  public:
95
95
  // Methods
96
- inline void play() override {
96
+ inline std::shared_ptr<Promise<void>> play() override {
97
97
  auto __result = _swiftPart.play();
98
98
  if (__result.hasError()) [[unlikely]] {
99
99
  std::rethrow_exception(__result.error());
100
100
  }
101
+ auto __value = std::move(__result.value());
102
+ return __value;
101
103
  }
102
- inline void pause() override {
104
+ inline std::shared_ptr<Promise<void>> pause() override {
103
105
  auto __result = _swiftPart.pause();
104
106
  if (__result.hasError()) [[unlikely]] {
105
107
  std::rethrow_exception(__result.error());
106
108
  }
109
+ auto __value = std::move(__result.value());
110
+ return __value;
107
111
  }
108
112
  inline std::shared_ptr<Promise<void>> playSong(const std::string& songId, const std::optional<std::string>& fromPlaylist) override {
109
113
  auto __result = _swiftPart.playSong(songId, fromPlaylist);
@@ -113,11 +117,13 @@ namespace margelo::nitro::nitroplayer {
113
117
  auto __value = std::move(__result.value());
114
118
  return __value;
115
119
  }
116
- inline void skipToNext() override {
120
+ inline std::shared_ptr<Promise<void>> skipToNext() override {
117
121
  auto __result = _swiftPart.skipToNext();
118
122
  if (__result.hasError()) [[unlikely]] {
119
123
  std::rethrow_exception(__result.error());
120
124
  }
125
+ auto __value = std::move(__result.value());
126
+ return __value;
121
127
  }
122
128
  inline std::shared_ptr<Promise<bool>> skipToIndex(double index) override {
123
129
  auto __result = _swiftPart.skipToIndex(std::forward<decltype(index)>(index));
@@ -127,17 +133,21 @@ namespace margelo::nitro::nitroplayer {
127
133
  auto __value = std::move(__result.value());
128
134
  return __value;
129
135
  }
130
- inline void skipToPrevious() override {
136
+ inline std::shared_ptr<Promise<void>> skipToPrevious() override {
131
137
  auto __result = _swiftPart.skipToPrevious();
132
138
  if (__result.hasError()) [[unlikely]] {
133
139
  std::rethrow_exception(__result.error());
134
140
  }
141
+ auto __value = std::move(__result.value());
142
+ return __value;
135
143
  }
136
- inline void seek(double position) override {
144
+ inline std::shared_ptr<Promise<void>> seek(double position) override {
137
145
  auto __result = _swiftPart.seek(std::forward<decltype(position)>(position));
138
146
  if (__result.hasError()) [[unlikely]] {
139
147
  std::rethrow_exception(__result.error());
140
148
  }
149
+ auto __value = std::move(__result.value());
150
+ return __value;
141
151
  }
142
152
  inline std::shared_ptr<Promise<void>> addToUpNext(const std::string& trackId) override {
143
153
  auto __result = _swiftPart.addToUpNext(trackId);
@@ -171,7 +181,7 @@ namespace margelo::nitro::nitroplayer {
171
181
  auto __value = std::move(__result.value());
172
182
  return __value;
173
183
  }
174
- inline bool setRepeatMode(RepeatMode mode) override {
184
+ inline std::shared_ptr<Promise<void>> setRepeatMode(RepeatMode mode) override {
175
185
  auto __result = _swiftPart.setRepeatMode(static_cast<int>(mode));
176
186
  if (__result.hasError()) [[unlikely]] {
177
187
  std::rethrow_exception(__result.error());
@@ -187,11 +197,13 @@ namespace margelo::nitro::nitroplayer {
187
197
  auto __value = std::move(__result.value());
188
198
  return __value;
189
199
  }
190
- inline void configure(const PlayerConfig& config) override {
200
+ inline std::shared_ptr<Promise<void>> configure(const PlayerConfig& config) override {
191
201
  auto __result = _swiftPart.configure(std::forward<decltype(config)>(config));
192
202
  if (__result.hasError()) [[unlikely]] {
193
203
  std::rethrow_exception(__result.error());
194
204
  }
205
+ auto __value = std::move(__result.value());
206
+ return __value;
195
207
  }
196
208
  inline void onChangeTrack(const std::function<void(const TrackItem& /* track */, std::optional<Reason> /* reason */)>& callback) override {
197
209
  auto __result = _swiftPart.onChangeTrack(callback);
@@ -231,7 +243,7 @@ namespace margelo::nitro::nitroplayer {
231
243
  auto __value = std::move(__result.value());
232
244
  return __value;
233
245
  }
234
- inline bool setVolume(double volume) override {
246
+ inline std::shared_ptr<Promise<void>> setVolume(double volume) override {
235
247
  auto __result = _swiftPart.setVolume(std::forward<decltype(volume)>(volume));
236
248
  if (__result.hasError()) [[unlikely]] {
237
249
  std::rethrow_exception(__result.error());
@@ -301,6 +313,68 @@ namespace margelo::nitro::nitroplayer {
301
313
  auto __value = std::move(__result.value());
302
314
  return __value;
303
315
  }
316
+ inline std::shared_ptr<Promise<bool>> removeFromPlayNext(const std::string& trackId) override {
317
+ auto __result = _swiftPart.removeFromPlayNext(trackId);
318
+ if (__result.hasError()) [[unlikely]] {
319
+ std::rethrow_exception(__result.error());
320
+ }
321
+ auto __value = std::move(__result.value());
322
+ return __value;
323
+ }
324
+ inline std::shared_ptr<Promise<bool>> removeFromUpNext(const std::string& trackId) override {
325
+ auto __result = _swiftPart.removeFromUpNext(trackId);
326
+ if (__result.hasError()) [[unlikely]] {
327
+ std::rethrow_exception(__result.error());
328
+ }
329
+ auto __value = std::move(__result.value());
330
+ return __value;
331
+ }
332
+ inline std::shared_ptr<Promise<void>> clearPlayNext() override {
333
+ auto __result = _swiftPart.clearPlayNext();
334
+ if (__result.hasError()) [[unlikely]] {
335
+ std::rethrow_exception(__result.error());
336
+ }
337
+ auto __value = std::move(__result.value());
338
+ return __value;
339
+ }
340
+ inline std::shared_ptr<Promise<void>> clearUpNext() override {
341
+ auto __result = _swiftPart.clearUpNext();
342
+ if (__result.hasError()) [[unlikely]] {
343
+ std::rethrow_exception(__result.error());
344
+ }
345
+ auto __value = std::move(__result.value());
346
+ return __value;
347
+ }
348
+ inline std::shared_ptr<Promise<bool>> reorderTemporaryTrack(const std::string& trackId, double newIndex) override {
349
+ auto __result = _swiftPart.reorderTemporaryTrack(trackId, std::forward<decltype(newIndex)>(newIndex));
350
+ if (__result.hasError()) [[unlikely]] {
351
+ std::rethrow_exception(__result.error());
352
+ }
353
+ auto __value = std::move(__result.value());
354
+ return __value;
355
+ }
356
+ inline std::shared_ptr<Promise<std::vector<TrackItem>>> getPlayNextQueue() override {
357
+ auto __result = _swiftPart.getPlayNextQueue();
358
+ if (__result.hasError()) [[unlikely]] {
359
+ std::rethrow_exception(__result.error());
360
+ }
361
+ auto __value = std::move(__result.value());
362
+ return __value;
363
+ }
364
+ inline std::shared_ptr<Promise<std::vector<TrackItem>>> getUpNextQueue() override {
365
+ auto __result = _swiftPart.getUpNextQueue();
366
+ if (__result.hasError()) [[unlikely]] {
367
+ std::rethrow_exception(__result.error());
368
+ }
369
+ auto __value = std::move(__result.value());
370
+ return __value;
371
+ }
372
+ inline void onTemporaryQueueChange(const std::function<void(const std::vector<TrackItem>& /* playNextQueue */, const std::vector<TrackItem>& /* upNextQueue */)>& callback) override {
373
+ auto __result = _swiftPart.onTemporaryQueueChange(callback);
374
+ if (__result.hasError()) [[unlikely]] {
375
+ std::rethrow_exception(__result.error());
376
+ }
377
+ }
304
378
 
305
379
  private:
306
380
  NitroPlayer::HybridTrackPlayerSpec_cxx _swiftPart;
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// Func_void_EqualizerState.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: EqualizerState) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_EqualizerState {
15
+ public typealias bridge = margelo.nitro.nitroplayer.bridge.swift
16
+
17
+ private let closure: (_ value: EqualizerState) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: EqualizerState) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: EqualizerState) -> Void {
25
+ self.closure(value)
26
+ }
27
+
28
+ /**
29
+ * Casts this instance to a retained unsafe raw pointer.
30
+ * This acquires one additional strong reference on the object!
31
+ */
32
+ @inline(__always)
33
+ public func toUnsafe() -> UnsafeMutableRawPointer {
34
+ return Unmanaged.passRetained(self).toOpaque()
35
+ }
36
+
37
+ /**
38
+ * Casts an unsafe pointer to a `Func_void_EqualizerState`.
39
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_EqualizerState>`.
40
+ * This removes one strong reference from the object!
41
+ */
42
+ @inline(__always)
43
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_EqualizerState {
44
+ return Unmanaged<Func_void_EqualizerState>.fromOpaque(pointer).takeRetainedValue()
45
+ }
46
+ }
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// Func_void_std__variant_nitro__NullType__DownloadedPlaylist_.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: Variant_NullType_DownloadedPlaylist) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_std__variant_nitro__NullType__DownloadedPlaylist_ {
15
+ public typealias bridge = margelo.nitro.nitroplayer.bridge.swift
16
+
17
+ private let closure: (_ value: Variant_NullType_DownloadedPlaylist) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: Variant_NullType_DownloadedPlaylist) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: bridge.std__variant_nitro__NullType__DownloadedPlaylist_) -> Void {
25
+ self.closure({ () -> Variant_NullType_DownloadedPlaylist in
26
+ let __variant = value
27
+ switch __variant.index() {
28
+ case 0:
29
+ let __actual = __variant.get_0()
30
+ return .first(NullType.null)
31
+ case 1:
32
+ let __actual = __variant.get_1()
33
+ return .second(__actual)
34
+ default:
35
+ fatalError("Variant can never have index \(__variant.index())!")
36
+ }
37
+ }())
38
+ }
39
+
40
+ /**
41
+ * Casts this instance to a retained unsafe raw pointer.
42
+ * This acquires one additional strong reference on the object!
43
+ */
44
+ @inline(__always)
45
+ public func toUnsafe() -> UnsafeMutableRawPointer {
46
+ return Unmanaged.passRetained(self).toOpaque()
47
+ }
48
+
49
+ /**
50
+ * Casts an unsafe pointer to a `Func_void_std__variant_nitro__NullType__DownloadedPlaylist_`.
51
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_std__variant_nitro__NullType__DownloadedPlaylist_>`.
52
+ * This removes one strong reference from the object!
53
+ */
54
+ @inline(__always)
55
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__variant_nitro__NullType__DownloadedPlaylist_ {
56
+ return Unmanaged<Func_void_std__variant_nitro__NullType__DownloadedPlaylist_>.fromOpaque(pointer).takeRetainedValue()
57
+ }
58
+ }
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// Func_void_std__variant_nitro__NullType__DownloadedTrack_.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: Variant_NullType_DownloadedTrack) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_std__variant_nitro__NullType__DownloadedTrack_ {
15
+ public typealias bridge = margelo.nitro.nitroplayer.bridge.swift
16
+
17
+ private let closure: (_ value: Variant_NullType_DownloadedTrack) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: Variant_NullType_DownloadedTrack) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: bridge.std__variant_nitro__NullType__DownloadedTrack_) -> Void {
25
+ self.closure({ () -> Variant_NullType_DownloadedTrack in
26
+ let __variant = value
27
+ switch __variant.index() {
28
+ case 0:
29
+ let __actual = __variant.get_0()
30
+ return .first(NullType.null)
31
+ case 1:
32
+ let __actual = __variant.get_1()
33
+ return .second(__actual)
34
+ default:
35
+ fatalError("Variant can never have index \(__variant.index())!")
36
+ }
37
+ }())
38
+ }
39
+
40
+ /**
41
+ * Casts this instance to a retained unsafe raw pointer.
42
+ * This acquires one additional strong reference on the object!
43
+ */
44
+ @inline(__always)
45
+ public func toUnsafe() -> UnsafeMutableRawPointer {
46
+ return Unmanaged.passRetained(self).toOpaque()
47
+ }
48
+
49
+ /**
50
+ * Casts an unsafe pointer to a `Func_void_std__variant_nitro__NullType__DownloadedTrack_`.
51
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_std__variant_nitro__NullType__DownloadedTrack_>`.
52
+ * This removes one strong reference from the object!
53
+ */
54
+ @inline(__always)
55
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__variant_nitro__NullType__DownloadedTrack_ {
56
+ return Unmanaged<Func_void_std__variant_nitro__NullType__DownloadedTrack_>.fromOpaque(pointer).takeRetainedValue()
57
+ }
58
+ }
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// Func_void_std__variant_nitro__NullType__std__string_.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: Variant_NullType_String) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_std__variant_nitro__NullType__std__string_ {
15
+ public typealias bridge = margelo.nitro.nitroplayer.bridge.swift
16
+
17
+ private let closure: (_ value: Variant_NullType_String) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: Variant_NullType_String) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: bridge.std__variant_nitro__NullType__std__string_) -> Void {
25
+ self.closure({ () -> Variant_NullType_String in
26
+ let __variant = value
27
+ switch __variant.index() {
28
+ case 0:
29
+ let __actual = __variant.get_0()
30
+ return .first(NullType.null)
31
+ case 1:
32
+ let __actual = __variant.get_1()
33
+ return .second(String(__actual))
34
+ default:
35
+ fatalError("Variant can never have index \(__variant.index())!")
36
+ }
37
+ }())
38
+ }
39
+
40
+ /**
41
+ * Casts this instance to a retained unsafe raw pointer.
42
+ * This acquires one additional strong reference on the object!
43
+ */
44
+ @inline(__always)
45
+ public func toUnsafe() -> UnsafeMutableRawPointer {
46
+ return Unmanaged.passRetained(self).toOpaque()
47
+ }
48
+
49
+ /**
50
+ * Casts an unsafe pointer to a `Func_void_std__variant_nitro__NullType__std__string_`.
51
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_std__variant_nitro__NullType__std__string_>`.
52
+ * This removes one strong reference from the object!
53
+ */
54
+ @inline(__always)
55
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__variant_nitro__NullType__std__string_ {
56
+ return Unmanaged<Func_void_std__variant_nitro__NullType__std__string_>.fromOpaque(pointer).takeRetainedValue()
57
+ }
58
+ }