File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change 11import Cocoa
2+ import FirebaseCrashlytics
23
34final class Gifski {
45 enum Loop {
@@ -49,6 +50,10 @@ final class Gifski {
4950
5051 self . wrapper = wrapper
5152
53+ wrapper. setErrorMessageCallback {
54+ Crashlytics . crashlytics ( ) . log ( $0)
55+ }
56+
5257 wrapper. setProgressCallback { [ weak self] in
5358 guard let self else {
5459 return 0
Original file line number Diff line number Diff line change @@ -8,12 +8,14 @@ final class GifskiWrapper {
88 case rgb
99 }
1010
11+ typealias ErrorMessageCallback = ( String ) -> Void
1112 typealias ProgressCallback = ( ) -> Int
1213 typealias WriteCallback = ( Int , UnsafePointer < UInt8 > ) -> Int
1314
1415 private let pointer : OpaquePointer
1516 private var unmanagedSelf : Unmanaged < GifskiWrapper > !
1617 private var hasFinished = false
18+ private var errorMessageCallback : ErrorMessageCallback !
1719 private var progressCallback : ProgressCallback !
1820 private var writeCallback : WriteCallback !
1921
@@ -38,6 +40,30 @@ final class GifskiWrapper {
3840 }
3941 }
4042
43+ func setErrorMessageCallback( _ callback: @escaping ErrorMessageCallback ) {
44+ guard !hasFinished else {
45+ return
46+ }
47+
48+ errorMessageCallback = callback
49+
50+ gifski_set_error_message_callback (
51+ pointer,
52+ { message, context in // swiftlint:disable:this opening_brace
53+ guard
54+ let message,
55+ let context
56+ else {
57+ return
58+ }
59+
60+ let this = Unmanaged < GifskiWrapper > . fromOpaque ( context) . takeUnretainedValue ( )
61+ this. errorMessageCallback ( String ( cString: message) )
62+ } ,
63+ unmanagedSelf. toOpaque ( )
64+ )
65+ }
66+
4167 func setProgressCallback( _ callback: @escaping ProgressCallback ) {
4268 guard !hasFinished else {
4369 return
You can’t perform that action at this time.
0 commit comments