Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef __INET_RTPPAYLOADSENDER_H
00024 #define __INET_RTPPAYLOADSENDER_H
00025
00026 #include <fstream>
00027 #include "INETDefs.h"
00028 #include "RTPInnerPacket.h"
00029
00030
00037 class INET_API RTPPayloadSender : public cSimpleModule
00038 {
00039 public:
00040
00041
00045 RTPPayloadSender() : cSimpleModule(32768) {}
00046
00050 virtual ~RTPPayloadSender();
00051
00056 virtual void initialize();
00057
00058 virtual void activity();
00059
00063 enum SenderStatus {
00064 STOPPED,
00065 PLAYING
00066 };
00067
00068 protected:
00069
00073 std::ifstream _inputFileStream;
00074
00078 int _mtu;
00079
00083 uint32 _ssrc;
00084
00088 int _payloadType;
00089
00093 int _clockRate;
00094
00099 uint32 _timeStampBase;
00100
00104 uint32 _timeStamp;
00105
00110 uint16 _sequenceNumberBase;
00111
00115 uint16 _sequenceNumber;
00116
00120 SenderStatus _status;
00121
00127 cMessage *_reminderMessage;
00128
00134 virtual void initializeSenderModule(RTPInnerPacket *);
00135
00144 virtual void openSourceFile(const char *fileName);
00145
00149 virtual void closeSourceFile();
00150
00155 virtual void play();
00156
00162 virtual void playUntilTime(simtime_t moment);
00163
00169 virtual void playUntilByte(int position);
00170
00176 virtual void pause();
00177
00183 virtual void seekTime(simtime_t moment);
00184
00190 virtual void seekByte(int position);
00191
00197 virtual void stop();
00198
00203 virtual void endOfFile();
00204
00210 virtual bool sendPacket();
00211 };
00212
00213 #endif
00214