Copyright © 2009 Collabora Ltd. Copyright © 2009 Nokia Corporation

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

(draft 1) One stream inside a content FIXME, direction should be a mapping of contact -> (bool)sending ? Set the stream to start or stop sending media from the local user to other contacts.

If true, the local user's sending state should change to Sending, if it isn't already.

If false, the local user's sending state should change to None, if it isn't already.

[FIXME: when?]
Request that a remote contact stops or starts sending on this stream.

Contact from which sending is requested

If true, request that the given contact starts to send media. If false, request that the given contact stops sending media.

[FIXME: when?]
Emitted when Senders changes. A mapping from channel-specific handles to their updated sending state, whose keys include at least the senders who were added, and the senders whose states changed. The channel-specific handles that were removed from the keys of the Senders property, as a result of the contact leaving this stream Tristate indicating whether a contact is sending media. The contact is not sending media and has not been asked to do so. The contact has been asked to start sending media. The contact is sending media. A map from contacts to their sending state.

Extra interfaces provided by this stream, such as Stream.Interface.Media.DRAFT. This SHOULD NOT include the Stream interface itself, and cannot change once the stream has been created.

A map from contacts to their sending state.

The local user's handle in this map (the Group.SelfHandle if the channel implements Group, or the Connection.SelfHandle otherwise) indicates whether the local user is sending media. Media sent on this stream should be assumed to be received, directly or indirectly, by every other contact in the Senders mapping. Sending_State_Pending_Send indicates that another contact has asked the local user to send media.

Other contacts' handles in this map indicate whether they are sending media to the contacts in this stream. Sending_State_Pending_Send indicates contacts who are not sending but have been asked to do so.