mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2024-12-26 02:48:31 +01:00
added linux support for rtl_tcp
This commit is contained in:
parent
14a8e81662
commit
ace1fe1e5e
@ -3,17 +3,24 @@
|
|||||||
"bandPlan": "General",
|
"bandPlan": "General",
|
||||||
"bandPlanEnabled": true,
|
"bandPlanEnabled": true,
|
||||||
"fftHeight": 300,
|
"fftHeight": 300,
|
||||||
"frequency": 96570096,
|
"frequency": 96571704,
|
||||||
"max": 0.0,
|
"max": 0.0,
|
||||||
"maximized": false,
|
"maximized": false,
|
||||||
|
"menuOrder": [
|
||||||
|
"Source",
|
||||||
|
"Radio",
|
||||||
|
"Recorder",
|
||||||
|
"Audio",
|
||||||
|
"Band Plan",
|
||||||
|
"Display"
|
||||||
|
],
|
||||||
"menuWidth": 300,
|
"menuWidth": 300,
|
||||||
"min": -51.47058868408203,
|
"min": -51.47058868408203,
|
||||||
"showWaterfall": true,
|
"showWaterfall": true,
|
||||||
"source": "",
|
"source": "",
|
||||||
"sourceSettings": {},
|
"sourceSettings": {},
|
||||||
"windowSize": {
|
"windowSize": {
|
||||||
"h": 720,
|
"h": 1053,
|
||||||
"w": 1280
|
"w": 1920
|
||||||
},
|
}
|
||||||
"menuOrder": ["Source", "Radio", "Recorder", "Audio", "Band Plan", "Display"]
|
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"Radio": "./radio/Release/radio.dll",
|
"Radio": "./radio/radio.so",
|
||||||
"Recorder": "./recorder/Release/recorder.dll",
|
"Recorder": "./recorder/recorder.so",
|
||||||
"Soapy": "./soapy/Release/soapy.dll",
|
"Soapy": "./soapy/soapy.so",
|
||||||
"FileSource": "./file_source/Release/file_source.dll",
|
"FileSource": "./file_source/file_source.so",
|
||||||
"RTLTCPSource": "./rtl_tcp_source/Release/rtl_tcp_source.dll"
|
"RTLTCPSource": "./rtl_tcp_source/rtl_tcp_source.so"
|
||||||
}
|
}
|
@ -14,6 +14,9 @@
|
|||||||
"VGA": 15.906000137329102
|
"VGA": 15.906000137329102
|
||||||
},
|
},
|
||||||
"sampleRate": 8000000.0
|
"sampleRate": 8000000.0
|
||||||
|
},
|
||||||
|
"PulseAudio": {
|
||||||
|
"sampleRate": 96000.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,8 +2,18 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
#include <WinSock2.h>
|
#include <WinSock2.h>
|
||||||
#include <WS2tcpip.h>
|
#include <WS2tcpip.h>
|
||||||
|
#else
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define __attribute__(x)
|
#define __attribute__(x)
|
||||||
@ -28,6 +38,7 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
struct addrinfo *result = NULL;
|
struct addrinfo *result = NULL;
|
||||||
struct addrinfo *ptr = NULL;
|
struct addrinfo *ptr = NULL;
|
||||||
struct addrinfo hints;
|
struct addrinfo hints;
|
||||||
@ -65,6 +76,23 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
freeaddrinfo(result);
|
freeaddrinfo(result);
|
||||||
|
#else
|
||||||
|
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
|
if (sockfd < 0) {
|
||||||
|
// TODO: Log error
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
struct hostent *server = gethostbyname(host);
|
||||||
|
struct sockaddr_in serv_addr;
|
||||||
|
bzero(&serv_addr, sizeof(struct sockaddr_in));
|
||||||
|
serv_addr.sin_family = AF_INET;
|
||||||
|
bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
|
||||||
|
serv_addr.sin_port = port;
|
||||||
|
if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) {
|
||||||
|
// TODO: log error
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
connected = true;
|
connected = true;
|
||||||
|
|
||||||
@ -75,8 +103,12 @@ public:
|
|||||||
if (!connected) {
|
if (!connected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
|
#else
|
||||||
|
close(sockfd);
|
||||||
|
#endif
|
||||||
connected = false;
|
connected = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,11 +121,19 @@ public:
|
|||||||
command_t cmd;
|
command_t cmd;
|
||||||
cmd.cmd = command;
|
cmd.cmd = command;
|
||||||
cmd.param = htonl(param);
|
cmd.param = htonl(param);
|
||||||
|
#ifdef _WIN32
|
||||||
send(sock, (char*)&cmd, sizeof(command_t), 0);
|
send(sock, (char*)&cmd, sizeof(command_t), 0);
|
||||||
|
#else
|
||||||
|
write(sockfd, &cmd, sizeof(command_t));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void receiveData(uint8_t* buf, size_t count) {
|
void receiveData(uint8_t* buf, size_t count) {
|
||||||
|
#ifdef _WIN32
|
||||||
recv(sock, (char*)buf, count, 0);
|
recv(sock, (char*)buf, count, 0);
|
||||||
|
#else
|
||||||
|
read(sockfd, buf, count);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFrequency(double freq) {
|
void setFrequency(double freq) {
|
||||||
@ -125,7 +165,12 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#ifdef _WIN32
|
||||||
SOCKET sock;
|
SOCKET sock;
|
||||||
|
#else
|
||||||
|
int sockfd;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool connected = false;
|
bool connected = false;
|
||||||
|
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user