void CCompressionOptionsPage::OnGetTime() 
{
	if (!Enc_Info.b_selectrange)
	{
		UpdateData(TRUE);
		
		Enc_Info.b_gettimefromvob = m_bGetTime;
		if (m_bGetTime)
		{
			m_lFrames = Enc_Info.l_frames;
			m_lSeconds = (long) (m_lFrames / Enc_Info.f_framerate);
		}
		
		m_hour = m_lSeconds / 3600;
		m_min = (-m_hour * 3600 + m_lSeconds) / 60;
		m_sec = (-m_hour * 3600 - m_min * 60 + m_lSeconds);
		
		RefreshWindow();
		
		if (Enc_Info.b_enter_filesize == 1)
		{
			Calc();
		}
		else
		{
			CalcFileSize();
		}
	}
}
void CCompressionOptionsPage::OnChangeEditSec() 
{
	Seconds2Frames();
	if (m_intEnterFileSize == 0)
	{
		CalcFileSize();
	}
	else
	{
		Calc();
	}
}
void CCompressionOptionsPage::OnRadio2() 
{
	UpdateData(TRUE);

	if (m_intEnterFileSize == 0)
	{
		CalcFileSize();
	}
	else
	{
		Calc();
	}
}
void CCompressionOptionsPage::My_Init()
{
	m_intEnterFileSize = Enc_Info.b_enter_filesize;
	m_intMinBitrate = Enc_Info.i_video_bitrate;
	m_bGetTime = Enc_Info.b_gettimefromvob;
	
	m_lSeconds = 0;
	m_intFileSize = Enc_Info.i_filesize;
	m_intManualEnd = Enc_Info.l_manual_end;
	m_intEndCreditsPct = Enc_Info.i_end_credits_pct;

	Enc_Info.i_endcredits_option = NORMAL_END;
	
	m_intEndCreditsOption = Enc_Info.i_endcredits_option;
	m_intAutoOrManual = Enc_Info.i_endcredits_auto_manual;

	CheckDlgButton(IDC_GET_TIME, Enc_Info.b_gettimefromvob);

	GetDlgItem(IDC_RADIO_END2)->EnableWindow(FALSE);
	GetDlgItem(IDC_RADIO_END3)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_ENDCREDITS_FRAMES)->EnableWindow(FALSE);

	UpDateAuto_Manual();
	
	RefreshWindow();
	UpdateData(FALSE);

	Frames2Seconds();

	if (Enc_Info.b_enter_filesize == 0)
	{
		CalcFileSize();
	}
	else
	{
		Calc();
	}

	LanguageModule.InitAttribs(this,my_page);
}
void CCompressionOptionsPage::OnChangeMinbitrate() 
{
	UpdateData(TRUE);
	CalcFileSize();
}
Exemple #6
0
void SearchFolder(IShellFolder* pSearchFolder, CDoubleList<FILE_ITEM> &Items, LARGE_INTEGER& liSize)
{
	//getting the enumerator object to enumerate the items of the search folder
	IEnumIDList* pEnumIDList = NULL;
	HRESULT hr = pSearchFolder->EnumObjects(NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &pEnumIDList);
	if (FAILED(hr))
	{
		if (hr != E_ACCESSDENIED)
			DisplayError(hr);
		return;
	}

	if (hr == S_FALSE) return;

	//getting pidl to each child item
	ITEMIDLIST* pidlChild = NULL;
	HRESULT hrEnum;
	do
	{
		hrEnum = pEnumIDList->Next(1, &pidlChild, NULL);
		if (FAILED(hrEnum))
		{
			pEnumIDList->Release();

			_ASSERT(0);
			DisplayError(hrEnum);
			return;
		}

		if (S_FALSE == hrEnum) break;

		//we need to know whether this is a folder or a file, and if it is a system item
		ULONG ulFlags = 0xFFFFFFFF;
		hr = pSearchFolder->GetAttributesOf(1, (LPCITEMIDLIST*)&pidlChild, &ulFlags);
		if (FAILED(hr))
		{
			CoTaskMemFree(pidlChild);
			pidlChild = NULL;
			pEnumIDList->Release();

			_ASSERT(0);
			MessageBox(0, L"Could not get the attributes of the item: pSearchFolder->GetAttributesOf", 0, 0);
			return;
		}

		if (ulFlags & SFGAO_FILESYSTEM)
		{
			if (ulFlags & SFGAO_FOLDER && ulFlags & SFGAO_FILESYSANCESTOR && ulFlags & SFGAO_STORAGE)
			{
				//we need to search it
				IShellFolder* pNewSearchFolder = NULL;
				hr = pSearchFolder->BindToObject(pidlChild, NULL, IID_IShellFolder, (void**)&pNewSearchFolder);
				if (FAILED(hr))
				{
					CoTaskMemFree(pidlChild);
					pidlChild = NULL;
					pEnumIDList->Release();

					_ASSERT(0);
					MessageBox(0, L"Could not bind to new folder: pSearchFolder->BindToObject", 0, 0);
					return;
				}

				//it is a folder!!
				//get its full name
				STRRET strret;
				pSearchFolder->GetDisplayNameOf(pidlChild, SHGDN_FORPARSING, &strret);
				WCHAR* wsFullName;
				StrRetToStrW(&strret, NULL, &wsFullName);

				FILE_ITEM item;
				item.size = 0;

				item.wsFullName = wsFullName;
				item.type = ItemType::Folder;
				Items.push_back(item);

				SearchFolder(pNewSearchFolder, Items, liSize);
				pNewSearchFolder->Release();
			}
			else if (ulFlags & SFGAO_STREAM)
			{
				//it is a file!!
				//get its full name
				STRRET strret;
				pSearchFolder->GetDisplayNameOf(pidlChild, SHGDN_FORPARSING, &strret);
				WCHAR* wsFullName;
				StrRetToStrW(&strret, NULL, &wsFullName);

				FILE_ITEM item;
				LARGE_INTEGER li;
				CalcFileSize(wsFullName, li);
				item.size = li.QuadPart;
				liSize.QuadPart += item.size;

				item.wsFullName = wsFullName;
				item.type = ItemType::File;
				Items.push_back(item);
			}
		}

		CoTaskMemFree(pidlChild);
		pidlChild = NULL;

	#pragma warning(suppress: 4127)
	}while (1);

	if (pidlChild)
		CoTaskMemFree(pidlChild);
	pEnumIDList->Release();
}