/* Copyright (C) 2000-2001 Stefan Westerfeld 2003 Arnold Krille This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include "statusview.h" using namespace std; using namespace Arts; ArtsStatusView::ArtsStatusView(Arts::SoundServer a_server, TQWidget* tqparent, const char* name ) : Template_ArtsView( tqparent,name ) , server(a_server) { this->setCaption( i18n( "aRts tqStatus" ) ); TQBoxLayout *l= new TQVBoxLayout(this); //l->setAutoAdd(TRUE); RealtimetqStatus rs= server.realtimetqStatus(); l->addWidget(new TQLabel(rs==rtRealtime? i18n("Artsd is running with realtime scheduling."): rs==rtNoSupport? i18n("Your system does not support realtime scheduling."): rs==rtNoWrapper? i18n("Artsd is not configured for realtime scheduling\n " "or was manually started without artswrapper."): i18n("Artsd should run with realtime scheduling,\n but it " "does not (Is artswrapper suid root?)."), this, "realtimeLabel")); l->addSpacing(10); suspendLabel= new TQLabel(i18n("Determining suspend status..."), this, "suspendLabel"); l->addWidget(suspendLabel); l->addSpacing(6); l->setMargin(6); suspendButton= new TQPushButton(this, "suspendButton"); suspendButton->setText(i18n("&Suspend Now")); l->addWidget(suspendButton); connect(suspendButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(suspendButtonClicked())); artsPollStatusTimer= new TQTimer(this); connect(artsPollStatusTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(updatetqStatus())); artsPollStatusTimer->start(1000); //l->activate(); show(); } void ArtsStatusView::suspendButtonClicked() { (void)server.suspend(); // TODO: error msg if suspend not possible? } void ArtsStatusView::updatetqStatus() { long seconds= server.secondsUntilSuspend(); if (seconds<0) suspendLabel->setText(i18n("The aRts sound daemon will not autosuspend right\n" "now since there are active modules.")); else if (seconds==0) suspendLabel->setText(i18n("The aRts sound daemon is suspended. Legacy\n " "applications can use the sound card now.")); else suspendLabel->setText(i18n("Autosuspend will happen in %1 seconds."). arg(seconds)); suspendButton->setEnabled(seconds>0); } #include "statusview.moc"