Menu

[a01819]: / src / Graphics.cpp  Maximize  Restore  History

Download this file

127 lines (103 with data), 4.9 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
* File: Launcher.cpp
* Author: amz
*
* Created on 12 marzec 2014, 00:47
*/
#include "Graphics.h"
#include "../head/comm.h"
void Graphics::OnInitCmdLine(wxCmdLineParser &parser) {
parser.SetDesc(g_cmdLineDesc);
parser.SetSwitchChars(wxT("-"));
}
bool Graphics::OnCmdLineParsed(wxCmdLineParser &parser) {
if (parser.Found("h")) {
return false;
}
if (parser.GetParamCount() == 1) {
this->interpreter_identifier = wxAtoi(parser.GetParam(0));
return true;
} else {
parser.Usage();
return false;
}
}
bool Graphics::OnInit() {
wxApp::OnInit();
wxLog::SetActiveTarget(new wxLogStderr);
this->client = new wxSocketClient();;
this->client->SetEventHandler(*this, SOCKET_EVENT_ID);
this->client->SetNotify(wxSOCKET_CONNECTION_FLAG | wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG);
this->client->Notify(true);
wxIPV4address address;
address.Hostname("localhost");
address.Service(3600);
this->client->Connect(address);
MESSAGE msg;
msg.msg_type = MSG_GRAPH;
msg.param.pword[0] = GRAPH_ALLOCATING;
wxLogMessage(wxString::Format("[Graphics::OnInit] interpreter_identifier: %d\n", this->interpreter_identifier));
msg.param.pword[1] = this->interpreter_identifier;
this->client->Write(&msg, sizeof(MESSAGE));
this->window = new GraphicsWindow(wxT("VLP - Graphics Resource"));
this->window->Show(true);
return true;
}
int Graphics::OnExit() {
wxLogMessage(wxString::Format("[Graphics::OnExit]"));
return 0;
}
void Graphics::OnClientEvent(wxSocketEvent &event) {
wxLogMessage(wxString::Format("[Graphics::OnClientEvent] Proccesing event %d", event.GetId()));
}
void Graphics::OnSocketEvent(wxSocketEvent &event) {
try {
wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] Proccesing event %ld", __LINE__, (long)&event));
switch (event.GetSocketEvent()) {
case wxSOCKET_INPUT:
//wxLogMessage(wxString::Format("[Graphics::OnSocketEvent] Socket wxSOCKET_INPUT %ld", (long)&event));
MESSAGE readValue;
event.GetSocket()->Read(&readValue, sizeof(MESSAGE));
//wxLogMessage(wxString::Format("[Graphics::OnSocketEvent] Readed MESSAGE %ld", (long)&event));
if (readValue.msg_type == MSG_GRAPH) {
switch (readValue.param.pword[0]) {
case GRAPH_SET_TITLE:
//wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] GRAPH_SET_TITLE %ld", __LINE__, (long)&event));
this->window->SetTitle( wxString(readValue.param.pstr));
break;
case GRAPH_PUTCHAR:
//wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] GRAPH_PUTCHAR %ld", __LINE__, (long)&event));
this->window->PutChar( readValue.param.pchar);
break;
case GRAPH_INKEY:
//wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] GRAPH_PUTCHAR %ld", __LINE__, (long)&event));
//this->window->PutChar( readValue.param.pchar);
break;
default:
wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] Got event %ld MSG_GRAPH type: %d", __LINE__, (long)&event, readValue.param.pword[0]));
break;
}
} else {
//wxLogMessage(wxString::Format("[Graphics:%d::OnSocketEvent] Got event %ld non MSG_GRAPH mesg_type %d", __LINE__, (long)&event, readValue.msg_type ));
}
break;
case wxSOCKET_LOST:
wxLogMessage(wxString(_ ("[Graphics::OnSocketEvent] Socket lost")));
break;
case wxSOCKET_OUTPUT:
wxLogMessage(wxString::Format(_ ("[Graphics::OnSocketEvent] wxSOCKET_OUTPUT event: %ld"), (long)&event));
break;
default:
wxLogMessage(wxString::Format(_ ("[Graphics::OnSocketEvent] Socket other event: %ld"), (long)&event));
break;
}
wxLogMessage(wxString::Format("[Graphics::OnSocketEvent] Proccessed event %ld", (long)&event));
} catch (int e) {
wxLogMessage(wxString::Format("[Graphics::OnSocketEvent] Exception when procceing event %ld", (long)&event));
//wxLogMessage ( wxString::Format( _ ( "[Graphics::OnSocketEvent] An exception occurred. ") ));
}
}
BEGIN_EVENT_TABLE(Graphics, wxApp)
EVT_SOCKET(CLIENT_EVENT_ID, Graphics::OnClientEvent)
EVT_SOCKET(SOCKET_EVENT_ID, Graphics::OnSocketEvent)
END_EVENT_TABLE()