std::auto_ptr<OfflineJob> qmimap4::CopyOfflineJob::create(qs::InputStream* pStream) { wstring_ptr wstrFolderFrom; READ_STRING(WSTRING, wstrFolderFrom); if (!wstrFolderFrom.get()) return std::auto_ptr<OfflineJob>(0); wstring_ptr wstrFolderTo; READ_STRING(WSTRING, wstrFolderTo); if (!wstrFolderTo.get()) return std::auto_ptr<OfflineJob>(0); unsigned int nSize = 0; READ(&nSize, sizeof(nSize)); if (nSize == 0) return std::auto_ptr<OfflineJob>(0); UidList listUidFrom; listUidFrom.resize(nSize); ItemList listItemTo; listItemTo.resize(nSize); READ(&listUidFrom[0], nSize*sizeof(UidList::value_type)); READ(&listItemTo[0], nSize*sizeof(ItemList::value_type)); bool bMove = false; READ(&bMove, sizeof(bMove)); return std::auto_ptr<OfflineJob>(new CopyOfflineJob(wstrFolderFrom.get(), wstrFolderTo.get(), listUidFrom, listItemTo, bMove)); }
bool PictureAspectRatioBox::list( MP4FileHandle file, ItemList& itemList ) { itemList.clear(); MP4File& mp4 = *((MP4File*)file); const uint16_t trackc = mp4.GetNumberOfTracks(); for( uint16_t i = 0; i < trackc; i++) { MP4TrackId id = mp4.FindTrackId( i ); if( id == MP4_INVALID_TRACK_ID ) continue; const char* type = mp4.GetTrackType( id ); if( !type ) continue; itemList.resize( itemList.size() + 1 ); IndexedItem& xitem = itemList[itemList.size()-1]; xitem.trackIndex = i; xitem.trackId = id; bool success = false; try { success = !get( file, i, xitem.item ); } catch( MP4Exception* x ) { delete x; } if( !success ) { itemList.resize( itemList.size() - 1 ); continue; } } return false; }