You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tencent_live_fluttify/ios/Classes/TencentLiveFluttifyPlugin.m

581 lines
22 KiB

//////////////////////////////////////////////////////////
// GENERATED BY FLUTTIFY. DO NOT EDIT IT.
//////////////////////////////////////////////////////////
#import "TencentLiveFluttifyPlugin.h"
#import <objc/runtime.h>
#import "SubHandler/SubHandler0.h"
#import "SubHandler/SubHandler1.h"
#import "SubHandler/SubHandler2.h"
#import "SubHandler/SubHandler3.h"
#import "SubHandler/SubHandler4.h"
#import "SubHandler/Custom/SubHandlerCustom.h"
#import "FluttifyMessageCodec.h"
// Dart端一次方法调用所存在的栈, 只有当MethodChannel传递参数受限时, 再启用这个容器
extern NSMutableDictionary<NSString*, NSObject*>* STACK;
// Dart端随机存取对象的容器
extern NSMutableDictionary<NSNumber*, NSObject*>* HEAP;
// 日志打印开关
extern BOOL enableLog;
@implementation TencentLiveFluttifyPlugin {
NSMutableDictionary<NSString*, Handler>* _handlerMap;
}
- (instancetype) initWithFlutterPluginRegistrar: (NSObject <FlutterPluginRegistrar> *) registrar {
self = [super init];
if (self) {
_registrar = registrar;
// 处理方法们
_handlerMap = @{}.mutableCopy;
[_handlerMap addEntriesFromDictionary: [self getSubHandler0]];
[_handlerMap addEntriesFromDictionary: [self getSubHandler1]];
[_handlerMap addEntriesFromDictionary: [self getSubHandler2]];
[_handlerMap addEntriesFromDictionary: [self getSubHandler3]];
[_handlerMap addEntriesFromDictionary: [self getSubHandler4]];
[_handlerMap addEntriesFromDictionary: [self getSubHandlerCustom]];
}
return self;
}
+ (void)registerWithRegistrar:(NSObject <FlutterPluginRegistrar> *)registrar {
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"com.fluttify/tencent_live_fluttify"
binaryMessenger:[registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
[registrar addMethodCallDelegate:[[TencentLiveFluttifyPlugin alloc] initWithFlutterPluginRegistrar:registrar]
channel:channel];
// 注册View
}
// Method Handlers
- (void)handleMethodCall:(FlutterMethodCall *)methodCall result:(FlutterResult)methodResult {
if (_handlerMap[methodCall.method] != nil) {
_handlerMap[methodCall.method](_registrar, [methodCall arguments], methodResult);
} else {
methodResult(FlutterMethodNotImplemented);
}
}
// 委托方法们
- (void)onLog : (NSString*)log LogLevel: (int)level WhichModule: (NSString*)module
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLiveBaseDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLiveBaseDelegate::onLog_LogLevel_WhichModule");
}
// convert to jsonable arg
// ref callback arg
NSString* arglog = log;
// primitive callback arg
NSNumber* arglevel = @(level);
// ref callback arg
NSString* argmodule = module;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLiveBaseDelegate::onLog_LogLevel_WhichModule" arguments:@{@"log": arglog == nil ? [NSNull null] : arglog, @"level": arglevel == nil ? [NSNull null] : arglevel, @"module": argmodule == nil ? [NSNull null] : argmodule}];
});
}
- (void)onPreviewProgress : (CGFloat)time
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoPreviewListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoPreviewListener::onPreviewProgress");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argtime = @(time);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoPreviewListener::onPreviewProgress" arguments:@{@"time": argtime == nil ? [NSNull null] : argtime}];
});
}
- (void)onPreviewFinished
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoPreviewListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoPreviewListener::onPreviewFinished");
}
// convert to jsonable arg
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoPreviewListener::onPreviewFinished" arguments:@{}];
});
}
- (void)onTextureDestoryed
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoCustomProcessListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoCustomProcessListener::onTextureDestoryed");
}
// convert to jsonable arg
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoCustomProcessListener::onTextureDestoryed" arguments:@{}];
});
}
- (void)onGenerateProgress : (float)progress
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoGenerateListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoGenerateListener::onGenerateProgress");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argprogress = @(progress);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoGenerateListener::onGenerateProgress" arguments:@{@"progress": argprogress == nil ? [NSNull null] : argprogress}];
});
}
- (void)onGenerateComplete : (TXGenerateResult*)result
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoGenerateListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoGenerateListener::onGenerateComplete");
}
// convert to jsonable arg
// ref callback arg
TXGenerateResult* argresult = result;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoGenerateListener::onGenerateComplete" arguments:@{@"result": argresult == nil ? [NSNull null] : argresult}];
});
}
- (void)onJoinProgress : (float)progress
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoJoinerListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoJoinerListener::onJoinProgress");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argprogress = @(progress);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoJoinerListener::onJoinProgress" arguments:@{@"progress": argprogress == nil ? [NSNull null] : argprogress}];
});
}
- (void)onJoinComplete : (TXJoinerResult*)result
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoJoinerListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoJoinerListener::onJoinComplete");
}
// convert to jsonable arg
// ref callback arg
TXJoinerResult* argresult = result;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoJoinerListener::onJoinComplete" arguments:@{@"result": argresult == nil ? [NSNull null] : argresult}];
});
}
- (void)onRecordProgress : (NSInteger)milliSecond
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLiveRecordListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLiveRecordListener::onRecordProgress");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argmilliSecond = @(milliSecond);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLiveRecordListener::onRecordProgress" arguments:@{@"milliSecond": argmilliSecond == nil ? [NSNull null] : argmilliSecond}];
});
}
- (void)onRecordComplete : (TXRecordResult*)result
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLiveRecordListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLiveRecordListener::onRecordComplete");
}
// convert to jsonable arg
// ref callback arg
TXRecordResult* argresult = result;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLiveRecordListener::onRecordComplete" arguments:@{@"result": argresult == nil ? [NSNull null] : argresult}];
});
}
- (void)onRecordEvent : (NSDictionary*)evt
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLiveRecordListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLiveRecordListener::onRecordEvent");
}
// convert to jsonable arg
// ref callback arg
NSDictionary* argevt = evt;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLiveRecordListener::onRecordEvent" arguments:@{@"evt": argevt == nil ? [NSNull null] : argevt}];
});
}
- (void)onAVRoomStatus : (NSArray*)array
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXCAVRoomListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXCAVRoomListener::onAVRoomStatus");
}
// convert to jsonable arg
// ref callback arg
NSArray* argarray = array;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXCAVRoomListener::onAVRoomStatus" arguments:@{@"array": argarray == nil ? [NSNull null] : argarray}];
});
}
- (void)onRecordRawPcmData : (NSData*)data timeStamp: (unsigned long long)timeStamp sampleRate: (int)sampleRate channels: (int)channels withBgm: (BOOL)withBgm
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXAudioCustomProcessDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXAudioCustomProcessDelegate::onRecordRawPcmData_timeStamp_sampleRate_channels_withBgm");
}
// convert to jsonable arg
// ref callback arg
NSData* argdata = data;
// primitive callback arg
NSNumber* argtimeStamp = @(timeStamp);
// primitive callback arg
NSNumber* argsampleRate = @(sampleRate);
// primitive callback arg
NSNumber* argchannels = @(channels);
// primitive callback arg
NSNumber* argwithBgm = @(withBgm);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXAudioCustomProcessDelegate::onRecordRawPcmData_timeStamp_sampleRate_channels_withBgm" arguments:@{@"data": argdata == nil ? [NSNull null] : argdata, @"timeStamp": argtimeStamp == nil ? [NSNull null] : argtimeStamp, @"sampleRate": argsampleRate == nil ? [NSNull null] : argsampleRate, @"channels": argchannels == nil ? [NSNull null] : argchannels, @"withBgm": argwithBgm == nil ? [NSNull null] : argwithBgm}];
});
}
- (void)onRecordPcmData : (NSData*)data timeStamp: (unsigned long long)timeStamp sampleRate: (int)sampleRate channels: (int)channels
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXAudioCustomProcessDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXAudioCustomProcessDelegate::onRecordPcmData_timeStamp_sampleRate_channels");
}
// convert to jsonable arg
// ref callback arg
NSData* argdata = data;
// primitive callback arg
NSNumber* argtimeStamp = @(timeStamp);
// primitive callback arg
NSNumber* argsampleRate = @(sampleRate);
// primitive callback arg
NSNumber* argchannels = @(channels);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXAudioCustomProcessDelegate::onRecordPcmData_timeStamp_sampleRate_channels" arguments:@{@"data": argdata == nil ? [NSNull null] : argdata, @"timeStamp": argtimeStamp == nil ? [NSNull null] : argtimeStamp, @"sampleRate": argsampleRate == nil ? [NSNull null] : argsampleRate, @"channels": argchannels == nil ? [NSNull null] : argchannels}];
});
}
- (void)onPlayEvent : (int)EvtID withParam: (NSDictionary*)param
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLivePlayListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLivePlayListener::onPlayEvent_withParam");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argEvtID = @(EvtID);
// ref callback arg
NSDictionary* argparam = param;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLivePlayListener::onPlayEvent_withParam" arguments:@{@"EvtID": argEvtID == nil ? [NSNull null] : argEvtID, @"param": argparam == nil ? [NSNull null] : argparam}];
});
}
- (void)onNetStatus : (NSDictionary*)param
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLivePlayListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLivePlayListener::onNetStatus");
}
// convert to jsonable arg
// ref callback arg
NSDictionary* argparam = param;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLivePlayListener::onNetStatus" arguments:@{@"param": argparam == nil ? [NSNull null] : argparam}];
});
}
- (void)onAudioInfoChanged : (int)sampleRate channels: (int)channels
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXAudioRawDataDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXAudioRawDataDelegate::onAudioInfoChanged_channels");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argsampleRate = @(sampleRate);
// primitive callback arg
NSNumber* argchannels = @(channels);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXAudioRawDataDelegate::onAudioInfoChanged_channels" arguments:@{@"sampleRate": argsampleRate == nil ? [NSNull null] : argsampleRate, @"channels": argchannels == nil ? [NSNull null] : argchannels}];
});
}
- (void)onPcmDataAvailable : (NSData*)data pts: (unsigned long long)timestamp
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXAudioRawDataDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXAudioRawDataDelegate::onPcmDataAvailable_pts");
}
// convert to jsonable arg
// ref callback arg
NSData* argdata = data;
// primitive callback arg
NSNumber* argtimestamp = @(timestamp);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXAudioRawDataDelegate::onPcmDataAvailable_pts" arguments:@{@"data": argdata == nil ? [NSNull null] : argdata, @"timestamp": argtimestamp == nil ? [NSNull null] : argtimestamp}];
});
}
- (GLuint)onPreProcessTexture : (GLuint)texture width: (CGFloat)width height: (CGFloat)height
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoCustomProcessDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoCustomProcessDelegate::onPreProcessTexture_width_height");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argtexture = @(texture);
// primitive callback arg
NSNumber* argwidth = @(width);
// primitive callback arg
NSNumber* argheight = @(height);
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoCustomProcessDelegate::onPreProcessTexture_width_height"
arguments:@{@"texture": argtexture == nil ? [NSNull null] : argtexture, @"width": argwidth == nil ? [NSNull null] : argwidth, @"height": argheight == nil ? [NSNull null] : argheight}
result:^(id result) {}]; // 由于结果是异步返回, 这里用不上, 所以就不生成代码了
});
// 由于flutter无法同步调用method channel, 所以暂不支持有返回值的回调方法
// 相关issue https://github.com/flutter/flutter/issues/28310
NSLog(@"暂不支持有返回值的回调方法");
////////////////////////////如果需要手写代码, 请写在这里/////////////////////////////
////////////////////////////////////////////////////////////////////////////////
GLuint result = 0; return result;
}
- (void)onDetectFacePoints : (NSArray*)points
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoCustomProcessDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoCustomProcessDelegate::onDetectFacePoints");
}
// convert to jsonable arg
// ref callback arg
NSArray* argpoints = points;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoCustomProcessDelegate::onDetectFacePoints" arguments:@{@"points": argpoints == nil ? [NSNull null] : argpoints}];
});
}
- (BOOL)onPlayerPixelBuffer : (CVPixelBufferRef)pixelBuffer
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXVideoCustomProcessDelegate::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXVideoCustomProcessDelegate::onPlayerPixelBuffer");
}
// convert to jsonable arg
// value pointer callback arg
NSValue* argpixelBuffer = [NSValue valueWithPointer:pixelBuffer];
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXVideoCustomProcessDelegate::onPlayerPixelBuffer"
arguments:@{@"pixelBuffer": argpixelBuffer == nil ? [NSNull null] : argpixelBuffer}
result:^(id result) {}]; // 由于结果是异步返回, 这里用不上, 所以就不生成代码了
});
// 由于flutter无法同步调用method channel, 所以暂不支持有返回值的回调方法
// 相关issue https://github.com/flutter/flutter/issues/28310
NSLog(@"暂不支持有返回值的回调方法");
////////////////////////////如果需要手写代码, 请写在这里/////////////////////////////
////////////////////////////////////////////////////////////////////////////////
return NO;
}
- (void)onPushEvent : (int)EvtID withParam: (NSDictionary*)param
{
FlutterMethodChannel *channel = [FlutterMethodChannel
methodChannelWithName:@"TXLivePushListener::Callback"
binaryMessenger:[_registrar messenger]
codec:[FlutterStandardMethodCodec codecWithReaderWriter:[[FluttifyReaderWriter alloc] init]]];
// print log
if (enableLog) {
NSLog(@"TXLivePushListener::onPushEvent_withParam");
}
// convert to jsonable arg
// primitive callback arg
NSNumber* argEvtID = @(EvtID);
// ref callback arg
NSDictionary* argparam = param;
dispatch_async(dispatch_get_main_queue(), ^{
[channel invokeMethod:@"Callback::TXLivePushListener::onPushEvent_withParam" arguments:@{@"EvtID": argEvtID == nil ? [NSNull null] : argEvtID, @"param": argparam == nil ? [NSNull null] : argparam}];
});
}
@end