亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mediaplayerdlg.cpp

?? 在TCPMP的基礎上,自己做界面,通用調用common.dll來完成視頻,圖片的批量播放.
?? CPP
字號:
// MediaPlayerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MediaPlayer.h"
#include "MediaPlayerDlg.h"
#include "../common/common.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

player* myplayer = NULL;
/////////////////////////////////////////////////////////////////////////////
// CMediaPlayerDlg dialog

CMediaPlayerDlg::CMediaPlayerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMediaPlayerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMediaPlayerDlg)
	m_bFullScreen = FALSE;
	m_h = 120;
	m_w = 160;
	m_x = 0;
	m_y = 0;
	m_mode = 1;
	m_pDlg = NULL;
	m_delay = 5000;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_view = 0;
}

void CMediaPlayerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMediaPlayerDlg)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Check(pDX, IDC_CHECK, m_bFullScreen);
	DDX_Text(pDX, IDC_EDIT_H, m_h);
	DDX_Text(pDX, IDC_EDIT_W, m_w);
	DDX_Text(pDX, IDC_EDIT_X, m_x);
	DDX_Text(pDX, IDC_EDIT_Y, m_y);
	DDX_Radio(pDX, IDC_RADIO_PIC, m_mode);
	DDX_Text(pDX, IDC_EDIT_DELAY, m_delay);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMediaPlayerDlg, CDialog)
	//{{AFX_MSG_MAP(CMediaPlayerDlg)
	ON_BN_CLICKED(IDC_BUTTON_MEDIA, OnButtonMedia)
	ON_BN_CLICKED(IDC_BUTTON_MEDIAFILE, OnButtonMediafile)
	ON_BN_CLICKED(IDC_BUTTON_PICFILE, OnButtonPicfile)
	ON_BN_CLICKED(IDC_BUTTON_PIC, OnButtonPic)
	ON_BN_CLICKED(IDC_RADIO_MED, OnRadioMed)
	ON_BN_CLICKED(IDC_RADIO_PIC, OnRadioPic)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMediaPlayerDlg message handlers

BOOL CMediaPlayerDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMediaPlayerDlg::OnButtonMedia() 
{
	if (m_view)
	{
		if (::AfxMessageBox(L"Are you want to open a new view?", MB_YESNO | MB_ICONEXCLAMATION) != IDYES)
		{
			Context_Wnd(NULL);		// Close MediaForm.
			CloseForm();			// Close DlgForm.
			delete Context();
			delete m_pDlg;
		}	
	}

	UpdateData(true);
	if (m_folderName.IsEmpty())
	{
		::AfxMessageBox( L"Plase select a folder" );
		return;
	}

	InitPlayer();					// Init player module.
	MakePlayList();					// Make list.
	StartPlayer(80);				// Play Media or Image.
	CreateForm();
	m_view++;
}

void PlayNext(LPVOID lpParam)
{
	CMediaPlayerDlg* pDlg = (CMediaPlayerDlg*)lpParam;
	while(pDlg->m_bThreadStatus)
	{
		::Sleep(pDlg->m_delay);
		myplayer->Set(myplayer,PLAYER_NEXT,NULL,0);	// Play next media.
	}
}

void CMediaPlayerDlg::OnButtonPic() 
{
	// TODO: Add your control notification handler code here
	m_bThreadStatus = true;		//	Used a thread to show Image.
	OnButtonMedia();
	// Create Thread.
	m_hThread = ::CreateThread(	NULL,
								0,
								(LPTHREAD_START_ROUTINE)PlayNext,
								(LPVOID)this,
								0,
								&m_dwExitCode );
}

void CMediaPlayerDlg::OnButtonMediafile() 
{
	// TODO: Add your control notification handler code here
	if (InsertList( L"*.*" ))			// Open a floder selection dialog.
		GetDlgItem(IDC_BUTTON_MEDIA)->EnableWindow(true);		// and insert list.
}

void CMediaPlayerDlg::OnButtonPicfile() 
{
	// TODO: Add your control notification handler code here
	if (InsertList( L"*.*" ))
		GetDlgItem(IDC_BUTTON_PIC)->EnableWindow(true);
}

