/* * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ #include "main_window/GeneralPage.h" #include #include "util/TimeUtils.h" MainWindow::GeneralPage::GeneralPage() : AbstractGeneralPage(), fModel(NULL), fDataSourceView(NULL), fCPUCountView(NULL), fRunTimeView(NULL), fIdleTimeView(NULL), fTeamCountView(NULL), fThreadCountView(NULL) { fDataSourceView = AddDataView("Data source:"); fCPUCountView = AddDataView("Number of CPUs:"); fRunTimeView = AddDataView("Total time:"); fIdleTimeView = AddDataView("Idle time:"); fTeamCountView = AddDataView("Teams:"); fThreadCountView = AddDataView("Threads:"); } MainWindow::GeneralPage::~GeneralPage() { } void MainWindow::GeneralPage::SetModel(Model* model) { if (model == fModel) return; fModel = model; if (fModel != NULL) { // data source fDataSourceView->SetText(fModel->DataSourceName()); // cpu count char buffer[128]; snprintf(buffer, sizeof(buffer), "%" B_PRId32, fModel->CountCPUs()); fCPUCountView->SetText(buffer); // run time nanotime_t runtime = fModel->LastEventTime(); fRunTimeView->SetText(format_nanotime(runtime, buffer, sizeof(buffer))); // idle time if (runtime == 0) runtime = 1; double idlePercentage = (double)fModel->IdleTime() / (runtime * fModel->CountCPUs()) * 100; char timeBuffer[64]; format_nanotime(fModel->IdleTime(), timeBuffer, sizeof(timeBuffer)); snprintf(buffer, sizeof(buffer), "%s (%.2f %%)", timeBuffer, idlePercentage); fIdleTimeView->SetText(buffer); // team count snprintf(buffer, sizeof(buffer), "%" B_PRId32, fModel->CountTeams()); fTeamCountView->SetText(buffer); // threads snprintf(buffer, sizeof(buffer), "%" B_PRId32, fModel->CountThreads()); fThreadCountView->SetText(buffer); } else { fDataSourceView->SetText(""); fCPUCountView->SetText(""); fRunTimeView->SetText(""); fIdleTimeView->SetText(""); fTeamCountView->SetText(""); fThreadCountView->SetText(""); } }