Skip to content

Commit

Permalink
v4.4.57220.1211
Browse files Browse the repository at this point in the history
  • Loading branch information
carsonzoom committed Dec 17, 2019
1 parent cbe4e2b commit e014323
Show file tree
Hide file tree
Showing 72 changed files with 412 additions and 5 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# CHANGELOG

## 2019-12-16

* No interface changes for C# wrapper, please refer to [https://github.com/zoom/zoom-sdk-windows/blob/master/CHANGELOG.md](https://github.com/zoom/zoom-sdk-windows/blob/master/CHANGELOG.md) for changes in Windows SDK.

## 2019-11-04

* No interface changes for C# wrapper, please refer to [https://github.com/zoom/zoom-sdk-windows/blob/master/CHANGELOG.md](https://github.com/zoom/zoom-sdk-windows/blob/master/CHANGELOG.md) for changes in Windows SDK.
Expand Down
Binary file modified bin/Aomhost/aomhost64.exe
Binary file not shown.
Binary file modified bin/Aomhost/libcml.dll
Binary file not shown.
Binary file modified bin/Aomhost/mkldnn.dll
Binary file not shown.
Binary file modified bin/Aomhost/zCrashReport64.dll
Binary file not shown.
Binary file modified bin/Aomhost/zCrashReport64.exe
Binary file not shown.
Binary file modified bin/CmmBrowserEngine.dll
Binary file not shown.
Binary file modified bin/Cmmlib.dll
Binary file not shown.
Binary file modified bin/CptControl.exe
Binary file not shown.
Binary file modified bin/CptInstall.exe
Binary file not shown.
Binary file modified bin/CptShare.dll
Binary file not shown.
Binary file modified bin/DuiLib.dll
Binary file not shown.
Binary file modified bin/XmppDll.dll
Binary file not shown.
Binary file modified bin/annoter.dll
Binary file not shown.
Binary file modified bin/aomagent.dll
Binary file not shown.
Binary file modified bin/asproxy.dll
Binary file not shown.
Binary file modified bin/avcodec-55.dll
Binary file not shown.
Binary file modified bin/avformat-55.dll
Binary file not shown.
Binary file modified bin/avutil-52.dll
Binary file not shown.
Binary file modified bin/libeay32.dll
Binary file not shown.
Binary file modified bin/libfaac.dll
Binary file not shown.
Binary file modified bin/mDNSResponder.dll
Binary file not shown.
Binary file modified bin/mcm.dll
Binary file not shown.
Binary file modified bin/mdnsclient.dll
Binary file not shown.
Binary file modified bin/msaalib.dll
Binary file not shown.
Binary file modified bin/nydus.dll
Binary file not shown.
Binary file modified bin/reslib.dll
Binary file not shown.
Binary file modified bin/sdk.dll
Binary file not shown.
Binary file modified bin/sdkExt.dll
Binary file not shown.
Binary file modified bin/ssb_sdk.dll
Binary file not shown.
Binary file modified bin/ssleay32.dll
Binary file not shown.
Binary file modified bin/swscale-2.dll
Binary file not shown.
Binary file modified bin/tp.dll
Binary file not shown.
Binary file modified bin/turbojpeg.dll
Binary file not shown.
Binary file modified bin/util.dll
Binary file not shown.
Binary file modified bin/viper.dll
Binary file not shown.
Binary file modified bin/zCSCptService.exe
Binary file not shown.
Binary file modified bin/zChatApp.dll
Binary file not shown.
Binary file modified bin/zCrashReport.dll
Binary file not shown.
Binary file modified bin/zCrashReport.exe
Binary file not shown.
Binary file modified bin/zData.dll
Binary file not shown.
Binary file modified bin/zSDK.dll
Binary file not shown.
Binary file modified bin/zTscoder.exe
Binary file not shown.
Binary file modified bin/zVideoApp.dll
Binary file not shown.
Binary file modified bin/zVideoUI.dll
Binary file not shown.
Binary file modified bin/zWebService.dll
Binary file not shown.
Binary file modified bin/zWinRes.dll
Binary file not shown.
Binary file modified bin/zcsairhost.exe
Binary file not shown.
Binary file modified bin/zcscpthost.exe
Binary file not shown.
Binary file modified bin/zlt.dll
Binary file not shown.
Binary file modified bin/zmb.dll
Binary file not shown.
Binary file modified bin/zzhost.dll
Binary file not shown.
Binary file modified bin/zzplugin.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v4.4.56616.1028
v4.4.57220.1211
46 changes: 45 additions & 1 deletion zoom_sdk_c_sharp_wrap/h/auth_service_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ enum LOGINSTATUS
};

