react-native-video-trim 3.0.10 → 4.0.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 (87) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +46 -57
  3. package/VideoTrim.podspec +24 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +76 -51
  6. package/android/gradle.properties +5 -5
  7. package/android/src/main/AndroidManifest.xml +4 -2
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +629 -0
  10. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +22 -0
  11. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/enums/ErrorCode.java +1 -1
  12. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/IVideoTrimmerView.java +1 -1
  13. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/VideoTrimListener.java +6 -5
  14. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/MediaMetadataUtil.java +1 -1
  15. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java +3 -1
  16. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/VideoTrimmerUtil.java +22 -20
  17. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/widgets/VideoTrimmerView.java +38 -66
  18. package/ios/AssetLoader.swift +2 -2
  19. package/ios/ErrorCode.swift +2 -2
  20. package/ios/ProgressAlertController.swift +2 -2
  21. package/ios/VideoTrim.swift +48 -838
  22. package/ios/VideoTrimImpl.swift +860 -0
  23. package/ios/VideoTrimmer.swift +2 -3
  24. package/ios/VideoTrimmerThumb.swift +33 -26
  25. package/ios/VideoTrimmerViewController.swift +47 -28
  26. package/lib/module/VideoTrim.nitro.js +4 -0
  27. package/lib/module/VideoTrim.nitro.js.map +1 -0
  28. package/lib/module/index.js +71 -22
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/package.json +1 -0
  31. package/lib/typescript/package.json +1 -0
  32. package/lib/typescript/{index.d.ts → src/VideoTrim.nitro.d.ts} +63 -89
  33. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -0
  34. package/lib/typescript/src/index.d.ts +41 -0
  35. package/lib/typescript/src/index.d.ts.map +1 -0
  36. package/nitrogen/generated/android/c++/JEditorConfig.hpp +229 -0
  37. package/nitrogen/generated/android/c++/JFileValidationResult.hpp +61 -0
  38. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  39. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +89 -0
  40. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +131 -0
  41. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +67 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +70 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +28 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +80 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +80 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +82 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +35 -0
  48. package/nitrogen/generated/android/videotrim+autolinking.cmake +78 -0
  49. package/nitrogen/generated/android/videotrim+autolinking.gradle +27 -0
  50. package/nitrogen/generated/android/videotrimOnLoad.cpp +50 -0
  51. package/nitrogen/generated/android/videotrimOnLoad.hpp +25 -0
  52. package/nitrogen/generated/ios/VideoTrim+autolinking.rb +60 -0
  53. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +88 -0
  54. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +331 -0
  55. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +53 -0
  56. package/nitrogen/generated/ios/VideoTrimAutolinking.mm +33 -0
  57. package/nitrogen/generated/ios/VideoTrimAutolinking.swift +25 -0
  58. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +11 -0
  59. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +116 -0
  60. package/nitrogen/generated/ios/swift/EditorConfig.swift +519 -0
  61. package/nitrogen/generated/ios/swift/FileValidationResult.swift +57 -0
  62. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  63. package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +46 -0
  64. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  65. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  66. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  67. package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +54 -0
  68. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
  69. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +53 -0
  70. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +222 -0
  71. package/nitrogen/generated/shared/c++/EditorConfig.hpp +245 -0
  72. package/nitrogen/generated/shared/c++/FileValidationResult.hpp +77 -0
  73. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +26 -0
  74. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +76 -0
  75. package/package.json +75 -71
  76. package/src/VideoTrim.nitro.ts +244 -0
  77. package/src/index.tsx +87 -258
  78. package/android/src/main/AndroidManifestDeprecated.xml +0 -3
  79. package/android/src/main/java/com/videotrim/VideoTrimModule.java +0 -603
  80. package/android/src/main/java/com/videotrim/VideoTrimPackage.java +0 -28
  81. package/ios/VideoTrim-Bridging-Header.h +0 -2
  82. package/ios/VideoTrim.mm +0 -17
  83. package/ios/VideoTrim.xcodeproj/project.pbxproj +0 -283
  84. package/lib/commonjs/index.js +0 -87
  85. package/lib/commonjs/index.js.map +0 -1
  86. package/lib/typescript/index.d.ts.map +0 -1
  87. package/react-native-video-trim.podspec +0 -43
