refactoring

This commit is contained in:
Erik Faye-Lund 2008-02-09 18:13:39 +00:00
parent 9331176838
commit ed688c55b7
9 changed files with 125 additions and 35 deletions

View File

@ -39,15 +39,21 @@ int main(int argc, char *argv[])
{ {
unsigned char cmd = 0; unsigned char cmd = 0;
int ret = recv(serverSocket, (char*)&cmd, 1, 0); int ret = recv(serverSocket, (char*)&cmd, 1, 0);
if (0 == ret) done = true; if (0 == ret)
{
done = true;
break;
}
else else
{ {
switch (cmd) switch (cmd)
{ {
case 1: case 1:
printf("yes, master!\n"); printf("yes, master!\n");
unsigned char cmd = 0x1; {
send(serverSocket, (char*)&cmd, 1, 0); unsigned char cmd = 0x1;
send(serverSocket, (char*)&cmd, 1, 0);
}
break; break;
default: default:

View File

@ -1,4 +1,5 @@
#include "network.h" #include "network.h"
#include <stdio.h>
bool initNetwork() bool initNetwork()
{ {
@ -20,11 +21,14 @@ SOCKET clientConnect(SOCKET serverSocket)
{ {
SOCKET clientSocket = accept(serverSocket, NULL, NULL); SOCKET clientSocket = accept(serverSocket, NULL, NULL);
if (INVALID_SOCKET == clientSocket) return INVALID_SOCKET; if (INVALID_SOCKET == clientSocket) return INVALID_SOCKET;
printf("%x\n", clientSocket);
const char *expectedGreeting = clientGreeting; const char *expectedGreeting = clientGreeting;
char recievedGreeting[128]; char recievedGreeting[128];
recv(clientSocket, recievedGreeting, int(strlen(expectedGreeting)), 0); while(recv(clientSocket, recievedGreeting, int(strlen(expectedGreeting)), 0) < 0) Sleep(1);
fprintf(stderr, "got: \"%s\"\n", recievedGreeting);
if (strncmp(expectedGreeting, recievedGreeting, strlen(expectedGreeting)) != 0) if (strncmp(expectedGreeting, recievedGreeting, strlen(expectedGreeting)) != 0)
{ {
closesocket(clientSocket); closesocket(clientSocket);

View File

@ -7,13 +7,14 @@
#define ID_FILE 40001 #define ID_FILE 40001
#define ID_FILE_EXIT 40002 #define ID_FILE_EXIT 40002
#define ID_EDIT 40003 #define ID_EDIT 40003
#define ID_EDIT_SETROWS 40007
// Next default values for new objects // Next default values for new objects
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40004 #define _APS_NEXT_COMMAND_VALUE 40008
#define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif

View File

@ -39,34 +39,34 @@ public:
return lower->second.value + delta * d; return lower->second.value + delta * d;
}; };
bool isKeyFrame(int row) const bool isKeyFrame(size_t row) const
{ {
return keyFrames.find(row) != keyFrames.end(); return keyFrames.find(row) != keyFrames.end();
} }
const KeyFrame *getKeyFrame(int row) const const KeyFrame *getKeyFrame(size_t row) const
{ {
KeyFrameContainer::const_iterator iter = keyFrames.find(row); KeyFrameContainer::const_iterator iter = keyFrames.find(row);
if (iter == keyFrames.end()) return NULL; if (iter == keyFrames.end()) return NULL;
return &iter->second; return &iter->second;
} }
void deleteKeyFrame(int row) void deleteKeyFrame(size_t row)
{ {
keyFrames.erase(row); keyFrames.erase(row);
} }
void setKeyFrame(int row, const KeyFrame &keyFrame) void setKeyFrame(size_t row, const KeyFrame &keyFrame)
{ {
keyFrames[row] = keyFrame; keyFrames[row] = keyFrame;
} }
void setKeyFrame(int row, const float value) void setKeyFrame(size_t row, const float value)
{ {
keyFrames[row] = KeyFrame(value); keyFrames[row] = KeyFrame(value);
} }
int getFrameCount() size_t getFrameCount() const
{ {
KeyFrameContainer::const_iterator iter = keyFrames.end(); KeyFrameContainer::const_iterator iter = keyFrames.end();
iter--; iter--;
@ -74,7 +74,7 @@ public:
} }
private: private:
typedef std::map<int, struct KeyFrame> KeyFrameContainer; typedef std::map<size_t, struct KeyFrame> KeyFrameContainer;
KeyFrameContainer keyFrames; KeyFrameContainer keyFrames;
}; };

View File

@ -2,6 +2,7 @@
#include "syncdata.h" #include "syncdata.h"
#include <stack> #include <stack>
#include <list>
class SyncEditData : public SyncData class SyncEditData : public SyncData
{ {
@ -19,7 +20,7 @@ public:
class EditCommand : public Command class EditCommand : public Command
{ {
public: public:
EditCommand(int track, int row, bool existing, float value) : track(track), row(row), newValExisting(existing), newVal(value) {} EditCommand(size_t track, size_t row, bool existing, float value) : track(track), row(row), newValExisting(existing), newVal(value) {}
~EditCommand() {} ~EditCommand() {}
virtual void exec(SyncEditData *data) virtual void exec(SyncEditData *data)
@ -45,11 +46,45 @@ public:
} }
private: private:
int track, row; size_t track, row;
float newVal, oldVal; float newVal, oldVal;
bool newValExisting, oldValExisting; bool newValExisting, oldValExisting;
}; };
class MultiCommand : public Command
{
public:
~MultiCommand()
{
std::list<Command*>::iterator it;
for (it = commands.begin(); it != commands.end(); ++it)
{
delete *it;
}
commands.clear();
}
void addEditCommand(Command *cmd)
{
commands.push_back(cmd);
}
virtual void exec(SyncEditData *data)
{
std::list<Command*>::iterator it;
for (it = commands.begin(); it != commands.end(); ++it) (*it)->exec(data);
}
virtual void undo(SyncEditData *data)
{
std::list<Command*>::iterator it;
for (it = commands.begin(); it != commands.end(); ++it) (*it)->undo(data);
}
private:
std::list<Command*> commands;
};
void exec(Command *cmd) void exec(Command *cmd)
{ {
undoStack.push(cmd); undoStack.push(cmd);

View File

@ -13,6 +13,8 @@ TrackView *trackView;
HWND trackViewWin; HWND trackViewWin;
HWND statusBarWin; HWND statusBarWin;
#include "network.h"
static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
switch(msg) switch(msg)
@ -36,8 +38,8 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
int statwidths[] = { 100, -1 }; int statwidths[] = { 100, -1 };
SendMessage(statusBarWin, SB_SETPARTS, sizeof(statwidths) / sizeof(int), (LPARAM)statwidths); SendMessage(statusBarWin, SB_SETPARTS, sizeof(statwidths) / sizeof(int), (LPARAM)statwidths);
SendMessage(statusBarWin, SB_SETTEXT, 0, (LPARAM)"Hi there :)"); SendMessage(statusBarWin, SB_SETTEXT, 0, (LPARAM)_T("Hi there :)"));
SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)"Hi there :)"); SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)_T("Hi there :)"));
} }
break; break;
@ -63,6 +65,7 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
switch (LOWORD(wParam)) switch (LOWORD(wParam))
{ {
case ID_FILE_SAVE: /* meh.*/ break; case ID_FILE_SAVE: /* meh.*/ break;
case ID_FILE_EXIT: PostQuitMessage(0); break;
case ID_EDIT_UNDO: SendMessage(trackViewWin, WM_UNDO, 0, 0); break; case ID_EDIT_UNDO: SendMessage(trackViewWin, WM_UNDO, 0, 0); break;
case ID_EDIT_REDO: SendMessage(trackViewWin, WM_REDO, 0, 0); break; case ID_EDIT_REDO: SendMessage(trackViewWin, WM_REDO, 0, 0); break;
case ID_EDIT_COPY: SendMessage(trackViewWin, WM_COPY, 0, 0); break; case ID_EDIT_COPY: SendMessage(trackViewWin, WM_COPY, 0, 0); break;
@ -73,6 +76,40 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
} }
break; break;
case WM_USER+1:
{
if (WSAGETSELECTERROR(lParam))
{
printf("ERR!\n");
// error occurred
WSACleanup ();
return 0;
}
printf("tjo %x %x\n", lParam, wParam);
SOCKET serverSocket = (SOCKET)wParam;
switch (WSAGETSELECTEVENT(lParam))
{
case FD_ACCEPT:
printf("accept\n");
{
SOCKET clientSocket = clientConnect(serverSocket);
if (INVALID_SOCKET != clientSocket)
{
unsigned char cmd = 0x1;
send(clientSocket, (char*)&cmd, 1, 0);
closesocket(clientSocket);
}
else
{
puts("accept failed!");
}
}
break;
}
}
break;
default: default:
return DefWindowProc(hwnd, msg, wParam, lParam); return DefWindowProc(hwnd, msg, wParam, lParam);
} }
@ -99,8 +136,6 @@ static ATOM registerMainWindowClass(HINSTANCE hInstance)
return RegisterClassEx(&wc); return RegisterClassEx(&wc);
} }
#include "network.h"
int _tmain(int argc, _TCHAR* argv[]) int _tmain(int argc, _TCHAR* argv[])
{ {
HWND hwnd; HWND hwnd;
@ -201,11 +236,15 @@ int _tmain(int argc, _TCHAR* argv[])
#if 1 #if 1
printf("server socket %x\n", serverSocket);
// WSAAsyncSelect(serverSocket, hwnd, WM_USER+1, FD_ACCEPT);
bool done = false; bool done = false;
SOCKET clientSocket = INVALID_SOCKET; SOCKET clientSocket = INVALID_SOCKET;
MSG msg; MSG msg;
while (!done) while (!done)
{ {
#if 1
if (INVALID_SOCKET == clientSocket) if (INVALID_SOCKET == clientSocket)
{ {
fd_set fds; fd_set fds;
@ -256,7 +295,7 @@ int _tmain(int argc, _TCHAR* argv[])
closesocket(clientSocket); closesocket(clientSocket);
clientSocket = INVALID_SOCKET; */ clientSocket = INVALID_SOCKET; */
} }
#endif
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{ {
if (!TranslateAccelerator(hwnd, accel, &msg)) if (!TranslateAccelerator(hwnd, accel, &msg))
@ -266,6 +305,7 @@ int _tmain(int argc, _TCHAR* argv[])
if (WM_QUIT == msg.message) done = true; if (WM_QUIT == msg.message) done = true;
} }
} }
Sleep(1);
} }
closesocket(serverSocket); closesocket(serverSocket);

