RTPInterfacePacket.cc

Go to the documentation of this file.
00001 /***************************************************************************
00002                           RTPInterfacePacket.cc  -  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 
00022 #include "RTPInterfacePacket.h"
00023 
00024 Register_Class(RTPInterfacePacket);
00025 
00026 
00027 RTPInterfacePacket::RTPInterfacePacket(const char *name) : cPacket(name)
00028 {
00029     _type = RTP_IFP_UNDEF;
00030     _commonName = NULL;
00031     _profileName = NULL;
00032     _bandwidth = 0;
00033     _destinationAddress = IPAddress::UNSPECIFIED_ADDRESS;
00034     _port = PORT_UNDEF;
00035     _ssrc = 0;
00036     _payloadType = 0;
00037     _fileName = NULL;
00038 }
00039 
00040 
00041 RTPInterfacePacket::RTPInterfacePacket(const RTPInterfacePacket& rifp) : cPacket()
00042 {
00043     setName(rifp.getName());
00044     operator=(rifp);
00045 }
00046 
00047 
00048 RTPInterfacePacket::~RTPInterfacePacket()
00049 {
00050     if (opp_strcmp(_commonName, ""))
00051         delete _commonName;
00052     if (opp_strcmp(_profileName, ""))
00053         delete _profileName;
00054     if (opp_strcmp(_fileName, ""))
00055         delete _fileName;
00056 }
00057 
00058 
00059 RTPInterfacePacket& RTPInterfacePacket::operator=(const RTPInterfacePacket& rifp)
00060 {
00061     cPacket::operator=(rifp);
00062     _type = rifp._type;
00063     _commonName = opp_strdup(rifp._commonName);
00064     _profileName = opp_strdup(rifp._profileName);
00065     _bandwidth = rifp._bandwidth;
00066     _destinationAddress = rifp._destinationAddress;
00067     _port = rifp._port;
00068     _ssrc = rifp._ssrc;
00069     _payloadType = rifp._payloadType;
00070     _fileName = opp_strdup(rifp._fileName);
00071     return *this;
00072 }
00073 
00074 
00075 RTPInterfacePacket *RTPInterfacePacket::dup() const
00076 {
00077     return new RTPInterfacePacket(*this);
00078 }
00079 
00080 
00081 std::string RTPInterfacePacket::info()
00082 {
00083     std::stringstream out;
00084     out << "RTPInterfacePacket: type=" << _type;
00085     return out.str();
00086 }
00087 
00088 
00089 void RTPInterfacePacket::dump(std::ostream& os)
00090 {
00091     os << "RTPInterfacePacket:" << endl;
00092     os << "  type = " << _type << endl;
00093     os << "  commonName = " << _commonName << endl;
00094     os << "  profileName = " << _profileName << endl;
00095     os << "  bandwidth = " << _bandwidth << endl;
00096     os << "  destinationAddress = " << _destinationAddress << endl;
00097     os << "  port = " << _port << endl;
00098     os << "  ssrc = " << _ssrc << endl;
00099     os << "  payloadType = " << _payloadType << endl;
00100     os << "  fileName = " << _fileName << endl;
00101 }
00102 
00103 
00104 void RTPInterfacePacket::enterSession(const char *commonName, const char *profileName, int bandwidth, IPAddress destinationAddress, int port)
00105 {
00106     _type = RTP_IFP_ENTER_SESSION;
00107     _commonName = commonName;
00108     _profileName = profileName;
00109     _bandwidth = bandwidth;
00110     _destinationAddress = destinationAddress;
00111     _port = port;
00112 }
00113 
00114 
00115 void RTPInterfacePacket::sessionEntered(uint32 ssrc)
00116 {
00117     _type = RTP_IFP_SESSION_ENTERED;
00118     _ssrc = ssrc;
00119 }
00120 
00121 
00122 void RTPInterfacePacket::createSenderModule(uint32 ssrc, int payloadType, const char *fileName)
00123 {
00124     _type = RTP_IFP_CREATE_SENDER_MODULE;
00125     _ssrc = ssrc;
00126     _payloadType =payloadType;
00127     _fileName = fileName;
00128 }
00129 
00130 
00131 void RTPInterfacePacket::senderModuleCreated(uint32 ssrc)
00132 {
00133     _type = RTP_IFP_SENDER_MODULE_CREATED;
00134     _ssrc = ssrc;
00135 }
00136 
00137 
00138 void RTPInterfacePacket::deleteSenderModule(uint32 ssrc)
00139 {
00140     _type = RTP_IFP_DELETE_SENDER_MODULE;
00141     _ssrc = ssrc;
00142 }
00143 
00144 
00145 void RTPInterfacePacket::senderModuleDeleted(uint32 ssrc)
00146 {
00147     _type = RTP_IFP_SENDER_MODULE_DELETED;
00148     _ssrc = ssrc;
00149 }
00150 
00151 
00152 void RTPInterfacePacket::senderModuleControl(uint32 ssrc, RTPSenderControlMessage *msg)
00153 {
00154     _type = RTP_IFP_SENDER_CONTROL;
00155     _ssrc = ssrc;
00156     encapsulate(msg);
00157 }
00158 
00159 
00160 void RTPInterfacePacket::senderModuleStatus(uint32 ssrc, RTPSenderStatusMessage *msg)
00161 {
00162     _type = RTP_IFP_SENDER_STATUS;
00163     _ssrc = ssrc;
00164     encapsulate(msg);
00165 }
00166 
00167 /*
00168 void RTPInterfacePacket::startTransmission(uint32 ssrc, int payloadType, const char *fileName)
00169 {
00170     _type = RTP_IFP_START_TRANSMISSION;
00171     _ssrc = ssrc;
00172     _payloadType = payloadType;
00173     _fileName = fileName;
00174 }
00175 
00176 
00177 void RTPInterfacePacket::transmissionStarted(uint32 ssrc)
00178 {
00179     _type = RTP_IFP_TRANSMISSION_STARTED;
00180     _ssrc = ssrc;
00181 }
00182 
00183 
00184 void RTPInterfacePacket::transmissionFinished(uint32 ssrc)
00185 {
00186     _type = RTP_IFP_TRANSMISSION_FINISHED;
00187     _ssrc = ssrc;
00188 }
00189 
00190 
00191 void RTPInterfacePacket::stopTransmission(uint32 ssrc)
00192 {
00193     _type = RTP_IFP_STOP_TRANSMISSION;
00194     _ssrc = ssrc;
00195 }
00196 
00197 
00198 void RTPInterfacePacket::transmissionStopped(uint32 ssrc)
00199 {
00200     _type = RTP_IFP_TRANSMISSION_STOPPED;
00201     _ssrc = ssrc;
00202 }
00203 */
00204 
00205 
00206 void RTPInterfacePacket::leaveSession()
00207 {
00208     _type = RTP_IFP_LEAVE_SESSION;
00209 }
00210 
00211 
00212 void RTPInterfacePacket::sessionLeft()
00213 {
00214     _type = RTP_IFP_SESSION_LEFT;
00215 }
00216 
00217 
00218 RTPInterfacePacket::RTP_IFP_TYPE RTPInterfacePacket::getType()
00219 {
00220     return _type;
00221 }
00222 
00223 
00224 const char *RTPInterfacePacket::getCommonName()
00225 {
00226     return opp_strdup(_commonName);
00227 }
00228 
00229 
00230 const char *RTPInterfacePacket::getProfileName()
00231 {
00232     return opp_strdup(_profileName);
00233 }
00234 
00235 
00236 uint32 RTPInterfacePacket::getSSRC()
00237 {
00238     return _ssrc;
00239 }
00240 
00241 
00242 int RTPInterfacePacket::getPayloadType()
00243 {
00244     return _payloadType;
00245 }
00246 
00247 
00248 const char *RTPInterfacePacket::getFileName()
00249 {
00250     return opp_strdup(_fileName);
00251 }
00252 
00253 
00254 int RTPInterfacePacket::getBandwidth()
00255 {
00256     return _bandwidth;
00257 }
00258 
00259 
00260 IPAddress RTPInterfacePacket::getDestinationAddress()
00261 {
00262     return _destinationAddress;
00263 }
00264 
00265 
00266 int RTPInterfacePacket::getPort()
00267 {
00268     return _port;
00269 }