# Class: ContentSharingRenderer

## Constructor

#### <abstract> new ContentSharingRenderer()

  ContentSharingRenderer class is an interface for content sharing renderers.

## Members

#### <protected> _contentSharing :AvayaClientServices.Services.Collaboration.ContentSharing

  ##### Type:

  - AvayaClientServices.Services.Collaboration.ContentSharing

## Methods

#### <abstract> drawFrame(frame) → {void}

  Draws on a screen frames received from the server.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `frame` | AvayaClientServices.Services.Collaboration.Frame | Frame that is going to be drawn.

  ##### Returns:

  { void }

#### init(contentSharing, containerId) → {void}

  Initializes the content sharing renderer.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `contentSharing` | AvayaClientServices.Services.Collaboration.ContentSharing | Content sharing instance.
  `containerId` | string | ID of DOM element where content sharing will be append to.

  ##### Returns:

  { void }

#### isRemoteController() → {Boolean}

  Returns true if remote control participant is a controller

  ##### Returns:

  { Boolean }

#### isRemoteControlParticipant() → {Boolean}

  Returns true if remote control participant is a controller

  ##### Returns:

  { Boolean }

#### onOverloaded(reason)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `reason` | String |

#### <abstract> pause() → {void}

  Pauses screen sharing.
  Screen sharing can be paused only by the user who started the screen sharing.

  ##### Returns:

  { void }

#### performanceMonitorStart() → {void}

  Performance monitor, monitor the load of the frames processing, and reduce the image quality if needed.

  ##### Returns:

  { void }

#### performanceMonitorStop() → {void}

  stops the performance monitor, and clear the interval

  ##### Returns:

  { void }

#### setCursorImagePath(cursorImagePath)

  Overrides default cursor with an cursor image. It is recommended to be a PNG with an alpha background.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `cursorImagePath` | String | undefined |

#### <abstract> showCursor(point) → {void}

  Indicates the cursor position on a screen as a red dot.
  To be able to invoke this function, the user who shares his screen has to send information about cursor coordinates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `point` | AvayaClientServices.Services.Collaboration.Point | Current position of the cursor.

  ##### Returns:

  { void }

#### <abstract> start() → {void}

  Starts screen sharing.
  Function creates DOM element with the given ID where the screen sharing will be displayed in.

  ##### Returns:

  { void }

#### startMonitorRemoteControlEvents(controller, controllee)

  Starts monitoring remote control mouse, keyboard, and copy and paste events

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `controller` | String |
  `controllee` | String |

#### <abstract> stop() → {void}

  Stops screen sharing.
  Function removes the DOM element where the screen sharing was displayed in.

  ##### Returns:

  { void }

#### stopMonitorRemoteControlEvents()

  Stops monitoring remote control mouse, keyboard, and copy and paste events

#### <abstract> unpause() → {void}

  Unpauses the screen sharing and removes the pause layer from the canvas.

  ##### Returns:

  { void }