RTPInterfacePacket.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           RTPInterfacePacket.h  -  description
00003                              -------------------
00004     begin                : Fri Oct 19 2001
00005     copyright            : (C) 2001 by Matthias Oppitz
00006     email                : Matthias.Oppitz@gmx.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00024 #ifndef __INET_RTPINTERFACEPACKET_H
00025 #define __INET_RTPINTERFACEPACKET_H
00026 
00027 #include "INETDefs.h"
00028 #include "IPAddress.h"
00029 #include "RTPSenderControlMessage_m.h"
00030 #include "RTPSenderStatusMessage_m.h"
00031 
00032 
00033 
00040 class INET_API RTPInterfacePacket : public cPacket
00041 {
00042 
00043     public:
00044 
00049         enum RTP_IFP_TYPE {
00050             RTP_IFP_UNDEF,
00051             RTP_IFP_ENTER_SESSION,
00052             RTP_IFP_SESSION_ENTERED,
00053             RTP_IFP_CREATE_SENDER_MODULE,
00054             RTP_IFP_SENDER_MODULE_CREATED,
00055             RTP_IFP_DELETE_SENDER_MODULE,
00056             RTP_IFP_SENDER_MODULE_DELETED,
00057             RTP_IFP_SENDER_CONTROL,
00058             RTP_IFP_SENDER_STATUS,
00059             RTP_IFP_LEAVE_SESSION,
00060             RTP_IFP_SESSION_LEFT
00061         };
00062 
00066         RTPInterfacePacket(const char *name = NULL);
00067 
00071         RTPInterfacePacket(const RTPInterfacePacket& rifp);
00072 
00076         virtual ~RTPInterfacePacket();
00077 
00081         RTPInterfacePacket& operator=(const RTPInterfacePacket& rifp);
00082 
00086         virtual RTPInterfacePacket *dup() const;
00087 
00091         virtual std::string info();
00092 
00096         virtual void dump(std::ostream& os);
00097 
00102         virtual void enterSession(const char *commonName, const char *profileName, int bandwidth, IPAddress destinationAddress, int port);
00103 
00108         virtual void sessionEntered(uint32 ssrc);
00109 
00110 
00111         virtual void createSenderModule(uint32 ssrc, int payloadType, const char *fileName);
00112         virtual void senderModuleCreated(uint32 ssrc);
00113         virtual void deleteSenderModule(uint32 ssrc);
00114         virtual void senderModuleDeleted(uint32 ssrc);
00115         virtual void senderModuleControl(uint32 ssrc, RTPSenderControlMessage *msg);
00116         virtual void senderModuleStatus(uint32 ssrc, RTPSenderStatusMessage *msg);
00117 
00122         //virtual void startTransmission(uint32 ssrc, int payloadType, const char *fileName);
00123 
00128         //virtual void transmissionStarted(uint32 ssrc);
00129 
00135         //virtual void transmissionFinished(uint32 ssrc);
00136 
00141         //virtual void stopTransmission(uint32 ssrc);
00142 
00147         //virtual void transmissionStopped(uint32 ssrc);
00148 
00153         virtual void leaveSession();
00154 
00160         virtual void sessionLeft();
00161 
00165         virtual RTP_IFP_TYPE getType();
00166 
00170         virtual const char *getCommonName();
00171 
00175         virtual const char *getProfileName();
00176 
00180         virtual int getBandwidth();
00181 
00185         virtual IPAddress getDestinationAddress();
00186 
00190         virtual int getPort();
00191 
00195         virtual uint32 getSSRC();
00196 
00200         virtual int getPayloadType();
00201 
00205         virtual const char *getFileName();
00206 
00207     protected:
00208 
00212         RTP_IFP_TYPE _type;
00213 
00217         const char *_commonName;
00218 
00222         const char *_profileName;
00223 
00227         int _bandwidth;
00228 
00232         IPAddress _destinationAddress;
00233 
00237         int _port;
00238 
00242         uint32 _ssrc;
00243 
00247         int _payloadType;
00248 
00252         const char *_fileName;
00253 };
00254 
00255 #endif
00256