Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ServerSideReflectorGM.h

Go to the documentation of this file.
00001 #ifndef SERVERSIDEREFLECTORGM_H 00002 #define SERVERSIDEREFLECTORGM_H 00003 00004 00005 #include "SHGraphManager.h" 00006 #include "MNRTPSourceSH.h" 00007 #include "DynMultiplierSH.h" 00008 #include "MNRTPutildefs.h" 00009 #include <vector> 00010 00015 class ServerSideReflectorGM : public SHGraphManager 00016 { 00017 private: 00018 struct Subsession 00019 { 00020 SH::RTPSourceSH* _rtpSourceSH; 00021 SH::DynMultiplierSH* _dynMultiplierSH; 00022 00023 bool _initialized; 00024 }; 00025 std::vector<Subsession*> _subsessions; 00026 00027 MediaState _state; 00028 00029 00030 00031 public: 00032 ServerSideReflectorGM(GMUser* user, MNSelector& sel); 00033 00034 ~ServerSideReflectorGM(); 00035 void init(int idx, MNSocket* localUpRtp, MNSocket* localUpRtcp, int distantPortUp, MNString& server, int bandwidth); 00036 void init(int idx, int rtpPayloadtype); 00037 00039 void match(int idx, SH::Base* sh); 00040 00042 void unmatch(int idx, SH::Base* sh); 00043 void startStreaming(); 00044 void stopStreaming(); 00045 int getNptSeconds(); 00046 00048 void setNptSeek(int npt); 00049 00053 void setRTPTimestamp(int idx, u_int32 rtptime); 00054 00056 size_t getClientSideReflectorGMCount(); 00057 00058 private: 00059 static void startSubsession(Subsession* subsession); 00060 static void stopSubsession(Subsession* subsession); 00061 static void destroySubsession(Subsession* subsession); 00062 ServerSideReflectorGM::Subsession* getSubsession(int idx); 00063 00064 /******************** NOT IMPLEMENTED ************************************/ 00065 public: 00066 virtual bool graphManNotify( int idx, SH::Base* caller, SH::Notification attribute, void* msg ); 00067 }; 00068 00069 #endif

Generated on Sun Mar 6 13:35:50 2005 for Komssys by doxygen 1.3.8