|
INET Framework for OMNeT++/OMNEST
|
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