You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmplayer/src/pref.h

332 lines
8.2 KiB

/**
* Copyright (C) 2003 Joonas Koivunen <rzei@mbnet.fi>
* Copyright (C) 2003 Koos Vriezen <koos.vriezen@xs4all.nl>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef _KMPlayerPREF_H_
#define _KMPlayerPREF_H_
#include "kmplayer_def.h"
#include <kdialogbase.h>
#include <tqframe.h>
#include <tqmap.h>
class TQTabWidget;
class TQTable;
class TQGroupBox;
class TQCheckBox;
class TQComboBox;
class TQLineEdit;
class TQRadioButton;
class TQSlider;
class TQSpinBox;
class TQColor;
class TQButtonGroup;
class KHistoryCombo;
class KComboBox;
class KURLRequester;
class KColorButton;
namespace KMPlayer {
class PrefGeneralPageGeneral; // general, general
class PrefSourcePageURL; // source, url
class PrefRecordPage; // recording
class RecorderPage; // base recorder
class PrefMEncoderPage; // mencoder
class PrefMPlayerDumpstreamPage; // mplayer -dumpstream
class PrefFFMpegPage; // ffmpeg
class PrefXinePage; // xine url:record
class PrefGeneralPageLooks; // general, looks
class PrefGeneralPageOutput; // general, output
class PrefOPPageGeneral; // OP = outputplugins, general
class PrefOPPagePostProc; // outputplugins, postproc
class PartBase;
class Source;
class Settings;
class PreferencesPage;
class OutputDriver;
class ColorSetting;
class FontSetting;
class KMPLAYER_NO_EXPORT Preferences : public KDialogBase
{
Q_OBJECT
public:
Preferences(PartBase *, Settings *);
~Preferences();
PrefGeneralPageGeneral *m_GeneralPageGeneral;
PrefSourcePageURL *m_SourcePageURL;
PrefRecordPage *m_RecordPage;
PrefMEncoderPage *m_MEncoderPage;
PrefMPlayerDumpstreamPage *m_MPlayerDumpstreamPage;
#ifdef HAVE_XINE
PrefXinePage *m_XinePage;
#endif
PrefFFMpegPage *m_FFMpegPage;
PrefGeneralPageLooks *m_GeneralPageLooks;
PrefGeneralPageOutput *m_GeneralPageOutput;
PrefOPPageGeneral *m_OPPageGeneral;
PrefOPPagePostProc *m_OPPagePostproc;
void setDefaults();
void setPage (const char *);
void addPrefPage (PreferencesPage *);
void removePrefPage (PreferencesPage *);
RecorderPage * recorders;
TQMap<TQString, TQTabWidget *> entries;
public slots:
void confirmDefaults();
};
class KMPLAYER_NO_EXPORT PrefGeneralPageGeneral : public TQFrame
{
Q_OBJECT
public:
PrefGeneralPageGeneral(TQWidget *parent, Settings *);
~PrefGeneralPageGeneral() {}
TQCheckBox *keepSizeRatio;
TQCheckBox * autoResize;
TQButtonGroup *sizesChoice;
TQCheckBox *dockSysTray;
TQCheckBox *loop;
TQCheckBox *showConfigButton;
TQCheckBox *showPlaylistButton;
TQCheckBox *showRecordButton;
TQCheckBox *showBroadcastButton;
TQCheckBox *framedrop;
TQCheckBox *adjustvolume;
TQCheckBox *adjustcolors;
TQSpinBox *seekTime;
};
class KMPLAYER_NO_EXPORT PrefGeneralPageLooks : public TQFrame {
Q_OBJECT
public:
PrefGeneralPageLooks (TQWidget *parent, Settings *);
~PrefGeneralPageLooks () {}
TQComboBox *colorscombo;
KColorButton *colorbutton;
TQComboBox *fontscombo;
TQPushButton *fontbutton;
public slots:
void colorItemChanged (int);
void colorCanged (const TQColor &);
void fontItemChanged (int);
void fontClicked ();
private:
ColorSetting * colors;
FontSetting * fonts;
};
class KMPLAYER_NO_EXPORT PrefSourcePageURL : public TQFrame
{
Q_OBJECT
public:
PrefSourcePageURL (TQWidget *parent);
~PrefSourcePageURL () {}
KURLRequester * url;
//KHistoryCombo * url;
KComboBox * urllist;
KURLRequester * sub_url;
KComboBox * sub_urllist;
TQListBox * backend;
TQCheckBox * allowhref;
TQLineEdit * prefBitRate;
TQLineEdit * maxBitRate;
bool changed;
private slots:
void slotBrowse ();
void slotTextChanged (const TQString &);
};
class KMPLAYER_NO_EXPORT PrefRecordPage : public TQFrame
{
Q_OBJECT
public:
PrefRecordPage (TQWidget *parent, PartBase *, RecorderPage *, int len);
~PrefRecordPage () {}
KURLRequester * url;
TQButtonGroup * recorder;
TQButtonGroup * replay;
TQLineEdit * replaytime;
TQLabel * source;
public slots:
void replayClicked (int id);
void recorderClicked (int id);
private slots:
void slotRecord ();
void playingStopped ();
void sourceChanged (KMPlayer::Source *, KMPlayer::Source *);
void recordingStarted ();
void recordingFinished ();
private:
PartBase * m_player;
RecorderPage * m_recorders;
TQPushButton * recordButton;
int m_recorders_length;
};
class KMPLAYER_NO_EXPORT RecorderPage : public TQFrame
{
Q_OBJECT
public:
RecorderPage (TQWidget *parent, PartBase *);
virtual ~RecorderPage () {};
virtual void record ();
virtual TQString name () = 0;
virtual const char * recorderName () = 0;
RecorderPage * next;
protected:
PartBase * m_player;
};
class KMPLAYER_NO_EXPORT PrefMEncoderPage : public RecorderPage
{
Q_OBJECT
public:
PrefMEncoderPage (TQWidget *parent, PartBase *);
~PrefMEncoderPage () {}
void record ();
TQString name ();
const char * recorderName () { return "mencoder"; }
TQLineEdit * arguments;
TQButtonGroup * format;
public slots:
void formatClicked (int id);
private:
};
class KMPLAYER_NO_EXPORT PrefMPlayerDumpstreamPage : public RecorderPage {
public:
PrefMPlayerDumpstreamPage (TQWidget *parent, PartBase *);
~PrefMPlayerDumpstreamPage () {}
TQString name ();
const char * recorderName () { return "mplayerdumpstream"; }
};
#ifdef HAVE_XINE
class KMPLAYER_NO_EXPORT PrefXinePage : public RecorderPage {
public:
PrefXinePage (TQWidget *parent, PartBase *);
~PrefXinePage () {}
TQString name ();
const char * recorderName () { return "xine"; }
};
#endif
class KMPLAYER_NO_EXPORT PrefFFMpegPage : public RecorderPage
{
Q_OBJECT
public:
PrefFFMpegPage (TQWidget *parent, PartBase *);
~PrefFFMpegPage () {}
void record ();
TQString name ();
const char * recorderName () { return "ffmpeg"; }
TQLineEdit * arguments;
TQButtonGroup * format;
private:
};
class KMPLAYER_NO_EXPORT PrefGeneralPageOutput : public TQFrame
{
Q_OBJECT
public:
PrefGeneralPageOutput (TQWidget *parent, OutputDriver * ad, OutputDriver * vd);
~PrefGeneralPageOutput() {}
TQListBox *videoDriver;
TQListBox *audioDriver;
};
class KMPLAYER_NO_EXPORT PrefOPPageGeneral : public TQFrame
{
Q_OBJECT
public:
PrefOPPageGeneral(TQWidget *parent = 0);
~PrefOPPageGeneral() {}
};
class KMPLAYER_NO_EXPORT PrefOPPagePostProc : public TQFrame
{
Q_OBJECT
public:
PrefOPPagePostProc(TQWidget *parent = 0);
~PrefOPPagePostProc() {}
TQCheckBox* postProcessing;
TQCheckBox* disablePPauto;
TQTabWidget* PostprocessingOptions;
TQRadioButton* defaultPreset;
TQRadioButton* customPreset;
TQRadioButton* fastPreset;
TQCheckBox* HzDeblockFilter;
TQCheckBox* VtDeblockFilter;
TQCheckBox* DeringFilter;
TQCheckBox* HzDeblockAQuality;
TQCheckBox* VtDeblockAQuality;
TQCheckBox* DeringAQuality;
TQCheckBox* AutolevelsFilter;
TQCheckBox* AutolevelsFullrange;
TQCheckBox* HzDeblockCFiltering;
TQCheckBox* VtDeblockCFiltering;
TQCheckBox* DeringCFiltering;
TQCheckBox* TmpNoiseFilter;
TQSlider* TmpNoiseSlider;
TQCheckBox* LinBlendDeinterlacer;
TQCheckBox* CubicIntDeinterlacer;
TQCheckBox* LinIntDeinterlacer;
TQCheckBox* MedianDeinterlacer;
TQCheckBox* FfmpegDeinterlacer;
};
} // namespace
#endif // _KMPlayerPREF_H_