rendered paste body/***************************************************************************
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 <klocale.h>
#include <qslider.h>
#include <qlayout.h>
#include <qlabel.h>
#include <qnamespace.h>
#include <qgroupbox.h>
#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 <config.h>
#endif
#include <kdialogbase.h>
#include <kconfig.h> //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
}