diff --git a/client/client_state.cpp b/client/client_state.cpp index 33eb3a8583..ac9ee718c1 100644 --- a/client/client_state.cpp +++ b/client/client_state.cpp @@ -413,7 +413,7 @@ int CLIENT_STATE::init() { coprocs.add(coprocs.intel_gpu); } } - host_info._coprocs = coprocs; + host_info.coprocs = coprocs; if (coprocs.none() ) { msg_printf(NULL, MSG_INFO, "No usable GPUs found"); diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 87e6c12c9b..a7ba9623e0 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -470,7 +470,7 @@ bool CAdvancedFrame::CreateMenu() { _("Stop work regardless of preferences") ); - if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) { + if (pDoc->state.have_gpu()) { #ifndef __WXGTK__ menuActivity->AppendSeparator(); @@ -1822,7 +1822,7 @@ void CAdvancedFrame::OnFrameRender(wxTimerEvent& WXUNUSED(event)) { CC_STATUS status; if ((pDoc->IsConnected()) && (0 == pDoc->GetCoreClientStatus(status))) { UpdateActivityModeControls(status); - if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) { + if (pDoc->state.have_gpu()) { UpdateGPUModeControls(status); } UpdateNetworkModeControls(status); diff --git a/clientgui/AsyncRPC.cpp b/clientgui/AsyncRPC.cpp index 9d59906deb..8c5dcd8daa 100644 --- a/clientgui/AsyncRPC.cpp +++ b/clientgui/AsyncRPC.cpp @@ -1004,9 +1004,10 @@ void CMainDocument::HandleCompletedRPC() { exchangeBuf->global_prefs = arg1->global_prefs; exchangeBuf->version_info = arg1->version_info; exchangeBuf->executing_as_daemon = arg1->executing_as_daemon; + exchangeBuf->host_info = arg1->host_info; + exchangeBuf->time_stats = arg1->time_stats; exchangeBuf->have_nvidia = arg1->have_nvidia; exchangeBuf->have_ati = arg1->have_ati; - exchangeBuf->have_intel = arg1->have_intel; } break; case RPC_GET_RESULTS: diff --git a/clientgui/BOINCTaskBar.cpp b/clientgui/BOINCTaskBar.cpp index 99d589205b..5d63cc3a07 100644 --- a/clientgui/BOINCTaskBar.cpp +++ b/clientgui/BOINCTaskBar.cpp @@ -523,7 +523,7 @@ wxMenu *CTaskBarIcon::BuildContextMenu() { pMenu->AppendSeparator(); m_SnoozeMenuItem = pMenu->AppendCheckItem(ID_TB_SUSPEND, _("Snooze"), wxEmptyString); - if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) { + if (pDoc->state.have_gpu()) { m_SnoozeGPUMenuItem = pMenu->AppendCheckItem(ID_TB_SUSPEND_GPU, _("Snooze GPU"), wxEmptyString); } @@ -633,7 +633,7 @@ void CTaskBarIcon::AdjustMenuItems(wxMenu* pMenu) { } } - if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) { + if (pDoc->state.have_gpu()) { switch (status.gpu_mode) { case RUN_MODE_NEVER: switch (status.gpu_mode_perm) { @@ -660,11 +660,9 @@ void CTaskBarIcon::AdjustMenuItems(wxMenu* pMenu) { } break; } - if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) { - if (status.task_mode == RUN_MODE_NEVER) { - m_SnoozeGPUMenuItem->Check(false); - m_SnoozeGPUMenuItem->Enable(false); - } + if (status.task_mode == RUN_MODE_NEVER) { + m_SnoozeGPUMenuItem->Check(false); + m_SnoozeGPUMenuItem->Enable(false); } } } @@ -724,7 +722,7 @@ void CTaskBarIcon::UpdateTaskbarStatus() { } strMessage += wxT(".\n"); - if (!comp_suspended && (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel)) { + if (!comp_suspended && pDoc->state.have_gpu()) { switch(status.gpu_suspend_reason) { case 0: strMessage += _("GPU computing is enabled"); diff --git a/clientgui/DlgItemProperties.cpp b/clientgui/DlgItemProperties.cpp index b6822fe1e4..786af7a075 100644 --- a/clientgui/DlgItemProperties.cpp +++ b/clientgui/DlgItemProperties.cpp @@ -268,19 +268,19 @@ void CDlgItemProperties::renderInfos(PROJECT* project_in) { addSection(_("Scheduling")); addProperty(_("Scheduling priority"), wxString::Format(wxT("%0.2f"), project->sched_priority)); show_rsc(_("CPU"), project->rsc_desc_cpu); - if (pDoc->state.have_nvidia) { + if (pDoc->state.host_info.coprocs.have_nvidia()) { show_rsc( wxString(proc_type_name(PROC_TYPE_NVIDIA_GPU), wxConvUTF8), project->rsc_desc_nvidia ); } - if (pDoc->state.have_ati) { + if (pDoc->state.host_info.coprocs.have_ati()) { show_rsc( wxString(proc_type_name(PROC_TYPE_AMD_GPU), wxConvUTF8), project->rsc_desc_ati ); } - if (pDoc->state.have_intel) { + if (pDoc->state.host_info.coprocs.have_intel_gpu()) { show_rsc( wxString(proc_type_name(PROC_TYPE_INTEL_GPU), wxConvUTF8), project->rsc_desc_intel_gpu diff --git a/clientgui/ProjectInfoPage.cpp b/clientgui/ProjectInfoPage.cpp index 4325afeb07..083b9c331e 100644 --- a/clientgui/ProjectInfoPage.cpp +++ b/clientgui/ProjectInfoPage.cpp @@ -679,12 +679,12 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) { if (strProjectPlatform.Find(_T("[cuda")) != wxNOT_FOUND) { pProjectInfo->m_bProjectSupportsCUDA = true; - if (!pDoc->state.have_nvidia) continue; + if (!pDoc->state.host_info.coprocs.have_nvidia()) continue; } if (strProjectPlatform.Find(_T("[ati")) != wxNOT_FOUND) { pProjectInfo->m_bProjectSupportsCAL = true; - if (!pDoc->state.have_ati) continue; + if (!pDoc->state.host_info.coprocs.have_ati()) continue; } if (strClientPlatform == strRootProjectPlatform) { diff --git a/doc/links.php b/doc/links.php index 4d76adcb98..64b25acaa7 100644 --- a/doc/links.php +++ b/doc/links.php @@ -187,11 +187,11 @@ echo " language("Belgium (Dutch/French/English)", array( site("http://www.boinc.be", "www.boinc.be"), - site("http://icewolves.plid.be", "IceWolves"), -)); -language("Bulgarian", array( - site("http://www.boinc-bulgaria.net", "BOINC Bulgaria") + //site("http://icewolves.plid.be", "IceWolves"), )); +//language("Bulgarian", array( + //site("http://www.boinc-bulgaria.net", "BOINC Bulgaria") +//)); language("Catalan", array( site("http://www.boinc.cat", "BOINC.cat"), )); @@ -205,7 +205,7 @@ language("Czech", array( )); language("Danish", array( site("http://boincdenmark.dk", "BOINC@Denmark"), - site("http://www.boinc.dk", "www.boinc.dk"), + //site("http://www.boinc.dk", "www.boinc.dk"), site("http://www.setihome.dk", "www.setihome.dk") )); language("Dutch", array( @@ -225,8 +225,8 @@ language("English", array( site("http://www.unitedmacs.com/", "United Macs"), //site("http://sirans-boincnews.com/", "Siran's BOINC Projects News Site"), site("http://www.ukboincteam.org.uk/", "UK BOINC Team"), - site("http://symbion.madnezz.com/", "Symbion"), - site("http://scotlandsseti.blogspot.com/", "Megacruncher's Blog"), + //site("http://symbion.madnezz.com/", "Symbion"), + //site("http://scotlandsseti.blogspot.com/", "Megacruncher's Blog"), site("http://www.bc-team.org/", "BOINC Confederation"), //site("http://theclangers.net/", "The Clangers"), site("http://www.free-dc.org/", "Free-DC"), @@ -241,10 +241,10 @@ language("English", array( site("http://www.tswb.org", "Team Starfire World BOINC"), //site("http://www.geocities.com/boinc_volunteers/", "BOINC Volunteers") )); -language("Estonian", array( - site("http://boinc.tmac.pri.ee", "boinc.tmac.pri.ee"), +//language("Estonian", array( + //site("http://boinc.tmac.pri.ee", "boinc.tmac.pri.ee"), //site("http://setimehed.net/", "setimehed.net"), -)); +//)); language("Finnish", array( site( "http://www.universe-examiners.org/", "Universe Examiners"), @@ -253,37 +253,37 @@ language("Finnish", array( //), )); language("French", array( - site("http://boinc.starwars-holonet.com/", "Star Wars [FR]"), + //site("http://boinc.starwars-holonet.com/", "Star Wars [FR]"), //site("http://wwww.boinc-2tf.org", "2TF Asso"), - site("http://boincfrance.org", "BOINCFRANCE.ORG"), + //site("http://boincfrance.org", "BOINCFRANCE.ORG"), site("http://www.boinc-af.org", "L'Alliance Francophone"), )); language("German", array( site("http://www.crunchers-freiburg.de/", "crunchers@freiburg"), //site("http://www.boinc-gemeinschaft.de/", "BOINC Gemeinschaft"), - site("http://www.gridcommunity.de/index.php", "International Grid Community"), - site("http://www.swissteam.net/", "SwissTeam.net"), + //site("http://www.gridcommunity.de/index.php", "International Grid Community"), + //site("http://www.swissteam.net/", "SwissTeam.net"), site("http://www.unitedmacs.com/", "United Macs"), site("http://www.rechenkraft.net/", "Rechenkraft"), site("http://www.seti-leipzig.de/", "SETI-Leipzig"), site("http://www.dc-gemeinschaft.com/", "DC - Gemeinschaft"), site("http://boinccast.podhost.de/", "BOINCcast (Podcast)"), site("http://www.boinc-team.de/", "BOINC@Heidelberg"), - site("http://www.crunching-family.wins.info/", "Crunching Family"), + //site("http://www.crunching-family.wins.info/", "Crunching Family"), site("http://www.boinc.at/", "www.boinc.at"), site("http://www.boinc-halle-saale.de", "BOINC@Halle/Saale"), site("http://www.bc-team.org/", "BOINC Confederation"), - site("http://www.boincfun.tk/", "BOINCfun"), + //site("http://www.boincfun.tk/", "BOINCfun"), site("http://www.seti-germany.de", "SETI.Germany"), site("http://www.sar-hessen.org", "Team Science and Research Hessen"), site("http://www.boinc.de/", "www.boinc.de"), //site( "http://www.boinc-lubeca.de/", "BOINC - LUBECA (Lübeck, Germany)"), - site( "http://www.boinc-forum.de/", "www.boinc-forum.de"), + //site( "http://www.boinc-forum.de/", "www.boinc-forum.de"), //site( "http://www.emuleatboinc.de/board", "Official eMule @ BOINC Team Page") )); -language("Hungarian", array( - site("http://seti.hwsw.hu/", "HWSW SETI@home Team") -)); +//language("Hungarian", array( + //site("http://seti.hwsw.hu/", "HWSW SETI@home Team") +//)); language("Italian", array( site("http://www.calcolodistribuito.it/", "Calcolo Distribuito"), site("http://www.boincitaly.org/", "BOINC.Italy"), @@ -297,25 +297,25 @@ language("Japanese", array( )); language("Korean", array( site("http://cafe.naver.com/setikah", "SETIKAH@KOREA"), - site("http://boincatkorea.xo.st/", "BOINC@KOREA"), + //site("http://boincatkorea.xo.st/", "BOINC@KOREA"), )); language("Polish", array( //site("http://www.boinc-polska.org/", "BOINC-Polska.org"), //site("http://www.boinc.org.pl/", "Team boinc.pl"), - site("http://www.boinc.prv.pl", "BOINC@Kolobrzeg"), + //site("http://www.boinc.prv.pl", "BOINC@Kolobrzeg"), site("http://www.boincatpoland.org", "BOINC@Poland"), site("http://boinc.pl", "BOINC Polish National Team"), site("http://www.tomaszpawel.republika.pl/", "TomaszPawelTeam"), //site("http://www.gpuforce.oxyone.pl/", "GPU Force"), )); language("Portuguese", array( - site( "http://portugalathome.pt.vu/", "Portugal@home"), + //site( "http://portugalathome.pt.vu/", "Portugal@home"), site("http://www.setibr.org/", "SETIBR"), )); -language("Romanian", array( - site( "http://www.boinc.ro/", "SETI@home Romania") -)); +//language("Romanian", array( +// site( "http://www.boinc.ro/", "SETI@home Romania") +//)); language("Russian", array( site("http://vkontakte.ru/club11963359", "BOINC group on vkontakte.ru"), site("http://www.boinc.ru", "BOINC.ru"), @@ -329,19 +329,19 @@ language("Spanish", array( site("http://www.seti.cl/", "BOINC SETI Chile"), site("http://www.easyboinc.org/", "Computación Distribuida"), site("http://foro.noticias3d.com/vbulletin/showthread.php?t=192297", "Noticias3D"), - site("http://elmajo.blogspot.com", "Computación Distribuida"), - site("http://efren-canarias.blogcindario.com/", "El Pais De La Computacion"), - site("http://www.canalboinc.org/modules/news/", "Canal BOINC"), + //site("http://elmajo.blogspot.com", "Computación Distribuida"), + //site("http://efren-canarias.blogcindario.com/", "El Pais De La Computacion"), + //site("http://www.canalboinc.org/modules/news/", "Canal BOINC"), site("http://www.boinc-ecuador.com/", "BOINC - Ecuador"), site("http://www.hispaseti.org/", "HispaSeti"), - site("http://www.seti-argentina.com.ar", "BOINC Argentina"), - site("http://boinc.blogspot.com", "Boinc y Astronomia") + //site("http://www.seti-argentina.com.ar", "BOINC Argentina"), + //site("http://boinc.blogspot.com", "Boinc y Astronomia") //site("http://boincspain.shyper.com/", "BOINC España") )); -language("Turkish", array( - site("http://www.turksetiteam.org/", "www.turksetiteam.org"), - site("http://www.boinctr.com/", "www.boinctr.com") -)); +//language("Turkish", array( + //site("http://www.turksetiteam.org/", "www.turksetiteam.org"), + //site("http://www.boinctr.com/", "www.boinctr.com") +//)); language("Ukrainian", array( site("http://distributed.org.ua/", "Ukraine - Distributed Computing"), )); diff --git a/doc/projects.inc b/doc/projects.inc index aef9874cf3..f53451c1e7 100644 --- a/doc/projects.inc +++ b/doc/projects.inc @@ -282,14 +282,14 @@ $astro_phys_chem = array( tra("SETI (Search for Extraterrestrial Intelligence) is a scientific area whose goal is to detect intelligent life outside Earth. One approach, known as radio SETI, uses radio telescopes to listen for narrow-bandwidth radio signals from space. Such signals are not known to occur naturally, so a detection would provide evidence of extraterrestrial technology."), "seti_logo.png" ), - array( - "Quantum Monte Carlo at Home", - "http://qah.uni-muenster.de/", - tra("University of Muenster (Germany)"), - tra("Chemistry"), - tra("Study the structure and reactivity of molecules using Quantum Chemistry."), - "logo_oben.jpg" - ), +// array( +// "Quantum Monte Carlo at Home", +// "http://qah.uni-muenster.de/", +// tra("University of Muenster (Germany)"), +// tra("Chemistry"), +// tra("Study the structure and reactivity of molecules using Quantum Chemistry."), +// "logo_oben.jpg" +// ), array( "Spinhenge@home", "http://spin.fh-bielefeld.de/", diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h index 4e95e71f49..cccaf27902 100644 --- a/lib/gui_rpc_client.h +++ b/lib/gui_rpc_client.h @@ -389,7 +389,6 @@ struct CC_STATE { TIME_STATS time_stats; bool have_nvidia; // deprecated; include for compat (set by ) bool have_ati; // deprecated; include for compat - bool have_intel; CC_STATE(); ~CC_STATE(); @@ -405,6 +404,11 @@ struct CC_STATE { void print(); void clear(); int parse(XML_PARSER&); + inline bool have_gpu() { + return !host_info.coprocs.none() + || have_nvidia || have_ati // for old clients + ; + } }; struct PROJECTS { diff --git a/lib/gui_rpc_client_ops.cpp b/lib/gui_rpc_client_ops.cpp index 74a6a880d3..b6565a28c2 100644 --- a/lib/gui_rpc_client_ops.cpp +++ b/lib/gui_rpc_client_ops.cpp @@ -982,7 +982,6 @@ int CC_STATE::parse(XML_PARSER& xp) { } if (xp.parse_bool("have_cuda", have_nvidia)) continue; if (xp.parse_bool("have_ati", have_ati)) continue; - if (xp.parse_bool("have_intel", have_intel)) continue; } return 0; } @@ -1014,7 +1013,6 @@ void CC_STATE::clear() { host_info.clear_host_info(); have_nvidia = false; have_ati = false; - have_intel = false; } PROJECT* CC_STATE::lookup_project(const char* url) { diff --git a/lib/hostinfo.cpp b/lib/hostinfo.cpp index 384d44f255..874e693fc0 100644 --- a/lib/hostinfo.cpp +++ b/lib/hostinfo.cpp @@ -116,7 +116,7 @@ int HOST_INFO::parse(XML_PARSER& xp, bool benchmarks_only) { if (xp.parse_str("os_version", os_version, sizeof(os_version))) continue; if (xp.parse_str("virtualbox_version", virtualbox_version, sizeof(virtualbox_version))) continue; if (xp.match_tag("coprocs")) { - _coprocs.parse(xp); + this->coprocs.parse(xp); } } return ERR_XML_PARSE; @@ -198,7 +198,7 @@ int HOST_INFO::write( ); } if (include_coprocs) { - _coprocs.write_xml(out, false); + this->coprocs.write_xml(out, false); } out.printf( "\n" diff --git a/lib/hostinfo.h b/lib/hostinfo.h index 98f05322f1..ab811d9543 100644 --- a/lib/hostinfo.h +++ b/lib/hostinfo.h @@ -65,7 +65,7 @@ public: // char virtualbox_version[256]; - COPROCS _coprocs; + COPROCS coprocs; HOST_INFO(); int parse(XML_PARSER&, bool benchmarks_only = false);