PeerConnection.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <vector>
  3. #include <string>
  4. #include <functional>
  5. #include <future>
  6. #include <mutex>
  7. #include "api.h"
  8. class SocketClient;
  9. class PeerConnectionWrapper
  10. {
  11. public:
  12. PeerConnectionWrapper(SocketClient* d);
  13. virtual ~PeerConnectionWrapper();
  14. void Initialize(int32_t peer,int32_t index,bool bNeedData);
  15. static void ConnectionCallBack(void* UserData);
  16. static void LocalSdpReadytoSendCallback(void* user_data,int32_t peer,int32_t view, const char* type, const char* sdp_data);
  17. static void IceCandidateReadytoSendCallback(void* user_data,int32_t peer,int32_t view, const char* sdp, int32_t sdp_mline_index, const char* sdp_mid);
  18. static void MessageCallback(void* user_data, const void* data, const uint64_t size);
  19. void AddLocalArgb32VideoFrameReady(PeerConnectionARGBVideoFrameCallback fn, void* user_data);
  20. void AddRemoteArgb32VideoFrameReady(PeerConnectionARGBVideoFrameCallback fn, void* user_data);
  21. void AddDataChannel(bool ordered, bool reliable);
  22. void RemoveDataChannel();
  23. void SetRemoteDescription(const char* type, std::string sdp);
  24. bool CreateAnswer();
  25. bool CreateOffer();
  26. void AddIceCandidate(const char* sdp, int32_t sdp_mline_index, const char* sdp_mid);
  27. void Close();
  28. // void AddLocalVideoTrack(CaptureType type, DisplayResolution solution,int32_t fps);
  29. void AddLocalVideoTrack(int32_t index,const std::string& label,const std::string &videourl,int32_t width,int32_t height);
  30. void AddLocalAudioTrack();
  31. void SendData(CIOBuffer* pBuffer);
  32. private:
  33. void OnConnect();
  34. void OnLocalSdpReadytoSend(int32_t peer,int32_t view,const char* type, const char* sdp);
  35. void OnIceCandidateReadytoSend(int32_t peer,int32_t view,const char* sdp, int32_t sdp_mline_index, const char* sdp_mid);
  36. private:
  37. PeerConnectionHandle _nativeHandle;
  38. SocketClient * _client;
  39. bool bDataChannel;
  40. bool bConnected;
  41. };