void CMediaPlayerDlg::InitPlayer()
{
	Context_Init((tchar_t*)T("TCPMP"),(tchar_t*)T("0.72SRC"),3,NULL,NULL); 
	// Create context 
	context* p = Context();
    // Init player module
	myplayer = NULL;
	if(p) myplayer = (player*)(p->Player);

	// empty saved playlist
	int Int = 0;
	myplayer->Set(myplayer, PLAYER_LIST_COUNT, &Int, sizeof(Int));

	// turn off repeat
	bool_t Bool = 0;
	myplayer->Set(myplayer, PLAYER_REPEAT, &Bool, sizeof(Bool));

	Context_Wnd((void*)1); //fake window handle

	// Set Screen.
	if (true)
	{		
		rect Rect;
		Rect.x = m_x;
		Rect.y = m_y;
		Rect.Width = m_w;
		Rect.Height = m_h;
		myplayer->Set(myplayer, PLAYER_SKIN_VIEWPORT, &Rect, sizeof(Rect));
	}
	else
	{
		Bool = 1;
		myplayer->Set(myplayer, PLAYER_FULLSCREEN, &Bool, sizeof(Bool));
	}
}

bool CMediaPlayerDlg::StartPlayer(int vol)
{
	// Set the voice.
	myplayer->Set(myplayer, PLAYER_VOLUME, &vol, sizeof(int));
	// Play Media.
	int n = 1;
	if ( myplayer->Set(myplayer,PLAYER_PLAY,&n,sizeof(int)) == -3)
		return false;
	return true;
}

void CMediaPlayerDlg::CreateForm()
{
	m_pDlg = new CMediaForm();
	m_pDlg->Create(IDD_DIALOG_FORM, m_pDlg);
	m_pDlg->SetWindowPos(NULL, m_x, m_y, m_w, m_h, SWP_SHOWWINDOW);
}

void CMediaPlayerDlg::CloseForm()
{
	m_pDlg->DestroyWindow();
}

TCHAR* CMediaPlayerDlg::ShowFolderDlg()
{	// Make a
	BROWSEINFO		browseInfo;
	TCHAR*			pszDisplayName = new TCHAR[512];
	ZeroMemory(&browseInfo, sizeof(browseInfo));
      
	browseInfo.hwndOwner = GetSafeHwnd();
	browseInfo.pszDisplayName = pszDisplayName;	// Pointer to a buffer that receives the display name of the folder
	browseInfo.lpszTitle = L"Please select a folder:";	// displayed above the tree view control in the dialog box.
	browseInfo.ulFlags = BIF_RETURNONLYFSDIRS;

	LPITEMIDLIST pidl = SHBrowseForFolder(&browseInfo);
	if (!pidl)
		return NULL;
	SHGetPathFromIDList(pidl, pszDisplayName);
	LPMALLOC	pMalloc = NULL;
	if (SHGetMalloc(&pMalloc) == NOERROR)
		pMalloc->Free((void*)pidl);
	
	return pszDisplayName;
}

bool CMediaPlayerDlg::InsertList(CString suffix)
{	
	// Displays a dialog box that allows a user to select a folder.
	// It return NULL when user chose the Cancel button in the dialog box.
	m_list.ResetContent();
	m_folderName = ShowFolderDlg();	// Get folder path.
	if(m_folderName.IsEmpty())
		return false;
	if (m_folderName.GetLength() > 1)
		m_folderName += (L"\\");
	WIN32_FIND_DATA findFileData;
	HANDLE hFile;
	if ( (hFile = ::FindFirstFile(m_folderName + suffix, &findFileData)) == INVALID_HANDLE_VALUE )
	{
		::AfxMessageBox( L"Can't find files!\n" );
		return false;
	}
	else
	{
		int index = 0;
		do 
		{	// Insert file's name to the list.
			m_list.InsertString(index, findFileData.cFileName);
		} while (::FindNextFile(hFile, &findFileData));
	}
	::FindClose(hFile);
	return true;
}

