// // MobileRTCMeetingUserInfo.h // MobileRTC // // Created by Zoom Video Communications on 2017/2/27. // Copyright © 2019年 Zoom Video Communications, Inc. All rights reserved. // #import <Foundation/Foundation.h> /*! @class MobileRTCVideoStatus @brief The object of video status of the current user in the meeting. */ @interface MobileRTCVideoStatus : NSObject /*! @brief Query if the user is sending video. */ @property (nonatomic, assign) BOOL isSending; /*! @brief Query if the user is receiving video. */ @property (nonatomic, assign) BOOL isReceiving; /*! @brief Check if the camera is connected to the current meeting. */ @property (nonatomic, assign) BOOL isSource; @end /*! @brief An Enum for Audio Type. */ typedef NS_ENUM(NSUInteger, MobileRTCAudioType) { ///VoIP MobileRTCAudioType_VoIP = 0, ///Telephony MobileRTCAudioType_Telephony, ///None MobileRTCAudioType_None, }; /*! @class MobileRTCVideoStatus @brief The object of the audio status of the current user in the meeting. */ @interface MobileRTCAudioStatus : NSObject /*! @brief Query if the audio of the current user is muted. */ @property (nonatomic, assign) BOOL isMuted; /*! @brief Query if the current user is speaking. @warning webinar attenddee can not get the property. */ @property (nonatomic, assign) BOOL isTalking; /*! @brief Check the audio type of the current meeting. */ @property (nonatomic, assign) MobileRTCAudioType audioType; @end typedef NS_ENUM(NSUInteger, MobileRTCFeedbackType) { /*! @brief There is no feedback from user. */ MobileRTCFeedbackType_None = 0, /*! @brief User rises hand. */ MobileRTCFeedbackType_Hand, /*! @brief YES. */ MobileRTCFeedbackType_Yes, /*! @brief NO. */ MobileRTCFeedbackType_No, /*! @brief faster. */ MobileRTCFeedbackType_Fast, /*! @brief Slow/Slowly. */ MobileRTCFeedbackType_Slow, /*! @brief Good. */ MobileRTCFeedbackType_Good, /*! @brief Bad. */ MobileRTCFeedbackType_Bad, /*! @brief Clap. */ MobileRTCFeedbackType_Clap, /*! @brief Coffee. */ MobileRTCFeedbackType_Coffee, /*! @brief Clock. */ MobileRTCFeedbackType_Clock, /*! @brief Other expression. */ MobileRTCFeedbackType_Emoji, }; /*! @brief The information of the current user in the meeting. */ @interface MobileRTCMeetingUserInfo : NSObject /*! @brief The ID of user. */ @property (nonatomic, assign) NSUInteger userID; /*! @brief Get the user persistent ID matched with the current user information.This ID persists for the duration of the main meeting.Once the main meeting ends, the ID will be discarded. */ @property (nonatomic, retain) NSString* _Nullable persistentId; /*! @brief Determine if the information corresponds to the current user. */ @property (nonatomic, assign) BOOL isMySelf; /*! @brief The value of customerKey. */ @property (nonatomic, retain) NSString* _Nullable customerKey; /*! @brief The screen name of user. */ @property (nonatomic, retain) NSString* _Nonnull userName; /*! @brief The path to store the head portrait. */ @property (nonatomic, retain) NSString* _Nonnull avatarPath; /*! @brief User's video status in the meeting. */ @property (nonatomic, retain) MobileRTCVideoStatus* _Nonnull videoStatus; /*! @brief User's audio status in the meeting. */ @property (nonatomic, retain) MobileRTCAudioStatus* _Nonnull audioStatus; /*! @brief The user raised his hand. */ @property (nonatomic, assign) BOOL handRaised; /*! @brief User enter the waiting room when joins the meeting. */ @property (nonatomic, assign) BOOL inWaitingRoom; /*! @brief Query if the current user is the co-host. */ @property (nonatomic, assign) BOOL isCohost; /*! @brief Query if the current user is the host. */ @property (nonatomic, assign) BOOL isHost; /*! @brief Query if the current user is h323 user. */ @property (nonatomic, assign) BOOL isH323User; /*! @brief Query if the current user is Telephone user. */ @property (nonatomic, assign) BOOL isPureCallInUser; /*! @brief Query if the user is sharing only the sounds of computer. */ @property (nonatomic, assign) BOOL isSharingPureComputerAudio; /*! @brief The feedback type from the user. */ @property (nonatomic, assign) MobileRTCFeedbackType feedbackType; /*! @brief the type of role of the user specified by the current information. */ @property (nonatomic, assign) MobileRTCUserRole userRole; /*! @brief Determine if user is interpreter. */ @property (nonatomic, assign) BOOL isInterpreter; /*! @brief Get interpreter active language. */ @property (nonatomic, retain) NSString* _Nullable interpreterActiveLanguage; @end /*! @brief The information of user in the webinar. */ @interface MobileRTCMeetingWebinarAttendeeInfo : NSObject /*! @brief The ID of user. */ @property (nonatomic, assign) NSUInteger userID; /*! @brief Determine if the information corresponds to the current user. */ @property (nonatomic, assign) BOOL isMySelf; /*! @brief The screen name of user. */ @property (nonatomic, retain) NSString * _Nullable userName; /*! @brief the type of role of the user specified by the current information. */ @property (nonatomic, assign) MobileRTCUserRole userRole; /*! @brief The user raised his hand. */ @property (nonatomic, assign) BOOL handRaised; /*! @brief Attendee can talk or not. */ @property (nonatomic, assign) BOOL isAttendeeCanTalk; /*! @brief User's audio status in the webinar meeting. */ @property (nonatomic, retain) MobileRTCAudioStatus* _Nonnull audioStatus; @end