| Home · All Classes · All Namespaces · Modules · Functions · Files

Public Types | Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions
Tp::StreamedMediaChannel Class Reference
Channel proxies

The StreamedMediaChannel class represents a Telepathy channel of type StreamedMedia. More...

`#include <TelepathyQt/StreamedMediaChannel>`

Inherits Tp::Channel.

List of all members.

## Public Types

- enum StateChangeReason { StateChangeReasonUnknown, StateChangeReasonUserRequested }

## Signals

- void streamAdded (const Tp::StreamedMediaStreamPtr &stream)
- void streamRemoved (const Tp::StreamedMediaStreamPtr &stream)
- void streamDirectionChanged (const Tp::StreamedMediaStreamPtr &stream, Tp::MediaStreamDirection direction, Tp::MediaStreamPendingSend pendingSend)
- void streamStateChanged (const Tp::StreamedMediaStreamPtr &stream, Tp::MediaStreamState state)
- void streamError (const Tp::StreamedMediaStreamPtr &stream, Tp::MediaStreamError errorCode, const QString &errorMessage)
- void localHoldStateChanged (Tp::LocalHoldState state, Tp::LocalHoldStateReason reason)

## Public Member Functions

- virtual ~StreamedMediaChannel ()
- bool awaitingLocalAnswer () const
- bool awaitingRemoteAnswer () const
- PendingOperation * acceptCall ()
- PendingOperation * hangupCall ()
- StreamedMediaStreams streams () const
- StreamedMediaStreams streamsForType (MediaStreamType type) const
- PendingStreamedMediaStreams * requestStream (const ContactPtr &contact, MediaStreamType type)
- PendingStreamedMediaStreams * requestStreams (const ContactPtr &contact, QList< MediaStreamType > types)
- PendingOperation * removeStream (const StreamedMediaStreamPtr &stream)
- PendingOperation * removeStreams (const StreamedMediaStreams &streams)
- bool handlerStreamingRequired () const
- LocalHoldState localHoldState () const
- LocalHoldStateReason localHoldStateReason () const
- PendingOperation * requestHold (bool hold)

## Static Public Member Functions

- static StreamedMediaChannelPtr create (const ConnectionPtr &connection, const QString &objectPath, const QVariantMap &immutableProperties)

## Static Public Attributes

- static const Feature FeatureCore
- static const Feature FeatureStreams
- static const Feature FeatureLocalHoldState

## Protected Member Functions

- StreamedMediaChannel (const ConnectionPtr &connection, const QString &objectPath, const QVariantMap &immutableProperties, const Feature &coreFeature=StreamedMediaChannel::FeatureCore)

## Detailed Description

The StreamedMediaChannel class represents a Telepathy channel of type StreamedMedia.

For more details, please refer to Telepathy specification.

See Asynchronous Object Model, Shared Pointer Usage

## Member Enumeration Documentation

enum Tp::StreamedMediaChannel::StateChangeReason

Enumerator:

  StateChangeReasonUnknown |
  StateChangeReasonUserRequested |

## Constructor & Destructor Documentation

Tp::StreamedMediaChannel::~StreamedMediaChannel | ( |  | ) | `[virtual]`

Class destructor.

Tp::StreamedMediaChannel::StreamedMediaChannel | ( | const ConnectionPtr & | connection,
|  | const QString & | objectPath,
|  | const QVariantMap & | immutableProperties,
|  | const Feature & | coreFeature = `StreamedMediaChannel::FeatureCore`
| ) |  | `[protected]`

Construct a new StreamedMediaChannel object.

Parameters:

  connection | Connection owning this channel, and specifying the service.
  objectPath | The channel object path.
  immutableProperties | The channel immutable properties.
  coreFeature | The core feature of the channel type, if any. The corresponding introspectable should depend on StreamedMediaChannel::FeatureCore.

## Member Function Documentation

StreamedMediaChannelPtr Tp::StreamedMediaChannel::create | ( | const ConnectionPtr & | connection,
|  | const QString & | objectPath,
|  | const QVariantMap & | immutableProperties
| ) |  | `[static]`

Create a new StreamedMediaChannel object.

Parameters:

  connection | Connection owning this channel, and specifying the service.
  objectPath | The channel object path.
  immutableProperties | The channel immutable properties.

Returns:
  A StreamedMediaChannelPtr object pointing to the newly created StreamedMediaChannel object.

Reimplemented from Tp::Channel.

bool Tp::StreamedMediaChannel::awaitingLocalAnswer | ( |  | ) | const

Return whether this channel is awaiting local answer.

This method requires StreamedMediaChannel::FeatureCore to be ready.

Returns:
  `true` if awaiting local answer, `false` otherwise.

