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);
 }
Example #2
0
 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);
 }
Example #3
0
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));
}
Example #5
0
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);
}
Example #6
0
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);
}