/*! \struct tagAuthParam
\brief SDK Authentication parameter.
\brief SDK Authentication parameter with sdk key/secret.
Here are more detailed structural descriptions.
*/
typedef struct tagAuthParam
Expand All @@ -54,6 +54,41 @@ typedef struct tagAuthParam
}
}AuthParam;

/*! \struct tagAuthContext
\brief SDK Authentication parameter with jwt token.
Here are more detailed structural descriptions.
*/
typedef struct tagAuthContext
{
const wchar_t* jwt_token; /*!JWT token. You may generate your JWT token using the online tool https://jwt.io/. **It is highly recommended to generate your JWT token in your backend server.**
JWT is generated with three core parts: Header, Payload, and Signature. When combined, these parts are separated by a period to form a token: `aaaaa.bbbbb.cccc`.
Please follow this template to compose your payload for SDK initialization:
** Header
{
"alg": "HS256",
"typ": "JWT"
}
** Payload
{
"appKey": "string", // Your SDK key
"iat": long, // access token issue timestamp
"exp": long, // access token expire time
"tokenExp": long // token expire time
}
** Signature
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
"Your SDK secret here"
)
*/
tagAuthContext()
{
jwt_token = NULL;
}

}AuthContext;

/*! \enum LoginType
\brief User login type.
Here are more detailed structural descriptions.
Expand Down Expand Up @@ -141,6 +176,9 @@ class IAuthServiceEvent

/// \brief Zoom identity has expired, please re-login or generate a new zoom access token via REST Api.
virtual void onZoomIdentityExpired() = 0;

/// \brief Zoom authentication identity will be expired in 10 minutes, please re-auth.
virtual void onZoomAuthIdentityExpired() = 0;
};

class IDirectShareServiceHelper;
Expand All @@ -162,6 +200,12 @@ class IAuthService
///Otherwise failed. To get extended error information, see \link SDKError \endlink enum.
virtual SDKError SDKAuth(AuthParam& authParam) = 0;

/// \brief SDK Authentication with jwt token.
/// \param authContext The parameter to be used for authentication SDK, see \link AuthContext \endlink structure.
/// \return If the function succeeds, the return value is SDKErr_Success.
///Otherwise failed. To get extended error information, see \link SDKError \endlink enum.
virtual SDKError SDKAuth(AuthContext& authContext) = 0;

/// \brief Get authentication status.
/// \return The return value is authentication status. To get extended error information, see \link AuthResult \endlink enum.
virtual AuthResult GetAuthResult() = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,10 @@ class IMeetingUIElemConfiguration
/// \param bEnable TRUE indicates to display the button. Otherwise not.
virtual void EnableVideoButtonOnMeetingUI(bool bEnable) = 0;

/// \brief Set the visibility of the Audio button in the toolbar during the meeting. Default value: TRUE.
/// \param bEnable TRUE indicates to display the button. Otherwise not.
virtual void EnableAudioButtonOnMeetingUI(bool bEnable) = 0;

/// \brief Set the visibility of the buttons to enter or exit the full screen in the meeting window. Default value: TRUE.
/// \param bEnable TRUE indicates to display the button. Otherwise not.
virtual void EnableEnterAndExitFullScreenButtonOnMeetingUI(bool bEnable) = 0;
Expand Down Expand Up @@ -475,6 +479,21 @@ class IMeetingUIElemConfiguration
/// \brief Set the visibility of poll on meeting UI. Default is displaying.
/// \param [in] bHide TRUE means hiding, otherwise not.
virtual void HidePollOnMeetingUI(bool bHide) = 0;

/// \brief Set the ability to control the audio device in the meeting. Default is having the ability.
/// \param [in] bDisable TRUE means having no ability, otherwise not.
/// \This API is not recommended to call because once the bDsialbe is true, Zoom meeting may lose the control of the audio devices.
virtual void DisableAdvanceAudioDeivceCtrl(bool bDisable) = 0;

/// \brief Set if it is able to handle the event with SDK user's own program by clicking Audio button in the meeting. Default value: FALSE.
/// \param bRedirect TRUE indicates to handle with user's own program. FALSE not.
/// \remarks If the user calls this function to convert, the SDK will trigger the IMeetingUIControllerEvent::onAudioBtnClicked(AudioBtnClickedCallbackInfo info), and the user shall deal with the subsequent logic himself.
virtual void RedirectClickAudioBTNEvent(bool bRedirect) = 0;

/// \brief Set if it is able to handle the event with SDK user's own program by clicking Audio Menu button in the meeting. Default value: FALSE.
/// \param bRedirect TRUE indicates to handle with user's own program. FALSE not.
/// \remarks If the user calls this function to convert, the SDK will trigger the IMeetingUIControllerEvent::onAudioMenuBtnClicked(), and the user shall deal with the subsequent logic himself.
virtual void RedirectClickAudioMenuBTNEvent(bool bRedirect) = 0;
};

/// \brief Meeting connect configuration Interface
Expand Down Expand Up @@ -529,6 +548,10 @@ class IJoinMeetingBehaviorConfiguration
/// \brief Set the visibility of the dialog SELECT JOIN AUDIO when joining meeting. Default: FALSE.
/// \param bDisable TRUE indicates to hide the dialog box.
virtual void DisableAutoShowSelectJoinAudioDlgWhenJoinMeeting(bool bDisable) = 0;

/// \brief Set the visibility of the dialog box of joining a meeting. Default: FALSE.
/// \param bDisable TRUE indicates to hide the dialog box. FALSE not.
virtual void DisableShowJoinMeetingWnd(bool bDisable) = 0;
};

/// \brief Meeting configuration interface.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
/*!
* \file meeting_qa_ctrl_interface.h
* \brief Meeting Service qa Interface
* Valid for both ZOOM style and user custom interface mode.
*/
#ifndef _MEETING_QA_CTRL_INTERFACE_H_
#define _MEETING_QA_CTRL_INTERFACE_H_
#include "..\zoom_sdk_def.h"

BEGIN_ZOOM_SDK_NAMESPACE

/*! \enum QAConnectStatus
\brief Information category for Q&A connecting.
Here are more detailed structural descriptions.
*/
enum QAConnectStatus
{
QA_STATUS_CONNECTING = 0,
QA_STATUS_CONNECTED,
QA_STATUS_DISCONNECTED,
QA_STATUS_DISCONNECT_CONFLICT,
};

/// \brief answer item interface class
class IAnswerItem
{
public:
virtual ~IAnswerItem(){}

virtual time_t GetTimeStamp() = 0;
virtual const wchar_t* GetText() = 0;
virtual const wchar_t* GetSenderName() = 0;
virtual const wchar_t* GetQuestionID() = 0;
virtual const wchar_t* GetAnswerID() = 0;

virtual bool IsPrivate() = 0;
virtual bool IsLiveAnswer() = 0;
virtual bool IsSenderMyself() = 0;
};

/// \brief question item interface class
class IQAItemInfo
{
public:
virtual ~IQAItemInfo() {}

virtual time_t GetTimeStamp() = 0;
virtual unsigned int GetUpvoteNum() = 0;
virtual const wchar_t* GetText() = 0;
virtual const wchar_t* GetSenderName() = 0;
virtual const wchar_t* GetQuestionID() = 0;

virtual bool IsAnonymous() = 0;
virtual bool IsMarkedAsAnswered() = 0;
virtual bool IsMarkedAsDismissed() = 0;
virtual bool IsSenderMyself() = 0;
virtual bool IsMySelfUpvoted() = 0;

virtual bool HasLiveAnswers() = 0;
virtual bool HasTextAnswers() = 0;
virtual bool AmILiveAnswering() = 0;
virtual const wchar_t* GetLiveAnswerName() = 0;
virtual bool IsLiveAnswering() = 0;

//answer list!
virtual IList<IAnswerItem*>* GetAnswerList() = 0;
};

