Fixed copy/paste (again). Added some ifdef'ed out functions for some wrapped (retrying) recv and send's.
This commit is contained in:
parent
06b07193c5
commit
3e6e30cc12
@ -481,6 +481,17 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
document.clientRemap.clear();
|
||||
document.sendPauseCommand(true);
|
||||
document.sendSetRowCommand(trackView->getEditRow());
|
||||
#if 0
|
||||
int flag = 1;
|
||||
return setsockopt(
|
||||
serverSocket, /* socket affected */
|
||||
IPPROTO_TCP, /* set option at TCP level */
|
||||
TCP_NODELAY, /* name of option */
|
||||
(char *) &flag, /* the cast is historical cruft */
|
||||
sizeof(int) /* length of option value */
|
||||
);
|
||||
#endif
|
||||
|
||||
}
|
||||
else SendMessage(statusBarWin, SB_SETTEXT, 0, (LPARAM)_T("Not Connected."));
|
||||
}
|
||||
@ -492,8 +503,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
while (pollRead(clientSocket))
|
||||
{
|
||||
unsigned char cmd = 0;
|
||||
int ret = recv(clientSocket, (char*)&cmd, 1, 0);
|
||||
if (1 > ret)
|
||||
if (0 > recv(clientSocket, (char*)&cmd, 1, 0))
|
||||
{
|
||||
closesocket(clientSocket);
|
||||
clientSocket = INVALID_SOCKET;
|
||||
@ -511,14 +521,11 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
case GET_TRACK:
|
||||
{
|
||||
size_t clientIndex = 0;
|
||||
int ret = recv(clientSocket, (char*)&clientIndex, sizeof(int), 0);
|
||||
recv(clientSocket, (char*)&clientIndex, sizeof(int), 0);
|
||||
|
||||
// get len
|
||||
int str_len = 0;
|
||||
ret = recv(clientSocket, (char*)&str_len, sizeof(int), 0);
|
||||
|
||||
// int clientAddr = 0;
|
||||
// int ret = recv(clientSocket, (char*)&clientAddr, sizeof(int), 0);
|
||||
recv(clientSocket, (char*)&str_len, sizeof(int), 0);
|
||||
|
||||
// get string
|
||||
std::string trackName;
|
||||
@ -548,7 +555,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
case SET_ROW:
|
||||
{
|
||||
int newRow = 0;
|
||||
int ret = recv(clientSocket, (char*)&newRow, sizeof(int), 0);
|
||||
recv(clientSocket, (char*)&newRow, sizeof(int), 0);
|
||||
trackView->setEditRow(newRow);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -361,7 +361,6 @@ struct CopyEntry
|
||||
sync::Track::KeyFrame keyFrame;
|
||||
};
|
||||
|
||||
|
||||
void TrackView::editCopy()
|
||||
{
|
||||
int selectLeft = min(selectStartTrack, selectStopTrack);
|
||||
@ -395,7 +394,7 @@ void TrackView::editCopy()
|
||||
assert(NULL != keyFrame);
|
||||
|
||||
CopyEntry ce;
|
||||
ce.track = int(trackIndex);
|
||||
ce.track = track - selectLeft;
|
||||
ce.row = localRow;
|
||||
ce.keyFrame = *keyFrame;
|
||||
|
||||
@ -461,12 +460,15 @@ void TrackView::editPaste()
|
||||
{
|
||||
struct CopyEntry ce;
|
||||
memcpy(&ce, src, sizeof(CopyEntry));
|
||||
|
||||
size_t trackIndex = document->getTrackIndexFromPos(editTrack + ce.track);
|
||||
|
||||
SyncDocument::Command *cmd = document->getSetKeyFrameCommand(int(trackIndex), editRow + ce.row, ce.keyFrame);
|
||||
multiCmd->addCommand(cmd);
|
||||
src += sizeof(CopyEntry);
|
||||
|
||||
size_t trackPos = editTrack + ce.track;
|
||||
if (trackPos < document->getTrackCount())
|
||||
{
|
||||
size_t trackIndex = document->getTrackIndexFromPos(trackPos);
|
||||
SyncDocument::Command *cmd = document->getSetKeyFrameCommand(int(trackIndex), editRow + ce.row, ce.keyFrame);
|
||||
multiCmd->addCommand(cmd);
|
||||
}
|
||||
}
|
||||
document->exec(multiCmd);
|
||||
}
|
||||
|
||||
@ -69,8 +69,7 @@ bool ClientDevice::update(float row)
|
||||
while (pollRead(serverSocket))
|
||||
{
|
||||
unsigned char cmd = 0;
|
||||
int ret = recv(serverSocket, (char*)&cmd, 1, 0);
|
||||
if (0 >= ret)
|
||||
if (0 > recv(serverSocket, (char*)&cmd, 1, 0))
|
||||
{
|
||||
done = true;
|
||||
break;
|
||||
|
||||
@ -74,7 +74,8 @@ SOCKET serverConnect(struct sockaddr_in *addr)
|
||||
|
||||
const char *expectedGreeting = serverGreeting;
|
||||
char recievedGreeting[128];
|
||||
recv(serverSocket, recievedGreeting, int(sizeof(recievedGreeting)), 0);
|
||||
|
||||
recv(serverSocket, recievedGreeting, int(strlen(expectedGreeting)), 0);
|
||||
if (strncmp(expectedGreeting, recievedGreeting, strlen(expectedGreeting)) != 0)
|
||||
{
|
||||
closesocket(serverSocket);
|
||||
@ -95,4 +96,28 @@ bool pollRead(SOCKET socket)
|
||||
// look for new commands
|
||||
return select(0, &fds, NULL, NULL, &timeout) > 0;
|
||||
}
|
||||
#if 0
|
||||
bool recvBlock(SOCKET socket, char *buffer, size_t length, int flags)
|
||||
{
|
||||
size_t pos = 0;
|
||||
while (pos < length)
|
||||
{
|
||||
int ret = recv(socket, &buffer[pos], int(length - pos), flags);
|
||||
if (0 > ret) return false; // error
|
||||
pos += ret;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool sendBlock(SOCKET socket, const char *buffer, size_t length, int flags)
|
||||
{
|
||||
size_t pos = 0;
|
||||
while (pos < length)
|
||||
{
|
||||
int ret = send(socket, &buffer[pos], int(length - pos), flags);
|
||||
if (0 > ret) return false; // error
|
||||
pos += ret;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -30,6 +30,11 @@ SOCKET serverConnect(struct sockaddr_in *addr);
|
||||
|
||||
bool pollRead(SOCKET socket);
|
||||
|
||||
#if 0
|
||||
bool recvBlock(SOCKET socket, char *buffer, size_t length, int flags);
|
||||
bool sendBlock(SOCKET socket, const char *buffer, size_t length, int flags);
|
||||
#endif
|
||||
|
||||
enum RemoteCommand {
|
||||
// server -> client
|
||||
SET_KEY = 0,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user