//
//  QXCClassSDKHeader.h
//  QXCClassSDK
//
//  Created by 王博 on 2019/1/14.
//  Copyright © 2019年 k. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "QXCClassParams.h"
#import "QXCProductModel.h"



NS_ASSUME_NONNULL_BEGIN

@protocol QXCClassSDKHeaderDelegate <NSObject>

@required
-(void)closeLiveClass;

@optional
-(void)exitMultiScreenAssistant;
-(void)enterRoomServerSuccess;
/**用户点击公告里的链接,如外部没有实现使用默认webview加载,如外部实现该代理内部不做任何操作**/
-(void)userClickUrlByTopTipMsg:(NSString*)url;
/**用户点击直播带货里的链接,如外部没有实现使用默认webview加载,如外部实现该代理内部不做任何操作**/
-(void)userClickProduct:(NSDictionary*)dic;
/**用户点击助教聊天区发送的链接,如外部没有实现使用默认webview加载,如外部实现该代理内部不做任何操作**/
-(void)userClickChatLink:(NSString*)url;
-(void)liveEndNotify:(NSDictionary*)dic;
-(void)willEnterPicInPicLive;
-(void)willResumeByPicInPic;
@end

@interface QXCClassSDKHeader : NSObject

+(instancetype)getInstance;
+(void)destoryInstance;

@property (nonatomic,weak) id<QXCClassSDKHeaderDelegate> delegate;

/**获取直播VC**/
-(UIViewController*)getQXCClassLiveVC;
/**获取直播IpadVC**/
-(UIViewController*)getIpadQXCClassLiveVC;
/**获取直播老师端VC**/
-(UIViewController*)getTeaLiveClassVC;
/**获取老师端Ipad VC**/
-(UIViewController*)getTeaIpadLiveClassVC;
/**获取大直播学生端VC**/
-(UIViewController*)getBigLiveClassVC;
/**获取大直播老师端VC**/
-(UIViewController*)getTeaBigLiveClassVC;
/**获取Ipad大直播VC**/
-(UIViewController*)getIpadBigLiveClassVC;
/**获取Ipad大直播老师端VC**/
-(UIViewController*)getTeaIpadBigLiveClassVC;
/**获取融合小课堂VC**/
-(UIViewController*)getSmallMergeClassVC;
/**获取融合小课堂老师端VC**/
-(UIViewController*)getTeaSmallMergeClassVC;
/**获取Ipad融合小课堂VC**/
-(UIViewController*)getIpadSmallMergeClassVC;
/**获取Ipad融合小课堂老师端VC**/
-(UIViewController*)getIpadTeaSmallMergeClassVC;

/**进入直播 需要先**/
-(void)enterQXCLiveClass:(QXCClassParams*)params;
/**进入直播 Ipad**/
-(void)enterIpadQXCLiveClass:(QXCClassParams*)params;
/**进入直播 老师端**/
-(void)enterTeaLiveClass:(QXCClassParams*)params;
/**进入直播 Ipad老师端**/
-(void)enterTeaIpadLiveClass:(QXCClassParams*)params;

/**进入直播 大课堂学生端**/
-(void)enterBigLiveClass:(QXCClassParams*)params;
/**进入直播 大课堂老师端**/
-(void)enterTeaBigLiveClass:(QXCClassParams*)params;
/**进入直播 iIpad大课堂学生端**/
-(void)enterIpadBigLiveClass:(QXCClassParams*)params;
/**进入直播 ipad大课堂老师端**/
-(void)enterIpadTeaBigLiveClass:(QXCClassParams*)params;
/**进入融合小课堂**/
-(void)enterSmallMergeClass:(QXCClassParams*)params;
/**进入融合小课堂老师端**/
-(void)enterTeaSmallMergeClass:(QXCClassParams*)params;
/**进入Ipad融合小课**/
-(void)enterIpadSmallMergeClass:(QXCClassParams*)params;
/**进入Ipad融合小课堂老师端**/
-(void)enterIpadTeaSmallMergeClass:(QXCClassParams*)params;

-(void)clearQXCLiveClass;


#pragma mark =================多屏 ===================
-(void)connectRoomServerByMultiScreen:(QXCClassParams*)params;
-(void)setSourceTypeByMultiScreen:(int)sourceType;
-(void)selectCaptureDevicePosition:(NSInteger)captureDevicePosition;
-(UIViewController*)getKWhiteBoardVC;
-(UIViewController*)getKCameraVC;
-(UIViewController*)getKChatVC;
-(void)closeMultiScreenAssistant;
-(void)clearMultiScreenAssistant;


-(UIView*)qxc_getPicInPicView;

-(void)qxc_enterPicInPicLive;

-(BOOL)qxc_checkCurIsPicInPicLive;

/// 获取缓存大小
- (NSUInteger)qxc_getSDKCacheSize;
/// 删除缓存
- (void)qxc_deleteSDKCache;
/** 设置是否测试环境、线上环境  需要在enterxxxClass之前调用**/
-(void)qxc_setServerType:(QXCServerType)serverType;
/** 获取SDK版本号**/
-(NSString*)qxc_getSDKVersion;
/** 如果当前有直播,调用该接口回关闭当前直播**/
-(void)closeCurLiveIfNeed;

-(void)qxc_setIsSaaSVer:(BOOL) isSaaS;
/** 是否显示log**/
-(void)qxc_showLog:(BOOL) showLog;
/** 通过客户端设置产品列表  需要在 enterxxxClass之后调用**/
-(void)qxc_setProdcutList:(NSArray<QXCProductModel*>*)productList;

- (void)qxc_isOpenCloudNotes:(BOOL)open;

- (void)qxc_allowCapturedTips:(BOOL)allow;

@end

NS_ASSUME_NONNULL_END