Modify interface

This commit is contained in:
dijunkun
2023-07-20 09:50:44 +08:00
parent fbfaf9ac75
commit 5792ded4ac
9 changed files with 87 additions and 79 deletions

View File

@@ -1,5 +1,5 @@
#ifndef _RTC_H_
#define _RTC_H_
#ifndef _X_H_
#define _X_H_
#include <stdint.h>
#include <stdlib.h>
@@ -10,6 +10,8 @@ enum ws_status { WS_CONNECTING = 0, WS_OPEN, WS_FAILED, WS_CLOSED, WS_UNKNOWN };
extern "C" {
#endif
typedef struct Peer PeerPtr;
typedef void (*OnReceiveBuffer)(unsigned char*, size_t, const char*,
const size_t);
@@ -21,15 +23,13 @@ typedef struct {
NetStatusReport net_status_report;
} Params;
int CreatePeerConnection(Params params);
PeerPtr* CreatePeer(const Params* params);
int CreatePeerConnectionWithID(Params params, const char* id);
int CreateConnection(PeerPtr* peer_ptr);
int SendData(const char* data, size_t size);
int JoinConnection(PeerPtr* peer_ptr, const char* connection_id);
int rtc();
int RegisterPeer();
int SendData(PeerPtr* peer_ptr, const char* data, size_t size);
#ifdef __cplusplus
}

View File

