sout.hpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * sout.hpp : Stream output dialog ( old-style, ala WX )
  3.  ****************************************************************************
  4.  * Copyright ( C ) 2006 the VideoLAN team
  5.  * $Id: 220333650ae062e7fe493bed2785764b1557cc9f $
  6.  *
  7.  * Authors: Clément Stenac <zorglub@videolan.org>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * ( at your option ) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #ifndef QVLC_SOUT_DIALOG_H_
  24. #define QVLC_SOUT_DIALOG_H_ 1
  25. #ifdef HAVE_CONFIG_H
  26. # include "config.h"
  27. #endif
  28. #include <vlc_common.h> /* Gettext functions */
  29. #include "ui/sout.h"
  30. #include "util/qvlcframe.hpp"
  31. class QPushButton;
  32. class QToolButton;
  33. class QCheckBox;
  34. class QGridLayout;
  35. class QTextEdit;
  36. class SoutMrl
  37. {
  38. public:
  39.     SoutMrl( const QString& head = "")
  40.     {
  41.         mrl = head;
  42.         b_first = true;
  43.         b_has_bracket = false;
  44.     }
  45.     QString getMrl()
  46.     {
  47.         return mrl;
  48.     }
  49.     void begin( const QString& module )
  50.     {
  51.         if( !b_first )
  52.             mrl += ":";
  53.         b_first = false;
  54.         mrl += module;
  55.         b_has_bracket = false;
  56.     }
  57.     void end()
  58.     {
  59.         if( b_has_bracket )
  60.             mrl += "}";
  61.     }
  62.     void option( const QString& option, const QString& value = "" )
  63.     {
  64.         if( !b_has_bracket )
  65.             mrl += "{";
  66.         else
  67.             mrl += ",";
  68.         b_has_bracket = true;
  69.         mrl += option;
  70.         if( !value.isEmpty() )
  71.         {
  72.             char *psz = config_StringEscape( qtu(value) );
  73.             if( psz )
  74.             {
  75.                 mrl += "=" + qfu( psz );
  76.                 free( psz );
  77.             }
  78.         }
  79.     }
  80.     void option( const QString& name, const int i_value, const int i_precision = 10 )
  81.     {
  82.         option( name, QString::number( i_value, i_precision ) );
  83.     }
  84.     void option( const QString& name, const double f_value )
  85.     {
  86.         option( name, QString::number( f_value ) );
  87.     }
  88.     void option( const QString& name, const QString& base, const int i_value, const int i_precision = 10 )
  89.     {
  90.         option( name, base + ":" + QString::number( i_value, i_precision ) );
  91.     }
  92. private:
  93.     QString mrl;
  94.     bool b_has_bracket;
  95.     bool b_first;
  96. };
  97. class SoutDialog : public QVLCDialog
  98. {
  99.     Q_OBJECT;
  100. public:
  101.     SoutDialog( QWidget* parent, intf_thread_t *, const QString& mrl = "");
  102.     virtual ~SoutDialog(){}
  103.     QString getMrl(){ return mrl; }
  104. private:
  105.     Ui::Sout ui;
  106.     QString mrl;
  107.     QPushButton *okButton;
  108.     QToolButton *closeTabButton;
  109. public slots:
  110.     void updateMRL();
  111. private slots:
  112.     void ok();
  113.     void cancel();
  114.     void next();
  115.     void prev();
  116.     void closeTab();
  117.     void tabChanged( int );
  118.     void addDest();
  119. };
  120. #endif