//
//  ERTCVideoMeetingManager.h
//  ERTCDemo
//
//  Created by wangjinlong23 on 2022/5/11.
//

#import <Foundation/Foundation.h>
#import <ERTC/ERTCDef.h>

#define firstView @"one"
#define secondtView @"two"
#define thirdView @"three"

typedef NS_ENUM(int, ERTCPlayerViewType) {
    ERTCPlayerViewType_Mine = 1,
    ERTCPlayerViewType_Other,
};

@interface ERTCUserInfo : NSObject

@property (nonatomic, copy) NSString *uid;
@property (nonatomic, assign) BOOL isVideoAvailable;
@property (nonatomic, assign) BOOL isAudioAvailable;
@property (nonatomic, assign) BOOL isSmallStream;///是否订阅的小流，默认大流
@property (nonatomic, assign) BOOL isSharingAccount; //该用户是否在共享
@property (nonatomic, assign) ERTCPlayerViewType type;
@property (nonatomic, assign) ERTCNetworkQuality netLevel;

- (instancetype)initWithUID:(NSString *)uid;
@end

@interface ERTCVideoMeetingManager : NSObject
@property (nonatomic, strong) ERTCUserInfo *localUserInfo;
@property (nonatomic, assign) CGSize screenShareSize;
@property (nonatomic, assign) BOOL screenShare;;
@property (nonatomic, strong) NSMutableDictionary *userVideoStateDic;
@property (nonatomic, strong) NSMutableDictionary *userNetLevelDic;
@property (nonatomic, strong) NSMutableDictionary *subscribeStateDic;//用户订阅大码流状态
@property (nonatomic, strong) NSMutableDictionary *firstPageDic;//第一页展示的用户
@property (nonatomic, assign) BOOL enableAudioExcitation;//语音激励
@property (nonatomic, assign) BOOL enableAudioMode;//语音模式
@property (nonatomic, assign) BOOL videoState;//视频状态

+(instancetype)sharedInstance;

///远端用户进入房间
- (void)onRemoteUserEnterRoom:(NSString *)userId;

///远端用户离开房间
- (void)onRemoteUserLeaveRoom:(NSString *)userId;

//判断是否是第一页用户
- (BOOL)isFirstPageDic:(NSString *)account;

//取消语音模式
- (void)cancelAudioModel;

//获取用户信息
- (ERTCUserInfo *)getMemberInfoByUserId:(NSString *)userId;

///删除所有订阅用户
- (void)removeAllRemoteUser;

///获取房间内的用户
- (NSArray<ERTCUserInfo *> *)getRemoteUserList;

///退出房间
- (void)exitRoom;

#pragma mark-新增接口

@end


