#include "devicewidget.h" #include "../model/audiodevice.h" #include #include #include #include DeviceWidget::DeviceWidget( AudioDevice *device, TQWidget *parent ) : TQWidget(parent), m_device(device) { TQVBoxLayout *layout = new TQVBoxLayout( this, 4, 2 ); m_label = new TQLabel( device->name(), this ); m_label->setAlignment( TQLabel::AlignHCenter ); m_slider = new TQSlider( 0, 100, 5, device->volume(), TQt::Vertical, this ); m_slider->setTickmarks( TQSlider::NoMarks ); m_muteButton = new TQToolButton( this ); m_muteButton->setToggleButton( true ); m_muteButton->setTextLabel( "M" ); m_muteButton->setOn( device->muted() ); layout->addWidget( m_label ); layout->addWidget( m_slider, 1 ); layout->addWidget( m_muteButton, 0, TQt::AlignHCenter ); // slider → device connect( m_slider, TQ_SIGNAL(valueChanged(int)), this, TQ_SLOT(onVolumeChanged(int)) ); connect( m_muteButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(onMuteToggled()) ); // device → widget connect( device, TQ_SIGNAL(volumeChanged(int)), this, TQ_SLOT(onDeviceVolume(int)) ); connect( device, TQ_SIGNAL(muteChanged(bool)), this, TQ_SLOT(onDeviceMute(bool)) ); connect( device, TQ_SIGNAL(nameChanged(const TQString&)), this, TQ_SLOT(onDeviceName(const TQString&)) ); } void DeviceWidget::onVolumeChanged( int v ) { m_device->setVolume( v ); } void DeviceWidget::onMuteToggled() { m_device->setMuted( !m_device->muted() ); } void DeviceWidget::onDeviceVolume( int v ) { // Block signal to avoid feedback loop back to device. m_slider->blockSignals( true ); m_slider->setValue( v ); m_slider->blockSignals( false ); } void DeviceWidget::onDeviceMute( bool m ) { m_muteButton->blockSignals( true ); m_muteButton->setOn( m ); m_muteButton->blockSignals( false ); } void DeviceWidget::onDeviceName( const TQString &name ) { m_label->setText( name ); } #include "devicewidget.moc"