|
27 | 27 | #include <algorithm> |
28 | 28 | #include <cstring> |
29 | 29 |
|
| 30 | +#ifdef _MSC_VER |
| 31 | + #include <BaseTsd.h> |
| 32 | + typedef SSIZE_T ssize_t; |
| 33 | +#endif |
| 34 | + |
30 | 35 | #define DEFAULT_PORT "1234" |
31 | 36 |
|
32 | 37 | SoapyRTLTCP::SoapyRTLTCP(const SoapySDR::Kwargs &args): |
@@ -113,16 +118,16 @@ int SoapyRTLTCP::recvHeader() |
113 | 118 | // worst case at 100ms for 12 bytes is 1.2 secs |
114 | 119 | struct timeval tv = {0, 100000}; |
115 | 120 |
|
116 | | - int ret = select(serverSocket + 1, &readfds, NULL, NULL, &tv); |
117 | | - if (ret) |
| 121 | + SOCKET ret = select(serverSocket + 1, &readfds, NULL, NULL, &tv); |
| 122 | + if (ret != INVALID_SOCKET) |
118 | 123 | { |
119 | | - ssize_t received = recv(serverSocket, (char *)&cmd + (sizeof(cmd) - left), left, 0); |
| 124 | + ssize_t received = recv(serverSocket, &cmd[0] + (sizeof(cmd) - left), left, 0); |
120 | 125 | if (received < 0) |
121 | 126 | { |
122 | 127 | SoapySDR_logf(SOAPY_SDR_DEBUG, "server recv error"); |
123 | 128 | break; |
124 | 129 | } |
125 | | - left -= received; |
| 130 | + left -= (int)received; |
126 | 131 | } |
127 | 132 | } |
128 | 133 |
|
@@ -150,16 +155,16 @@ int SoapyRTLTCP::sendCommand(rtltcpCommand command, unsigned int param) |
150 | 155 | // worst case at 100ms for 5 bytes is 0.5 secs |
151 | 156 | struct timeval tv = {0, 100000}; |
152 | 157 |
|
153 | | - int ret = select(serverSocket + 1, NULL, &writefds, NULL, &tv); |
154 | | - if (ret) |
| 158 | + SOCKET ret = select(serverSocket + 1, NULL, &writefds, NULL, &tv); |
| 159 | + if (ret != INVALID_SOCKET) |
155 | 160 | { |
156 | 161 | ssize_t sent = send(serverSocket, (char *)&cmd + (sizeof(cmd) - left), left, 0); |
157 | 162 | if (sent < 0) |
158 | 163 | { |
159 | 164 | SoapySDR_logf(SOAPY_SDR_WARNING, "RTL-TCP server send error"); |
160 | 165 | break; |
161 | 166 | } |
162 | | - left -= sent; |
| 167 | + left -= (int)sent; // this is sound since sent must be small |
163 | 168 | } |
164 | 169 | } |
165 | 170 |
|
@@ -233,7 +238,7 @@ SOCKET SoapyRTLTCP::connectToServer(char const *serverName, char const *defaultP |
233 | 238 | } |
234 | 239 |
|
235 | 240 | struct sockaddr_storage addr = {}; |
236 | | - unsigned addr_len = sizeof(addr); |
| 241 | + socklen_t addr_len = sizeof(addr); |
237 | 242 | SOCKET sock = INVALID_SOCKET; |
238 | 243 | for (res = res0; res; res = res->ai_next) |
239 | 244 | { |
@@ -514,7 +519,7 @@ double SoapyRTLTCP::getGain(const int /*direction*/, const size_t /*channel*/, c |
514 | 519 | } |
515 | 520 | if (tunerType == RTLSDR_TUNER_E4000) |
516 | 521 | { |
517 | | - return getE4000Gain(stage, IFGain[stage - 1]); |
| 522 | + return getE4000Gain(stage, (int)IFGain[stage - 1]); |
518 | 523 | } |
519 | 524 |
|
520 | 525 | return IFGain[stage - 1]; |
@@ -940,6 +945,7 @@ std::vector<int> SoapyRTLTCP::rtlTunerGains(rtlsdr_tuner tunerType) |
940 | 945 | case RTLSDR_TUNER_R820T: |
941 | 946 | case RTLSDR_TUNER_R828D: |
942 | 947 | return r82xx_gains; |
| 948 | + case RTLSDR_TUNER_UNKNOWN: |
943 | 949 | default: |
944 | 950 | return unknown_gains; |
945 | 951 | } |
|
0 commit comments