See also:
  awaitingRemoteAnswer(), acceptCall()

bool Tp::StreamedMediaChannel::awaitingRemoteAnswer | ( |  | ) | const

Return whether this channel is awaiting remote answer.

This method requires StreamedMediaChannel::FeatureCore to be ready.

Returns:
  `true` if awaiting remote answer, `false` otherwise.

See also:
  awaitingLocalAnswer()

PendingOperation * Tp::StreamedMediaChannel::acceptCall | ( |  | ) |

Accept an incoming call.

This method requires StreamedMediaChannel::FeatureCore to be ready.

Returns:
  A PendingOperation which will emit PendingOperation::finished when the call has finished.

See also:
  awaitingLocalAnswer(), hangupCall()

PendingOperation * Tp::StreamedMediaChannel::hangupCall | ( |  | ) |

Request that the call is ended.

This method requires StreamedMediaChannel::FeatureCore to be ready.

Returns:
  A PendingOperation which will emit PendingOperation::finished when the call has finished.

StreamedMediaStreams Tp::StreamedMediaChannel::streams | ( |  | ) | const

Return a list of media streams in this channel.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Returns:
  A list of pointers to StreamedMediaStream objects.

See also:
  streamAdded(), streamRemoved(), streamsForType(), requestStreams()

StreamedMediaStreams Tp::StreamedMediaChannel::streamsForType | ( | MediaStreamType | type | ) | const

Return a list of media streams in this channel for the given type type.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Parameters:

  type | The interested type.

Returns:
  A list of pointers to StreamedMediaStream objects.

See also:
  streamAdded(), streamRemoved(), streams(), requestStreams()

PendingStreamedMediaStreams * Tp::StreamedMediaChannel::requestStream | ( | const ContactPtr & | contact,
|  | MediaStreamType | type
| ) |  |

Request that media streams be established to exchange the given type type of media with the given contact contact.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Returns:
  A PendingStreamedMediaStreams which will emit PendingStreamedMediaStreams::finished when the call has finished.

See also:
  streamAdded(), streams(), streamsForType()

PendingStreamedMediaStreams * Tp::StreamedMediaChannel::requestStreams | ( | const ContactPtr & | contact,
|  | QList< MediaStreamType > | types
| ) |  |

Request that media streams be established to exchange the given types types of media with the given contact contact.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Returns:
  A PendingStreamedMediaStreams which will emit PendingStreamedMediaStreams::finished when the call has finished.

See also:
  streamAdded(), streams(), streamsForType()

PendingOperation * Tp::StreamedMediaChannel::removeStream | ( | const StreamedMediaStreamPtr & | stream | ) |

Remove the specified media stream from this channel.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Parameters:

  stream | Media stream to remove.

Returns:
  A PendingOperation which will emit PendingOperation::finished when the call has finished.

See also:
  streamRemoved(), streams(), streamsForType()

PendingOperation * Tp::StreamedMediaChannel::removeStreams | ( | const StreamedMediaStreams & | streams | ) |

Remove the specified media streams from this channel.

This methods requires StreamedMediaChannel::FeatureStreams to be ready.

Parameters:

  streams | List of media streams to remove.

Returns:
  A PendingOperation which will emit PendingOperation::finished when the call has finished.

See also:
  streamRemoved(), streams(), streamsForType()

bool Tp::StreamedMediaChannel::handlerStreamingRequired | ( |  | ) | const

Check whether media streaming by the handler is required for this channel.

For channels with the TP_QT_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING interface, the main handler of the channel is responsible for doing the actual streaming, for instance by calling createFarsightChannel(channel) from TelepathyQt-Farsight library and using the telepathy-farsight API on the resulting TfChannel.

This method requires StreamedMediaChannel::FeatureCore to be ready.

Returns:
  `true` if required, `false` otherwise.

LocalHoldState Tp::StreamedMediaChannel::localHoldState | ( |  | ) | const

Return the local hold state for this channel.

Whether the local user has placed this channel on hold.

This method requires StreamedMediaChannel::FeatureHoldState to be ready.

Returns:
  The local hold state as LocalHoldState.

See also:
  requestHold(), localHoldStateChanged()

LocalHoldStateReason Tp::StreamedMediaChannel::localHoldStateReason | ( |  | ) | const

Return the reason why localHoldState() changed to its current value.

This method requires StreamedMediaChannel::FeatureLocalHoldState to be ready.

Returns:
  The local hold state reason as LocalHoldStateReason.

See also:
  requestHold(), localHoldStateChanged()

PendingOperation * Tp::StreamedMediaChannel::requestHold | ( | bool | hold | ) |

