00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KONVERTERDIALOG_H
00022 #define KONVERTERDIALOG_H
00023
00024 #include <qlineedit.h>
00025 #include <qcombobox.h>
00026 #include <kfiledialog.h>
00027 #include <qprocess.h>
00028 #include <qtextbrowser.h>
00029 #include <qtabwidget.h>
00030 #include <qprogressbar.h>
00031 #include <qpushbutton.h>
00032 #include <qtimer.h>
00033 #include <qspinbox.h>
00034 #include <qcheckbox.h>
00035 #include <qlistbox.h>
00036 #include <qtoolbox.h>
00037 #include <qstringlist.h>
00038 #include <qlistbox.h>
00039 #include <qobject.h>
00040 #include <qslider.h>
00041 #include <qmessagebox.h>
00042 #include <qfile.h>
00043 #include <qregexp.h>
00044 #include <qlabel.h>
00045 #include <qdatetime.h>
00046 #include <qmovie.h>
00047 #include <kmessagebox.h>
00048
00049
00050 #include <qfileinfo.h>
00051 #include <kurl.h>
00052 #include <klocale.h>
00053
00054
00055 #include <knuminput.h>
00056
00057
00058 #include <kpushbutton.h>
00059 #include <kpopupmenu.h>
00060 #include <khelpmenu.h>
00061
00062 #include "../View/KonverterMainDialog.h"
00063
00064 #include "aboutdialog.h"
00065 #include "nooptdialog.h"
00066 #include "mp3optdialog.h"
00067 #include "pcmoptdialog.h"
00068 #include "divxoptdialog.h"
00069 #include "xvidoptdialog.h"
00070 #include "mpeg2optdialog.h"
00071 #include "mpeg1optdialog.h"
00072 #include "divxlavcoptdialog.h"
00073 #include "rawoptdialog.h"
00074 #include "mp2optdialog.h"
00075 #include "ac3optdialog.h"
00076 #include "preview.h"
00077 #include "konvprocess.h"
00078 #include "workdlg.h"
00079 #include "soundfilters.h"
00080 #include "videofilters.h"
00081
00082 #include "../../app/XineEngine/kxinewidget.h"
00083
00084 #include <iostream>
00085 #include <cstdlib>
00086 #include <cstdio>
00087 #include <fcntl.h>
00088 #include <sys/file.h>
00089 #include <sys/types.h>
00090 #include <unistd.h>
00091
00092 class KonverterDialog : public KonverterMainDialog
00093 {
00094 Q_OBJECT
00095
00096 public:
00097 KonverterDialog(QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
00098 ~KonverterDialog();
00099
00100 public slots:
00101 virtual void SelectInputFile();
00102 virtual void UpdateConversionCommandString();
00103 virtual void UpdateConcatCommandString();
00104 virtual void ExitKonverter();
00105 virtual void TabChanged();
00106 virtual void SelectOutputDir();
00107 virtual void SelectOutputDirConcat();
00108 virtual void SelectJoinFiles();
00109 virtual void RemoveJoinFile();
00110 virtual void ShowAboutDialog();
00111 virtual void ShowHelpDialog();
00112 virtual void ShowVideoOptionsDialog();
00113 virtual void ShowAudioOptionsDialog();
00114 virtual void ShowVideoFilter();
00115 virtual void ShowAudioFilter();
00116 virtual void ExecuteCommandString();
00117
00118
00119 virtual void readFromStdout();
00120 virtual void readFromStderr();
00121 virtual bool processExiting();
00122
00123 virtual void scrollToTop();
00124
00125
00126 virtual void SplitNameChanged();
00127 virtual void SplitSliderChanged();
00128 virtual void SplitSpinChanged();
00129 virtual void SplitReadFromStdout();
00130 virtual void SplitProcessExitting();
00131
00132 virtual void OpenPreview();
00133 virtual void PrAoChanged();
00134 virtual void ExecWorkW();
00135
00136
00137 virtual void ExtraOptsCheck();
00138 virtual void TwoPassChanged();
00139 virtual void InputFileChanged();
00140 protected:
00141
00142 protected slots:
00143
00144 private:
00145
00146 void ConvertFile();
00147 void ConcatFile();
00148
00149
00150 KonvProcess* mencoder;
00151 bool running;
00152 bool appendText;
00153 QString mencOptions;
00154 QString dirPath;
00155
00156
00157 QString LastStatus;
00158 QString OutputLine;
00159 int ProgressIndicator;
00160 int MBPos;
00161
00162
00163 QString AudioCodec;
00164 QString VideoCodec;
00165
00166
00167 QString VideoOpts;
00168 QString AudioOpts;
00169
00170
00171 QString AudioFilt;
00172 QString VideoFilt;
00173
00174
00175 bool MP3OptionsCheck;
00176 bool PCMOptionsCheck;
00177 bool MP2OptionsCheck;
00178 bool AC3OptionsCheck;
00179 bool NoOptionsCheck;
00180
00181 bool DivXOptionsCheck;
00182 bool XvidOptionsCheck;
00183 bool MPEG2OptionsCheck;
00184 bool MPEG1OptionsCheck;
00185 bool DivXLavcOptionsCheck;
00186 bool RawOptionsCheck;
00187
00188 bool SoundFiltersCheck;
00189 bool VideoFiltersCheck;
00190
00191
00192 NoOptDialog* noOpt;
00193
00194 MP3OptDialog* MP3Opt;
00195 MP2OptDialog* MP2Opt;
00196 AC3OptDialog* AC3Opt;
00197 PCMOptDialog* PCMOpt;
00198
00199 DivXOptDialog* DivXOpt;
00200 XvidOptDialog* XvidOpt;
00201 MPEG2OptDialog* MPEG2Opt;
00202 MPEG1OptDialog* MPEG1Opt;
00203 DivXLavcOptDialog* DivXLavcOpt;
00204 RawOptDialog* RawOpt;
00205
00206
00207 bool withDivx3;
00208
00209
00210 bool SpFileExists;
00211 void getSplitter();
00212 void SetParts(int Parts);
00213 void SplitMovie();
00214 void SplitConstructCommand (int part);
00215 KonvProcess* SplitProcess;
00216 int SplitFileSize;
00217 int SplitMovParts;
00218 int SplitCurPart;
00219 int SplitPosI;
00220 int SplitPosVal;
00221 int SplitPartSize;
00222 QString SplitPosS;
00223 QString SplitTemp;
00224 QMessageBox* SplitDoneMessage;
00225
00226 QString SplitOutputLine;
00227 QString SplitLastStatus;
00228
00229
00230 QString ChShellEscape(QString escshell);
00231
00232 Preview* Pr;
00233
00234
00235 KXineWidget* movInfo;
00236 void ChangeMovInfo();
00237
00238
00239 workdlg* workDlg;
00240 bool woWorking;
00241
00242
00243 int mencPass;
00244
00245 KHelpMenu *helpPopUp;
00246 SoundFilters* SFDialog;
00247 VideoFilters* VFDialog;
00248
00249
00250 bool checkConvert();
00251 };
00252
00253 #endif