/// \brief Meeting q&a callback event.
///
class IMeetingQAControllerEvent
{
public:
/// \brief Callback event of Q&A connecting status.
/// \param connectStatus: The value of Q&A connecting status. For more details, see \link QAConnectStatus \endlink enum.
virtual void OnQAConnectStatus(QAConnectStatus connectStatus) = 0;

virtual void OnAddQuestion(const wchar_t* questionID, bool bSuccess) = 0;

virtual void OnAddAnswer(const wchar_t* answerID, bool bSuccess) = 0;

virtual void OnQuestionMarkedAsDismissed(const wchar_t* question_id) = 0;

virtual void OnReopenQuestion(const wchar_t* question_id) = 0;

virtual void OnReceiveQuestion(const wchar_t* questionID) = 0;

virtual void OnReceiveAnswer(const wchar_t* answerID) = 0;

virtual void OnUserLivingReply(const wchar_t* questionID) = 0;

virtual void OnUserEndLiving(const wchar_t* questionID) = 0;

virtual void OnUpvoteQuestion(const wchar_t* question_id, bool order_changed) = 0;

virtual void OnRevokeUpvoteQuestion(const wchar_t* question_id, bool order_changed) = 0;

virtual void OnAllowAskQuestionAnonymousStatus(bool bEnabled) = 0;

virtual void OnAllowAttendeeViewAllQuestionStatus(bool bEnabled) = 0;

virtual void OnAllowAttendeeVoteupQuestionStatus(bool bEnabled) = 0;

virtual void OnAllowAttendeeCommentQuestionStatus(bool bEnabled) = 0;

virtual void OnRefreshQAData() = 0;
};

class IMeetingQAController
{
public:
virtual SDKError SetEvent(IMeetingQAControllerEvent* pEvent) = 0;

//attendee
virtual SDKError AddQuestion(const wchar_t* questionContent, bool bAskAnonymous) = 0;
virtual int GetMyQuestionCount() = 0;
virtual IList<IQAItemInfo *>* GetMyQuestionList() = 0;
virtual SDKError CommentQuestion(const wchar_t* questionID, const wchar_t* commentContent) = 0;

//host
virtual SDKError AnswerQuestionPrivate(const wchar_t* questionID, const wchar_t* answerContent) = 0;
virtual SDKError AnswerQuestionPublic(const wchar_t* questionID, const wchar_t* answerContent) = 0;
virtual SDKError DismissQuestion(const wchar_t* questionID) = 0;
virtual SDKError ReopenQuestion(const wchar_t* questionID) = 0;
virtual SDKError StartLiving(const wchar_t* questionID) = 0;
virtual SDKError EndLiving(const wchar_t* questionID) = 0;

virtual int GetOpenQuestionCount() = 0;
virtual int GetDismissedQuestionCount() = 0;
virtual int GetAnsweredQuestionCount() = 0;
virtual IList<IQAItemInfo *>* GetOpenQuestionList() = 0;
virtual IList<IQAItemInfo *>* GetDismissedQuestionList() = 0;
virtual IList<IQAItemInfo *>* GetAnsweredQuestionList() = 0;

virtual SDKError EnableAnonnymousQuestion(bool bEnable) = 0;
virtual SDKError EnableAttendeeViewAllQuestion(bool bEnable) = 0;
virtual SDKError EnableQAComment(bool bEnable) = 0;
virtual SDKError EnableQAVoteup(bool bEnable) = 0;

//attendee & host
virtual bool IsQAEnabled() = 0;
virtual bool IsQACommentEnabled() = 0;
virtual bool IsQAVoteupEnabled() = 0;
virtual bool IsAskQuestionAnonymouslyEnabled() = 0;
virtual bool IsAttendeeCanViewAllQuestions()=0;
virtual IList<IQAItemInfo *>* GetAllQuestionList() = 0;
virtual IQAItemInfo* GetQuestion(const wchar_t* questionID) = 0;
virtual IAnswerItem* GetAnswer(const wchar_t* answerID) = 0;
virtual SDKError VoteupQuestion(const wchar_t* questionID, bool bVokeup) = 0;
};

