#include <member.h>
Collaboration diagram for Member:

Public Member Functions | |
| Member (Manager &manager, PString _roomId, PString _memberId) | |
| ~Member () | |
| virtual void | PrintOn (ostream &strm) const |
| void | AddMemberToRoom (PString newMember) |
| void | RemoveFromRoom () |
| void | MemberHasEnded (PString deadMember) |
| PString | GetMemberId () |
| PString | GetRoomId () |
| void | WriteAudio (BYTE *dataPtr, PINDEX size) |
| void | ReadAudio (BYTE *dataPtr, PINDEX readSize) |
| PINDEX | GetBufferSize () |
| void | ReadAndMixAudio (BYTE *ptr, PINDEX amount, PINDEX ¤tReadIndex) |
| PString | GetDurationInfo () |
Protected Member Functions | |
| void | Mix (BYTE *dst, const BYTE *src, PINDEX count) |
| virtual void | EmptyParticipantList (PThread &, INT) |
Protected Attributes | |
| Manager & | manager |
| ParticipantList | participants |
| BOOL | keepGoing |
| PString | roomId |
| PString | memberId |
| PTime | memberCreatedAt |
Variables to manage the audio buffer for this member. | |
| BYTE * | buffer |
| PINDEX | currentWriteIndex |
| PINDEX | bufferSize |
| PMutex | audioBufferMutex |
The member may be descended off to give a filemember (someone who is announcing to the conference, or recording the conference), so we there may well be more members than active calls.
|
||||||||||||||||
|
Constructor, which creates this member, who has link to the manger and knows the conference we are a part of |
|
|
Destructor |
|
|
A new member has joined this conference room. This method is then called to add the new member to this Members's list of other members |
|
||||||||||||
|
This contains a separate thread who goes through each element in the list of participants, and advises each of them to loose (*this) from its list of participants |
|
|
Get the length of the audio buffer (which is used by the Participant class) |
|
|
Get information about how long this member has been created for |
|
|
Retrieve the unique Id that identifies this member |
|
|
Retrieve the unique Id that identifies the room we are in |
|
|
A member of this conference room has ended. That member has asked us (via this method), to be removed from our member list |
|
||||||||||||||||
|
Do the multiplexing of audio together |
|
|
pretty print information in this class
|
|
||||||||||||||||
|
This method is used to to multiplex together the audio from each of the other Members in this conference room. Suppose there are five Members in this conference. (A,B,C,D,E). Member A will call this method for Members B,C,D,E. Similarily, Member E will call this method for Members A,B,C,D. The other Member who has called this method, keeps track of how far through the buffer he is, via the the currentReadIndex variable. |
|
||||||||||||
|
copy audio from each of the participants, and put the result into the region pointed to by dataptr |
|
|
Remove this member from the conference room |
|
||||||||||||
|
copy some audio to this member, which is then copied to all the other members of this ConferenceRoom. |
|
|
Lock on the audio buffer & assocated variables |
|
|
Pointer to the data that holds the audio from this endpont's remote user. The muxing is done by the ReadAndMix method, which steps through the otherMembers list. This buffer is circular, in that once data has been written to the end, data will then be written to the start |
|
|
Total number of bytes in buffer. Never gets changed. |
|
|
The position that we next put data to |
|
|
Flag to indicate we are still active and running in this room |
|
|
Link to our control manager |
|
|
The time at which this structure was created, which is the time this call was started at |
|
|
The globally unique id that we have been assigned to, which is the same as the same as the sofaswitch Id used by the corresponding control channel |
|
|
list of the other members in this room, which is contained in a thread safe list. Alternatively, you could say that participants contains everyone in this conference room, except for (this).. |
|
|
The id of the conference room we are joined to |
1.4.4