]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/sout.hpp
Try to fix Sout Dialog ( Part 1 )
[vlc] / modules / gui / qt4 / dialogs / sout.hpp
index eb08a284d876fda425955c6773eee8d8826b9a74..8f477960610dcbdcea56dcc264854073e493873c 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************
- * sout.hpp : Stream output dialog (old-style, ala WX)
+ * sout.hpp : Stream output dialog ( old-style, ala WX )
  ****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- * $Id: Errors.hpp 16024 2006-07-13 13:51:05Z xtophe $
+ * Copyright ( C ) 2006 the VideoLAN team
+ * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *
  * 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.
+ * ( at your option ) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
 
 #ifndef _SOUT_DIALOG_H_
 #define _SOUT_DIALOG_H_
-#include <vlc/vlc.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+
 #include "ui/sout.h"
 #include "util/qvlcframe.hpp"
 
@@ -35,18 +42,51 @@ class SoutDialog : public QVLCDialog
 {
     Q_OBJECT;
 public:
-    SoutDialog( QWidget* parent, intf_thread_t * );
-    virtual ~SoutDialog() {}
+    static SoutDialog* getInstance( QWidget *parent, intf_thread_t *p_intf,
+                                    bool transcode_only )
+    {
+        if( !instance )
+            instance = new SoutDialog( parent, p_intf, transcode_only );
+        else
+        {
+            /* Recenter the dialog on the parent */
+            instance->setParent( parent, Qt::Dialog );
+            if( transcode_only != instance->b_transcode_only )
+            {
+                instance->toggleSout();
+                instance->b_transcode_only = transcode_only;
+            }
+        }
+        return instance;
+    }
+
+    virtual ~SoutDialog(){}
+
+    QString getMrl(){ return mrl; }
 
-    QString mrl;
 private:
     Ui::Sout ui;
+    static SoutDialog *instance;
+    SoutDialog( QWidget* parent, intf_thread_t *,
+                bool _transcode_only = false );
+    QPushButton *okButton;
+    QString mrl;
+    bool b_transcode_only;
+
 public slots:
+    void updateMRL();
+
+private slots:
     void ok();
     void cancel();
-    void updateMRL();
-    void fileBrowse();
     void toggleSout();
+    void setOptions();
+    void fileBrowse();
+    void setVTranscodeOptions( bool );
+    void setATranscodeOptions( bool );
+    void setSTranscodeOptions( bool );
+    void setRawOptions( bool );
+    void changeUDPandRTPmess( bool );
 };
 
 #endif