Skip to content

Commit 13f672b

Browse files
chensshiAbySwifter
authored andcommitted
publish version 4.2.0
1 parent 5a462e4 commit 13f672b

272 files changed

Lines changed: 13150 additions & 4713 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

atomic_x/Sources/TCEffectPlayerKit/LICENSE renamed to TEBeautyKit/LICENSE

File renamed without changes.
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
//
2+
// TUIBeautyExtension.swift
3+
// TEBeautyKit
4+
//
5+
// Created by jackyixue on 2024/7/15.
6+
// Copyright (c) 2024 Tencent.
7+
8+
import Foundation
9+
import TUICore
10+
import TEBeautyKit
11+
12+
@objcMembers
13+
public class TUIBeautyExtension: NSObject {
14+
15+
static let shared = TUIBeautyExtension()
16+
private weak var beautyPanel: TUIBeautyKit?
17+
18+
static func register() {
19+
TUICore.registerExtension(
20+
String.TUICORE_TEBEAUTYEXTENSION_GETBEAUTYPANEL,
21+
object: TUIBeautyExtension.shared
22+
)
23+
TUICore.registerService(
24+
String.TUICORE_TEBEAUTYSERVICE,
25+
object: TUIBeautyExtension.shared
26+
)
27+
}
28+
}
29+
30+
// MARK: - TUIExtensionProtocol
31+
32+
extension TUIBeautyExtension: TUIExtensionProtocol {
33+
public func onGetExtension(_ extensionID: String, param: [AnyHashable: Any]?) -> [TUIExtensionInfo]? {
34+
guard let params = param as? [String: Any] else { return nil }
35+
if extensionID == .TUICORE_TEBEAUTYEXTENSION_GETBEAUTYPANEL {
36+
guard let width = params["width"] as? CGFloat,
37+
let height = params["height"] as? CGFloat else { return nil }
38+
var panel: TUIBeautyKit? = beautyPanel
39+
if panel == nil {
40+
panel = TUIBeautyKit(frame: CGRect(x: 0, y: 0, width: width, height: height))
41+
}
42+
beautyPanel = panel
43+
let info = TUIExtensionInfo()
44+
info.data = [String.TUICORE_TEBEAUTYEXTENSION_GETBEAUTYPANEL: panel!]
45+
return [info]
46+
}
47+
return nil
48+
}
49+
}
50+
51+
// MARK: - TUIServiceProtocol
52+
53+
extension TUIBeautyExtension: TUIServiceProtocol {
54+
public func onCall(_ method: String, param: [AnyHashable: Any]?) -> Any? {
55+
if method == .TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAMEWITHTEXTURE {
56+
guard let textureId = param?[String.TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREID] as? Int32,
57+
let textureWidth = param?[String.TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREWIDTH] as? Int32,
58+
let textureHeight = param?[String.TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREHEIGHT] as? Int32 else {
59+
return nil
60+
}
61+
return beautyPanel?.processVideoFrame(textureId: textureId,
62+
textureWidth: textureWidth,
63+
textureHeight: textureHeight)
64+
}
65+
if method == .TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAMEWITHPIXELDATA {
66+
guard let pixelBufferValue = param?[String.TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_PIXELVALUE] as? NSValue else {
67+
return nil
68+
}
69+
let pixelBuffer = Unmanaged<CVPixelBuffer>.fromOpaque(pixelBufferValue.pointerValue!).takeUnretainedValue()
70+
guard let result = beautyPanel?.processVideoFrame(pixelBuffer: pixelBuffer) else {
71+
return pixelBufferValue
72+
}
73+
return NSValue(pointer: Unmanaged.passUnretained(result).toOpaque())
74+
}
75+
if method == .TUICORE_TEBEAUTYEXTENSION_DESTROY_BEAUTYPANEL {
76+
beautyPanel?.removeFromSuperview()
77+
beautyPanel = nil
78+
}
79+
if method == .TUICORE_TEBEAUTYSERVICE_SETPANELLEVEL {
80+
if let level = param?[String.TUICORE_TEBEAUTYSERVICE_PANELLEVEL] as? String {
81+
TUIBeautyKit.currentBeautyLevel = TUIBeautyKit.BeautyLevel(rawValue: level) ?? .S1_07
82+
}
83+
}
84+
if method == .TUICORE_TEBEAUTYSERVICE_CHECKRESOURCE {
85+
return TUIBeautyKit.checkResource(completion: nil)
86+
}
87+
return nil
88+
}
89+
90+
public func onCall(_ method: String, param: [AnyHashable: Any]?, resultCallback: @escaping TUICallServiceResultCallback) -> Any? {
91+
if method == .TUICORE_TEBEAUTYSERVICE_SETLICENSE {
92+
guard let licenseUrl = param?[String.TUICORE_TEBEAUTYSERVICE_LICENSEURL] as? String,
93+
let licenseKey = param?[String.TUICORE_TEBEAUTYSERVICE_LICENSEKEY] as? String else {
94+
return nil
95+
}
96+
TEBeautyKit.setTELicense(licenseUrl, key: licenseKey) { code, msg in
97+
resultCallback(code, msg ?? "", [:])
98+
}
99+
}
100+
if method == .TUICORE_TEBEAUTYSERVICE_CHECKRESOURCE {
101+
return TUIBeautyKit.checkResource {
102+
resultCallback(0, "", [:])
103+
}
104+
}
105+
return nil
106+
}
107+
}
108+
109+
// MARK: - TUICore Keys
110+
111+
fileprivate extension String {
112+
static let TUICORE_TEBEAUTYEXTENSION_GETBEAUTYPANEL = "TUICore_TEBeautyExtension_GetBeautyPanel"
113+
static let TUICORE_TEBEAUTYEXTENSION_DESTROY_BEAUTYPANEL = "TUICore_TEBeautyExtension_Destroy_BeautyPanel"
114+
static let TUICORE_TEBEAUTYSERVICE = "TUICore_TEBeautyService"
115+
static let TUICORE_TEBEAUTYSERVICE_SETLICENSE = "TUICore_TEBeautyService_SetLicense"
116+
static let TUICORE_TEBEAUTYSERVICE_LICENSEURL = "TUICore_TEBeautyService_LicenseUrl"
117+
static let TUICORE_TEBEAUTYSERVICE_LICENSEKEY = "TUICore_TEBeautyService_LicenseKey"
118+
static let TUICORE_TEBEAUTYSERVICE_CHECKRESOURCE = "TUICore_TEBeautyService_CheckResource"
119+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAMEWITHTEXTURE = "TUICore_TEBeautyService_ProcessVideoFrameWithTexture"
120+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREID = "TUICore_TEBeautyService_ProcessVideoFrame_TextureId"
121+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREWIDTH = "TUICore_TEBeautyService_ProcessVideoFrame_TextureWidth"
122+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_TEXTUREHEIGHT = "TUICore_TEBeautyService_ProcessVideoFrame_TextureHeight"
123+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAMEWITHPIXELDATA = "TUICore_TEBeautyService_ProcessVideoFrameWithPixelData"
124+
static let TUICORE_TEBEAUTYSERVICE_PROCESSVIDEOFRAME_PIXELVALUE = "TUICore_TEBeautyService_ProcessVideoFrame_PixelValue"
125+
static let TUICORE_TEBEAUTYSERVICE_SETPANELLEVEL = "TUICore_TEBeautyService_SetPanelLevel"
126+
static let TUICORE_TEBEAUTYSERVICE_PANELLEVEL = "TUICore_TEBeautyService_PanelLevel"
127+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Pod::Spec.new do |spec|
2+
spec.name = 'TEBeautyKitWrapper'
3+
spec.version = '1.0.0'
4+
spec.homepage = 'https://trtc.io/'
5+
spec.documentation_url = 'https://trtc.io/document'
6+
spec.license = { :type => 'MIT', :file => 'LICENSE' }
7+
spec.authors = 'trtc.io'
8+
spec.summary = 'TUIBeautyKit wrapper for TUICore-based beauty panel integration.'
9+
10+
spec.platform = :ios
11+
spec.ios.deployment_target = '13.0'
12+
spec.static_framework = true
13+
spec.swift_version = '5.0'
14+
15+
spec.source = { :path => './' }
16+
17+
spec.dependency 'TUICore'
18+
spec.dependency 'SnapKit'
19+
20+
spec.default_subspec = 'Package'
21+
22+
spec.subspec 'Package' do |ss|
23+
ss.source_files = '*.swift'
24+
ss.dependency 'TEBeautyKit'
25+
end
26+
27+
spec.subspec 'Game' do |ss|
28+
ss.source_files = '*.swift'
29+
ss.dependency 'TEBeautyKit/Game'
30+
end
31+
end

0 commit comments

Comments
 (0)