#define _WIN32_WINNT 0x0500
+#include "ws2tcpip.h" // getnameinfo
+#include "wspiapi.h" // compatibility for Win2k and earlier
+
#include <windows.h>
#include "stdio.h"
#include "string.h"
WLock MakeBackLock;
ChannelData *channelDataTop = NULL;
-extern bool gbGetFile;
-extern bool gbStart;
-extern time_t gtGetFile;
-extern time_t gtStartTime;
-ThreadInfo gtiStart;
-ThreadInfo gtiGetFile;
-static char *data1URL = "http://www.idolmaster.jp/download/images/wallpaper/imas360p_800.jpg";
-static char *data2URL = "http://www.xbox.com/NR/rdonlyres/CAB05E2F-3051-409B-A4C8-830167C1C138/0/wpr0701idolmasterw120001.jpg";
-HWND ghStart;
-
bool gbDispTop = false;
bool gbAllOpen = false;
-THREAD_PROC FestivalStart(ThreadInfo *thread);
-
THREAD_PROC GetHostName(ThreadInfo *thread){
IdData *id = (IdData*)(thread->data);
- HOSTENT *he;
- unsigned int ip;
+ //HOSTENT *he;
+ u_long ip;
+ struct sockaddr_in sa;
+ char host[256];
+ char *tmp;
bool flg = TRUE;
+ bool findFlg;
+ int error;
- ChannelDataLock.on();
ip = htonl(id->getIpAddr());
- for (int i=0; i<5 && flg; i++){
- he = gethostbyaddr((char *)&ip,sizeof(ip),AF_INET);
+ memset(&sa, 0, sizeof(sa));
+ sa.sin_addr.S_un.S_addr = ip;
+ sa.sin_family = AF_INET;
- ChannelData* cd = channelDataTop;
- if (he)
+ for (int i=0; i<10 && flg; i++){
+ error = getnameinfo(reinterpret_cast<sockaddr*>(&sa), sizeof(sa), host, sizeof(host)/sizeof(host[0]), NULL, 0, NI_NAMEREQD);
+ switch (error)
{
- while(cd){
- if (cd->setName(id->getServentId(), he->h_name)){
- flg = FALSE;
- break;
- }
- cd = cd->getNextData();
- }
- }
-// ::delete id;
- ChannelDataLock.off();
- sys->sleep(1000);
- }
-
-
- return 0;
-}
-
-bool DownloadFile(LPCTSTR URL, LPCTSTR local){
- char header[] = "Accept: */*\r\n\r\n";
- char buf[4096];
+ case 0:
+ // success
+ flg = FALSE;
+ break;
- FileStream f;
- HINTERNET hInternet;
- HINTERNET hConnect;
+ case WSAHOST_NOT_FOUND:
+ LOG_ERROR("cannot resolve host for %s",
+ ((tmp = inet_ntoa(sa.sin_addr)) ? tmp : ""));
+ flg = TRUE;
+ break;
- try{
- f.openWriteReplace(local);
- }catch(StreamException &e){
- return false;
+ default:
+ LOG_ERROR("an error occurred while resolving hostname of %s (%ld)",
+ ((tmp = inet_ntoa(sa.sin_addr)) ? tmp : ""), error);
+ }
}
- hInternet = ::InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
- if (hInternet == NULL){
- return false;
- }
+ if (error)
+ return 0;
- hConnect = ::InternetOpenUrl(hInternet, URL, header, strlen(header), INTERNET_FLAG_DONT_CACHE, 0);
- if (hConnect == NULL){
- ::InternetCloseHandle(hInternet);
- return false;
- }
+ for (flg=TRUE, findFlg=FALSE; flg; )
+ {
+ ChannelDataLock.on();
+ ChannelData* cd = channelDataTop;
- while(1){
- sys->sleep(0);
- DWORD dwReadSize;
- BOOL ret = ::InternetReadFile(hConnect, buf, 4096, &dwReadSize);
- if (ret){
- if (dwReadSize == 0){
- break;
- }
- try{
- f.write(buf, dwReadSize);
- continue;
- } catch(StreamException e){
+ while(cd){
+ if (cd->getChannelId() == id->getChannelId())
+ {
+ findFlg = TRUE;
+
+ if (cd->findServentData(id->getServentId()))
+ {
+ if (cd->setName(id->getServentId(), host))
+ {
+ LOG_DEBUG("successfully resolved(%d)", id->getServentId());
+ flg = FALSE;
+ break;
+ } else
+ {
+ LOG_ERROR("cannot update servent data with resolved information");
+ flg = FALSE;
+ break;
+ }
+ } else
+ {
+ LOG_DEBUG("servent data has been removed");
+ flg = FALSE;
+ break;
+ }
}
- f.close();
- ::InternetCloseHandle(hConnect);
- ::InternetCloseHandle(hInternet);
- return false;
+
+ cd = cd->getNextData();
}
- }
- f.flush();
- f.close();
- ::InternetCloseHandle(hConnect);
- ::InternetCloseHandle(hInternet);
+// ::delete id;
+ ChannelDataLock.off();
- return true;
-}
+ if (!findFlg)
+ {
+ LOG_DEBUG("servent data has been removed(channel)");
+ flg = FALSE;
+ }
+
+ sys->sleep(1000);
+ }
-THREAD_PROC GetInternetFile(ThreadInfo *thread){
- DownloadFile(data1URL, "data1.jpg");
- DownloadFile(data2URL, "data2.jpg");
return 0;
}
-extern TCHAR szWindowClass3[]; // The title bar text
-
-
int drawSpeed(Graphics *gra, int posX, int posY){
// \91¬\93x\95\\8e¦\95\94\82Ì\94w\8ci\82ð\94\92\82\82·\82é
posX = x;
posY = y;
- int w,h;
+ int w/*,h*/;
if (getWidth() == 0){
if (gW){
// \83X\83e\81[\83^\83X\95\\8e¦
Gdiplus::Image *img = NULL;
unsigned int nowTime = sys->getTime();
- switch(this->getStatus()){
+ if (this->type != Servent::T_COUT)
+ {
+ // COUT\88È\8aO
+ Channel *ch = chanMgr->findChannelByChannelID(this->channel_id);
+ switch(this->getStatus()){
case Channel::S_IDLE:
img = img_idle;
break;
img = img_broad_ok;
break;
case Channel::S_ERROR:
- img = img_error;
+ // bump\8e\9e\82É\83G\83\89\81[\82ª\95\\8e¦\82³\82ê\82é\82Ì\82ð\96h\8e~
+ if (ch && ch->bumped)
+ {
+ img = img_connect;
+ } else
+ {
+ img = img_error;
+ }
break;
default:
img = img_idle;
break;
+ }
+ } else
+ {
+ // COUT\97p
+ img = img_broad_ok;
}
+
// \95`\89æ\8aî\93_
PointF origin(xx, yy);
// \83X\83e\81[\83^\83X\95\\8e¦\88Ê\92u
strBrush = ::new SolidBrush(Color::Black);
}
}
- // \83`\83\83\83\93\83l\83\8b\96¼\95\\8e¦
- g->SetTextRenderingHint(TextRenderingHintAntiAlias);
- _bstr_t bstr1(getName());
- // \95¶\8e\9a\95`\89æ\94Í\88Í\8ew\92è
- RectF r1(origin.X, origin.Y, 120.0f, 13.0f);
- StringFormat format;
- format.SetAlignment(StringAlignmentNear);
- g->DrawString(bstr1, -1, &font, r1, &format, strBrush);
- // \8e\9f\82Ì\8aî\93_
- origin.X += r1.Width;
-
- //// \8fã\97¬IP/\83\8a\83X\83i\81[\90\94/\83\8a\83\8c\81[\90\94\95\\8e¦
- //// NOTE:
- //// \82Ò\82 \82©\82·\82Ì\93®\8dì\95×\8b\97p\81B\83\8a\83\8a\81[\83X\83r\83\8b\83h\82Å\82Í\8c³\82Ì\83R\81[\83h\82ð\8eg\97p\82Ì\8e\96\81B
- //// \95¶\8e\9a\95\\8e¦\94Í\88Í\82Í\95\9d220\82®\82ç\82¢\82Å\82¨\82\8b
- //char tmp[512]; // \95\\8e¦\97p\83o\83b\83t\83@
- //char hostip[256]; // IP\83A\83h\83\8c\83X\83o\83b\83t\83@
- //chDisp.uphost.toStr(hostip); // \8fã\97¬IP
- //sprintf(tmp, "%d/%d - [%d/%d] - %s",
- // getTotalListeners(),
- // getTotalRelays(),
- // getLocalListeners(),
- // getLocalRelays(),
- // hostip
- // );
-
- // \83\8a\83X\83i\81[\90\94/\83\8a\83\8c\81[\90\94\95\\8e¦
- char tmp[256];
- sprintf(tmp, "%d/%d - [%d/%d]", getTotalListeners(), getTotalRelays(), getLocalListeners(), getLocalRelays());
- _bstr_t bstr2(tmp);
- // \95¶\8e\9a\95\\8e¦\94Í\88Í\8ew\92è
- RectF r2(origin.X, origin.Y, 100.0f, 13.0f);
- format.SetAlignment(StringAlignmentCenter);
- g->DrawString(bstr2, -1, &font, r2, &format, strBrush);
- // \8e\9f\82Ì\8aî\93_
- origin.X += r2.Width;
-
- // bps\95\\8e¦
- Font *f;
- if (isStayConnected()){
- f = ::new Font(L"Arial", 9.0f, FontStyleItalic|FontStyleBold, UnitPoint);
- } else {
- f = ::new Font(L"Arial", 9.0f);
- }
- sprintf(tmp, "%dkbps", getBitRate());
- _bstr_t bstr3(tmp);
- format.SetAlignment(StringAlignmentFar);
- // \95¶\8e\9a\95\\8e¦\94Í\88Í\8ew\92è
- RectF r3(origin.X, origin.Y, 80.0f, 13.0f);
- g->DrawString(bstr3, -1, f, r3, &format, strBrush);
- // \83t\83H\83\93\83g\8aJ\95ú
- ::delete f;
-
- // \8e\9f\82Ì\8aî\93_
- origin.X += r3.Width;
- // \83u\83\89\83V\8dí\8f\9c
- ::delete strBrush;
-
-
- // Servent\95\\8e¦
- if (!openFlg){
- int count = getServentCount();
- // Servent\95\\8e¦\95\94\82Ì\94w\8ci\82ð\94\92\82É\82·\82é
- SolidBrush b(Color(160,255,255,255));
- g->FillRectangle(&b, (INT)origin.X, (INT)origin.Y, 14*count, 14);
-
- sd = serventDataTop;
- int index = 0;
- while(sd){
- SolidBrush *serventBrush;
- if (sd->getInfoFlg()){
- ChanHit *hit = sd->getChanHit();
- if (hit->firewalled){
- SolidBrush bb(Color(180,255,0,0));
- g->FillRectangle(&bb, (INT)origin.X + 14*index, (INT)origin.Y, 14, 14);
- }
- if (hit->relay){
- // \83\8a\83\8c\81[\82n\82j
- serventBrush = ::new SolidBrush(Color::Green);
- } else {
- // \83\8a\83\8c\81[\95s\89Â
- if (hit->numRelays){
- // \83\8a\83\8c\81[\88ê\94t
- serventBrush = ::new SolidBrush(Color::Blue);
+ if (this->type != Servent::T_COUT)
+ {
+ // COUT\88È\8aO
+
+ // \83`\83\83\83\93\83l\83\8b\96¼\95\\8e¦
+ g->SetTextRenderingHint(TextRenderingHintAntiAlias);
+ _bstr_t bstr1(getName());
+ // \95¶\8e\9a\95`\89æ\94Í\88Í\8ew\92è
+ RectF r1(origin.X, origin.Y, 120.0f, 13.0f);
+ StringFormat format;
+ format.SetAlignment(StringAlignmentNear);
+ g->DrawString(bstr1, -1, &font, r1, &format, strBrush);
+ // \8e\9f\82Ì\8aî\93_
+ origin.X += r1.Width;
+
+ //// \8fã\97¬IP/\83\8a\83X\83i\81[\90\94/\83\8a\83\8c\81[\90\94\95\\8e¦
+ //// NOTE:
+ //// \82Ò\82 \82©\82·\82Ì\93®\8dì\95×\8b\97p\81B\83\8a\83\8a\81[\83X\83r\83\8b\83h\82Å\82Í\8c³\82Ì\83R\81[\83h\82ð\8eg\97p\82Ì\8e\96\81B
+ //// \95¶\8e\9a\95\\8e¦\94Í\88Í\82Í\95\9d220\82®\82ç\82¢\82Å\82¨\82\8b
+ //char tmp[512]; // \95\\8e¦\97p\83o\83b\83t\83@
+ //char hostip[256]; // IP\83A\83h\83\8c\83X\83o\83b\83t\83@
+ //chDisp.uphost.toStr(hostip); // \8fã\97¬IP
+ //sprintf(tmp, "%d/%d - [%d/%d] - %s",
+ // getTotalListeners(),
+ // getTotalRelays(),
+ // getLocalListeners(),
+ // getLocalRelays(),
+ // hostip
+ // );
+
+ // \83\8a\83X\83i\81[\90\94/\83\8a\83\8c\81[\90\94\95\\8e¦
+ char tmp[256];
+ sprintf(tmp, "%d/%d - [%d/%d]", getTotalListeners(), getTotalRelays(), getLocalListeners(), getLocalRelays());
+ _bstr_t bstr2(tmp);
+ // \95¶\8e\9a\95\\8e¦\94Í\88Í\8ew\92è
+ RectF r2(origin.X, origin.Y, 100.0f, 13.0f);
+ format.SetAlignment(StringAlignmentCenter);
+ g->DrawString(bstr2, -1, &font, r2, &format, strBrush);
+ // \8e\9f\82Ì\8aî\93_
+ origin.X += r2.Width;
+
+ // bps\95\\8e¦
+ Font *f;
+ if (isStayConnected()){
+ f = ::new Font(L"Arial", 9.0f, FontStyleItalic|FontStyleBold, UnitPoint);
+ } else {
+ f = ::new Font(L"Arial", 9.0f);
+ }
+ sprintf(tmp, "%dkbps", getBitRate());
+ _bstr_t bstr3(tmp);
+ format.SetAlignment(StringAlignmentFar);
+ // \95¶\8e\9a\95\\8e¦\94Í\88Í\8ew\92è
+ RectF r3(origin.X, origin.Y, 80.0f, 13.0f);
+ g->DrawString(bstr3, -1, f, r3, &format, strBrush);
+ // \83t\83H\83\93\83g\8aJ\95ú
+ ::delete f;
+
+ // \8e\9f\82Ì\8aî\93_
+ origin.X += r3.Width;
+
+ // \83u\83\89\83V\8dí\8f\9c
+ ::delete strBrush;
+
+
+ // Servent\95\\8e¦
+ if (!openFlg){
+ int count = getServentCount();
+ // Servent\95\\8e¦\95\94\82Ì\94w\8ci\82ð\94\92\82É\82·\82é
+ SolidBrush b(Color(160,255,255,255));
+ g->FillRectangle(&b, (INT)origin.X, (INT)origin.Y, 14*count, 14);
+
+ sd = serventDataTop;
+ int index = 0;
+ while(sd){
+ SolidBrush *serventBrush;
+ if (sd->getInfoFlg()){
+ ChanHit *hit = sd->getChanHit();
+ if (hit->firewalled){
+ SolidBrush bb(Color(180,255,0,0));
+ g->FillRectangle(&bb, (INT)origin.X + 14*index, (INT)origin.Y, 14, 14);
+ }
+ if (hit->relay){
+ // \83\8a\83\8c\81[\82n\82j
+ serventBrush = ::new SolidBrush(Color::Green);
} else {
- // \83\8a\83\8c\81[\82È\82µ
- serventBrush = ::new SolidBrush(Color::Purple);
+ // \83\8a\83\8c\81[\95s\89Â
+ if (hit->numRelays){
+ // \83\8a\83\8c\81[\88ê\94t
+ serventBrush = ::new SolidBrush(Color::Blue);
+ } else {
+ // \83\8a\83\8c\81[\82È\82µ
+ serventBrush = ::new SolidBrush(Color::Purple);
+ }
}
+ } else {
+ // \8fî\95ñ\82È\82µ
+ serventBrush = ::new SolidBrush(Color::Black);
}
- } else {
- // \8fî\95ñ\82È\82µ
- serventBrush = ::new SolidBrush(Color::Black);
- }
- // \8el\8ap\95`\89æ
- backGra->FillRectangle(serventBrush, (INT)origin.X + index*14 + 1, (INT)origin.Y + 1, 12, 12);
+ // \8el\8ap\95`\89æ
+ backGra->FillRectangle(serventBrush, (INT)origin.X + index*14 + 1, (INT)origin.Y + 1, 12, 12);
- ::delete serventBrush;
- sd = sd->getNextData();
- index++;
+ ::delete serventBrush;
+ sd = sd->getNextData();
+ index++;
+ }
}
- }
- // \8e\9f\82Ì\8aî\93_
- origin.Y += 15;
+ // \8e\9f\82Ì\8aî\93_
+ origin.Y += 15;
- // \83T\83C\83Y\82ð\95Û\91¶
- setWidth((int)origin.X - posX);
- setHeight((int)origin.Y - posY);
+ // \83T\83C\83Y\82ð\95Û\91¶
+ setWidth((int)origin.X - posX);
+ setHeight((int)origin.Y - posY);
- // ServentData\95\\8e¦
- sd = serventDataTop;
- while(sd){
- if (openFlg || sd->getSelected()){
- sd->drawServent(g, (INT)x+12, (INT)origin.Y);
- // \8e\9f\82Ì\8aî\93_
- origin.Y += 15;
+ // ServentData\95\\8e¦
+ sd = serventDataTop;
+ while(sd){
+ if (openFlg || sd->getSelected()){
+ sd->drawServent(g, (INT)x+12, (INT)origin.Y);
+ // \8e\9f\82Ì\8aî\93_
+ origin.Y += 15;
+ }
+ sd = sd->getNextData();
}
- sd = sd->getNextData();
+ } else
+ {
+ // COUT
+ g->SetTextRenderingHint(TextRenderingHintAntiAlias);
+ RectF r1(origin.X, origin.Y, 120.0f+100.0f+80.0f, 13.0f);
+ origin.X += r1.Width;
+ StringFormat format;
+ format.SetAlignment(StringAlignmentNear);
+ _bstr_t bstr1("COUT");
+ g->DrawString(bstr1, -1, &font, r1, &format, strBrush);
+ ::delete strBrush;
+ origin.Y += 15;
+ setWidth((int)origin.X - posX);
+ setHeight((int)origin.Y - posY);
}
-
return (int)(origin.Y);
}
int ServentData::drawServent(Gdiplus::Graphics *g, int x, int y){
REAL xx = x * 1.0f;
REAL yy = y * 1.0f;
- int w,h;
+ int w/*,h*/;
// \88Ê\92u\82ð\95Û\91¶
posX = x;
c = c->next;
}
+#if 1
+ // COUT\82ð\8c\9f\8dõ
+ {
+ bool foundFlg = false;
+ bool foundFlg2 = false;
+ Servent *s = servMgr->servents;
+ while (s)
+ {
+ if (s->type == Servent::T_COUT && s->status == Servent::S_CONNECTED)
+ {
+ foundFlg = true;
+
+ // ChannelData\96\96\94ö\82Ü\82Å\92T\8dõ
+ ChannelData *prev = NULL;
+ cd = channelDataTop;
+ while (cd)
+ {
+ if (cd->type == Servent::T_COUT && cd->servent_id == s->servent_id)
+ {
+ foundFlg2 = true;
+ cd->setEnableFlg(true);
+ break;
+ }
+ prev = cd;
+ cd = cd->getNextData();
+ }
+ cd = prev;
+
+ if (foundFlg2)
+ break;
+
+ // \83m\81[\83h\92Ç\89Á
+ if (channelDataTop)
+ {
+ // channelData\82ª\8bó\82Å\82È\82¢\81Bcd\82Í\82±\82±\82Å\83\8a\83X\83g\96\96\94ö\82ð\8ew\82µ\82Ä\82é\81i\82Í\82¸\81j
+ cd->setNextData(::new ChannelData());
+ cd = cd->getNextData();
+ memset(cd, 0, sizeof(cd));
+ cd->setNextData(NULL);
+ } else
+ {
+ // channelData\82ª\8bó
+ channelDataTop = ::new ChannelData();
+ channelDataTop->setNextData(NULL);
+ cd = channelDataTop;
+ }
+
+ // \83f\81[\83^\90Ý\92è
+ cd->type = s->type;
+ cd->servent_id = s->servent_id;
+ cd->setEnableFlg(true);
+ }
+
+ s = s->next;
+ }
+
+ // COUT\82ª\90Ø\82ê\82Ä\82½\82ç\8dí\8f\9c
+ if (!foundFlg)
+ {
+ cd = channelDataTop;
+ ChannelData *prev = NULL;
+ while (cd)
+ {
+ // COUT\82Ì\8fî\95ñ\82ð\8dí\8f\9c
+ if (cd->type == Servent::T_COUT)
+ {
+ // \90æ\93ª
+ if (!prev)
+ {
+ channelDataTop = cd->getNextData();
+ } else
+ {
+ prev->setNextData(cd->getNextData());
+ }
+ //::delete cd;
+ }
+
+ prev = cd;
+ cd = cd->getNextData();
+ }
+ }
+ }
+#endif
+
// \83`\83\83\83\93\83l\83\8b\82ª\82È\82\82È\82Á\82Ä\82¢\82é\8fê\8d\87\82Ì\8f\88\97\9d
cd = channelDataTop;
ChannelData *prev = NULL;
next = cd->getNextData();
if (!prev){
// \90æ\93ª\82Ì\83f\81[\83^\82ð\8dí\8f\9c
+ // \82±\82±\83\81\83\82\83\8a\83\8a\81[\83N\82µ\82»\82¤ by \82¦\82é\81[
channelDataTop = next;
} else {
// \93r\92\86\82Ì\83f\81[\83^\82ð\8dí\8f\9c
while(cd){
ServentData *sv = cd->findServentData(s->servent_id);
// ServentData\82ª\82 \82ê\82Î
- if (sv){
+ if (sv && cd->getChannelId() == s->channel_id){
// \83f\81[\83^\90Ý\92è
sv->setData(s, &hitData, totalListeners, totalRelays, infoFlg);
sv->setEnableFlg(TRUE);
cd->addServentData(sv);
// \83z\83X\83g\96¼\82ð\8eæ\93¾\82·\82é
IdData *id = ::new IdData(cd->getChannelId(), sv->getServentId(), sv->getHost().ip);
- ThreadInfo t;
- t.func = GetHostName;
- t.data = (void*)id;
- sys->startThread(&t);
+ ThreadInfo *t;
+ t = ::new ThreadInfo();
+ t->func = GetHostName;
+ t->data = (void*)id;
+ sys->startThread(t);
+ LOG_DEBUG("resolving thread was started(%d)", id->getServentId());
// \83\8b\81[\83v\8fI\97¹
break;
}
break;
sys->sleep(100);
}
-
- if (gbGetFile && (sys->getTime() > gtGetFile)){
- gbGetFile = false;
- gtiGetFile.func = GetInternetFile;
- gtiGetFile.data = NULL;
- sys->startThread(>iGetFile);
- }
- else if (gbStart && (sys->getTime() > gtStartTime)){
- gbStart = false;
- SendMessage(guiWnd, WM_START, 0, 0);
- gtiStart.func = FestivalStart;
- gtiStart.data = NULL;
- sys->startThread(>iStart);
- }
}
// set GUI thread status to terminated
ServentData *sd = NULL;
ChannelData *cd = channelDataTop;
while(cd){
+ // COUT
+ if (cd->type == Servent::T_COUT
+ && cd->servent_id == servent_id)
+ break;
+
sd = cd->findServentData(servent_id);
if (sd){
break;
cd = cd->getNextData();
}
- if (cd == NULL || sd == NULL){
+ if (cd == NULL || sd == NULL
+ && cd->type != Servent::T_COUT) // COUT
+ {
return;
}
cd = channelDataTop;
while(cd){
+ // COUT
+ if (cd->type == Servent::T_COUT
+ && cd->servent_id == servent_id)
+ break;
+
sd = cd->findServentData(servent_id);
if (sd){
break;
cd = cd->getNextData();
}
- if (cd == NULL || sd == NULL){
+ if (cd == NULL || sd == NULL
+ && cd->type != Servent::T_COUT) // COUT
+ {
return;
}
switch(dwID){
case 1001: // \90Ø\92f
s->thread.active = false;
+
+ // COUT\90Ø\92f
+ if (s->type == Servent::T_COUT)
+ s->thread.finish = true;
+
break;
}
cd->setSelected(TRUE);
channel_id = cd->getChannelId();
channel_selected = TRUE;
+
+ // COUT\8e¯\95Ê
+ if (cd->type == Servent::T_COUT)
+ {
+ channel_selected = FALSE;
+ servent_selected = TRUE;
+ servent_id = cd->servent_id;
+ }
} else {
if (cd->isSelected()){
changeFlg = TRUE;
guiWnd = NULL;
break;
- case WM_START:
- ghStart = ::CreateWindow(szWindowClass3,
- "Peercast-IM@S",
- WS_OVERLAPPEDWINDOW & ~(WS_MAXIMIZEBOX),
- 0,
- 0,
- 400,
- 300,
- NULL,
- NULL,
- hInst,
- NULL);
- ::ShowWindow(ghStart, SW_SHOWNORMAL);
- break;
-
- default:
- return (DefWindowProc(hwnd, message, wParam, lParam));
- }
-
- return 0;
-}
-
-Gdiplus::Image *data1 = NULL;
-Gdiplus::Image *data2 = NULL;
-Gdiplus::Bitmap *startBmp = NULL;
-Gdiplus::Graphics *startGra = NULL;
-WLock MakeStartLock;
-
-LRESULT CALLBACK StartProc (HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
- SolidBrush b(Color::Black);
- bstr_t bstr;
-
- switch(message){
- case WM_CREATE:
- startBmp = ::new Bitmap(400,300);
- startGra = ::new Graphics(startBmp);
- bstr = L"data1.jpg";
- data1 = ::new Image(bstr);
- bstr = L"data2.jpg";
- data2 = ::new Image(bstr);
- // \8d\95\82Å\93h\82è\82Â\82Ô\82µ
- startGra->FillRectangle(&b, 0, 0, 400, 300);
- break;
- case WM_PAINT:
- if (startGra){
- HDC hdc;
- PAINTSTRUCT paint;
-
- MakeStartLock.on();
- hdc = BeginPaint(hwnd, &paint);
- RECT *rcRect;
- rcRect = &(paint.rcPaint);
- LONG width = rcRect->right - rcRect->left + 1;
- LONG height = rcRect->bottom - rcRect->top + 1;
-
- Graphics g2(hdc);
- Rect r(rcRect->left, rcRect->top, width, height);
- g2.DrawImage(startBmp, r, rcRect->left, rcRect->top, width, height, UnitPixel);
- EndPaint(hwnd, &paint);
- MakeStartLock.off();
- }
- break;
- case WM_ERASEBKGND:
- return TRUE;
- case WM_CLOSE:
- DestroyWindow(ghStart);
- if (startBmp){
- ::delete startBmp;
- }
- if (startGra){
- ::delete startGra;
- }
- if (data1){
- ::delete data1;
- }
- if (data2){
- ::delete data2;
- }
- break;
default:
return (DefWindowProc(hwnd, message, wParam, lParam));
return 0;
}
-
-THREAD_PROC FestivalStart(ThreadInfo *thread){
-
- while(startGra==NULL){
- sys->sleep(100);
- }
-
- sys->sleep(1000);
-
- MakeStartLock.on();
- Font font(L"\82l\82r \82o\83S\83V\83b\83N",40);
- StringFormat format;
- format.SetAlignment(StringAlignmentCenter);
- startGra->SetTextRenderingHint(TextRenderingHintAntiAlias);
- PointF origin(199.0f,49.0f);
- RectF rect(0,0,400,100);
- LinearGradientBrush b1(rect, Color::LightSkyBlue, Color::White, LinearGradientModeHorizontal);
- startGra->DrawString(L"\91æ\82Q\89ñ", -1, &font, origin, &format, &b1);
- origin.Y += 50;
- LinearGradientBrush b2(rect, Color::LightGreen, Color::White, LinearGradientModeHorizontal);
- startGra->DrawString(L"\83A\83C\83h\83\8b\83}\83X\83^\81[", -1, &font, origin, &format, &b2);
- origin.Y += 50;
- LinearGradientBrush b3(rect, Color::LightGoldenrodYellow, Color::White, LinearGradientModeHorizontal);
- startGra->DrawString(L"\83t\83@\83\93\8a´\8eÓ\8dÕ", -1, &font, origin, &format, &b3);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(3000);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(0,0,80,400), 200,200,66,330, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(80,0,80,400), 266,200,66,330, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(160,0,80,400), 332,200,66,330, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(240,0,80,400), 398,200,66,330, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(320,0,80,400), 464,200,66,330, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(0,0,80,400), 530,200,54,270, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(80,0,80,400), 584,200,54,270, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(160,0,80,400), 638,200,54,270, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(240,0,80,400), 692,200,54,270, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- MakeStartLock.on();
- startGra->DrawImage(data1, Rect(320,0,80,400), 746,200,54,270, UnitPixel);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(500);
-
- for (int i=1; i<=10; i++){
- ColorMatrix mtx = {
- 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
- 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
- 0.0f, 0.0f, 0.0f, 0.1f*i, 0.0f,
- 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
- ImageAttributes att;
-
- MakeStartLock.on();
- att.SetColorMatrix(&mtx, ColorMatrixFlagsDefault, ColorAdjustTypeBitmap);
- startGra->DrawImage(data2, Rect(0,0,400,300), 360,130,400,300, UnitPixel, &att);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(100);
- }
-
- sys->sleep(2000);
-
- MakeStartLock.on();
- INT style = FontStyleBold;
- Font font2(L"\82l\82r \82o\83S\83V\83b\83N",70,style,UnitPoint);
- PointF origin2(199.0f,99.0f);
- SolidBrush bs(Color::Black);
- startGra->DrawString(L"START!", -1, &font2, origin2, &format, &bs);
- Font font3(L"\82l\82r \82o\83S\83V\83b\83N",70,style,UnitPoint);
- LinearGradientBrush bx(rect, Color::LightPink, Color::DeepPink, LinearGradientModeHorizontal);
- startGra->DrawString(L"START!", -1, &font3, origin2, &format, &bx);
- MakeStartLock.off();
- InvalidateRect(ghStart, NULL, FALSE);
- sys->sleep(5000);
-
- SendMessage(ghStart, WM_CLOSE, 0, 0);
- return 0;
-}