void List ( void ) { int bookN = 0; puts ("List of available books:"); while ( TRUE ) { /* read line removing spaces */ fgets (line, MaxLine, fin); NoSpaces (); /* if /BOOKSHELF or => break */ if (!strcmp(line,"<!--/BOOKSHELF-->")) break; if (feof(fin)) CriticalError (SC_BooksCorrupted, ""); bookN++; /* Line must start with <!--BOOK=bookname, and then print it */ if ( !GetBookName() ) CriticalError (SC_BooksCorrupted, ""); printf (" %s\n",line); /* Strip until one gets to <!--/BOOK--> */ do { fgets(line, MaxLine, fin); NoSpaces(); } while ( strcmp(line,"<!--/BOOK-->") && !feof(fin) ); if (feof(fin)) CriticalError (SC_BooksCorrupted, ""); } printf ("Number of books found: %u\n", bookN); }
BOOL BookOpenManager::OpenBook() { DebugPrintf(DLC_BOOKOPENMANAGER, "%s, %d, %s, %s START", __FILE__, __LINE__, "BookOpenManager", __FUNCTION__); if(!m_pCurPage) { return FALSE; } CDKFileManager * pclsFileManager = CDKFileManager::GetFileManager(); if(!pclsFileManager) { return FALSE; } pclsFileManager->ConvertDKPToDKX(GetBookPath()); //CHourglass* pIns = CHourglass::GetInstance(); //if(m_iHourglassLeft == 0 && m_iHourglassTop == 0) //{ // pIns = NULL; //} //if(pIns) //{ // pIns->Start(m_iHourglassLeft, m_iHourglassTop); //} CDisplay* display = CDisplay::GetDisplay(); if(NULL == display) { return FALSE; } DkFileFormat Format = GetBookFormat(); switch (Format) { case DFF_Text: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_TXT); break; case DFF_ZipFile: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_ZIP); break; case DFF_RoshalArchive: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_RAR); break; case DFF_PortableDocumentFormat: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_PDF); break; case DFF_ElectronicPublishing: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_EPUB); break; case DFF_Serialized: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_SERIALIZED); break; case DFF_Unknown: SQM::GetInstance()->IncCounter(SQM_ACTION_BOOKREADER_FORMAT_UNKNOWN); break; default: //DONOTHING for others break; } if(Format == DFF_ZipFile || Format == DFF_RoshalArchive || Format == DFF_Serialized) { BOOL bOpenSuccess = OpenArchiveBook(); //if(pIns) //{ // pIns->Stop(); //} return bOpenSuccess; } else { DkReaderPage *pReader = new DkReaderPage(); if(NULL == pReader) { //if(pIns) //{ // pIns->Stop(); //} return FALSE; } if (!pReader->Initialize(GetBookPath(), GetBookName(), m_iBookID)) { delete pReader; pReader = NULL; //if(pIns) //{ // pIns->Stop(); //} UIMessageBox messagebox(m_pCurPage, StringManager::GetStringById(CANNOT_OPEN_BOOK), MB_OK); messagebox.DoModal(); } else { pReader->MoveWindow(0, 0, display->GetScreenWidth(), display->GetScreenHeight()); //Here: we move the pIns->Stop() into UIBookReaderContainer::Draw() to fix bug like: KTV00026614 CDisplay::GetDisplay()->SetFullRepaint(true); CPageNavigator::Goto(pReader); } } DebugPrintf(DLC_BOOKOPENMANAGER, "%s, %d, %s, %s end", __FILE__, __LINE__, "BookOpenManager", __FUNCTION__); return TRUE; }