Request that the channel be put on hold (be instructed not to send any media streams to you) or be taken off hold.

If the CM can immediately tell that the requested state change could not possibly succeed, the resulting PendingOperation will fail with error code TP_QT_ERROR_NOT_AVAILABLE. If the requested state is the same as the current state, the resulting PendingOperation will finish successfully.

Otherwise, the channel's local hold state will change to LocalHoldStatePendingHold or LocalHoldStatePendingUnhold (as appropriate), then the resulting PendingOperation will finish successfully.

The eventual success or failure of the request is indicated by a subsequent localHoldStateChanged() signal, changing the local hold state to LocalHoldStateHeld or LocalHoldStateUnheld.

If the channel has multiple streams, and the connection manager succeeds in changing the hold state of one stream but fails to change the hold state of another, it will attempt to revert all streams to their previous hold states.

If the channel does not support the TP_QT_IFACE_CHANNEL_INTERFACE_HOLD interface, the PendingOperation will fail with error code TP_QT_ERROR_NOT_IMPLEMENTED.

Parameters:

  hold | A boolean indicating whether or not the channel should be on hold

Returns:
  A PendingOperation which will emit PendingOperation::finished when the request finishes.

See also:
  localHoldState(), localHoldStateReason(), localHoldStateChanged()

void Tp::StreamedMediaChannel::streamAdded | ( | const Tp::StreamedMediaStreamPtr & | stream | ) | `[signal]`

Emitted when a media stream is added to this channel.

Parameters:

  stream | The media stream that was added.

See also:
  streams(), streamsForType(), streamRemoved()

void Tp::StreamedMediaChannel::streamRemoved | ( | const Tp::StreamedMediaStreamPtr & | stream | ) | `[signal]`

Emitted when a media stream is removed from this channel.

Parameters:

  stream | The media stream that was removed.

See also:
  streams(), streamsForType(), streamAdded()

void Tp::StreamedMediaChannel::streamDirectionChanged | ( | const Tp::StreamedMediaStreamPtr & | stream,
|  | Tp::MediaStreamDirection | direction,
|  | Tp::MediaStreamPendingSend | pendingSend
| ) |  | `[signal]`

Emitted when a media stream direction changes.

Parameters:

  stream | The media stream which the direction changed.
  direction | The new direction of the stream that changed.
  pendingSend | The new pending send flags of the stream that changed.

See also:
  StreamedMediaStream::direction()

void Tp::StreamedMediaChannel::streamStateChanged | ( | const Tp::StreamedMediaStreamPtr & | stream,
|  | Tp::MediaStreamState | state
| ) |  | `[signal]`

Emitted when a media stream state changes.

Parameters:

  stream | The media stream which the state changed.
  state | The new state of the stream that changed.

See also:
  StreamedMediaStream::state()

void Tp::StreamedMediaChannel::streamError | ( | const Tp::StreamedMediaStreamPtr & | stream,
|  | Tp::MediaStreamError | errorCode,
|  | const QString & | errorMessage
| ) |  | `[signal]`

Emitted when an error occurs on a media stream.

Parameters:

  stream | The media stream which the error occurred.
  errorCode | The error code.
  errorMessage | The error message.

void Tp::StreamedMediaChannel::localHoldStateChanged | ( | Tp::LocalHoldState | state,
|  | Tp::LocalHoldStateReason | reason
| ) |  | `[signal]`

Emitted when the local hold state of this channel changes.

Parameters:

  state | The new local hold state of this channel.
  reason | The reason why the change occurred.

See also:
  localHoldState(), localHoldStateReason()

## Member Data Documentation

const Feature Tp::StreamedMediaChannel::FeatureCore `[static]`

Feature representing the core that needs to become ready to make the StreamedMediaChannel object usable.

This is currently the same as Channel::FeatureCore, but may change to include more.

When calling isReady(), becomeReady(), this feature is implicitly added to the requested features.

See also:
  awaitingLocalAnswer(), awaitingRemoteAnswer(), acceptCall(), hangupCall(), handlerStreamingRequired()

Reimplemented from Tp::Channel.

const Feature Tp::StreamedMediaChannel::FeatureStreams `[static]`

Feature used in order to access media stream specific methods.

See media stream specific methods' documentation for more details.

See also:
  streams(), streamsForType(), requestStream(), requestStreams(), streamAdded() removeStream(), removeStreams(), streamRemoved(), streamDirectionChanged(), streamStateChanged(), streamError()

const Feature Tp::StreamedMediaChannel::FeatureLocalHoldState `[static]`

Feature used in order to access local hold state info.

See local hold state specific methods' documentation for more details.

See also:
  localHoldState(), localHoldStateReason(), requestHold(), localHoldStateChanged()