@@ -0,0 +1,82 @@
1
+ ///
2
+ /// HybridVideoTrimSpec.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.videotrim
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.*
14
+
15
+ /**
16
+ * A Kotlin class representing the VideoTrim HybridObject.
17
+ * Implement this abstract class to create Kotlin-based instances of VideoTrim.
18
+ */
19
+ @DoNotStrip
20
+ @Keep
21
+ @Suppress(
22
+ "KotlinJniMissingFunction", "unused",
23
+ "RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
24
+ "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
25
+ )
26
+ abstract class HybridVideoTrimSpec: HybridObject() {
27
+ @DoNotStrip
28
+ private var mHybridData: HybridData = initHybrid()
29
+
30
+ init {
31
+ super.updateNative(mHybridData)
32
+ }
33
+
34
+ override fun updateNative(hybridData: HybridData) {
35
+ mHybridData = hybridData
36
+ super.updateNative(hybridData)
37
+ }
38
+
39
+ // Properties
40
+
41
+
42
+ // Methods
43
+ abstract fun showEditor(filePath: String, config: EditorConfig, onEvent: (eventName: String, payload: Map<String, String>) -> Unit): Unit
44
+
45
+ @DoNotStrip
46
+ @Keep
47
+ private fun showEditor_cxx(filePath: String, config: EditorConfig, onEvent: Func_void_std__string_std__unordered_map_std__string__std__string_): Unit {
48
+ val __result = showEditor(filePath, config, onEvent)
49
+ return __result
50
+ }
51
+
52
+ @DoNotStrip
53
+ @Keep
54
+ abstract fun listFiles(): Promise<Array<String>>
55
+
56
+ @DoNotStrip
57
+ @Keep
58
+ abstract fun cleanFiles(): Promise<Double>
59
+
60
+ @DoNotStrip
61
+ @Keep
62
+ abstract fun deleteFile(filePath: String): Promise<Boolean>
63
+
64
+ abstract fun closeEditor(onComplete: () -> Unit): Unit
65
+
66
+ @DoNotStrip
67
+ @Keep
68
+ private fun closeEditor_cxx(onComplete: Func_void): Unit {
69
+ val __result = closeEditor(onComplete)
70
+ return __result
71
+ }
72
+
73
+ @DoNotStrip
74
+ @Keep
75
+ abstract fun isValidFile(url: String): Promise<FileValidationResult>
76
+
77
+ private external fun initHybrid(): HybridData
78
+
79
+ companion object {
80
+ private const val TAG = "HybridVideoTrimSpec"
81
+ }
82
+ }
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// videotrimOnLoad.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.videotrim
9
+
10
+ import android.util.Log
11
+
12
+ internal class videotrimOnLoad {
13
+ companion object {
14
+ private const val TAG = "videotrimOnLoad"
15
+ private var didLoad = false
16
+ /**
17
+ * Initializes the native part of "videotrim".
18
+ * This method is idempotent and can be called more than once.
19
+ */
20
+ @JvmStatic
21
+ fun initializeNative() {
22
+ if (didLoad) return
23
+ try {
24
+ Log.i(TAG, "Loading videotrim C++ library...")
25
+ System.loadLibrary("videotrim")
26
+ Log.i(TAG, "Successfully loaded videotrim C++ library!")
27
+ didLoad = true
28
+ } catch (e: Error) {
29
+ Log.e(TAG, "Failed to load videotrim C++ library! Is it properly installed and linked? " +
30
+ "Is the name correct? (see `CMakeLists.txt`, at `add_library(...)`)", e)
31
+ throw e
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,78 @@
1
+ #
2
+ # videotrim+autolinking.cmake
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © 2025 Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a CMake file that adds all files generated by Nitrogen
9
+ # to the current CMake project.
10
+ #
11
+ # To use it, add this to your CMakeLists.txt:
12
+ # ```cmake
13
+ # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/videotrim+autolinking.cmake)
14
+ # ```
15
+
16
+ # Add all headers that were generated by Nitrogen
17
+ include_directories(
18
+ "../nitrogen/generated/shared/c++"
19
+ "../nitrogen/generated/android/c++"
20
+ "../nitrogen/generated/android/"
21
+ )
22
+
23
+ # Add all .cpp sources that were generated by Nitrogen
24
+ target_sources(
25
+ # CMake project name (Android C++ library name)
26
+ videotrim PRIVATE
27
+ # Autolinking Setup
28
+ ../nitrogen/generated/android/videotrimOnLoad.cpp
29
+ # Shared Nitrogen C++ sources
30
+ ../nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp
31
+ # Android-specific Nitrogen C++ sources
32
+ ../nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp
33
+ )
34
+
35
+ # Define a flag to check if we are building properly
36
+ add_definitions(-DBUILDING_VIDEOTRIM_WITH_GENERATED_CMAKE_PROJECT)
37
+
38
+ # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
39
+ # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
40
+ target_compile_definitions(
41
+ videotrim PRIVATE
42
+ -DFOLLY_NO_CONFIG=1
43
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
44
+ -DFOLLY_USE_LIBCPP=1
45
+ -DFOLLY_CFG_NO_COROUTINES=1
46
+ -DFOLLY_MOBILE=1
47
+ -DFOLLY_HAVE_RECVMMSG=1
48
+ -DFOLLY_HAVE_PTHREAD=1
49
+ # Once we target android-23 above, we can comment
50
+ # the following line. NDK uses GNU style stderror_r() after API 23.
51
+ -DFOLLY_HAVE_XSI_STRERROR_R=1
52
+ )
53
+
54
+ # Add all libraries required by the generated specs
55
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
56
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
57
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
58
+
59
+ # Link all libraries together
60
+ target_link_libraries(
61
+ videotrim
62
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
63
+ ReactAndroid::jsi # <-- RN: JSI
64
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
65
+ )
66
+
67
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
68
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
69
+ target_link_libraries(
70
+ videotrim
71
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
72
+ )
73
+ else()
74
+ target_link_libraries(
75
+ videotrim
76
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
77
+ )
78
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// videotrim+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/videotrim+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 videotrim is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,50 @@
1
+ ///
2
+ /// videotrimOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_VIDEOTRIM_WITH_GENERATED_CMAKE_PROJECT
9
+ #error videotrimOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "videotrimOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "JHybridVideoTrimSpec.hpp"
19
+ #include "JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp"
20
+ #include "JFunc_void.hpp"
21
+ #include <NitroModules/JNISharedPtr.hpp>
22
+ #include <NitroModules/DefaultConstructableObject.hpp>
23
+
24
+ namespace margelo::nitro::videotrim {
25
+
26
+ int initialize(JavaVM* vm) {
27
+ using namespace margelo::nitro;
28
+ using namespace margelo::nitro::videotrim;
29
+ using namespace facebook;
30
+
31
+ return facebook::jni::initialize(vm, [] {
32
+ // Register native JNI methods
33
+ margelo::nitro::videotrim::JHybridVideoTrimSpec::registerNatives();
34
+ margelo::nitro::videotrim::JFunc_void_std__string_std__unordered_map_std__string__std__string__cxx::registerNatives();
35
+ margelo::nitro::videotrim::JFunc_void_cxx::registerNatives();
36
+
37
+ // Register Nitro Hybrid Objects
38
+ HybridObjectRegistry::registerHybridObjectConstructor(
39
+ "VideoTrim",
40
+ []() -> std::shared_ptr<HybridObject> {
41
+ static DefaultConstructableObject<JHybridVideoTrimSpec::javaobject> object("com/margelo/nitro/videotrim/VideoTrim");
42
+ auto instance = object.create();
43
+ auto globalRef = jni::make_global(instance);
44
+ return JNISharedPtr::make_shared_from_jni<JHybridVideoTrimSpec>(globalRef);
45
+ }
46
+ );
47
+ });
48
+ }
49
+
50
+ } // namespace margelo::nitro::videotrim
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// videotrimOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <NitroModules/NitroDefines.hpp>
10
+
11
+ namespace margelo::nitro::videotrim {
12
+
13
+ /**
14
+ * Initializes the native (C++) part of videotrim, and autolinks all Hybrid Objects.
15
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
16
+ * Example:
17
+ * ```cpp (cpp-adapter.cpp)
18
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
+ * return margelo::nitro::videotrim::initialize(vm);
20
+ * }
21
+ * ```
22
+ */
23
+ int initialize(JavaVM* vm);
24
+
25
+ } // namespace margelo::nitro::videotrim
@@ -0,0 +1,60 @@
1
+ #
2
+ # VideoTrim+autolinking.rb
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © 2025 Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a Ruby script that adds all files generated by Nitrogen
9
+ # to the given podspec.
10
+ #
11
+ # To use it, add this to your .podspec:
12
+ # ```ruby
13
+ # Pod::Spec.new do |spec|
14
+ # # ...
15
+ #
16
+ # # Add all files generated by Nitrogen
17
+ # load 'nitrogen/generated/ios/VideoTrim+autolinking.rb'
18
+ # add_nitrogen_files(spec)
19
+ # end
20
+ # ```
21
+
22
+ def add_nitrogen_files(spec)
23
+ Pod::UI.puts "[NitroModules] 🔥 VideoTrim is boosted by nitro!"
24
+
25
+ spec.dependency "NitroModules"
26
+
27
+ current_source_files = Array(spec.attributes_hash['source_files'])
28
+ spec.source_files = current_source_files + [
29
+ # Generated cross-platform specs
30
+ "nitrogen/generated/shared/**/*.{h,hpp,c,cpp,swift}",
31
+ # Generated bridges for the cross-platform specs
32
+ "nitrogen/generated/ios/**/*.{h,hpp,c,cpp,mm,swift}",
33
+ ]
34
+
35
+ current_public_header_files = Array(spec.attributes_hash['public_header_files'])
36
+ spec.public_header_files = current_public_header_files + [
37
+ # Generated specs
38
+ "nitrogen/generated/shared/**/*.{h,hpp}",
39
+ # Swift to C++ bridging helpers
40
+ "nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp"
41
+ ]
42
+
43
+ current_private_header_files = Array(spec.attributes_hash['private_header_files'])
44
+ spec.private_header_files = current_private_header_files + [
45
+ # iOS specific specs
46
+ "nitrogen/generated/ios/c++/**/*.{h,hpp}",
47
+ # Views are framework-specific and should be private
48
+ "nitrogen/generated/shared/**/views/**/*"
49
+ ]
50
+
51
+ current_pod_target_xcconfig = spec.attributes_hash['pod_target_xcconfig'] || {}
52
+ spec.pod_target_xcconfig = current_pod_target_xcconfig.merge({
53
+ # Use C++ 20
54
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
55
+ # Enables C++ <-> Swift interop (by default it's only C)
56
+ "SWIFT_OBJC_INTEROP_MODE" => "objcxx",
57
+ # Enables stricter modular headers
58
+ "DEFINES_MODULE" => "YES",
59
+ })
60
+ end
@@ -0,0 +1,88 @@
1
+ ///
2
+ /// VideoTrim-Swift-Cxx-Bridge.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "VideoTrim-Swift-Cxx-Bridge.hpp"
9
+
10
+ // Include C++ implementation defined types
11
+ #include "HybridVideoTrimSpecSwift.hpp"
12
+ #include "VideoTrim-Swift-Cxx-Umbrella.hpp"
13
+
14
+ namespace margelo::nitro::videotrim::bridge::swift {
15
+
16
+ // pragma MARK: std::function<void(const std::string& /* eventName */, const std::unordered_map<std::string, std::string>& /* payload */)>
17
+ Func_void_std__string_std__unordered_map_std__string__std__string_ create_Func_void_std__string_std__unordered_map_std__string__std__string_(void* _Nonnull swiftClosureWrapper) {
18
+ auto swiftClosure = VideoTrim::Func_void_std__string_std__unordered_map_std__string__std__string_::fromUnsafe(swiftClosureWrapper);
19
+ return [swiftClosure = std::move(swiftClosure)](const std::string& eventName, const std::unordered_map<std::string, std::string>& payload) mutable -> void {
20
+ swiftClosure.call(eventName, payload);
21
+ };
22
+ }
23
+
24
+ // pragma MARK: std::function<void(const std::vector<std::string>& /* result */)>
25
+ Func_void_std__vector_std__string_ create_Func_void_std__vector_std__string_(void* _Nonnull swiftClosureWrapper) {
26
+ auto swiftClosure = VideoTrim::Func_void_std__vector_std__string_::fromUnsafe(swiftClosureWrapper);
27
+ return [swiftClosure = std::move(swiftClosure)](const std::vector<std::string>& result) mutable -> void {
28
+ swiftClosure.call(result);
29
+ };
30
+ }
31
+
32
+ // pragma MARK: std::function<void(const std::exception_ptr& /* error */)>
33
+ Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* _Nonnull swiftClosureWrapper) {
34
+ auto swiftClosure = VideoTrim::Func_void_std__exception_ptr::fromUnsafe(swiftClosureWrapper);
35
+ return [swiftClosure = std::move(swiftClosure)](const std::exception_ptr& error) mutable -> void {
36
+ swiftClosure.call(error);
37
+ };
38
+ }
39
+
40
+ // pragma MARK: std::function<void(double /* result */)>
41
+ Func_void_double create_Func_void_double(void* _Nonnull swiftClosureWrapper) {
42
+ auto swiftClosure = VideoTrim::Func_void_double::fromUnsafe(swiftClosureWrapper);
43
+ return [swiftClosure = std::move(swiftClosure)](double result) mutable -> void {
44
+ swiftClosure.call(result);
45
+ };
46
+ }
47
+
48
+ // pragma MARK: std::function<void(bool /* result */)>
49
+ Func_void_bool create_Func_void_bool(void* _Nonnull swiftClosureWrapper) {
50
+ auto swiftClosure = VideoTrim::Func_void_bool::fromUnsafe(swiftClosureWrapper);
51
+ return [swiftClosure = std::move(swiftClosure)](bool result) mutable -> void {
52
+ swiftClosure.call(result);
53
+ };
54
+ }
55
+
56
+ // pragma MARK: std::function<void()>
57
+ Func_void create_Func_void(void* _Nonnull swiftClosureWrapper) {
58
+ auto swiftClosure = VideoTrim::Func_void::fromUnsafe(swiftClosureWrapper);
59
+ return [swiftClosure = std::move(swiftClosure)]() mutable -> void {
60
+ swiftClosure.call();
61
+ };
62
+ }
63
+
64
+ // pragma MARK: std::function<void(const FileValidationResult& /* result */)>
65
+ Func_void_FileValidationResult create_Func_void_FileValidationResult(void* _Nonnull swiftClosureWrapper) {
66
+ auto swiftClosure = VideoTrim::Func_void_FileValidationResult::fromUnsafe(swiftClosureWrapper);
67
+ return [swiftClosure = std::move(swiftClosure)](const FileValidationResult& result) mutable -> void {
68
+ swiftClosure.call(result);
69
+ };
70
+ }
71
+
72
+ // pragma MARK: std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec>
73
+ std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec> create_std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_(void* _Nonnull swiftUnsafePointer) {
74
+ VideoTrim::HybridVideoTrimSpec_cxx swiftPart = VideoTrim::HybridVideoTrimSpec_cxx::fromUnsafe(swiftUnsafePointer);
75
+ return std::make_shared<margelo::nitro::videotrim::HybridVideoTrimSpecSwift>(swiftPart);
76
+ }
77
+ void* _Nonnull get_std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_(std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_ cppType) {
78
+ std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::videotrim::HybridVideoTrimSpecSwift>(cppType);
79
+ #ifdef NITRO_DEBUG
80
+ if (swiftWrapper == nullptr) [[unlikely]] {
81
+ throw std::runtime_error("Class \"HybridVideoTrimSpec\" is not implemented in Swift!");
82
+ }
83
+ #endif
84
+ VideoTrim::HybridVideoTrimSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
85
+ return swiftPart.toUnsafe();
86
+ }
87
+
88
+ } // namespace margelo::nitro::videotrim::bridge::swift