END_ZOOM_SDK_NAMESPACE
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,27 @@ typedef struct tagSplitScreenInfo
bInSplitScreenMode = false;
}
}SplitScreenInfo;
enum AudioCallbackActionInfo
{
ACTION_NONE = 0,
ACTION_CHOOSE_AUDIO_DEVICE_NOAUDIODEVICECONNECTTED,
ACTION_CHOOSE_AUDIO_DEVICE_COMPUTERAUDIODEVICEERROR,
ACTION_CHOOSE_AUDIO_DEVICE_PHONECALLDEVICEERROR,
ACTION_NEED_JOIN_VOIP,
ACTION_MUTE_UNMUTE_AUDIO,
ACTION_SHOW_AUDIO_SETTING_WINDOW,
};
typedef struct tagAudioBtnClickedCallbackInfo
{
unsigned int userid_MuteUnmute;
AudioCallbackActionInfo audio_clicked_action;
tagAudioBtnClickedCallbackInfo()
{
userid_MuteUnmute = 0;
audio_clicked_action = ACTION_NONE;
}

}AudioBtnClickedCallbackInfo;

/// \brief Callback Event of Meeting UI Controller.
///
Expand Down Expand Up @@ -120,6 +141,15 @@ class IMeetingUIControllerEvent
/// \brief Callback event of clicking CC menu.
/// \remarks The user won't receive this callback event unless he redirects the process of clicking the CUSTOME LIVE STREAM menu. For more details, see \link IMeetingUIElemConfiguration::RedirectClickCCBTNEvent() \endlink.
virtual void onCCBTNClicked() = 0;

/// \brief Callback event for clicking Audio button in the meeting.
/// \remarks The user won't receive this callback event unless he sets to redirect the process of clicking the Audio button in the meeting. For more details, see \link IMeetingUIElemConfiguration::RedirectClickAudioBTNEvent() \endlink.
virtual void onAudioBtnClicked(AudioBtnClickedCallbackInfo info) = 0;

/// \brief Callback event for clicking Audio Menu button in the meeting.
/// \remarks The user won't receive this callback event unless he sets to redirect the process of clicking the Audio Menu button in the meeting. For more details, see \link IMeetingUIElemConfiguration::RedirectClickAudioMenuBTNEvent() \endlink.
virtual void onAudioMenuBtnClicked() = 0;

};

/// \brief Meeting UI Controller Interface.
Expand Down
4 changes: 4 additions & 0 deletions zoom_sdk_c_sharp_wrap/h/meeting_service_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,7 @@ class IMeetingWaitingRoomController;
class IMeetingLiveStreamController;
class IMeetingWebinarController;
class IClosedCaptionController;
class IMeetingQAController;
/// \brief Meeting Service Interface
///
class IMeetingService
Expand Down Expand Up @@ -645,6 +646,9 @@ class IMeetingService
/// \return If the function succeeds, the return value is a pointer to IZoomRealNameAuthMeetingHelper. Otherwise returns NULL.
virtual IZoomRealNameAuthMeetingHelper* GetMeetingRealNameAuthController() = 0;

/// \brief Get the Q&A controller.
/// \return If the function succeeds, the return value is a pointer to IMeetingQAController. Otherwise returns NULL.
virtual IMeetingQAController* GetMeetingQAController() = 0;
};
END_ZOOM_SDK_NAMESPACE
#endif
Loading

0 comments on commit e014323

Please sign in to comment.