/*************************************************************************** videosettings.cpp ------------------- begin : Mit Mai 7 2003 revision : $Revision: 1.5 $ last modified : $Date: 2005/04/17 10:27:48 $ by $Author: juergenk $ copyright : (C) 2003-2005 by Jürgen Kofler email : kaffeine@gmx.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 option) any later version. * * * ***************************************************************************/ #include #include #include #include #include #include #include "videosettings.h" #include "videosettings.moc" VideoSettings::VideoSettings(int hue, int sat, int contrast, int bright, int avOffset, int spuOffset, QWidget *parent, const char *name) : KDialogBase(KDialogBase::Plain, i18n("Video Settings"), KDialogBase::Default | KDialogBase::Close, KDialogBase::Close, parent, name, false) { reparent(parent, pos(), false); setInitialSize(QSize(450,250), true); QWidget* page = plainPage(); QVBoxLayout* b = new QVBoxLayout(page); QGroupBox *videoGroup = new QGroupBox(QString::null, page); b->addWidget(videoGroup); QGridLayout* videoGrid = new QGridLayout(videoGroup, 6, 2); videoGrid->setSpacing(5); videoGrid->setMargin(10); QLabel* hueText = new QLabel(i18n("Hue"), videoGroup); hueText->setAlignment(AlignRight); m_hueSlider = new QSlider(Qt::Horizontal, videoGroup); m_hueSlider->setRange(0, 65535); m_hueSlider->setSteps(10, 1000); m_hueSlider->setValue(hue); connect(m_hueSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewHue(int))); videoGrid->addWidget(hueText, 0, 0); videoGrid->addWidget(m_hueSlider, 0, 1); QLabel* satText = new QLabel(i18n("Saturation"), videoGroup); satText->setAlignment(AlignRight); m_satSlider = new QSlider(Qt::Horizontal, videoGroup); m_satSlider->setRange(0, 65535); m_satSlider->setSteps(10, 1000); m_satSlider->setValue(sat); connect(m_satSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewSaturation(int))); videoGrid->addWidget(satText, 1, 0); videoGrid->addWidget(m_satSlider, 1, 1); QLabel* contrastText = new QLabel(i18n("Contrast"), videoGroup); contrastText->setAlignment(AlignRight); m_contrastSlider = new QSlider(Qt::Horizontal, videoGroup); m_contrastSlider->setRange(0, 65535); m_contrastSlider->setSteps(10, 1000); m_contrastSlider->setValue(contrast); connect(m_contrastSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewContrast(int))); videoGrid->addWidget(contrastText, 2, 0); videoGrid->addWidget(m_contrastSlider, 2, 1); QLabel* brightText = new QLabel(i18n("Brightness"), videoGroup); brightText->setAlignment(AlignRight); m_brightSlider = new QSlider(Qt::Horizontal, videoGroup); m_brightSlider->setRange(0, 65535); m_brightSlider->setSteps(10, 1000); m_brightSlider->setValue(bright); connect(m_brightSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewBrightness(int))); videoGrid->addWidget(brightText, 3, 0); videoGrid->addWidget(m_brightSlider, 3, 1); QLabel* avOffsetText = new QLabel(i18n("Audio/Video Offset"), videoGroup); avOffsetText->setAlignment(AlignRight); m_avOffsetSlider = new QSlider(Qt::Horizontal, videoGroup); m_avOffsetSlider->setRange(-90000, 90000); // +/- 1 sec m_avOffsetSlider->setSteps(100, 10000); m_avOffsetSlider->setValue(avOffset); connect(m_avOffsetSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewAVOffset(int))); videoGrid->addWidget(avOffsetText, 4, 0); videoGrid->addWidget(m_avOffsetSlider, 4, 1); QLabel* spuOffsetText = new QLabel(i18n("Subtitle Offset"), videoGroup); spuOffsetText->setAlignment(AlignRight); m_spuOffsetSlider = new QSlider(Qt::Horizontal, videoGroup); m_spuOffsetSlider->setRange(-90000, 90000); // +/- 1 sec m_spuOffsetSlider->setSteps(100, 10000); m_spuOffsetSlider->setValue(spuOffset); connect(m_spuOffsetSlider, SIGNAL(valueChanged(int)), this, SIGNAL(signalNewSpuOffset(int))); videoGrid->addWidget(spuOffsetText, 5, 0); videoGrid->addWidget(m_spuOffsetSlider, 5, 1); connect(this, SIGNAL(defaultClicked()), this, SLOT(slotSetDefaultValues())); } VideoSettings::~VideoSettings() { } void VideoSettings::slotSetDefaultValues() { m_hueSlider->setValue(32768); m_satSlider->setValue(32768); m_contrastSlider->setValue(32768); m_brightSlider->setValue(32768); m_avOffsetSlider->setValue(0); m_spuOffsetSlider->setValue(0); } void VideoSettings::SaveValues(KConfig* config) /new { config->setGroup( "Video Settings" ); config->writeEntry( "Hue", m_hueSlider->value() ); config->writeEntry( "Saturation", m_satSlider->value() ); config->writeEntry( "Contrast", m_contrastSlider->value() ); config->writeEntry( "Brigth", m_brightSlider->value() ); config->writeEntry( "AVOffset", m_avOffsetSlider->value() ); config->writeEntry( "SPUOffset", m_spuOffsetSlider->value() ); } void VideoSettings::ReadValues(KConfig* config) //new { config->setGroup( "Video Settings" ); m_hueSlider->setValue(config->readNumEntry( "Hue", 32768)); m_hueSlider->setValue(config->readNumEntry( "Saturation", 32768)); m_hueSlider->setValue(config->readNumEntry( "Contrast", 32768)); m_hueSlider->setValue(config->readNumEntry( "Brigth", 32768)); m_hueSlider->setValue(config->readNumEntry( "AVOffset", 0)); m_hueSlider->setValue(config->readNumEntry( "SPUOffset", 0)); } ********************************************************************************************** /*************************************************************************** videosettings.h ------------------- begin : Mit Mai 7 2003 revision : $Revision: 1.2 $ last modified : $Date: 2005/02/02 10:08:28 $ by $Author: juergenk $ copyright : (C) 2003-2005 by Jürgen Kofler email : kaffeine@gmx.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 option) any later version. * * * ***************************************************************************/ #ifndef VIDEOSETTINGS_H #define VIDEOSETTINGS_H #ifdef HAVE_CONFIG_H #include #endif #include #include //new class QSlider; class VideoSettings : public KDialogBase { Q_OBJECT public: VideoSettings(int hue, int sat, int contrast, int bright, int avOffset, int spuOffset, QWidget *parent=0, const char *name=0); ~VideoSettings(); void ReadValues(KConfig* config); // new void SaveValues(KConfig* config); // new signals: void signalNewHue(int); void signalNewSaturation(int); void signalNewContrast(int); void signalNewBrightness(int); void signalNewAVOffset(int); void signalNewSpuOffset(int); private slots: void slotSetDefaultValues(); private: QSlider* m_hueSlider; QSlider* m_satSlider; QSlider* m_contrastSlider; QSlider* m_brightSlider; QSlider* m_avOffsetSlider; QSlider* m_spuOffsetSlider; }; #endif ************************************************ xine_part.cpp void XinePart::loadConfig() { kdDebug() << "XinePart: load config" << endl; KConfig* config = instance()->config(); config->setGroup("General Options"); if (m_xine->SoftwareMixing()) { int vol = config->readNumEntry("Volume", 70); slotSetVolume(vol); } else slotSyncVolume(); m_timerDirection = config->readNumEntry("Timer Direction", FORWARD_TIMER); m_isOsdTimer = config->readBoolEntry("Osd Timer", false); config->setGroup("Visualization"); QString visual = config->readEntry("Visual Plugin", "goom"); m_audioVisual->setCurrentItem(m_audioVisual->items().findIndex(visual)); m_xine->slotSetVisualPlugin(visual); config->setGroup("Deinterlace"); m_lastDeinterlaceQuality = config->readNumEntry("Quality Level", 4); m_lastDeinterlacerConfig = config->readEntry("Config String", DEFAULT_TVTIME_CONFIG); DeinterlacerConfigDialog* deinterlacerConfigDialog = new DeinterlacerConfigDialog(); m_xine->createDeinterlacePlugin(m_lastDeinterlacerConfig, deinterlacerConfigDialog->getMainWidget()); m_deinterlacerConfigWidget = (QWidget*)deinterlacerConfigDialog; bool deinterlaceEnabled = config->readBoolEntry("Enabled", true); if (deinterlaceEnabled) { m_deinterlaceEnabled->setChecked(deinterlaceEnabled); m_xine->slotToggleDeinterlace(); } config->setGroup("Broadcasting Options"); m_broadcastPort = config->readNumEntry("Port", 8080); m_broadcastAddress = config->readEntry("Master Address", "localhost"); m_equalizer->ReadValues(config); m_pictureSettings->ReadValues(config); //new } void XinePart::saveConfig() { if (!m_audioVisual->items().count()) // no config loaded return; kdDebug() << "XinePart: save config" << endl; KConfig* config = instance()->config(); config->setGroup("General Options"); config->writeEntry("Volume", m_volume->value()); config->writeEntry("Timer Direction", m_timerDirection); config->writeEntry("Osd Timer", m_isOsdTimer); config->setGroup("Visualization"); config->writeEntry("Visual Plugin", m_audioVisual->currentText()); config->setGroup("Deinterlace"); config->writeEntry("Quality Level", m_lastDeinterlaceQuality); config->writeEntry("Config String", m_lastDeinterlacerConfig); config->writeEntry("Enabled", m_deinterlaceEnabled->isChecked()); config->setGroup("Broadcasting Options"); config->writeEntry("Port", m_broadcastPort); config->writeEntry("Master Address", m_broadcastAddress); m_equalizer->SaveValues(config); m_pictureSettings->SaveValues(config); //new }