react-native-video-trim 4.0.0 → 4.1.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.
- package/README.md +36 -8
- package/VideoTrim.podspec +1 -1
- package/android/build.gradle +9 -1
- package/android/gradle.properties +2 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +138 -121
- package/android/src/main/java/com/margelo/nitro/videotrim/utils/VideoTrimmerUtil.java +29 -21
- package/android/src/main/java/com/margelo/nitro/videotrim/widgets/VideoTrimmerView.java +10 -6
- package/ios/VideoTrim.swift +7 -0
- package/ios/VideoTrimImpl.swift +221 -124
- package/lib/module/index.js +38 -11
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/VideoTrim.nitro.d.ts +74 -57
- package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +9 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JEditorConfig.hpp +54 -46
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +20 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +1 -0
- package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +14 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +4 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +8 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +43 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +11 -0
- package/nitrogen/generated/ios/swift/EditorConfig.swift +116 -94
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +19 -0
- package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
- package/nitrogen/generated/shared/c++/EditorConfig.hpp +54 -46
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +4 -0
- package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
- package/package.json +1 -1
- package/src/VideoTrim.nitro.ts +76 -57
- package/src/index.tsx +45 -11
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// TrimOptions.swift
|
|
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
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `TrimOptions`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias TrimOptions = margelo.nitro.videotrim.TrimOptions
|
|
14
|
+
|
|
15
|
+
public extension TrimOptions {
|
|
16
|
+
private typealias bridge = margelo.nitro.videotrim.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `TrimOptions`.
|
|
20
|
+
*/
|
|
21
|
+
init(startTime: Double, endTime: Double, saveToPhoto: Bool, type: String, outputExt: String, openDocumentsOnFinish: Bool, openShareSheetOnFinish: Bool, removeAfterSavedToPhoto: Bool, removeAfterFailedToSavePhoto: Bool, removeAfterSavedToDocuments: Bool, removeAfterFailedToSaveDocuments: Bool, removeAfterShared: Bool, removeAfterFailedToShare: Bool, enableRotation: Bool, rotationAngle: Double) {
|
|
22
|
+
self.init(startTime, endTime, saveToPhoto, std.string(type), std.string(outputExt), openDocumentsOnFinish, openShareSheetOnFinish, removeAfterSavedToPhoto, removeAfterFailedToSavePhoto, removeAfterSavedToDocuments, removeAfterFailedToSaveDocuments, removeAfterShared, removeAfterFailedToShare, enableRotation, rotationAngle)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var startTime: Double {
|
|
26
|
+
@inline(__always)
|
|
27
|
+
get {
|
|
28
|
+
return self.__startTime
|
|
29
|
+
}
|
|
30
|
+
@inline(__always)
|
|
31
|
+
set {
|
|
32
|
+
self.__startTime = newValue
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var endTime: Double {
|
|
37
|
+
@inline(__always)
|
|
38
|
+
get {
|
|
39
|
+
return self.__endTime
|
|
40
|
+
}
|
|
41
|
+
@inline(__always)
|
|
42
|
+
set {
|
|
43
|
+
self.__endTime = newValue
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var saveToPhoto: Bool {
|
|
48
|
+
@inline(__always)
|
|
49
|
+
get {
|
|
50
|
+
return self.__saveToPhoto
|
|
51
|
+
}
|
|
52
|
+
@inline(__always)
|
|
53
|
+
set {
|
|
54
|
+
self.__saveToPhoto = newValue
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var type: String {
|
|
59
|
+
@inline(__always)
|
|
60
|
+
get {
|
|
61
|
+
return String(self.__type)
|
|
62
|
+
}
|
|
63
|
+
@inline(__always)
|
|
64
|
+
set {
|
|
65
|
+
self.__type = std.string(newValue)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var outputExt: String {
|
|
70
|
+
@inline(__always)
|
|
71
|
+
get {
|
|
72
|
+
return String(self.__outputExt)
|
|
73
|
+
}
|
|
74
|
+
@inline(__always)
|
|
75
|
+
set {
|
|
76
|
+
self.__outputExt = std.string(newValue)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
var openDocumentsOnFinish: Bool {
|
|
81
|
+
@inline(__always)
|
|
82
|
+
get {
|
|
83
|
+
return self.__openDocumentsOnFinish
|
|
84
|
+
}
|
|
85
|
+
@inline(__always)
|
|
86
|
+
set {
|
|
87
|
+
self.__openDocumentsOnFinish = newValue
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var openShareSheetOnFinish: Bool {
|
|
92
|
+
@inline(__always)
|
|
93
|
+
get {
|
|
94
|
+
return self.__openShareSheetOnFinish
|
|
95
|
+
}
|
|
96
|
+
@inline(__always)
|
|
97
|
+
set {
|
|
98
|
+
self.__openShareSheetOnFinish = newValue
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var removeAfterSavedToPhoto: Bool {
|
|
103
|
+
@inline(__always)
|
|
104
|
+
get {
|
|
105
|
+
return self.__removeAfterSavedToPhoto
|
|
106
|
+
}
|
|
107
|
+
@inline(__always)
|
|
108
|
+
set {
|
|
109
|
+
self.__removeAfterSavedToPhoto = newValue
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
var removeAfterFailedToSavePhoto: Bool {
|
|
114
|
+
@inline(__always)
|
|
115
|
+
get {
|
|
116
|
+
return self.__removeAfterFailedToSavePhoto
|
|
117
|
+
}
|
|
118
|
+
@inline(__always)
|
|
119
|
+
set {
|
|
120
|
+
self.__removeAfterFailedToSavePhoto = newValue
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
var removeAfterSavedToDocuments: Bool {
|
|
125
|
+
@inline(__always)
|
|
126
|
+
get {
|
|
127
|
+
return self.__removeAfterSavedToDocuments
|
|
128
|
+
}
|
|
129
|
+
@inline(__always)
|
|
130
|
+
set {
|
|
131
|
+
self.__removeAfterSavedToDocuments = newValue
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
var removeAfterFailedToSaveDocuments: Bool {
|
|
136
|
+
@inline(__always)
|
|
137
|
+
get {
|
|
138
|
+
return self.__removeAfterFailedToSaveDocuments
|
|
139
|
+
}
|
|
140
|
+
@inline(__always)
|
|
141
|
+
set {
|
|
142
|
+
self.__removeAfterFailedToSaveDocuments = newValue
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
var removeAfterShared: Bool {
|
|
147
|
+
@inline(__always)
|
|
148
|
+
get {
|
|
149
|
+
return self.__removeAfterShared
|
|
150
|
+
}
|
|
151
|
+
@inline(__always)
|
|
152
|
+
set {
|
|
153
|
+
self.__removeAfterShared = newValue
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
var removeAfterFailedToShare: Bool {
|
|
158
|
+
@inline(__always)
|
|
159
|
+
get {
|
|
160
|
+
return self.__removeAfterFailedToShare
|
|
161
|
+
}
|
|
162
|
+
@inline(__always)
|
|
163
|
+
set {
|
|
164
|
+
self.__removeAfterFailedToShare = newValue
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
var enableRotation: Bool {
|
|
169
|
+
@inline(__always)
|
|
170
|
+
get {
|
|
171
|
+
return self.__enableRotation
|
|
172
|
+
}
|
|
173
|
+
@inline(__always)
|
|
174
|
+
set {
|
|
175
|
+
self.__enableRotation = newValue
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
var rotationAngle: Double {
|
|
180
|
+
@inline(__always)
|
|
181
|
+
get {
|
|
182
|
+
return self.__rotationAngle
|
|
183
|
+
}
|
|
184
|
+
@inline(__always)
|
|
185
|
+
set {
|
|
186
|
+
self.__rotationAngle = newValue
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -30,7 +30,6 @@ namespace margelo::nitro::videotrim {
|
|
|
30
30
|
struct EditorConfig {
|
|
31
31
|
public:
|
|
32
32
|
bool enableHapticFeedback SWIFT_PRIVATE;
|
|
33
|
-
bool saveToPhoto SWIFT_PRIVATE;
|
|
34
33
|
double maxDuration SWIFT_PRIVATE;
|
|
35
34
|
double minDuration SWIFT_PRIVATE;
|
|
36
35
|
std::string cancelButtonText SWIFT_PRIVATE;
|
|
@@ -47,16 +46,6 @@ namespace margelo::nitro::videotrim {
|
|
|
47
46
|
std::string saveDialogConfirmText SWIFT_PRIVATE;
|
|
48
47
|
std::string trimmingText SWIFT_PRIVATE;
|
|
49
48
|
bool fullScreenModalIOS SWIFT_PRIVATE;
|
|
50
|
-
std::string type SWIFT_PRIVATE;
|
|
51
|
-
std::string outputExt SWIFT_PRIVATE;
|
|
52
|
-
bool openDocumentsOnFinish SWIFT_PRIVATE;
|
|
53
|
-
bool openShareSheetOnFinish SWIFT_PRIVATE;
|
|
54
|
-
bool removeAfterSavedToPhoto SWIFT_PRIVATE;
|
|
55
|
-
bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
|
|
56
|
-
bool removeAfterSavedToDocuments SWIFT_PRIVATE;
|
|
57
|
-
bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
|
|
58
|
-
bool removeAfterShared SWIFT_PRIVATE;
|
|
59
|
-
bool removeAfterFailedToShare SWIFT_PRIVATE;
|
|
60
49
|
bool autoplay SWIFT_PRIVATE;
|
|
61
50
|
double jumpToPositionOnLoad SWIFT_PRIVATE;
|
|
62
51
|
bool closeWhenFinish SWIFT_PRIVATE;
|
|
@@ -74,10 +63,23 @@ namespace margelo::nitro::videotrim {
|
|
|
74
63
|
std::string alertOnFailTitle SWIFT_PRIVATE;
|
|
75
64
|
std::string alertOnFailMessage SWIFT_PRIVATE;
|
|
76
65
|
std::string alertOnFailCloseText SWIFT_PRIVATE;
|
|
66
|
+
bool saveToPhoto SWIFT_PRIVATE;
|
|
67
|
+
std::string type SWIFT_PRIVATE;
|
|
68
|
+
std::string outputExt SWIFT_PRIVATE;
|
|
69
|
+
bool openDocumentsOnFinish SWIFT_PRIVATE;
|
|
70
|
+
bool openShareSheetOnFinish SWIFT_PRIVATE;
|
|
71
|
+
bool removeAfterSavedToPhoto SWIFT_PRIVATE;
|
|
72
|
+
bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
|
|
73
|
+
bool removeAfterSavedToDocuments SWIFT_PRIVATE;
|
|
74
|
+
bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
|
|
75
|
+
bool removeAfterShared SWIFT_PRIVATE;
|
|
76
|
+
bool removeAfterFailedToShare SWIFT_PRIVATE;
|
|
77
|
+
bool enableRotation SWIFT_PRIVATE;
|
|
78
|
+
double rotationAngle SWIFT_PRIVATE;
|
|
77
79
|
|
|
78
80
|
public:
|
|
79
81
|
EditorConfig() = default;
|
|
80
|
-
explicit EditorConfig(bool enableHapticFeedback,
|
|
82
|
+
explicit EditorConfig(bool enableHapticFeedback, double maxDuration, double minDuration, std::string cancelButtonText, std::string saveButtonText, bool enableCancelDialog, std::string cancelDialogTitle, std::string cancelDialogMessage, std::string cancelDialogCancelText, std::string cancelDialogConfirmText, bool enableSaveDialog, std::string saveDialogTitle, std::string saveDialogMessage, std::string saveDialogCancelText, std::string saveDialogConfirmText, std::string trimmingText, bool fullScreenModalIOS, bool autoplay, double jumpToPositionOnLoad, bool closeWhenFinish, bool enableCancelTrimming, std::string cancelTrimmingButtonText, bool enableCancelTrimmingDialog, std::string cancelTrimmingDialogTitle, std::string cancelTrimmingDialogMessage, std::string cancelTrimmingDialogCancelText, std::string cancelTrimmingDialogConfirmText, std::string headerText, double headerTextSize, double headerTextColor, bool alertOnFailToLoad, std::string alertOnFailTitle, std::string alertOnFailMessage, std::string alertOnFailCloseText, bool saveToPhoto, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool enableRotation, double rotationAngle): enableHapticFeedback(enableHapticFeedback), maxDuration(maxDuration), minDuration(minDuration), cancelButtonText(cancelButtonText), saveButtonText(saveButtonText), enableCancelDialog(enableCancelDialog), cancelDialogTitle(cancelDialogTitle), cancelDialogMessage(cancelDialogMessage), cancelDialogCancelText(cancelDialogCancelText), cancelDialogConfirmText(cancelDialogConfirmText), enableSaveDialog(enableSaveDialog), saveDialogTitle(saveDialogTitle), saveDialogMessage(saveDialogMessage), saveDialogCancelText(saveDialogCancelText), saveDialogConfirmText(saveDialogConfirmText), trimmingText(trimmingText), fullScreenModalIOS(fullScreenModalIOS), autoplay(autoplay), jumpToPositionOnLoad(jumpToPositionOnLoad), closeWhenFinish(closeWhenFinish), enableCancelTrimming(enableCancelTrimming), cancelTrimmingButtonText(cancelTrimmingButtonText), enableCancelTrimmingDialog(enableCancelTrimmingDialog), cancelTrimmingDialogTitle(cancelTrimmingDialogTitle), cancelTrimmingDialogMessage(cancelTrimmingDialogMessage), cancelTrimmingDialogCancelText(cancelTrimmingDialogCancelText), cancelTrimmingDialogConfirmText(cancelTrimmingDialogConfirmText), headerText(headerText), headerTextSize(headerTextSize), headerTextColor(headerTextColor), alertOnFailToLoad(alertOnFailToLoad), alertOnFailTitle(alertOnFailTitle), alertOnFailMessage(alertOnFailMessage), alertOnFailCloseText(alertOnFailCloseText), saveToPhoto(saveToPhoto), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), enableRotation(enableRotation), rotationAngle(rotationAngle) {}
|
|
81
83
|
};
|
|
82
84
|
|
|
83
85
|
} // namespace margelo::nitro::videotrim
|
|
@@ -93,7 +95,6 @@ namespace margelo::nitro {
|
|
|
93
95
|
jsi::Object obj = arg.asObject(runtime);
|
|
94
96
|
return EditorConfig(
|
|
95
97
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableHapticFeedback")),
|
|
96
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
|
|
97
98
|
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "maxDuration")),
|
|
98
99
|
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "minDuration")),
|
|
99
100
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelButtonText")),
|
|
@@ -110,16 +111,6 @@ namespace margelo::nitro {
|
|
|
110
111
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogConfirmText")),
|
|
111
112
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trimmingText")),
|
|
112
113
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "fullScreenModalIOS")),
|
|
113
|
-
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
|
|
114
|
-
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
|
|
115
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
|
|
116
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
|
|
117
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
|
|
118
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
|
|
119
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
|
|
120
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
|
|
121
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
|
|
122
|
-
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
|
|
123
114
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "autoplay")),
|
|
124
115
|
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad")),
|
|
125
116
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "closeWhenFinish")),
|
|
@@ -136,13 +127,25 @@ namespace margelo::nitro {
|
|
|
136
127
|
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailToLoad")),
|
|
137
128
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailTitle")),
|
|
138
129
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailMessage")),
|
|
139
|
-
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))
|
|
130
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailCloseText")),
|
|
131
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
|
|
132
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
|
|
133
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
|
|
134
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
|
|
135
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
|
|
136
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
|
|
137
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
|
|
138
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
|
|
139
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
|
|
140
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
|
|
141
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
|
|
142
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableRotation")),
|
|
143
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rotationAngle"))
|
|
140
144
|
);
|
|
141
145
|
}
|
|
142
146
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const EditorConfig& arg) {
|
|
143
147
|
jsi::Object obj(runtime);
|
|
144
148
|
obj.setProperty(runtime, "enableHapticFeedback", JSIConverter<bool>::toJSI(runtime, arg.enableHapticFeedback));
|
|
145
|
-
obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
|
|
146
149
|
obj.setProperty(runtime, "maxDuration", JSIConverter<double>::toJSI(runtime, arg.maxDuration));
|
|
147
150
|
obj.setProperty(runtime, "minDuration", JSIConverter<double>::toJSI(runtime, arg.minDuration));
|
|
148
151
|
obj.setProperty(runtime, "cancelButtonText", JSIConverter<std::string>::toJSI(runtime, arg.cancelButtonText));
|
|
@@ -159,16 +162,6 @@ namespace margelo::nitro {
|
|
|
159
162
|
obj.setProperty(runtime, "saveDialogConfirmText", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogConfirmText));
|
|
160
163
|
obj.setProperty(runtime, "trimmingText", JSIConverter<std::string>::toJSI(runtime, arg.trimmingText));
|
|
161
164
|
obj.setProperty(runtime, "fullScreenModalIOS", JSIConverter<bool>::toJSI(runtime, arg.fullScreenModalIOS));
|
|
162
|
-
obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
|
|
163
|
-
obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
|
|
164
|
-
obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
|
|
165
|
-
obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
|
|
166
|
-
obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
|
|
167
|
-
obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
|
|
168
|
-
obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
|
|
169
|
-
obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
|
|
170
|
-
obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
|
|
171
|
-
obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
|
|
172
165
|
obj.setProperty(runtime, "autoplay", JSIConverter<bool>::toJSI(runtime, arg.autoplay));
|
|
173
166
|
obj.setProperty(runtime, "jumpToPositionOnLoad", JSIConverter<double>::toJSI(runtime, arg.jumpToPositionOnLoad));
|
|
174
167
|
obj.setProperty(runtime, "closeWhenFinish", JSIConverter<bool>::toJSI(runtime, arg.closeWhenFinish));
|
|
@@ -186,6 +179,19 @@ namespace margelo::nitro {
|
|
|
186
179
|
obj.setProperty(runtime, "alertOnFailTitle", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailTitle));
|
|
187
180
|
obj.setProperty(runtime, "alertOnFailMessage", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailMessage));
|
|
188
181
|
obj.setProperty(runtime, "alertOnFailCloseText", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailCloseText));
|
|
182
|
+
obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
|
|
183
|
+
obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
|
|
184
|
+
obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
|
|
185
|
+
obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
|
|
186
|
+
obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
|
|
187
|
+
obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
|
|
188
|
+
obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
|
|
189
|
+
obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
|
|
190
|
+
obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
|
|
191
|
+
obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
|
|
192
|
+
obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
|
|
193
|
+
obj.setProperty(runtime, "enableRotation", JSIConverter<bool>::toJSI(runtime, arg.enableRotation));
|
|
194
|
+
obj.setProperty(runtime, "rotationAngle", JSIConverter<double>::toJSI(runtime, arg.rotationAngle));
|
|
189
195
|
return obj;
|
|
190
196
|
}
|
|
191
197
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -194,7 +200,6 @@ namespace margelo::nitro {
|
|
|
194
200
|
}
|
|
195
201
|
jsi::Object obj = value.getObject(runtime);
|
|
196
202
|
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableHapticFeedback"))) return false;
|
|
197
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
|
|
198
203
|
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "maxDuration"))) return false;
|
|
199
204
|
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "minDuration"))) return false;
|
|
200
205
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelButtonText"))) return false;
|
|
@@ -211,16 +216,6 @@ namespace margelo::nitro {
|
|
|
211
216
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogConfirmText"))) return false;
|
|
212
217
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trimmingText"))) return false;
|
|
213
218
|
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "fullScreenModalIOS"))) return false;
|
|
214
|
-
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
|
|
215
|
-
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
|
|
216
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
|
|
217
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
|
|
218
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
|
|
219
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
|
|
220
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
|
|
221
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
|
|
222
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
|
|
223
|
-
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
|
|
224
219
|
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "autoplay"))) return false;
|
|
225
220
|
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad"))) return false;
|
|
226
221
|
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "closeWhenFinish"))) return false;
|
|
@@ -238,6 +233,19 @@ namespace margelo::nitro {
|
|
|
238
233
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailTitle"))) return false;
|
|
239
234
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailMessage"))) return false;
|
|
240
235
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))) return false;
|
|
236
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
|
|
237
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
|
|
238
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
|
|
239
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
|
|
240
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
|
|
241
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
|
|
242
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
|
|
243
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
|
|
244
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
|
|
245
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
|
|
246
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
|
|
247
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableRotation"))) return false;
|
|
248
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rotationAngle"))) return false;
|
|
241
249
|
return true;
|
|
242
250
|
}
|
|
243
251
|
};
|
|
@@ -20,6 +20,7 @@ namespace margelo::nitro::videotrim {
|
|
|
20
20
|
prototype.registerHybridMethod("deleteFile", &HybridVideoTrimSpec::deleteFile);
|
|
21
21
|
prototype.registerHybridMethod("closeEditor", &HybridVideoTrimSpec::closeEditor);
|
|
22
22
|
prototype.registerHybridMethod("isValidFile", &HybridVideoTrimSpec::isValidFile);
|
|
23
|
+
prototype.registerHybridMethod("trim", &HybridVideoTrimSpec::trim);
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
namespace margelo::nitro::videotrim { struct EditorConfig; }
|
|
18
18
|
// Forward declaration of `FileValidationResult` to properly resolve imports.
|
|
19
19
|
namespace margelo::nitro::videotrim { struct FileValidationResult; }
|
|
20
|
+
// Forward declaration of `TrimOptions` to properly resolve imports.
|
|
21
|
+
namespace margelo::nitro::videotrim { struct TrimOptions; }
|
|
20
22
|
|
|
21
23
|
#include <string>
|
|
22
24
|
#include "EditorConfig.hpp"
|
|
@@ -25,6 +27,7 @@ namespace margelo::nitro::videotrim { struct FileValidationResult; }
|
|
|
25
27
|
#include <NitroModules/Promise.hpp>
|
|
26
28
|
#include <vector>
|
|
27
29
|
#include "FileValidationResult.hpp"
|
|
30
|
+
#include "TrimOptions.hpp"
|
|
28
31
|
|
|
29
32
|
namespace margelo::nitro::videotrim {
|
|
30
33
|
|
|
@@ -63,6 +66,7 @@ namespace margelo::nitro::videotrim {
|
|
|
63
66
|
virtual std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) = 0;
|
|
64
67
|
virtual void closeEditor(const std::function<void()>& onComplete) = 0;
|
|
65
68
|
virtual std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) = 0;
|
|
69
|
+
virtual std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) = 0;
|
|
66
70
|
|
|
67
71
|
protected:
|
|
68
72
|
// Hybrid Setup
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// TrimOptions.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
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
#include <string>
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::videotrim {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A struct which can be represented as a JavaScript object (TrimOptions).
|
|
29
|
+
*/
|
|
30
|
+
struct TrimOptions {
|
|
31
|
+
public:
|
|
32
|
+
double startTime SWIFT_PRIVATE;
|
|
33
|
+
double endTime SWIFT_PRIVATE;
|
|
34
|
+
bool saveToPhoto SWIFT_PRIVATE;
|
|
35
|
+
std::string type SWIFT_PRIVATE;
|
|
36
|
+
std::string outputExt SWIFT_PRIVATE;
|
|
37
|
+
bool openDocumentsOnFinish SWIFT_PRIVATE;
|
|
38
|
+
bool openShareSheetOnFinish SWIFT_PRIVATE;
|
|
39
|
+
bool removeAfterSavedToPhoto SWIFT_PRIVATE;
|
|
40
|
+
bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
|
|
41
|
+
bool removeAfterSavedToDocuments SWIFT_PRIVATE;
|
|
42
|
+
bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
|
|
43
|
+
bool removeAfterShared SWIFT_PRIVATE;
|
|
44
|
+
bool removeAfterFailedToShare SWIFT_PRIVATE;
|
|
45
|
+
bool enableRotation SWIFT_PRIVATE;
|
|
46
|
+
double rotationAngle SWIFT_PRIVATE;
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
TrimOptions() = default;
|
|
50
|
+
explicit TrimOptions(double startTime, double endTime, bool saveToPhoto, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool enableRotation, double rotationAngle): startTime(startTime), endTime(endTime), saveToPhoto(saveToPhoto), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), enableRotation(enableRotation), rotationAngle(rotationAngle) {}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
} // namespace margelo::nitro::videotrim
|
|
54
|
+
|
|
55
|
+
namespace margelo::nitro {
|
|
56
|
+
|
|
57
|
+
using namespace margelo::nitro::videotrim;
|
|
58
|
+
|
|
59
|
+
// C++ TrimOptions <> JS TrimOptions (object)
|
|
60
|
+
template <>
|
|
61
|
+
struct JSIConverter<TrimOptions> final {
|
|
62
|
+
static inline TrimOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
63
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
64
|
+
return TrimOptions(
|
|
65
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "startTime")),
|
|
66
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "endTime")),
|
|
67
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
|
|
68
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
|
|
69
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
|
|
70
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
|
|
71
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
|
|
72
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
|
|
73
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
|
|
74
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
|
|
75
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
|
|
76
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
|
|
77
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
|
|
78
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableRotation")),
|
|
79
|
+
JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rotationAngle"))
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const TrimOptions& arg) {
|
|
83
|
+
jsi::Object obj(runtime);
|
|
84
|
+
obj.setProperty(runtime, "startTime", JSIConverter<double>::toJSI(runtime, arg.startTime));
|
|
85
|
+
obj.setProperty(runtime, "endTime", JSIConverter<double>::toJSI(runtime, arg.endTime));
|
|
86
|
+
obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
|
|
87
|
+
obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
|
|
88
|
+
obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
|
|
89
|
+
obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
|
|
90
|
+
obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
|
|
91
|
+
obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
|
|
92
|
+
obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
|
|
93
|
+
obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
|
|
94
|
+
obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
|
|
95
|
+
obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
|
|
96
|
+
obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
|
|
97
|
+
obj.setProperty(runtime, "enableRotation", JSIConverter<bool>::toJSI(runtime, arg.enableRotation));
|
|
98
|
+
obj.setProperty(runtime, "rotationAngle", JSIConverter<double>::toJSI(runtime, arg.rotationAngle));
|
|
99
|
+
return obj;
|
|
100
|
+
}
|
|
101
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
102
|
+
if (!value.isObject()) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
jsi::Object obj = value.getObject(runtime);
|
|
106
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "startTime"))) return false;
|
|
107
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "endTime"))) return false;
|
|
108
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
|
|
109
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
|
|
110
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
|
|
111
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
|
|
112
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
|
|
113
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
|
|
114
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
|
|
115
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
|
|
116
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
|
|
117
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
|
|
118
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
|
|
119
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableRotation"))) return false;
|
|
120
|
+
if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rotationAngle"))) return false;
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
} // namespace margelo::nitro
|