View File

@ -85,6 +85,8 @@ BEGIN
MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY
MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT
MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE
MENUITEM SEPARATOR
MENUITEM "Set Rows", ID_EDIT_SETROWS
END END
END END

View File

@ -11,7 +11,6 @@ static const int fontHeight = 16;
static const int fontWidth = 6; static const int fontWidth = 6;
static const int trackWidth = fontWidth * 16; static const int trackWidth = fontWidth * 16;
static const int rows = 0x80;
static DWORD darken(DWORD col, float amt) static DWORD darken(DWORD col, float amt)
{ {
return RGB(GetRValue(col) * amt, GetGValue(col) * amt, GetBValue(col) * amt); return RGB(GetRValue(col) * amt, GetGValue(col) * amt, GetBValue(col) * amt);
@ -26,6 +25,7 @@ TrackView::TrackView()
editRow = 0; editRow = 0;
editTrack = 0; editTrack = 0;
rows = 0x80;
selectStartTrack = selectStopTrack = 0; selectStartTrack = selectStopTrack = 0;
selectStartRow = selectStopRow = 0; selectStartRow = selectStopRow = 0;

View File

@ -124,6 +124,8 @@ private:
int windowWidth, windowHeight; int windowWidth, windowHeight;
int windowRows, windowTracks; int windowRows, windowTracks;
int rows;
SyncEditData *syncData; SyncEditData *syncData;
std::basic_string<TCHAR> editString; std::basic_string<TCHAR> editString;