react-native-video-trim 3.0.9 → 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.
- package/LICENSE +1 -1
- package/README.md +64 -61
- package/VideoTrim.podspec +24 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +77 -51
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +4 -2
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +629 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +22 -0
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/enums/ErrorCode.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/IVideoTrimmerView.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/VideoTrimListener.java +6 -4
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/MediaMetadataUtil.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java +3 -1
- package/android/src/main/java/com/margelo/nitro/videotrim/utils/VideoTrimmerUtil.java +157 -0
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/widgets/VideoTrimmerView.java +44 -72
- package/ios/AssetLoader.swift +2 -2
- package/ios/ErrorCode.swift +2 -2
- package/ios/ProgressAlertController.swift +2 -2
- package/ios/VideoTrim.swift +38 -739
- package/ios/VideoTrimImpl.swift +860 -0
- package/ios/VideoTrimmer.swift +2 -3
- package/ios/VideoTrimmerThumb.swift +33 -26
- package/ios/VideoTrimmerViewController.swift +47 -28
- package/lib/module/VideoTrim.nitro.js +4 -0
- package/lib/module/VideoTrim.nitro.js.map +1 -0
- package/lib/module/index.js +71 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/{index.d.ts → src/VideoTrim.nitro.d.ts} +63 -89
- package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +41 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JEditorConfig.hpp +229 -0
- package/nitrogen/generated/android/c++/JFileValidationResult.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +89 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +131 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +82 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +35 -0
- package/nitrogen/generated/android/videotrim+autolinking.cmake +78 -0
- package/nitrogen/generated/android/videotrim+autolinking.gradle +27 -0
- package/nitrogen/generated/android/videotrimOnLoad.cpp +50 -0
- package/nitrogen/generated/android/videotrimOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/VideoTrim+autolinking.rb +60 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +88 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +331 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +53 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.mm +33 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +116 -0
- package/nitrogen/generated/ios/swift/EditorConfig.swift +519 -0
- package/nitrogen/generated/ios/swift/FileValidationResult.swift +57 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +53 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +222 -0
- package/nitrogen/generated/shared/c++/EditorConfig.hpp +245 -0
- package/nitrogen/generated/shared/c++/FileValidationResult.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +76 -0
- package/package.json +75 -71
- package/src/VideoTrim.nitro.ts +244 -0
- package/src/index.tsx +87 -258
- package/android/src/main/AndroidManifestDeprecated.xml +0 -3
- package/android/src/main/java/com/videotrim/VideoTrimModule.java +0 -600
- package/android/src/main/java/com/videotrim/VideoTrimPackage.java +0 -28
- package/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java +0 -270
- package/ios/VideoTrim-Bridging-Header.h +0 -2
- package/ios/VideoTrim.mm +0 -17
- package/ios/VideoTrim.xcodeproj/project.pbxproj +0 -283
- package/lib/commonjs/index.js +0 -87
- package/lib/commonjs/index.js.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/react-native-video-trim.podspec +0 -41
|
@@ -1,266 +1,240 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
2
|
export interface EditorConfig {
|
|
3
3
|
/**
|
|
4
4
|
* Enable haptic feedback
|
|
5
5
|
* @default true
|
|
6
6
|
*/
|
|
7
|
-
enableHapticFeedback
|
|
7
|
+
enableHapticFeedback: boolean;
|
|
8
8
|
/**
|
|
9
9
|
* Save the output file to Photos Library. Only video is supported. Note that you have to make sure you have permission to save to Photos Library.
|
|
10
10
|
* @default false
|
|
11
11
|
*/
|
|
12
|
-
saveToPhoto
|
|
13
|
-
maxDuration
|
|
12
|
+
saveToPhoto: boolean;
|
|
13
|
+
maxDuration: number;
|
|
14
14
|
/**
|
|
15
15
|
* Minimum duration for trimmer
|
|
16
16
|
* @default 1000
|
|
17
17
|
*/
|
|
18
|
-
minDuration
|
|
18
|
+
minDuration: number;
|
|
19
19
|
/**
|
|
20
20
|
* Cancel button text
|
|
21
21
|
* @default "Cancel"
|
|
22
22
|
*/
|
|
23
|
-
cancelButtonText
|
|
23
|
+
cancelButtonText: string;
|
|
24
24
|
/**
|
|
25
25
|
* Save button text
|
|
26
26
|
* @default "Save"
|
|
27
27
|
*/
|
|
28
|
-
saveButtonText
|
|
28
|
+
saveButtonText: string;
|
|
29
29
|
/**
|
|
30
30
|
* Enable cancel dialog
|
|
31
31
|
* @default true
|
|
32
32
|
*/
|
|
33
|
-
enableCancelDialog
|
|
33
|
+
enableCancelDialog: boolean;
|
|
34
34
|
/**
|
|
35
35
|
* Cancel dialog title
|
|
36
36
|
* @default "Warning!"
|
|
37
37
|
*/
|
|
38
|
-
cancelDialogTitle
|
|
38
|
+
cancelDialogTitle: string;
|
|
39
39
|
/**
|
|
40
40
|
* Cancel dialog message
|
|
41
41
|
* @default "Are you sure want to cancel?"
|
|
42
42
|
*/
|
|
43
|
-
cancelDialogMessage
|
|
43
|
+
cancelDialogMessage: string;
|
|
44
44
|
/**
|
|
45
45
|
* Cancel dialog cancel text
|
|
46
46
|
* @default "Close"
|
|
47
47
|
*/
|
|
48
|
-
cancelDialogCancelText
|
|
48
|
+
cancelDialogCancelText: string;
|
|
49
49
|
/**
|
|
50
50
|
* Cancel dialog confirm text
|
|
51
51
|
* @default "Proceed"
|
|
52
52
|
*/
|
|
53
|
-
cancelDialogConfirmText
|
|
53
|
+
cancelDialogConfirmText: string;
|
|
54
54
|
/**
|
|
55
55
|
* Enable save dialog
|
|
56
56
|
* @default true
|
|
57
57
|
*/
|
|
58
|
-
enableSaveDialog
|
|
58
|
+
enableSaveDialog: boolean;
|
|
59
59
|
/**
|
|
60
60
|
* Save dialog title
|
|
61
61
|
* @default "Confirmation!"
|
|
62
62
|
*/
|
|
63
|
-
saveDialogTitle
|
|
63
|
+
saveDialogTitle: string;
|
|
64
64
|
/**
|
|
65
65
|
* Save dialog message
|
|
66
66
|
* @default "Are you sure want to save?"
|
|
67
67
|
*/
|
|
68
|
-
saveDialogMessage
|
|
68
|
+
saveDialogMessage: string;
|
|
69
69
|
/**
|
|
70
70
|
* Save dialog cancel text
|
|
71
71
|
* @default "Close"
|
|
72
72
|
*/
|
|
73
|
-
saveDialogCancelText
|
|
73
|
+
saveDialogCancelText: string;
|
|
74
74
|
/**
|
|
75
75
|
* Save dialog confirm text
|
|
76
76
|
* @default "Proceed"
|
|
77
77
|
*/
|
|
78
|
-
saveDialogConfirmText
|
|
78
|
+
saveDialogConfirmText: string;
|
|
79
79
|
/**
|
|
80
80
|
* Trimming text
|
|
81
81
|
* @default "Trimming video..."
|
|
82
82
|
*/
|
|
83
|
-
trimmingText
|
|
83
|
+
trimmingText: string;
|
|
84
84
|
/**
|
|
85
85
|
* By default, on iOS the editor will be presented as a modal. If you want to present it as a full screen modal, set this to `true`.
|
|
86
86
|
* @default false
|
|
87
87
|
*/
|
|
88
|
-
fullScreenModalIOS
|
|
88
|
+
fullScreenModalIOS: boolean;
|
|
89
89
|
/**
|
|
90
90
|
* Type of the file to edit. If video file, recommend to use `video`. If audio file, recommend to use `audio`.
|
|
91
91
|
* @default "video"
|
|
92
92
|
*/
|
|
93
|
-
type
|
|
93
|
+
type: string;
|
|
94
94
|
/**
|
|
95
95
|
* Output file extension. If video file, recommend to use `mp4` or `mov`. If audio file, recommend to use `wav` or `m4a`.
|
|
96
96
|
* @default "mp4"
|
|
97
97
|
* @example "mp4", "mov", "wav", "m4a", "3gp", "avi", "mkv", "flv", "wmv", "webm"
|
|
98
98
|
*/
|
|
99
|
-
outputExt
|
|
99
|
+
outputExt: string;
|
|
100
100
|
/**
|
|
101
101
|
* Whether to open Documents app after finish editing
|
|
102
102
|
* @default false
|
|
103
103
|
*/
|
|
104
|
-
openDocumentsOnFinish
|
|
104
|
+
openDocumentsOnFinish: boolean;
|
|
105
105
|
/**
|
|
106
106
|
* Whether to open Share Sheet after finish editing
|
|
107
107
|
* @default false
|
|
108
108
|
*/
|
|
109
|
-
openShareSheetOnFinish
|
|
109
|
+
openShareSheetOnFinish: boolean;
|
|
110
110
|
/**
|
|
111
111
|
* Remove the file after saved to Photos Library
|
|
112
112
|
* @default false
|
|
113
113
|
*/
|
|
114
|
-
removeAfterSavedToPhoto
|
|
114
|
+
removeAfterSavedToPhoto: boolean;
|
|
115
115
|
/**
|
|
116
116
|
* Remove the file after failed to save to Photos Library
|
|
117
117
|
* @default false
|
|
118
118
|
*/
|
|
119
|
-
removeAfterFailedToSavePhoto
|
|
119
|
+
removeAfterFailedToSavePhoto: boolean;
|
|
120
120
|
/**
|
|
121
121
|
* Remove the file after saved to Documents app
|
|
122
122
|
* @default false
|
|
123
123
|
*/
|
|
124
|
-
removeAfterSavedToDocuments
|
|
124
|
+
removeAfterSavedToDocuments: boolean;
|
|
125
125
|
/**
|
|
126
126
|
* Remove the file after failed to save to Documents app
|
|
127
127
|
* @default false
|
|
128
128
|
*/
|
|
129
|
-
removeAfterFailedToSaveDocuments
|
|
129
|
+
removeAfterFailedToSaveDocuments: boolean;
|
|
130
130
|
/**
|
|
131
131
|
* Remove the file after shared to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
|
|
132
132
|
* @default false
|
|
133
133
|
*/
|
|
134
|
-
removeAfterShared
|
|
134
|
+
removeAfterShared: boolean;
|
|
135
135
|
/**
|
|
136
136
|
* Remove the file after failed to share to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
|
|
137
137
|
* @default false
|
|
138
138
|
*/
|
|
139
|
-
removeAfterFailedToShare
|
|
139
|
+
removeAfterFailedToShare: boolean;
|
|
140
140
|
/**
|
|
141
141
|
* Whether to enable autoplay on load
|
|
142
142
|
*/
|
|
143
|
-
autoplay
|
|
143
|
+
autoplay: boolean;
|
|
144
144
|
/**
|
|
145
145
|
* Jump to position on load in milliseconds
|
|
146
146
|
* @default `undefined` (beginning of the video)
|
|
147
147
|
*/
|
|
148
|
-
jumpToPositionOnLoad
|
|
148
|
+
jumpToPositionOnLoad: number;
|
|
149
149
|
/**
|
|
150
150
|
* Whether to close the editor when finish editing
|
|
151
151
|
* @default true
|
|
152
152
|
*/
|
|
153
|
-
closeWhenFinish
|
|
153
|
+
closeWhenFinish: boolean;
|
|
154
154
|
/**
|
|
155
155
|
* Enable cancel trimming
|
|
156
156
|
* @default true
|
|
157
157
|
*/
|
|
158
|
-
enableCancelTrimming
|
|
158
|
+
enableCancelTrimming: boolean;
|
|
159
159
|
/**
|
|
160
160
|
* Cancel trimming button text
|
|
161
161
|
* @default "Cancel"
|
|
162
162
|
*/
|
|
163
|
-
cancelTrimmingButtonText
|
|
163
|
+
cancelTrimmingButtonText: string;
|
|
164
164
|
/**
|
|
165
165
|
* Enable cancel trimming dialog
|
|
166
166
|
* @default true
|
|
167
167
|
*/
|
|
168
|
-
enableCancelTrimmingDialog
|
|
168
|
+
enableCancelTrimmingDialog: boolean;
|
|
169
169
|
/**
|
|
170
170
|
* Cancel trimming dialog title
|
|
171
171
|
* @default "Warning!"
|
|
172
172
|
*/
|
|
173
|
-
cancelTrimmingDialogTitle
|
|
173
|
+
cancelTrimmingDialogTitle: string;
|
|
174
174
|
/**
|
|
175
175
|
* Cancel trimming dialog message
|
|
176
176
|
* @default "Are you sure want to cancel trimming?"
|
|
177
177
|
*/
|
|
178
|
-
cancelTrimmingDialogMessage
|
|
178
|
+
cancelTrimmingDialogMessage: string;
|
|
179
179
|
/**
|
|
180
180
|
* Cancel trimming dialog cancel text
|
|
181
181
|
* @default "Close"
|
|
182
182
|
*/
|
|
183
|
-
cancelTrimmingDialogCancelText
|
|
183
|
+
cancelTrimmingDialogCancelText: string;
|
|
184
184
|
/**
|
|
185
185
|
* Cancel trimming dialog confirm text
|
|
186
186
|
* @default "Proceed"
|
|
187
187
|
*/
|
|
188
|
-
cancelTrimmingDialogConfirmText
|
|
188
|
+
cancelTrimmingDialogConfirmText: string;
|
|
189
189
|
/**
|
|
190
190
|
* Header text
|
|
191
191
|
*/
|
|
192
|
-
headerText
|
|
192
|
+
headerText: string;
|
|
193
193
|
/**
|
|
194
194
|
* Header text size
|
|
195
195
|
* @default 16
|
|
196
196
|
*/
|
|
197
|
-
headerTextSize
|
|
197
|
+
headerTextSize: number;
|
|
198
198
|
/**
|
|
199
199
|
* Header text color
|
|
200
200
|
* @default white
|
|
201
201
|
*/
|
|
202
|
-
headerTextColor
|
|
202
|
+
headerTextColor: number;
|
|
203
203
|
/**
|
|
204
204
|
* Alert on fail to load media
|
|
205
205
|
* @default true
|
|
206
206
|
*/
|
|
207
|
-
alertOnFailToLoad
|
|
207
|
+
alertOnFailToLoad: boolean;
|
|
208
208
|
/**
|
|
209
209
|
* Alert on fail to load media title
|
|
210
210
|
* @default "Error"
|
|
211
211
|
*/
|
|
212
|
-
alertOnFailTitle
|
|
212
|
+
alertOnFailTitle: string;
|
|
213
213
|
/**
|
|
214
214
|
* Alert on fail to load media message
|
|
215
215
|
* @default "Fail to load media. Possibly invalid file or no network connection"
|
|
216
216
|
*/
|
|
217
|
-
alertOnFailMessage
|
|
217
|
+
alertOnFailMessage: string;
|
|
218
218
|
/**
|
|
219
219
|
* Alert on fail to load media close text
|
|
220
220
|
* @default "Close"
|
|
221
221
|
*/
|
|
222
|
-
alertOnFailCloseText
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
222
|
+
alertOnFailCloseText: string;
|
|
223
|
+
}
|
|
224
|
+
export interface FileValidationResult {
|
|
225
|
+
isValid: boolean;
|
|
226
|
+
fileType: string;
|
|
227
|
+
duration: number;
|
|
228
|
+
}
|
|
229
|
+
export interface VideoTrim extends HybridObject<{
|
|
230
|
+
ios: 'swift';
|
|
231
|
+
android: 'kotlin';
|
|
232
|
+
}> {
|
|
233
|
+
showEditor(filePath: string, config: EditorConfig, onEvent: (eventName: string, payload: Record<string, string>) => void): void;
|
|
234
|
+
listFiles(): Promise<string[]>;
|
|
235
|
+
cleanFiles(): Promise<number>;
|
|
236
|
+
deleteFile(filePath: string): Promise<boolean>;
|
|
237
|
+
closeEditor(onComplete: () => void): void;
|
|
238
|
+
isValidFile(url: string): Promise<FileValidationResult>;
|
|
228
239
|
}
|
|
229
|
-
|
|
230
|
-
* Delete a file
|
|
231
|
-
*
|
|
232
|
-
* @param {string} videoPath: absolute non-empty file path to edit
|
|
233
|
-
* @param {EditorConfig} config: editor configuration
|
|
234
|
-
* @returns {void} A **Promise** which resolves `void`
|
|
235
|
-
*/
|
|
236
|
-
export declare function showEditor(filePath: string, config?: EditorConfig): void;
|
|
237
|
-
/**
|
|
238
|
-
* Clean output files generated at all time
|
|
239
|
-
*
|
|
240
|
-
* @returns {Promise<string[]>} A **Promise** which resolves to array of files
|
|
241
|
-
*/
|
|
242
|
-
export declare function listFiles(): Promise<string[]>;
|
|
243
|
-
/**
|
|
244
|
-
* Clean output files generated at all time
|
|
245
|
-
*
|
|
246
|
-
* @returns {Promise} A **Promise** which resolves to number of deleted files
|
|
247
|
-
*/
|
|
248
|
-
export declare function cleanFiles(): Promise<number>;
|
|
249
|
-
/**
|
|
250
|
-
* Delete a file
|
|
251
|
-
*
|
|
252
|
-
* @param {string} filePath: absolute non-empty file path to delete
|
|
253
|
-
* @returns {Promise} A **Promise** which resolves `true` if successful
|
|
254
|
-
*/
|
|
255
|
-
export declare function deleteFile(filePath: string): Promise<boolean>;
|
|
256
|
-
/**
|
|
257
|
-
* Close editor
|
|
258
|
-
*/
|
|
259
|
-
export declare function closeEditor(): void;
|
|
260
|
-
/**
|
|
261
|
-
* Check if a file is valid audio or video file
|
|
262
|
-
*
|
|
263
|
-
* @returns {Promise} A **Promise** which resolves file info if successful
|
|
264
|
-
*/
|
|
265
|
-
export declare function isValidFile(url: string): Promise<boolean>;
|
|
266
|
-
//# sourceMappingURL=index.d.ts.map
|
|
240
|
+
//# sourceMappingURL=VideoTrim.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoTrim.nitro.d.ts","sourceRoot":"","sources":["../../../src/VideoTrim.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { EditorConfig, FileValidationResult } from './VideoTrim.nitro';
|
|
2
|
+
/**
|
|
3
|
+
* Delete a file
|
|
4
|
+
*
|
|
5
|
+
* @param {string} videoPath: absolute non-empty file path to edit
|
|
6
|
+
* @param {EditorConfig} config: editor configuration
|
|
7
|
+
* @returns {void} A **Promise** which resolves `void`
|
|
8
|
+
*/
|
|
9
|
+
export declare function showEditor(filePath: string, config: Partial<Omit<EditorConfig, 'headerTextColor'>> & {
|
|
10
|
+
headerTextColor?: string;
|
|
11
|
+
}, onEvent?: (eventName: string, payload: Record<string, string>) => void): void;
|
|
12
|
+
/**
|
|
13
|
+
* Clean output files generated at all time
|
|
14
|
+
*
|
|
15
|
+
* @returns {Promise<string[]>} A **Promise** which resolves to array of files
|
|
16
|
+
*/
|
|
17
|
+
export declare function listFiles(): Promise<string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Clean output files generated at all time
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise} A **Promise** which resolves to number of deleted files
|
|
22
|
+
*/
|
|
23
|
+
export declare function cleanFiles(): Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Delete a file
|
|
26
|
+
*
|
|
27
|
+
* @param {string} filePath: absolute non-empty file path to delete
|
|
28
|
+
* @returns {Promise} A **Promise** which resolves `true` if successful
|
|
29
|
+
*/
|
|
30
|
+
export declare function deleteFile(filePath: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Close editor
|
|
33
|
+
*/
|
|
34
|
+
export declare function closeEditor(onComplete?: () => void): void;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a file is valid audio or video file
|
|
37
|
+
*
|
|
38
|
+
* @returns {Promise} A **Promise** which resolves file info if successful
|
|
39
|
+
*/
|
|
40
|
+
export declare function isValidFile(url: string): Promise<FileValidationResult>;
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AA8D3B;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,GAAG;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,GACrE,IAAI,CAYN;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEtE"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JEditorConfig.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
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "EditorConfig.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::videotrim {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "EditorConfig" and the the Kotlin data class "EditorConfig".
|
|
21
|
+
*/
|
|
22
|
+
struct JEditorConfig final: public jni::JavaClass<JEditorConfig> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/EditorConfig;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct EditorConfig by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
EditorConfig toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldEnableHapticFeedback = clazz->getField<jboolean>("enableHapticFeedback");
|
|
35
|
+
jboolean enableHapticFeedback = this->getFieldValue(fieldEnableHapticFeedback);
|
|
36
|
+
static const auto fieldSaveToPhoto = clazz->getField<jboolean>("saveToPhoto");
|
|
37
|
+
jboolean saveToPhoto = this->getFieldValue(fieldSaveToPhoto);
|
|
38
|
+
static const auto fieldMaxDuration = clazz->getField<double>("maxDuration");
|
|
39
|
+
double maxDuration = this->getFieldValue(fieldMaxDuration);
|
|
40
|
+
static const auto fieldMinDuration = clazz->getField<double>("minDuration");
|
|
41
|
+
double minDuration = this->getFieldValue(fieldMinDuration);
|
|
42
|
+
static const auto fieldCancelButtonText = clazz->getField<jni::JString>("cancelButtonText");
|
|
43
|
+
jni::local_ref<jni::JString> cancelButtonText = this->getFieldValue(fieldCancelButtonText);
|
|
44
|
+
static const auto fieldSaveButtonText = clazz->getField<jni::JString>("saveButtonText");
|
|
45
|
+
jni::local_ref<jni::JString> saveButtonText = this->getFieldValue(fieldSaveButtonText);
|
|
46
|
+
static const auto fieldEnableCancelDialog = clazz->getField<jboolean>("enableCancelDialog");
|
|
47
|
+
jboolean enableCancelDialog = this->getFieldValue(fieldEnableCancelDialog);
|
|
48
|
+
static const auto fieldCancelDialogTitle = clazz->getField<jni::JString>("cancelDialogTitle");
|
|
49
|
+
jni::local_ref<jni::JString> cancelDialogTitle = this->getFieldValue(fieldCancelDialogTitle);
|
|
50
|
+
static const auto fieldCancelDialogMessage = clazz->getField<jni::JString>("cancelDialogMessage");
|
|
51
|
+
jni::local_ref<jni::JString> cancelDialogMessage = this->getFieldValue(fieldCancelDialogMessage);
|
|
52
|
+
static const auto fieldCancelDialogCancelText = clazz->getField<jni::JString>("cancelDialogCancelText");
|
|
53
|
+
jni::local_ref<jni::JString> cancelDialogCancelText = this->getFieldValue(fieldCancelDialogCancelText);
|
|
54
|
+
static const auto fieldCancelDialogConfirmText = clazz->getField<jni::JString>("cancelDialogConfirmText");
|
|
55
|
+
jni::local_ref<jni::JString> cancelDialogConfirmText = this->getFieldValue(fieldCancelDialogConfirmText);
|
|
56
|
+
static const auto fieldEnableSaveDialog = clazz->getField<jboolean>("enableSaveDialog");
|
|
57
|
+
jboolean enableSaveDialog = this->getFieldValue(fieldEnableSaveDialog);
|
|
58
|
+
static const auto fieldSaveDialogTitle = clazz->getField<jni::JString>("saveDialogTitle");
|
|
59
|
+
jni::local_ref<jni::JString> saveDialogTitle = this->getFieldValue(fieldSaveDialogTitle);
|
|
60
|
+
static const auto fieldSaveDialogMessage = clazz->getField<jni::JString>("saveDialogMessage");
|
|
61
|
+
jni::local_ref<jni::JString> saveDialogMessage = this->getFieldValue(fieldSaveDialogMessage);
|
|
62
|
+
static const auto fieldSaveDialogCancelText = clazz->getField<jni::JString>("saveDialogCancelText");
|
|
63
|
+
jni::local_ref<jni::JString> saveDialogCancelText = this->getFieldValue(fieldSaveDialogCancelText);
|
|
64
|
+
static const auto fieldSaveDialogConfirmText = clazz->getField<jni::JString>("saveDialogConfirmText");
|
|
65
|
+
jni::local_ref<jni::JString> saveDialogConfirmText = this->getFieldValue(fieldSaveDialogConfirmText);
|
|
66
|
+
static const auto fieldTrimmingText = clazz->getField<jni::JString>("trimmingText");
|
|
67
|
+
jni::local_ref<jni::JString> trimmingText = this->getFieldValue(fieldTrimmingText);
|
|
68
|
+
static const auto fieldFullScreenModalIOS = clazz->getField<jboolean>("fullScreenModalIOS");
|
|
69
|
+
jboolean fullScreenModalIOS = this->getFieldValue(fieldFullScreenModalIOS);
|
|
70
|
+
static const auto fieldType = clazz->getField<jni::JString>("type");
|
|
71
|
+
jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
|
|
72
|
+
static const auto fieldOutputExt = clazz->getField<jni::JString>("outputExt");
|
|
73
|
+
jni::local_ref<jni::JString> outputExt = this->getFieldValue(fieldOutputExt);
|
|
74
|
+
static const auto fieldOpenDocumentsOnFinish = clazz->getField<jboolean>("openDocumentsOnFinish");
|
|
75
|
+
jboolean openDocumentsOnFinish = this->getFieldValue(fieldOpenDocumentsOnFinish);
|
|
76
|
+
static const auto fieldOpenShareSheetOnFinish = clazz->getField<jboolean>("openShareSheetOnFinish");
|
|
77
|
+
jboolean openShareSheetOnFinish = this->getFieldValue(fieldOpenShareSheetOnFinish);
|
|
78
|
+
static const auto fieldRemoveAfterSavedToPhoto = clazz->getField<jboolean>("removeAfterSavedToPhoto");
|
|
79
|
+
jboolean removeAfterSavedToPhoto = this->getFieldValue(fieldRemoveAfterSavedToPhoto);
|
|
80
|
+
static const auto fieldRemoveAfterFailedToSavePhoto = clazz->getField<jboolean>("removeAfterFailedToSavePhoto");
|
|
81
|
+
jboolean removeAfterFailedToSavePhoto = this->getFieldValue(fieldRemoveAfterFailedToSavePhoto);
|
|
82
|
+
static const auto fieldRemoveAfterSavedToDocuments = clazz->getField<jboolean>("removeAfterSavedToDocuments");
|
|
83
|
+
jboolean removeAfterSavedToDocuments = this->getFieldValue(fieldRemoveAfterSavedToDocuments);
|
|
84
|
+
static const auto fieldRemoveAfterFailedToSaveDocuments = clazz->getField<jboolean>("removeAfterFailedToSaveDocuments");
|
|
85
|
+
jboolean removeAfterFailedToSaveDocuments = this->getFieldValue(fieldRemoveAfterFailedToSaveDocuments);
|
|
86
|
+
static const auto fieldRemoveAfterShared = clazz->getField<jboolean>("removeAfterShared");
|
|
87
|
+
jboolean removeAfterShared = this->getFieldValue(fieldRemoveAfterShared);
|
|
88
|
+
static const auto fieldRemoveAfterFailedToShare = clazz->getField<jboolean>("removeAfterFailedToShare");
|
|
89
|
+
jboolean removeAfterFailedToShare = this->getFieldValue(fieldRemoveAfterFailedToShare);
|
|
90
|
+
static const auto fieldAutoplay = clazz->getField<jboolean>("autoplay");
|
|
91
|
+
jboolean autoplay = this->getFieldValue(fieldAutoplay);
|
|
92
|
+
static const auto fieldJumpToPositionOnLoad = clazz->getField<double>("jumpToPositionOnLoad");
|
|
93
|
+
double jumpToPositionOnLoad = this->getFieldValue(fieldJumpToPositionOnLoad);
|
|
94
|
+
static const auto fieldCloseWhenFinish = clazz->getField<jboolean>("closeWhenFinish");
|
|
95
|
+
jboolean closeWhenFinish = this->getFieldValue(fieldCloseWhenFinish);
|
|
96
|
+
static const auto fieldEnableCancelTrimming = clazz->getField<jboolean>("enableCancelTrimming");
|
|
97
|
+
jboolean enableCancelTrimming = this->getFieldValue(fieldEnableCancelTrimming);
|
|
98
|
+
static const auto fieldCancelTrimmingButtonText = clazz->getField<jni::JString>("cancelTrimmingButtonText");
|
|
99
|
+
jni::local_ref<jni::JString> cancelTrimmingButtonText = this->getFieldValue(fieldCancelTrimmingButtonText);
|
|
100
|
+
static const auto fieldEnableCancelTrimmingDialog = clazz->getField<jboolean>("enableCancelTrimmingDialog");
|
|
101
|
+
jboolean enableCancelTrimmingDialog = this->getFieldValue(fieldEnableCancelTrimmingDialog);
|
|
102
|
+
static const auto fieldCancelTrimmingDialogTitle = clazz->getField<jni::JString>("cancelTrimmingDialogTitle");
|
|
103
|
+
jni::local_ref<jni::JString> cancelTrimmingDialogTitle = this->getFieldValue(fieldCancelTrimmingDialogTitle);
|
|
104
|
+
static const auto fieldCancelTrimmingDialogMessage = clazz->getField<jni::JString>("cancelTrimmingDialogMessage");
|
|
105
|
+
jni::local_ref<jni::JString> cancelTrimmingDialogMessage = this->getFieldValue(fieldCancelTrimmingDialogMessage);
|
|
106
|
+
static const auto fieldCancelTrimmingDialogCancelText = clazz->getField<jni::JString>("cancelTrimmingDialogCancelText");
|
|
107
|
+
jni::local_ref<jni::JString> cancelTrimmingDialogCancelText = this->getFieldValue(fieldCancelTrimmingDialogCancelText);
|
|
108
|
+
static const auto fieldCancelTrimmingDialogConfirmText = clazz->getField<jni::JString>("cancelTrimmingDialogConfirmText");
|
|
109
|
+
jni::local_ref<jni::JString> cancelTrimmingDialogConfirmText = this->getFieldValue(fieldCancelTrimmingDialogConfirmText);
|
|
110
|
+
static const auto fieldHeaderText = clazz->getField<jni::JString>("headerText");
|
|
111
|
+
jni::local_ref<jni::JString> headerText = this->getFieldValue(fieldHeaderText);
|
|
112
|
+
static const auto fieldHeaderTextSize = clazz->getField<double>("headerTextSize");
|
|
113
|
+
double headerTextSize = this->getFieldValue(fieldHeaderTextSize);
|
|
114
|
+
static const auto fieldHeaderTextColor = clazz->getField<double>("headerTextColor");
|
|
115
|
+
double headerTextColor = this->getFieldValue(fieldHeaderTextColor);
|
|
116
|
+
static const auto fieldAlertOnFailToLoad = clazz->getField<jboolean>("alertOnFailToLoad");
|
|
117
|
+
jboolean alertOnFailToLoad = this->getFieldValue(fieldAlertOnFailToLoad);
|
|
118
|
+
static const auto fieldAlertOnFailTitle = clazz->getField<jni::JString>("alertOnFailTitle");
|
|
119
|
+
jni::local_ref<jni::JString> alertOnFailTitle = this->getFieldValue(fieldAlertOnFailTitle);
|
|
120
|
+
static const auto fieldAlertOnFailMessage = clazz->getField<jni::JString>("alertOnFailMessage");
|
|
121
|
+
jni::local_ref<jni::JString> alertOnFailMessage = this->getFieldValue(fieldAlertOnFailMessage);
|
|
122
|
+
static const auto fieldAlertOnFailCloseText = clazz->getField<jni::JString>("alertOnFailCloseText");
|
|
123
|
+
jni::local_ref<jni::JString> alertOnFailCloseText = this->getFieldValue(fieldAlertOnFailCloseText);
|
|
124
|
+
return EditorConfig(
|
|
125
|
+
static_cast<bool>(enableHapticFeedback),
|
|
126
|
+
static_cast<bool>(saveToPhoto),
|
|
127
|
+
maxDuration,
|
|
128
|
+
minDuration,
|
|
129
|
+
cancelButtonText->toStdString(),
|
|
130
|
+
saveButtonText->toStdString(),
|
|
131
|
+
static_cast<bool>(enableCancelDialog),
|
|
132
|
+
cancelDialogTitle->toStdString(),
|
|
133
|
+
cancelDialogMessage->toStdString(),
|
|
134
|
+
cancelDialogCancelText->toStdString(),
|
|
135
|
+
cancelDialogConfirmText->toStdString(),
|
|
136
|
+
static_cast<bool>(enableSaveDialog),
|
|
137
|
+
saveDialogTitle->toStdString(),
|
|
138
|
+
saveDialogMessage->toStdString(),
|
|
139
|
+
saveDialogCancelText->toStdString(),
|
|
140
|
+
saveDialogConfirmText->toStdString(),
|
|
141
|
+
trimmingText->toStdString(),
|
|
142
|
+
static_cast<bool>(fullScreenModalIOS),
|
|
143
|
+
type->toStdString(),
|
|
144
|
+
outputExt->toStdString(),
|
|
145
|
+
static_cast<bool>(openDocumentsOnFinish),
|
|
146
|
+
static_cast<bool>(openShareSheetOnFinish),
|
|
147
|
+
static_cast<bool>(removeAfterSavedToPhoto),
|
|
148
|
+
static_cast<bool>(removeAfterFailedToSavePhoto),
|
|
149
|
+
static_cast<bool>(removeAfterSavedToDocuments),
|
|
150
|
+
static_cast<bool>(removeAfterFailedToSaveDocuments),
|
|
151
|
+
static_cast<bool>(removeAfterShared),
|
|
152
|
+
static_cast<bool>(removeAfterFailedToShare),
|
|
153
|
+
static_cast<bool>(autoplay),
|
|
154
|
+
jumpToPositionOnLoad,
|
|
155
|
+
static_cast<bool>(closeWhenFinish),
|
|
156
|
+
static_cast<bool>(enableCancelTrimming),
|
|
157
|
+
cancelTrimmingButtonText->toStdString(),
|
|
158
|
+
static_cast<bool>(enableCancelTrimmingDialog),
|
|
159
|
+
cancelTrimmingDialogTitle->toStdString(),
|
|
160
|
+
cancelTrimmingDialogMessage->toStdString(),
|
|
161
|
+
cancelTrimmingDialogCancelText->toStdString(),
|
|
162
|
+
cancelTrimmingDialogConfirmText->toStdString(),
|
|
163
|
+
headerText->toStdString(),
|
|
164
|
+
headerTextSize,
|
|
165
|
+
headerTextColor,
|
|
166
|
+
static_cast<bool>(alertOnFailToLoad),
|
|
167
|
+
alertOnFailTitle->toStdString(),
|
|
168
|
+
alertOnFailMessage->toStdString(),
|
|
169
|
+
alertOnFailCloseText->toStdString()
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public:
|
|
174
|
+
/**
|
|
175
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
176
|
+
*/
|
|
177
|
+
[[maybe_unused]]
|
|
178
|
+
static jni::local_ref<JEditorConfig::javaobject> fromCpp(const EditorConfig& value) {
|
|
179
|
+
return newInstance(
|
|
180
|
+
value.enableHapticFeedback,
|
|
181
|
+
value.saveToPhoto,
|
|
182
|
+
value.maxDuration,
|
|
183
|
+
value.minDuration,
|
|
184
|
+
jni::make_jstring(value.cancelButtonText),
|
|
185
|
+
jni::make_jstring(value.saveButtonText),
|
|
186
|
+
value.enableCancelDialog,
|
|
187
|
+
jni::make_jstring(value.cancelDialogTitle),
|
|
188
|
+
jni::make_jstring(value.cancelDialogMessage),
|
|
189
|
+
jni::make_jstring(value.cancelDialogCancelText),
|
|
190
|
+
jni::make_jstring(value.cancelDialogConfirmText),
|
|
191
|
+
value.enableSaveDialog,
|
|
192
|
+
jni::make_jstring(value.saveDialogTitle),
|
|
193
|
+
jni::make_jstring(value.saveDialogMessage),
|
|
194
|
+
jni::make_jstring(value.saveDialogCancelText),
|
|
195
|
+
jni::make_jstring(value.saveDialogConfirmText),
|
|
196
|
+
jni::make_jstring(value.trimmingText),
|
|
197
|
+
value.fullScreenModalIOS,
|
|
198
|
+
jni::make_jstring(value.type),
|
|
199
|
+
jni::make_jstring(value.outputExt),
|
|
200
|
+
value.openDocumentsOnFinish,
|
|
201
|
+
value.openShareSheetOnFinish,
|
|
202
|
+
value.removeAfterSavedToPhoto,
|
|
203
|
+
value.removeAfterFailedToSavePhoto,
|
|
204
|
+
value.removeAfterSavedToDocuments,
|
|
205
|
+
value.removeAfterFailedToSaveDocuments,
|
|
206
|
+
value.removeAfterShared,
|
|
207
|
+
value.removeAfterFailedToShare,
|
|
208
|
+
value.autoplay,
|
|
209
|
+
value.jumpToPositionOnLoad,
|
|
210
|
+
value.closeWhenFinish,
|
|
211
|
+
value.enableCancelTrimming,
|
|
212
|
+
jni::make_jstring(value.cancelTrimmingButtonText),
|
|
213
|
+
value.enableCancelTrimmingDialog,
|
|
214
|
+
jni::make_jstring(value.cancelTrimmingDialogTitle),
|
|
215
|
+
jni::make_jstring(value.cancelTrimmingDialogMessage),
|
|
216
|
+
jni::make_jstring(value.cancelTrimmingDialogCancelText),
|
|
217
|
+
jni::make_jstring(value.cancelTrimmingDialogConfirmText),
|
|
218
|
+
jni::make_jstring(value.headerText),
|
|
219
|
+
value.headerTextSize,
|
|
220
|
+
value.headerTextColor,
|
|
221
|
+
value.alertOnFailToLoad,
|
|
222
|
+
jni::make_jstring(value.alertOnFailTitle),
|
|
223
|
+
jni::make_jstring(value.alertOnFailMessage),
|
|
224
|
+
jni::make_jstring(value.alertOnFailCloseText)
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
} // namespace margelo::nitro::videotrim
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFileValidationResult.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
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "FileValidationResult.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::videotrim {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "FileValidationResult" and the the Kotlin data class "FileValidationResult".
|
|
21
|
+
*/
|
|
22
|
+
struct JFileValidationResult final: public jni::JavaClass<JFileValidationResult> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/FileValidationResult;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct FileValidationResult by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
FileValidationResult toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldIsValid = clazz->getField<jboolean>("isValid");
|
|
35
|
+
jboolean isValid = this->getFieldValue(fieldIsValid);
|
|
36
|
+
static const auto fieldFileType = clazz->getField<jni::JString>("fileType");
|
|
37
|
+
jni::local_ref<jni::JString> fileType = this->getFieldValue(fieldFileType);
|
|
38
|
+
static const auto fieldDuration = clazz->getField<double>("duration");
|
|
39
|
+
double duration = this->getFieldValue(fieldDuration);
|
|
40
|
+
return FileValidationResult(
|
|
41
|
+
static_cast<bool>(isValid),
|
|
42
|
+
fileType->toStdString(),
|
|
43
|
+
duration
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public:
|
|
48
|
+
/**
|
|
49
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
50
|
+
*/
|
|
51
|
+
[[maybe_unused]]
|
|
52
|
+
static jni::local_ref<JFileValidationResult::javaobject> fromCpp(const FileValidationResult& value) {
|
|
53
|
+
return newInstance(
|
|
54
|
+
value.isValid,
|
|
55
|
+
jni::make_jstring(value.fileType),
|
|
56
|
+
value.duration
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::videotrim
|