@@ -19,7 +19,7 @@ PeerConnection::PeerConnection() {}
PeerConnection::~PeerConnection() {}
int PeerConnection::Init(Params params) {
int PeerConnection::Init(PeerConnectionParams params) {
INIReader reader(params.cfg_path);
std::string cfg_signal_server_ip = reader.Get("signal server", "ip", "-1");
std::string cfg_signal_server_port =
@@ -78,7 +78,7 @@ int PeerConnection::Init(Params params) {
return 0;
}
int PeerConnection::Init(Params params, std::string const &id) {
int PeerConnection::Init(PeerConnectionParams params, std::string const &id) {
INIReader reader(params.cfg_path);
std::string cfg_signal_server_ip = reader.Get("signal server", "ip", "-1");
std::string cfg_signal_server_port =

View File

@@ -8,26 +8,25 @@
enum SignalStatus { Connecting = 0, Connected, Closed };
class PeerConnection {
public:
typedef void (*OnReceiveBuffer)(unsigned char *, size_t, const char *,
typedef void (*OnReceiveBuffer)(unsigned char *, size_t, const char *,
const size_t);
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
typedef void (*NetStatusReport)(const unsigned short, const unsigned short);
typedef struct {
typedef struct {
const char *cfg_path;
OnReceiveBuffer on_receive_buffer;
NetStatusReport net_status_report;
} Params;
} PeerConnectionParams;
class PeerConnection {
public:
PeerConnection();
~PeerConnection();
public:
int Init(Params params);
int Init(Params params, std::string const &id);
int Init(PeerConnectionParams params);
int Init(PeerConnectionParams params, std::string const &id);
int Destroy();
SignalStatus GetSignalStatus();

View File

@@ -1,44 +0,0 @@
#include "rtc.h"
#include <iostream>
#include "ice_agent.h"
#include "log.h"
#include "nlohmann/json.hpp"
#include "peer_connection.h"
#include "ws_transport.h"
using nlohmann::json;
static PeerConnection *peer_connection;
int CreatePeerConnection(Params params) {
PeerConnection::Params pc_params;
pc_params.cfg_path = params.cfg_path;
pc_params.on_receive_buffer = params.on_receive_buffer;
pc_params.net_status_report = params.net_status_report;
peer_connection = new PeerConnection();
peer_connection->Init(pc_params);
return 0;
}
int CreatePeerConnectionWithID(Params params, const char *id) {
PeerConnection::Params pc_params;
pc_params.cfg_path = params.cfg_path;
pc_params.on_receive_buffer = params.on_receive_buffer;
pc_params.net_status_report = params.net_status_report;
peer_connection = new PeerConnection();
peer_connection->Init(pc_params, id);
return 0;
}
int SendData(const char *data, size_t size) {
peer_connection->SendData(data, size);
return 0;
}
int rtc() { return 0; }

40
src/rtc/x_inner.cpp Normal file
View File

@@ -0,0 +1,40 @@
#include "x_inner.h"
#include <iostream>
#include <nlohmann/json.hpp>
#include "ice_agent.h"
#include "log.h"
#include "ws_transport.h"
#include "x.h"
using nlohmann::json;
static PeerConnection *peer_connection;
PeerPtr *CreatePeer(const Params *params) {
PeerPtr *peer_ptr = new PeerPtr;
peer_ptr->peer_connection = new PeerConnection();
peer_ptr->pc_params.cfg_path = params->cfg_path;
peer_ptr->pc_params.on_receive_buffer = params->on_receive_buffer;
peer_ptr->pc_params.net_status_report = params->net_status_report;
return peer_ptr;
}
int CreateConnection(PeerPtr *peer_ptr) {
peer_ptr->peer_connection->Init(peer_ptr->pc_params);
return 0;
}
int JoinConnection(PeerPtr *peer_ptr, const char *connection_id) {
peer_ptr->peer_connection->Init(peer_ptr->pc_params, connection_id);
return 0;
}
int SendData(PeerPtr *peer_ptr, const char *data, size_t size) {
peer_ptr->peer_connection->SendData(data, size);
return 0;
}
int rtc() { return 0; }

11
src/rtc/x_inner.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef _X_INNER_H_
#define _X_INNER_H_
#include "peer_connection.h"
struct Peer {
PeerConnection *peer_connection;
PeerConnectionParams pc_params;
};
#endif

View File

@@ -1,13 +1,13 @@
#include <iostream>
#include "rtc.h"
#include "x.h"
int main(int argc, char **argv) {
int main(int argc, char** argv) {
Params params;
params.cfg_path = "../../../../config/config.ini";
CreatePeerConnectionWithID(params, "000000");
std::cout << "Finish CreatePeerConnectionWithID" << std::endl;
PeerPtr* peer = CreatePeer(&params);
JoinConnection(peer, "000000");
std::string msg = "Hello world";
@@ -15,7 +15,7 @@ int main(int argc, char **argv) {
while (i--) {
getchar();
std::cout << "Send data: [" << msg << "]" << std::endl;
SendData(msg.data(), msg.size());
SendData(peer, msg.data(), msg.size());
}
getchar();

View File

@@ -1,11 +1,13 @@
#include <iostream>
#include "rtc.h"
#include "x.h"
int main(int argc, char **argv) {
int main(int argc, char** argv) {
Params params;
params.cfg_path = "../../../../config/config.ini";
CreatePeerConnection(params);
PeerPtr* peer = CreatePeer(&params);
CreateConnection(peer);
getchar();
return 0;

View File

@@ -66,7 +66,7 @@ target("projectx")
add_deps("ice", "ws", "pc")
add_files("src/rtc/*.cpp")
add_packages("asio", "nlohmann_json")
add_includedirs("src/rtc", "src/ice", "src/ws", "src/pc")
add_includedirs("src/rtc", "src/ice", "src/ws", "src/pc", "src/interface")
add_rules("utils.symbols.export_all", {export_classes = true})
-- set_policy("build.merge_archive", true)
-- set_targetdir("$(projectdir)/libdrtc/lib")
@@ -82,10 +82,10 @@ target("Offer")
set_kind("binary")
add_deps("projectx")
add_files("tests/peerconnection/offer.cpp")
add_includedirs("src/rtc")
add_includedirs("src/interface")
target("Answer")
set_kind("binary")
add_deps("projectx")
add_files("tests/peerconnection/answer.cpp")
add_includedirs("src/rtc")
add_includedirs("src/interface")