void VDVideoFilterShowInfo::Run() { const VDXFBitmap& dst = *fa->mpOutputFrames[0]; const VDXPixmap& pxdst = *dst.mpPixmap; const float size = 8.0f * 8.0f * 20.0f; VDPixmap pxdst2; pxdst2.data = pxdst.data; pxdst2.data2 = pxdst.data2; pxdst2.data3 = pxdst.data3; pxdst2.pitch = pxdst.pitch; pxdst2.pitch2 = pxdst.pitch2; pxdst2.pitch3 = pxdst.pitch3; pxdst2.format = pxdst.format; pxdst2.w = pxdst.w; pxdst2.h = pxdst.h; pxdst2.palette = pxdst.palette; float y = 20.0f; for(int lines=0; lines<3; ++lines) { switch(lines) { case 0: mTextLine.sprintf("Source frame: %d (%.3fs)", (int)fa->pfsi->lCurrentSourceFrame, (double)fa->pfsi->lSourceFrameMS / 1000.0); break; case 1: mTextLine.sprintf("Output frame: %d", (int)fa->pfsi->mOutputFrame); break; case 2: mTextLine.sprintf("Sequence frame: %d (%.3fs)", (int)fa->pfsi->lCurrentFrame, (double)fa->pfsi->lDestFrameMS / 1000.0); break; } mRasterizer.Clear(); VDPixmapConvertTextToPath(mRasterizer, NULL, size, 8.0f * 8.0f * 10.0f, 8.0f * 8.0f * y, mTextLine.c_str()); mRasterizer.ScanConvert(mTextRegion); VDPixmapConvolveRegion(mShadowRegion, mTextRegion, mShadowBrush); VDPixmapFillRegionAntialiased8x(pxdst2, mShadowRegion, 0, 0, 0xFF000000); VDPixmapFillRegionAntialiased8x(pxdst2, mTextRegion, 0, 0, 0xFFFFFF00); y += 20.0f; } }
VDStringA VDJob::ToString() const { VDStringA s; static const char *const kStateNames[]={ "Waiting", "In progress", "Completed", "Postponed", "Aborted", "Error", "Aborting", "Starting", }; VDASSERTCT(sizeof(kStateNames) / sizeof(kStateNames[0]) == kStateCount); s.sprintf("%s | %s | %-11s (%s:%d)", mInputFile.c_str(), mOutputFile.c_str(), kStateNames[mState], mRunnerName.c_str(), (uint32)mRunnerId); return s; }
bool VDDialogEditAccelerators::OnCommand(uint32 id, uint32 extcode) { if (id == IDC_FILTER) { if (extcode == EN_CHANGE) { VDStringA s("*"); s += VDTextWToA(GetControlValueString(id)).c_str(); s += '*'; RefilterCommands(s.c_str()); return true; } } else if (id == IDC_ADD) { VDUIAccelerator accel; int selIdx = LBGetSelectedIndex(IDC_AVAILCOMMANDS); if ((size_t)selIdx < mFilteredCommands.size()) { const VDAccelToCommandEntry *ace = mFilteredCommands[selIdx]; if (mpHotKeyControl) { mpHotKeyControl->GetAccelerator(accel); // Look for a conflicting command. for(BoundCommands::iterator it(mBoundCommands.begin()), itEnd(mBoundCommands.end()); it != itEnd; ++it) { BoundCommand *obc = *it; if (obc->mAccel == accel) { VDStringW keyName; VDUIGetAcceleratorString(accel, keyName); VDStringA msg; msg.sprintf("The key %ls is already bound to %hs. Rebind it to %hs?", keyName.c_str(), obc->mpCommand, ace->mpName); if (IDOK != MessageBox(mhdlg, msg.c_str(), g_szWarning, MB_OKCANCEL | MB_ICONEXCLAMATION)) return true; mBoundCommands.erase(it); obc->Release(); } } vdrefptr<BoundCommand> bc(new_nothrow BoundCommand); if (bc) { bc->mpCommand = ace->mpName; bc->mCommandId = ace->mId; bc->mAccel = accel; mBoundCommands.push_back(bc.release()); RefreshBoundList(); } } } return true; } else if (id == IDC_REMOVE) { int selIdx = mListViewBoundCommands.GetSelectedIndex(); if ((unsigned)selIdx < mBoundCommands.size()) { BoundCommand *bc = mBoundCommands[selIdx]; mBoundCommands.erase(mBoundCommands.begin() + selIdx); bc->Release(); RefreshBoundList(); } return true; } else if (id == IDC_RESET) { if (IDOK == MessageBox(mhdlg, "Really reset?", g_szWarning, MB_OKCANCEL | MB_ICONEXCLAMATION)) LoadTable(mBoundCommandsDefault); return true; } return false; }