diff options
Diffstat (limited to 'plugins/oss-sound/oss-sound-configuration.cpp')
-rw-r--r-- | plugins/oss-sound/oss-sound-configuration.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/plugins/oss-sound/oss-sound-configuration.cpp b/plugins/oss-sound/oss-sound-configuration.cpp new file mode 100644 index 0000000..2a0a783 --- /dev/null +++ b/plugins/oss-sound/oss-sound-configuration.cpp @@ -0,0 +1,86 @@ +/*************************************************************************** + oss-sound-configuration.cpp - description + ------------------- + begin : Thu Sep 30 2004 + copyright : (C) 2004 by Martin Witte + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#include <tqcheckbox.h> + +#include <kurlrequester.h> +#include <knuminput.h> + +#include "oss-sound-configuration.h" +#include "oss-sound.h" + +OSSSoundConfiguration::OSSSoundConfiguration (TQWidget *parent, OSSSoundDevice *dev) + : OSSSoundConfigurationUI(parent), + m_SoundDevice (dev), + m_dirty(true), + m_ignore_gui_updates(false) +{ + connect(editDSPDevice, TQT_SIGNAL(textChanged(const TQString &)), this, TQT_SLOT(slotSetDirty())); + connect(editMixerDevice, TQT_SIGNAL(textChanged(const TQString &)), this, TQT_SLOT(slotSetDirty())); + connect(editBufferSize, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotSetDirty())); + connect(chkDisablePlayback, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotSetDirty())); + connect(chkDisableCapture, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotSetDirty())); + slotCancel(); +} + + +OSSSoundConfiguration::~OSSSoundConfiguration () +{ +} + + +void OSSSoundConfiguration::slotOK() +{ + if (m_SoundDevice && m_dirty) { + m_SoundDevice->setBufferSize ( editBufferSize ->value() * 1024); + m_SoundDevice->enablePlayback (!chkDisablePlayback->isChecked()); + m_SoundDevice->enableCapture (!chkDisableCapture ->isChecked()); + m_SoundDevice->setDSPDeviceName ( editDSPDevice ->url()); + m_SoundDevice->setMixerDeviceName( editMixerDevice ->url()); + m_dirty = false; + } +} + + +void OSSSoundConfiguration::slotCancel() +{ + if (m_dirty) { + m_ignore_gui_updates = true; + editDSPDevice ->setURL (m_SoundDevice ? m_SoundDevice->getDSPDeviceName() : TQString()); + editMixerDevice ->setURL (m_SoundDevice ? m_SoundDevice->getMixerDeviceName() : TQString()); + editBufferSize ->setValue (m_SoundDevice ? m_SoundDevice->getBufferSize()/1024 : 4); + chkDisablePlayback->setChecked(m_SoundDevice ? !m_SoundDevice->isPlaybackEnabled() : false); + chkDisableCapture ->setChecked(m_SoundDevice ? !m_SoundDevice->isCaptureEnabled() : false); + m_ignore_gui_updates = false; + m_dirty = false; + } +} + +void OSSSoundConfiguration::slotUpdateConfig() +{ + slotSetDirty(); + slotCancel(); +} + +void OSSSoundConfiguration::slotSetDirty() +{ + if (!m_ignore_gui_updates) { + m_dirty = true; + } +} + +#include "oss-sound-configuration.moc" |