virtual void Run() { doc = Doc::CreateFromFile(fileName); // don't load PalmDoc, etc. files as long as they're not correctly formatted if (doc.AsMobi() && Pdb_Mobipocket != doc.AsMobi()->GetDocType()) doc.Delete(); // let uitask clean up this thread uitask::Post(this); }
virtual void Run() { //lf(L"ThreadLoadEbook::Run(%s)", fileName); Timer t(true); doc = Doc::CreateFromFile(fileName); double loadingTimeMs = t.GetTimeInMs(); lf(L"Loaded %s in %.2f ms", fileName, loadingTimeMs); // don't load PalmDoc, etc. files as long as they're not correctly formatted if (doc.AsMobi() && Pdb_Mobipocket != doc.AsMobi()->GetDocType()) doc.Delete(); // let uitask clean up this thread uitask::Post(this); }
void ThreadLoadEbook::Run() { //lf(L"ThreadLoadEbook::Run(%s)", fileName); Timer t(true); Doc doc = Doc::CreateFromFile(fileName); double loadingTimeMs = t.GetTimeInMs(); //lf(L"Loaded %s in %.2f ms", fileName, t.GetTimeInMs()); // don't load PalmDoc, etc. files as long as they're not correctly formatted if (doc.AsMobi() && Pdb_Mobipocket != doc.AsMobi()->GetDocType()) doc.Delete(); uitask::Post(new FinishedEbookLoadingTask(win, doc)); }
void ThreadLoadEbook::Run() { //lf(L"ThreadLoadEbook::Run(%s)", fileName); Timer t(true); Doc doc = Doc::CreateFromFile(fileName); // TODO: even under heavy load, Doc::CreateFromFile doesn't take more // than 50ms - any reason not to synchronously load ebooks? double loadingTimeMs = t.GetTimeInMs(); lf(L"Loaded %s in %.2f ms", fileName, loadingTimeMs); // don't load PalmDoc, etc. files as long as they're not correctly formatted if (doc.AsMobi() && Pdb_Mobipocket != doc.AsMobi()->GetDocType()) doc.Delete(); uitask::Post(new FinishedEbookLoadingTask(win, doc)); }
void ThreadLoadEbook::Run() { //lf(_T("ThreadLoadEbook::Run(%s)"), fileName); Timer t(true); Doc doc = Doc::CreateFromFile(fileName); double loadingTimeMs = t.GetTimeInMs(); //lf(_T("Loaded %s in %.2f ms"), fileName, t.GetTimeInMs()); // don't load PalmDoc, etc. files as long as they're not correctly formatted if (doc.AsMobi() && Pdb_Mobipocket != doc.AsMobi()->GetDocType()) doc.Delete(); UiMsg *msg = new UiMsg(UiMsg::FinishedMobiLoading); msg->finishedMobiLoading.doc = new Doc(doc); msg->finishedMobiLoading.fileName = fileName; msg->finishedMobiLoading.win = win; fileName = NULL; uimsg::Post(msg); }
static void CreateThumbnailForDoc(Doc doc, DisplayState& ds) { CrashIf(!doc.AsMobi() && !doc.AsEpub()); if (!ShouldSaveThumbnail(ds)) return; // if there is cover image, we use it to generate thumbnail by scaling // image width to thumbnail dx, scaling height proportionally and using // as much of it as fits in thumbnail dy RenderedBitmap *bmp = ThumbFromCoverPage(doc); if (!bmp) { // no cover image so generate thumbnail from first page SizeI pageSize(THUMBNAIL_DX * 3, THUMBNAIL_DY * 3); SizeI dstSize(THUMBNAIL_DX, THUMBNAIL_DY); bmp = RenderFirstDocPageToBitmap(doc, pageSize, dstSize, 10); } SaveThumbnailForFile(doc.GetFilePath(), bmp); }