7#ifndef _ZOOM_VIDEO_SDK_SHARE_HELPER_INTERFACE_H_
8#define _ZOOM_VIDEO_SDK_SHARE_HELPER_INTERFACE_H_
133#if defined(WIN32) || defined(__MACOS__)
223#if !defined __linux && !defined ANDROID
253#if defined(WIN32) || defined(__MACOS__)
virtual IVideoSDKVector< const zchar_t * > * getMonitorIDs()=0
Returns the monitor ID list.
virtual ZoomVideoSDKErrors clear()=0
Clear the monitor ID list.
virtual ZoomVideoSDKErrors addMonitorID(const zchar_t *monitorID)=0
Add the monitor ID to list. The validity of the monitor ID is not verified here.
virtual ~IMonitorListBuilder()
virtual ZoomVideoSDKErrors removeMonitorID(const zchar_t *monitorID)=0
Remove the monitor ID from list.
SDK defined vector interface.
Annotation helper interface.
video or share canvas interface.
Video/share raw data sink interface.
Video/share raw data pipe interface.
Video SDK remote control interface.
virtual ZoomVideoSDKErrors endRemoteControl()=0
End the remote control of the specified user.
virtual bool isRemoteControlling()=0
Determine if the specified user is in the process of being remotely controlled.
virtual ZoomVideoSDKErrors leaveRemoteControl()=0
The user has temporarily paused remote control, to continue, there is no need to request remote contr...
virtual bool canRequestControl()=0
Determine if the user is able to ask to remote control the specified user.
virtual bool canRemoteControl()=0
Determine if the user is able to remote control the specified user.
virtual ZoomVideoSDKErrors requestRemoteControl()=0
Send the remote control request to the specified user.
virtual ZoomVideoSDKErrors enterRemoteControl()=0
Remote control the specified user.
virtual ~IZoomVideoSDKRemoteControlHelper()
virtual ZoomVideoSDKErrors deny()=0
Decline the remote control request.
virtual ~IZoomVideoSDKRemoteControlRequestHandler()
virtual ZoomVideoSDKErrors approve()=0
Approve the remote control request.
virtual ZoomVideoSDKSubscribeFailReason getSubscribeFailReason()=0
Get subscribe fail reason.
virtual ZoomVideoSDKErrors revokeRemoteControl()=0
Get back all the authority of remote control. Only available for the user themselves.
virtual bool isAnnotationPrivilegeEnabled()=0
Determine whether annotation privilege is enabled.
virtual unsigned int getShareSourceId()=0
Get share source ID.
virtual IZoomVideoSDKRemoteControlHelper * getRemoteControlHelper()=0
Get the helper class instance to access remote control. Only available for controller side.
virtual IZoomVideoSDKCanvas * getShareCanvas()=0
Get the render canvas object.
virtual ZoomVideoSDKShareType getShareType()=0
Get share type.
virtual ZoomVideoSDKViewSize getShareSourceContentSize()=0
Get the size of the share content.
virtual IZoomVideoSDKUser * getCurrentRemoteController()=0
Get the controller ID who is currently controlling me. Only available for the controlled user.
virtual ~IZoomVideoSDKShareAction()
virtual IZoomVideoSDKRawDataPipe * getSharePipe()=0
Get share raw data pipe.
virtual IVideoSDKVector< IZoomVideoSDKUser * > * getRemoteControlApprovedUserList()=0
Get the list of users I have agreed to control. Only available for the controlling user.
virtual ZoomVideoSDKShareStatus getShareStatus()=0
Get share status.
virtual ~IZoomVideoSDKShareAudioSender()
virtual ZoomVideoSDKErrors sendShareAudio(char *data, unsigned int data_length, int sample_rate, ZoomVideoSDKAudioChannel channel)=0
Sends audio raw data.
virtual void onStopSendAudio()=0
Callback for audio source to stop sending raw data.
virtual ~IZoomVideoSDKShareAudioSource()
virtual void onStartSendAudio(IZoomVideoSDKShareAudioSender *pShareAudioSender)=0
Callback for audio source to start sending raw data.
virtual bool isMultiShareEnabled()=0
Determine whether multi share is enabled or not.
virtual ZoomVideoSDKErrors startShareMultiScreen(ZoomVideoSDKShareOption option={ false, false })=0
Share all screens in IMonitorListBuilder, if virtual speaker is enabled, don't support share audio.
virtual bool isSharingOut()=0
Determine whether the current user is sharing.
virtual ZoomVideoSDKErrors startShareScreen(const zchar_t *monitorID, ZoomVideoSDKShareOption option={ false, false })=0
Share a selected screen, if virtual speaker is enabled, don't support share audio.
virtual ZoomVideoSDKErrors enableOptimizeForSharedVideo(bool enable)=0
Enable or disable the optimization of frame rate, you can enable it when there is video in shared con...
virtual ZoomVideoSDKErrors unSubscribeMyShareCamera()=0
Unsubscribe to the raw data stream of the camera that is shared as the second camera.
virtual ZoomVideoSDKErrors startShareComputerAudio()=0
Start sharing only the computer audio.
virtual bool isViewerAnnotationDisabled()=0
Whether annotation on current sharing is disabled or not.
virtual ZoomVideoSDKErrors enablePlaySharingAudioRawdata(bool isPlaying)=0
Enable or disable local playback of shared audio raw data.
virtual bool isOtherSharing()=0
Determine if other user is sharing.
virtual ZoomVideoSDKErrors stopShare()=0
Stop share.
virtual ZoomVideoSDKErrors pauseShare()=0
Pause share.
virtual bool isOptimizeForSharedVideoEnabled()=0
Determine if optimization for shared video is enabled.
virtual ZoomVideoSDKErrors enableMultiShare(bool enable)=0
Enable or disable participants can share simultaneously.
virtual bool isAnnotationFeatureSupport()=0
Whether annotation is enabled or not.
virtual ZoomVideoSDKErrors startSharePureAudioSource(IZoomVideoSDKShareAudioSource *pShareAudioSource, bool isPlaying=true)=0
Starts sharing the pure external audio source.
virtual IMonitorListBuilder * getMonitorListBuilder()=0
Returns the monitor ID list builder object, the monitor ID list will be cleared after calling startSh...
virtual bool isShareDeviceAudioEnabled()=0
Determine if the SDK has enabled share device sound. This reflects the execution status of enableShar...
virtual bool isShareLocked()=0
Determine whether sharing is locked.
virtual ZoomVideoSDKErrors startShare2ndCamera(const zchar_t *cameraID)=0
Start sharing a camera feed specified by the cameraID as the second camera.
virtual ZoomVideoSDKErrors enableShareDeviceAudio(bool enable)=0
Enable or disable the computer sound when sharing. The SDK does not support sharing device audio,...
virtual ZoomVideoSDKErrors lockShare(bool lock)=0
Lock sharing the view or screen. Only the host can call this method.
virtual ZoomVideoSDKErrors destroyAnnotationHelper(IZoomVideoSDKAnnotationHelper *helper)=0
Destroys annotation helper.
virtual ZoomVideoSDKErrors startShareView(void *handle, ZoomVideoSDKShareOption option={false, false})=0
Share a selected window, if virtual speaker is enabled, don't support share audio.
virtual ZoomVideoSDKErrors startSharingExternalSource(IZoomVideoSDKShareSource *pSource, IZoomVideoSDKShareAudioSource *pAudioSource=nullptr, bool isPlaying=true)=0
Shares an external source.
virtual ZoomVideoSDKErrors disableViewerAnnotation(bool bDisable)=0
Disable or enable viewer's annotation by the share owner.
virtual ZoomVideoSDKErrors startShareWithPreprocessing(const ZoomVideoSDKSharePreprocessParam ¶m, IZoomVideoSDKSharePreprocessor *preprocessor)=0
Start share preprocessing.
virtual ZoomVideoSDKErrors subscribeMyShareCamera(IZoomVideoSDKRawDataPipeDelegate *data_handler)=0
Subscribe to the raw data stream of the camera that is shared as the second camera.
virtual bool isScreenSharingOut()=0
Determine whether the current user is sharing the screen.
virtual bool isShareViewValid(void *handle)=0
Determine whether the handle being shared is valid.
virtual IZoomVideoSDKAnnotationHelper * createAnnotationHelper(void *handle)=0
Creates annotation helper based on shared view.
virtual ZoomVideoSDKErrors resumeShare()=0
Resume share.
virtual ZoomVideoSDKErrors sendPreprocessedData(YUVRawDataI420 *pRawData)=0
Send preprocessed data.
virtual ~IZoomVideoSDKSharePreprocessSender()
virtual void onShareStopped()=0
You will receive this callback when call 'stopShare' successfully. In this event notification,...
virtual ~IZoomVideoSDKSharePreprocessor()
virtual void onCapturedRawDataReceived(YUVRawDataI420 *pRawData, IZoomVideoSDKSharePreprocessSender *pSender)=0
You will receive this callback when calling 'startShareWithPreprocessing' successfully.
Share raw data sender interface.
virtual ZoomVideoSDKErrors sendShareFrame(char *frameBuffer, int width, int height, int frameLength, FrameDataFormat format=FrameDataFormat_I420_FULL)=0
Send one frame data.
virtual ~IZoomVideoSDKShareSender()
Share source sink interface.
virtual void onShareSendStarted(IZoomVideoSDKShareSender *pSender)=0
Callback for share source can start send raw data.
virtual void onShareSendStopped()=0
Callback for share source stop send raw data.
virtual ~IZoomVideoSDKShareSource()
The YUV raw data handler interface.
bool isWithDeviceAudio
share option, true: share computer sound when share screen/window, otherwise not.
ZoomVideoSDKShareOption(const ZoomVideoSDKShareOption &option)
bool isOptimizeForSharedVideo
share option, true: optimize the frame rate when share screen/window, otherwise not.
ZoomVideoSDKShareOption()
ZoomVideoSDKShareOption(bool bWithAudio, bool optimize)
void * handle
The window handle that to share and pre-process.
ZoomVideoSDKSharePreprocessParam()
const zchar_t * monitorID
The screen name that to share and pre-process.
ZoomVideoSDKSharePreprocessType type
The share pre-process type.
ZoomVideoSDKViewSize(const ZoomVideoSDKViewSize &resolution)
ZoomVideoSDKViewSize()
resolution height
ZoomVideoSDKViewSize(unsigned int new_width, unsigned int new_height)
unsigned int height
resolution width
Zoom Video SDK Common Definition File.
FrameDataFormat
Enumeration of specifying the format of frame data.
@ FrameDataFormat_I420_FULL
I420 format with full (PC) range. Provides full-range color values, typically used in computer graphi...
ZoomVideoSDKAudioChannel
Enumeration of audio channel type in Zoom Video SDK.
#define BEGIN_ZOOM_VIDEO_SDK_NAMESPACE
ZoomVideoSDKShareType
Enumeration of sharing types in Zoom Video SDK.
#define END_ZOOM_VIDEO_SDK_NAMESPACE
ZoomVideoSDKShareStatus
Enumeration of sharing status in Zoom Video SDK.
ZoomVideoSDKErrors
Enumeration of common Zoom Video SDK errors.
ZoomVideoSDKSharePreprocessType
@ ZoomVideoSDKSharePreprocessType_view
For share view(application window).
@ ZoomVideoSDKSharePreprocessType_screen
For share screen(monitor).
@ ZoomVideoSDKSharePreprocessType_none
For initialization.
ZoomVideoSDKSubscribeFailReason