Exemple #1
0
void CMovie::StopMovie()
{
	if(musicNum>=0)lpSoundDS->FadeOut(bgmHandle);
	WaitThreadEnd();
	xvidDec.Clear_XviD();
	bPlay = FALSE;
}
Exemple #2
0
BOOL CMovie::OpenMovie(char *fname,int music,BOOL loop)
{
	int			size;
	Chunk		aviFileHead;
	Chunk		aviInfo;
	AVIMAINHEADER aviMainHead;

	WaitThreadEnd();
	stream = readFile->StreamOpenFile(pack_sound,fname,size);
	if((-1)==stream) return FALSE;
	readFile->StreamReadFile(pack_sound,stream,(char *)&aviFileHead,sizeof(Chunk));
	if(MAKEFOURCC('R','I','F','F')!=aviFileHead.ckID){
		readFile->StreamCloseFile(pack_sound,stream);
		stream = -1;
		return FALSE;
	}
	readFile->StreamReadFile(pack_sound,stream,(char *)&aviInfo,sizeof(Chunk));
	readFile->StreamReadFile(pack_sound,stream,(char *)&aviMainHead,sizeof(AVIMAINHEADER));
	readFile->StreamSeekFile(pack_sound,stream,0,FILE_BEGIN);
	fpms = aviMainHead.dwMicroSecPerFrame;

	srcWidth = aviMainHead.dwWidth;
	srcHeight = aviMainHead.dwHeight;

	HDC hDC = ::GetDC(sysInf.hWnd);
	HBRUSH brush = CreateSolidBrush(RGB(0, 0, 8));
	HBRUSH old_brush = (HBRUSH)SelectObject(hDC,brush);
	PatBlt(hDC,0,0,wWidth,wHeight,PATCOPY);
	SelectObject(hDC,old_brush);
	DeleteObject(brush);
	::ReleaseDC(sysInf.hWnd,hDC);

	if(FALSE == CreateSurface() ){
	}
	buffer_size = srcWidth*srcHeight*2;
	readBuf = (LPBYTE)malloc(buffer_size);

	xvidDec.Start_XviD(srcWidth,srcHeight,overlay_forcc[forccNum]);

	read_size = readFile->StreamReadFile(pack_sound,stream,(char *)readBuf,buffer_size);
	frame_cnt = 0;
	old_frame = 0;
	start_time = 0;
	old_time = 0;
	skip_cnt = 0;
	total_skip_cnt = 0;
	bPause = FALSE;
	if(NULL==lpSoundDS)lpSoundDS = new ClSoundDS(sysInf.hWnd,readFile,FALSE);
	bPlay = TRUE;
	bLoop = loop;
	changeExecMode( movie_mode );
	musicNum = music;

	DWORD	dwThreadID;
	hMovieThread = CreateThread(NULL,0,movieThread,this,0,&dwThreadID);
	bExitMovieThread = FALSE;

	return TRUE;
} // CMovie::OpenMovie
Exemple #3
0
BOOL CMovie::IsPlay()
{
	if(keyState.push_action || keyState.push_cancel){
		if(musicNum>=0)lpSoundDS->FadeOut(bgmHandle);
		WaitThreadEnd();
		xvidDec.Clear_XviD();
		return FALSE;
	}
	return bPlay;
}
Exemple #4
0
	void Loop::Destory()
	{
		service_lock_.lock();
		destory_ = true;

		WaitThreadEnd();
		for (ServiceMap::iterator it = service_map_.begin(); it != service_map_.end(); it++)
		{
			delete it->second;
		}
		service_map_.clear();
		service_lock_.unlock();
		SAFE_DELETE(work_thread_);
	}
// 扫描开始主函数
void portscannow(int xp)
{
	int sport;
	char *timenow, timebuf[32];

	// 定义默认扫描的端口
	char *ports[32] = {
		"21",
		"22",
		"23",
		"25",
		"53",
		"79",
		"80",
		"110",
		"111",
		"113",
		"123",
		"135",
		"139",
		"143",
		"443",
		"512",
		"513",
		"514",
		"515",
		"540",
		"1080",
		"1433",
		"1521",
		"1524",
		"3306",
		"3389",
		"5631",
		"6000",
		"6112",
		"8000",
		"8080",
		"12345"   //这里你也可以自己定义要扫描的端口
	};

	// 显示扫描开始的时间
	timenow = _strtime(timebuf);
	printf("\r\nPortScan Start Time: %s\r\n\n", timenow);

	// 计数器初始化.
	maxth = 0;
	scanok = 0;
	scannum = 0;
	searched = 0;

	// 计算要扫描的端口数量
	searchnum = hoststop - hoststart + 1;
	if (xp == 3)
		searchnum = searchnum * 32;
	if (xp == 4)
		searchnum = searchnum * (endport - startport + 1);

	// 端口扫描开始
	for (portip = hoststart; portip <= hoststop; portip++, scannum++)
	{
		// *.*.*.0和*.*.*.255 地址处理
		if ((portip % 256) == 0 || (portip % 256) == 255)
		{
			if (xp == 3)
				searchnum = searchnum - 32;
			if (xp == 4)
				searchnum = searchnum - (endport - startport + 1);
			scannum--;
			playx();
			continue;
		}

		if (i > 11) i = 0;
		// 默认端口扫描
		// scan 192.168.0.1
		// scan 192.168.0.1-192.168.0.254
		if (xp == 3)
		{
			for (sport = 0; sport < 32; sport++, maxth++, searched++)
			{
				// 测试当前线程是否大于180
				TestThread(180);
				// 产生新的线程处理端口扫描
				CWinThread * pthread = AfxBeginThread(portscan, LPVOID(atoi((char*)ports[sport])));
				//延时
				Sleep(120);
			}
		}

		// 自定义端口扫描
		// scan -p 21 192.168.0.1
		// scan -p 21-80 192.168.0.1-192.168.0.254
		if (xp == 4)
		{ // 计算要扫描的端口
			sport = endport - startport;
			if (sport > 500)
			{
				// 扫描自定义的端口
				for (sport = startport; sport <= endport; sport++, maxth++, searched++)
				{
					TestThread(2000);
					// 产生新的线程处理端口扫描
					CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport));
					// 延时
					Sleep(10);
				}
			}
			else
			{
				// 扫描自定义的端口
				for (sport = startport; sport <= endport; sport++, maxth++, searched++)
				{
					// 测试当前线程是否大于250
					TestThread(250);
					// 产生新的线程处理端口扫描
					CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport));
					// 延时
					Sleep(100);
					playx();
				}
			}
		}
	}

	// 等待所有的线程结束
	WaitThreadEnd();

	// 显示端口扫描结束时间
	timenow = _strtime(timebuf);
	printf("\r\nPortScan End Time: %s", timenow);
	printf("\r\nScan %d Hosts completed. Open %d Ports!\r\n", scannum, scanok);
}
Exemple #6
0
CMovie::~CMovie()
{
	WaitThreadEnd();
	Release();
}