void AddTorrentWindow::UpdateFileList() { // // int fileCount = fTorrent->Info()->fileCount; tr_file* fileList = fTorrent->Info()->files; for( int i = 0; i < fileCount; i++ ) { char FormatBuffer[128] = { 0 }; BRow* row = new BRow(FILE_COLUMN_HEIGHT); const char* name = fTorrent->IsFolder() ? (strchr(fileList[i].name, '/') + 1) : fileList[i].name; // // // BString FileExtension = B_EMPTY_STRING; BString FilePath = fileList[i].name; FilePath.CopyInto(FileExtension, FilePath.FindLast('.') + 1, FilePath.CountChars()); const char* info = tr_formatter_mem_B(FormatBuffer, fileList[i].length, sizeof(FormatBuffer));; const BBitmap* icon = GetIconFromExtension(FileExtension); row->SetField(new FileField(icon, name, info), COLUMN_FILE_NAME); row->SetField(new CheckBoxField(true), COLUMN_FILE_DOWNLOAD); ////row->SetField(new BIntegerField(PeerStatus[i].progress * 100.0), COLUMN_PEER_PROGRESS); fFileList->AddRow(row, i); } }
int tr_cacheSetLimit (tr_cache * cache, int64_t max_bytes) { char buf[128]; cache->max_bytes = max_bytes; cache->max_blocks = getMaxBlocks (max_bytes); tr_formatter_mem_B (buf, cache->max_bytes, sizeof (buf)); tr_logAddNamedDbg (MY_NAME, "Maximum cache size set to %s (%d blocks)", buf, cache->max_blocks); return cacheTrim (cache); }
static void showInfo (const tr_info * inf) { unsigned int i; char buf[128]; tr_file ** files; int prevTier = -1; /** *** General Info **/ printf ("GENERAL\n\n"); printf (" Name: %s\n", inf->name); printf (" Hash: %s\n", inf->hashString); printf (" Created by: %s\n", inf->creator ? inf->creator : "Unknown"); if (!inf->dateCreated) { printf (" Created on: Unknown\n"); } else { struct tm tm = *localtime (&inf->dateCreated); printf (" Created on: %s", asctime (&tm)); } if (inf->comment && *inf->comment) printf (" Comment: %s\n", inf->comment); printf (" Piece Count: %d\n", inf->pieceCount); printf (" Piece Size: %s\n", tr_formatter_mem_B (buf, inf->pieceSize, sizeof (buf))); printf (" Total Size: %s\n", tr_formatter_size_B (buf, inf->totalSize, sizeof (buf))); printf (" Privacy: %s\n", inf->isPrivate ? "Private torrent" : "Public torrent"); /** *** Trackers **/ printf ("\nTRACKERS\n"); for (i=0; i<inf->trackerCount; ++i) { if (prevTier != inf->trackers[i].tier) { prevTier = inf->trackers[i].tier; printf ("\n Tier #%d\n", prevTier + 1); } printf (" %s\n", inf->trackers[i].announce); } /** *** **/ if (inf->webseedCount > 0) { printf ("\nWEBSEEDS\n\n"); for (i=0; i<inf->webseedCount; ++i) printf (" %s\n", inf->webseeds[i]); } /** *** Files **/ printf ("\nFILES\n\n"); files = tr_new (tr_file*, inf->fileCount); for (i=0; i<inf->fileCount; ++i) files[i] = &inf->files[i]; qsort (files, inf->fileCount, sizeof (tr_file*), compare_files_by_name); for (i=0; i<inf->fileCount; ++i) printf (" %s (%s)\n", files[i]->name, tr_formatter_size_B (buf, files[i]->length, sizeof (buf))); tr_free (files); }