示例#1
0
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);

	} 	
}
示例#2
0
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);
}
示例#3
0
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);
}