void CMediaPlayerDlg::MakePlayList()
{
	CString m_path = m_folderName;
	int nIndex = m_list.GetCount();
	CString str = L"";
	for (int index = 0; index < nIndex; index++)
	{
		m_list.GetText(index, str);
		PlayerAdd(myplayer, index, m_path + str, NULL);
	}
}

void CMediaPlayerDlg::OnRadioMed() 
{
	// TODO: Add your control notification handler code here
	m_list.ResetContent();
	GetDlgItem(IDC_BUTTON_MEDIAFILE)->EnableWindow(true);
	m_bThreadStatus = false;

	GetDlgItem(IDC_BUTTON_PIC)->EnableWindow(false);
	GetDlgItem(IDC_EDIT_DELAY)->EnableWindow(false);
	GetDlgItem(IDC_BUTTON_PICFILE)->EnableWindow(false);
}

void CMediaPlayerDlg::OnRadioPic() 
{
	// TODO: Add your control notification handler code here
	m_list.ResetContent();
	GetDlgItem(IDC_EDIT_DELAY)->EnableWindow(true);
	GetDlgItem(IDC_BUTTON_PICFILE)->EnableWindow(true);

	GetDlgItem(IDC_BUTTON_MEDIA)->EnableWindow(false);
	GetDlgItem(IDC_BUTTON_MEDIAFILE)->EnableWindow(false);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩二区在线观看| 欧美va在线播放| 亚洲欧美一区二区三区极速播放 | 国产三级一区二区三区| 国产一区999| 综合电影一区二区三区| 色狠狠综合天天综合综合| 亚洲在线免费播放| 555夜色666亚洲国产免| 蓝色福利精品导航| 国产精品福利影院| 欧美艳星brazzers| 另类中文字幕网| 中文字幕在线观看不卡| 91福利国产成人精品照片| 日韩avvvv在线播放| 欧美精品一区二区三区蜜桃视频| 成人国产一区二区三区精品| 亚洲综合色成人| 欧美成人精品1314www| 成人综合婷婷国产精品久久| 一区二区三区在线免费观看| 欧美刺激午夜性久久久久久久| 国产不卡视频在线观看| 亚洲无人区一区| 久久久噜噜噜久久中文字幕色伊伊| 99久久99久久精品国产片果冻| 天天综合色天天综合色h| 久久精品人人做人人爽97| 色八戒一区二区三区| 国产综合成人久久大片91| 亚洲女同一区二区| 2021久久国产精品不只是精品| 日本韩国欧美三级| 国产乱人伦精品一区二区在线观看| 一区二区三区不卡视频| 久久免费偷拍视频| 91麻豆精品国产91久久久使用方法| 成人性生交大片免费看中文| 日本女优在线视频一区二区| 亚洲欧洲av在线| 精品免费日韩av| 欧美肥妇bbw| 91麻豆精品一区二区三区| 国产综合色产在线精品| 婷婷夜色潮精品综合在线| 中文字幕一区视频| 久久久久九九视频| 日韩女优视频免费观看| 欧美日韩三级在线| 91亚洲国产成人精品一区二三| 激情欧美日韩一区二区| 天天影视色香欲综合网老头| 樱桃视频在线观看一区| 国产精品视频看| 久久久久99精品国产片| 日韩精品一区二区三区四区视频 | 免费观看久久久4p| 亚洲一区二区三区四区五区中文| 中文字幕一区二区三区乱码在线| 日韩欧美一区二区视频| 51精品视频一区二区三区| 欧美在线观看一区二区| 色综合视频一区二区三区高清| 国产suv精品一区二区三区| 麻豆久久一区二区| 免费欧美在线视频| 日韩福利视频网| 日本午夜一区二区| 日本欧美肥老太交大片| 日本在线观看不卡视频| 美女视频一区二区| 久久精品久久99精品久久| 日本欧美一区二区在线观看| 日本在线不卡视频| 男人的天堂亚洲一区| 日本特黄久久久高潮| 日本欧洲一区二区| 精品一区二区三区免费毛片爱| 久久精品99久久久| 国模无码大尺度一区二区三区| 精品在线播放午夜| 激情亚洲综合在线| 粉嫩av一区二区三区在线播放| 成人一区在线看| 95精品视频在线| 在线亚洲高清视频| 在线成人av影院| 欧美成va人片在线观看| 国产亚洲短视频| 一区免费观看视频| 亚洲第一福利一区| 免费观看在线综合色| 国产成人丝袜美腿| 一本色道亚洲精品aⅴ| 欧美日韩一区小说| 日韩精品在线一区| 国产欧美日韩麻豆91| 亚洲精品自拍动漫在线| 亚洲国产va精品久久久不卡综合| 免费观看成人鲁鲁鲁鲁鲁视频| 国产麻豆精品视频| 91电影在线观看| 精品国产一区二区三区不卡| 国产日韩综合av| 亚洲综合网站在线观看| 极品少妇一区二区三区精品视频| 国产不卡免费视频| 欧美另类z0zxhd电影| 精品国产一二三| 亚洲欧美激情视频在线观看一区二区三区| 亚洲综合一区二区| 国产美女视频91| 日本福利一区二区| 欧美mv日韩mv| 亚洲最新在线观看| 国产精品一区在线| 欧美日韩中文字幕精品| 久久精品欧美一区二区三区不卡| 一区二区三区在线免费| 国产中文字幕精品| 精品视频在线免费| 欧美国产激情一区二区三区蜜月| 午夜成人免费视频| www.日韩精品| 精品国产乱码久久久久久久| 樱花影视一区二区| 成人免费观看视频| 日韩欧美中文字幕一区| 亚洲欧美日韩国产另类专区| 国产一区二区三区在线看麻豆| 欧美视频中文一区二区三区在线观看| 久久久不卡网国产精品一区| 日韩国产欧美三级| 色一区在线观看| 欧美国产一区在线| 经典三级视频一区| 欧美天天综合网| 亚洲色图第一区| 国产成人自拍网| 欧美本精品男人aⅴ天堂| 午夜天堂影视香蕉久久| 在线观看免费一区| 日韩毛片一二三区| 风间由美一区二区av101| 日韩免费视频一区二区| 日本午夜一本久久久综合| 欧美色男人天堂| 亚洲网友自拍偷拍| 欧美性大战久久久久久久蜜臀| 综合激情网...| 91麻豆123| 亚洲欧美一区二区久久| 北条麻妃一区二区三区| 亚洲国产精品精华液2区45| 精品午夜久久福利影院| 日韩视频在线观看一区二区| 日本麻豆一区二区三区视频| 欧美日韩中文字幕精品| 五月开心婷婷久久| 3751色影院一区二区三区| 香蕉久久一区二区不卡无毒影院 | 亚洲超碰97人人做人人爱| 91久久精品日日躁夜夜躁欧美| 中文字幕亚洲区| 99热精品国产| 亚洲女同一区二区| 欧美在线观看你懂的| 一个色综合av| 欧美日韩在线直播| 天天av天天翘天天综合网色鬼国产| 色婷婷久久久亚洲一区二区三区| 亚洲精品视频自拍| 欧美日韩在线精品一区二区三区激情| 性做久久久久久久久| 91精品国产91久久久久久最新毛片| 日韩av中文字幕一区二区| www日韩大片| 成人av资源网站| 亚洲综合一区二区精品导航| 91精品国产综合久久福利软件| 青青草成人在线观看| 久久综合国产精品| 99久久免费精品高清特色大片| 亚洲一区二区三区四区在线观看| 9191久久久久久久久久久| 久久99久久精品| 国产精品女同互慰在线看| 在线观看一区不卡| 青青草国产成人av片免费| 国产亚洲精品aa| 欧美日韩一区成人| 韩国三级在线一区| 亚洲欧美日韩电影| 日韩欧美一区二区不卡| 成人久久视频在线观看| 亚洲国产精品久久久男人的天堂 | 蜜臀精品久久久久久蜜臀 | 日韩美女视频一区二区在线观看| 国产成人综合自拍|