aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/options/OptionsWidget_sound.cpp
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
committerGravatar Szymon Tomasz Stefanek2011-01-01 20:19:56 +0000
commitc601b5a27f74b16158adafe429faefbe573e64a2 (patch)
treea3cde3206a45628f8ac86e8dfbdab70b20c3a831 /src/modules/options/OptionsWidget_sound.cpp
parentprobable compilation fix for rijndaled/crypto++ (diff)
downloadKVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.gz
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.tar.bz2
KVIrc-c601b5a27f74b16158adafe429faefbe573e64a2.zip
The big rename for modules. Still some details remaining.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/options/OptionsWidget_sound.cpp')
-rw-r--r--src/modules/options/OptionsWidget_sound.cpp356
1 files changed, 356 insertions, 0 deletions
diff --git a/src/modules/options/OptionsWidget_sound.cpp b/src/modules/options/OptionsWidget_sound.cpp
new file mode 100644
index 000000000..c617a8ca4
--- /dev/null
+++ b/src/modules/options/OptionsWidget_sound.cpp
@@ -0,0 +1,356 @@
+//=============================================================================
+//
+// File : OptionsWidget_sound.cpp
+// Creation date : Fri Sep 6 02:18:23 2002 GMT by Szymon Stefanek
+//
+// This file is part of the KVsound sound client distribution
+// Copyright (C) 2002-2010 Szymon Stefanek (pragma at kvsound dot net)
+//
+// 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 opinion) 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 "OptionsWidget_sound.h"
+
+#include "kvi_settings.h"
+#include "KviLocale.h"
+#include "KviOptions.h"
+#include "KviModuleManager.h"
+#include "KviPointerList.h"
+#include "KviCString.h"
+#include "KviTalHBox.h"
+#include "KviTalToolTip.h"
+#include "KviApplication.h"
+
+#include <QLabel>
+#include <QPushButton>
+
+
+// FIXME: This module doesn't ???? properly when auto-detection is performed!
+
+
+
+OptionsWidget_sound::OptionsWidget_sound(QWidget * pParent)
+: KviOptionsWidget(pParent)
+{
+}
+
+OptionsWidget_sound::~OptionsWidget_sound()
+{
+}
+
+
+OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent)
+: KviOptionsWidget(parent)
+{
+ m_bFirstShow = true;
+
+ setObjectName("sound_system_options_widget");
+ createLayout();
+
+ KviTalGroupBox * g = addGroupBox(0,0,0,0,Qt::Horizontal,__tr2qs_ctx("Sound System","options"),true);
+
+ KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select the sound system to be used with KVIrc.","options"));
+
+ KviTalHBox * h = new KviTalHBox(g);
+
+ m_pSoundSystemBox = new QComboBox(h);
+
+ m_pSoundAutoDetectButton = new QPushButton(__tr2qs_ctx("Auto-detect","options"),h);
+ connect(m_pSoundAutoDetectButton,SIGNAL(clicked()),this,SLOT(soundAutoDetect()));
+
+ m_pSoundTestButton = new QPushButton(__tr2qs_ctx("Test","options"),h);
+ connect(m_pSoundTestButton,SIGNAL(clicked()),this,SLOT(soundTest()));
+
+ g = addGroupBox(0,1,0,1,Qt::Horizontal,__tr2qs_ctx("Media Player","options"),true);
+
+ KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select the preferred media player to be used with " \
+ "the mediaplayer.* module commands and functions.","options"));
+
+ h = new KviTalHBox(g);
+
+ m_pMediaPlayerBox = new QComboBox(h);
+
+ m_pMediaAutoDetectButton = new QPushButton(__tr2qs_ctx("Auto-detect","options"),h);
+ connect(m_pMediaAutoDetectButton,SIGNAL(clicked()),this,SLOT(mediaAutoDetect()));
+
+ m_pMediaTestButton = new QPushButton(__tr2qs_ctx("Test","options"),h);
+ connect(m_pMediaTestButton,SIGNAL(clicked()),this,SLOT(mediaTest()));
+
+ m_pMediaTestButton->setEnabled(false);
+
+ g = addGroupBox(0,2,0,2,Qt::Horizontal,__tr2qs_ctx("ID3 tags' encoding","options"),true);
+
+ KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select encoding of mp3 tags.","options"));
+
+ h = new KviTalHBox(g);
+
+ m_pTagsEncodingCombo = new QComboBox(h);
+ m_pTagsEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options"));
+
+ int i = 0;
+ int iMatch = 0;
+
+ KviLocale::EncodingDescription * d = KviLocale::encodingDescription(i);
+ while(d->szName)
+ {
+ if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding)))iMatch = i + 1;
+ m_pTagsEncodingCombo->insertItem(m_pTagsEncodingCombo->count(),d->szName);
+ i++;
+ d = KviLocale::encodingDescription(i);
+ }
+ m_pTagsEncodingCombo->setCurrentIndex(iMatch);
+
+#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ g = addGroupBox(0,3,0,3,Qt::Horizontal,__tr2qs_ctx("Winamp messages ecoding","options"),true);
+
+ KviTalToolTip::add(g,__tr2qs_ctx("This allows you to select encoding of winamp messages.","options"));
+
+ h = new KviTalHBox(g);
+
+ m_pWinampEncodingCombo = new QComboBox(h);
+
+ m_pWinampEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options"));
+ i = 0;
+ iMatch = 0;
+
+ d = KviLocale::encodingDescription(i);
+ while(d->szName)
+ {
+ if(KviQString::equalCI(d->szName,KVI_OPTION_STRING(KviOption_stringWinampTextEncoding)))iMatch = i + 1;
+ m_pWinampEncodingCombo->insertItem(m_pWinampEncodingCombo->count(),d->szName);
+ i++;
+ d = KviLocale::encodingDescription(i);
+ }
+ m_pWinampEncodingCombo->setCurrentIndex(iMatch);
+
+ addRowSpacer(0,4,0,4);
+#else
+ addRowSpacer(0,3,0,3);
+#endif
+}
+
+
+OptionsWidget_soundGeneral::~OptionsWidget_soundGeneral()
+{
+}
+
+void OptionsWidget_soundGeneral::showEvent(QShowEvent *)
+{
+ if(!m_bFirstShow)
+ return;
+ // We fill these boxes only before the first show since the soundFillBox()
+ // is likely to trigger sound system-detection which may take time...
+
+ g_pApp->setOverrideCursor(Qt::WaitCursor);
+
+ soundFillBox();
+ mediaFillBox();
+
+ g_pApp->restoreOverrideCursor();
+
+ m_bFirstShow = false;
+}
+
+void OptionsWidget_soundGeneral::soundTest()
+{
+ QString szSavedSoundSystem = KVI_OPTION_STRING(KviOption_stringSoundSystem);
+ KVI_OPTION_STRING(KviOption_stringSoundSystem) = m_pSoundSystemBox->currentText();
+
+ KviModule * m = g_pModuleManager->getModule("snd");
+
+ if(!m)
+ return; // doh
+
+ QString szFileName;
+
+ if(!g_pApp->findAudioFile(szFileName,QString::fromUtf8("jingle.wav")))
+ {
+ qDebug("Can't find the jingle.wav file: was it shipped with your kvirc installation?");
+ return;
+ }
+
+ m->ctrl("play",&szFileName);
+
+ KVI_OPTION_STRING(KviOption_stringSoundSystem) = szSavedSoundSystem;
+}
+
+void OptionsWidget_soundGeneral::mediaTest()
+{
+}
+
+void OptionsWidget_soundGeneral::soundAutoDetect()
+{
+ KviModule * m = g_pModuleManager->getModule("snd");
+ if(!m)
+ return;
+
+ g_pApp->setOverrideCursor(Qt::WaitCursor);
+
+ m->ctrl("detectSoundSystem",0);
+ soundFillBox();
+
+ g_pApp->restoreOverrideCursor();
+}
+
+void OptionsWidget_soundGeneral::mediaAutoDetect()
+{
+ KviModule * m = g_pModuleManager->getModule("mediaplayer");
+ if(!m)
+ return;
+
+ g_pApp->setOverrideCursor(Qt::WaitCursor);
+
+ m->ctrl("detectMediaPlayer",0);
+ mediaFillBox();
+
+ g_pApp->restoreOverrideCursor();
+}
+
+void OptionsWidget_soundGeneral::soundFillBox()
+{
+ QStringList l;
+ QStringList::Iterator it;
+ int cnt;
+ int i;
+ KviModule * m = g_pModuleManager->getModule("snd");
+
+ if(!m)
+ goto disable;
+
+ if(!m->ctrl("getAvailableSoundSystems",&l))
+ goto disable;
+
+ m_pSoundSystemBox->clear();
+ for ( it = l.begin(); it != l.end(); ++it )
+ {
+ m_pSoundSystemBox->addItem(*it);
+ }
+
+ cnt = m_pSoundSystemBox->count();
+
+ for(i=0;i<cnt;i++)
+ {
+ QString t = m_pSoundSystemBox->itemText(i);
+ if(KviQString::equalCI(t,KVI_OPTION_STRING(KviOption_stringSoundSystem)))
+ {
+ m_pSoundSystemBox->setCurrentIndex(i);
+ break;
+ }
+ }
+
+ return;
+disable:
+ m_pSoundSystemBox->clear();
+ m_pSoundSystemBox->setEnabled(false);
+ m_pSoundTestButton->setEnabled(false);
+ m_pSoundAutoDetectButton->setEnabled(false);
+}
+
+void OptionsWidget_soundGeneral::mediaFillBox()
+{
+ QStringList l;
+ QStringList::Iterator it;
+ int cnt;
+ int i;
+ KviModule * m = g_pModuleManager->getModule("mediaplayer");
+
+ if(!m)goto disable;
+ if(!m->ctrl("getAvailableMediaPlayers",&l))goto disable;
+ m_pMediaPlayerBox->clear();
+ for ( it = l.begin(); it != l.end(); ++it )
+ {
+ m_pMediaPlayerBox->addItem(*it);
+ }
+ cnt = m_pMediaPlayerBox->count();
+
+ for(i=0;i<cnt;i++)
+ {
+ QString t = m_pMediaPlayerBox->itemText(i);
+ if(KviQString::equalCI(t,KVI_OPTION_STRING(KviOption_stringPreferredMediaPlayer)))
+ {
+ m_pMediaPlayerBox->setCurrentIndex(i);
+ break;
+ }
+ }
+
+ return;
+disable:
+ m_pMediaPlayerBox->clear();
+ m_pMediaPlayerBox->setEnabled(false);
+ m_pMediaTestButton->setEnabled(false);
+ m_pMediaAutoDetectButton->setEnabled(false);
+}
+
+void OptionsWidget_soundGeneral::commit()
+{
+ // avoid to commit if we've never been shown (and initialized)
+ if(m_bFirstShow)
+ return;
+
+ KviOptionsWidget::commit();
+ KVI_OPTION_STRING(KviOption_stringSoundSystem) = m_pSoundSystemBox->currentText();
+ KVI_OPTION_STRING(KviOption_stringPreferredMediaPlayer) = m_pMediaPlayerBox->currentText();
+
+ int idx = m_pTagsEncodingCombo->currentIndex();
+ if(idx <= 0)
+ {
+ // guess from locale
+ KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding) = "";
+ } else {
+ KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding) = m_pTagsEncodingCombo->itemText(idx);
+ }
+
+
+#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
+ idx = m_pWinampEncodingCombo->currentIndex();
+ if(idx <= 0)
+ {
+ // guess from locale
+ KVI_OPTION_STRING(KviOption_stringWinampTextEncoding) = "";
+ } else {
+ KVI_OPTION_STRING(KviOption_stringWinampTextEncoding) = m_pWinampEncodingCombo->itemText(idx);
+ }
+#endif
+}
+
+OptionsWidget_sounds::OptionsWidget_sounds(QWidget * parent)
+: KviOptionsWidget(parent)
+{
+ setObjectName("sound_options_widget");
+ createLayout();
+ addLabel(0,0,0,0,__tr2qs_ctx("New Query opened","options"));
+ addSoundSelector(1,0,1,0,"",KviOption_stringOnNewQueryOpenedSound);
+
+ addLabel(0,1,0,1,__tr2qs_ctx("New message in inactive query","options"));
+ addSoundSelector(1,1,1,1,"",KviOption_stringOnQueryMessageSound);
+
+ addLabel(0,2,0,2,__tr2qs_ctx("Highlighted message in inactive window","options"));
+ addSoundSelector(1,2,1,2,"",KviOption_stringOnHighlightedMessageSound);
+
+ addLabel(0,3,0,3,__tr2qs_ctx("Me have been kicked","options"));
+ addSoundSelector(1,3,1,3,"",KviOption_stringOnMeKickedSound);
+
+ addRowSpacer(0,4,1,4);
+
+}
+
+OptionsWidget_sounds::~OptionsWidget_sounds()
+{
+}
+
+#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
+#include "m_OptionsWidget_sound.moc"
+#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES