Package com.avaya.clientservices.collaboration.contentsharing

## Interface ContentSharing

-     public interface ContentSharing

  The ContentSharing object provides access to content sharing related capabilities and actions.

  This class is used for receiving and sending content sharing. This object is accessible via `Collaboration`. Status updates concerning content sharing are reported via `ContentSharingListener`.

  This object caches the last frame of received content sharing. It is needed in the situation when sharing is started by the collaboration participant before the client creates all UI elements to present it. It sends cached content to `ContentSharingRenderer` via callbacks.

  See Also:
    `ContentSharingRenderer`, `ContentSharingListener`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(ContentSharingListener listener)` | Add a new `ContentSharingListener` object to the content sharing session.
    `void` | `end()` | Ends content sharing of local user or content sharing of another collaboration participant if the local user has sufficient permissions, i.e.
    `Participant` | `getCurrentPresenter()` | Indicates the participant who is currently sharing.
    `boolean` | `isPresenting()` | Indicates whether the local user is sharing.
    `void` | `removeListener​(ContentSharingListener listener)` | Removes `ContentSharingListener` object from the content sharing session.
    `void` | `resetContentSharingRenderer()` | Unregisters Content Sharing Renderer.
    `void` | `resetOpenGLRenderer()` | Unregisters Content Sharing Renderer.
    `void` | `setContentSharingRenderer​(ContentSharingRenderer renderer)` | Registers Content Sharing Renderer.
    `void` | `setOpenGLRenderer​(ContentSharingOpenGLRenderer renderer)` | Registers Content Sharing OpenGL ES 2.0 Renderer.

- - ### Method Detail

    - #### addListener

          void addListener​(ContentSharingListener listener)

      Add a new `ContentSharingListener` object to the content sharing session.
      Parameters:
        `listener` - object to be added.

    - #### removeListener

          void removeListener​(ContentSharingListener listener)

      Removes `ContentSharingListener` object from the content sharing session.
      Parameters:
        `listener` - object to be removed.

    - #### end

          void end()

      Ends content sharing of local user or content sharing of another collaboration participant if the local user has sufficient permissions, i.e. is a presenter or moderator. Another participant with presenter privilege may be able to start a new sharing session.

    - #### isPresenting

          boolean isPresenting()

      Indicates whether the local user is sharing.
      Returns:
        true if the local user is sharing/presenting content.

    - #### getCurrentPresenter

          Participant getCurrentPresenter()

      Indicates the participant who is currently sharing.
      Returns:
        participant object or null in case sharing is not active.

    - #### setContentSharingRenderer

          void setContentSharingRenderer​(ContentSharingRenderer renderer)

      Registers Content Sharing Renderer. If other renderer is already registered, it will be unregistered.
      Parameters:
        `renderer` - Content Sharing Renderer to register.

    - #### resetContentSharingRenderer

          void resetContentSharingRenderer()

      Unregisters Content Sharing Renderer.

    - #### setOpenGLRenderer

          void setOpenGLRenderer​(ContentSharingOpenGLRenderer renderer)

      Registers Content Sharing OpenGL ES 2.0 Renderer. If other renderer is already registered, it will be unregistered.
      Parameters:
        `renderer` - Content Sharing Renderer to register.

    - #### resetOpenGLRenderer

          void resetOpenGLRenderer()

      Unregisters Content Sharing Renderer.