/** * Copyright (C) 2003 Joonas Koivunen * Copyright (C) 2003 Koos Vriezen * * 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 #include #include 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 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_