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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * profile_selector.hpp : A small profile selector and editor
  3.  ****************************************************************************
  4.  * Copyright (C) 2009 the VideoLAN team
  5.  * $Id: ff2038f2b20fe53fae0678b1ca963ce3f35b8fee $
  6.  *
  7.  * Authors: Jean-Baptiste Kempf <jb@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 SOUT_WIDGETS_H
  24. #define SOUT_WIDGETS_H
  25. #include "qt4.hpp"
  26. #include <QGroupBox>
  27. class QLineEdit;
  28. class QLabel;
  29. class QSpinBox;
  30. class SoutInputBox : public QGroupBox
  31. {
  32.     public:
  33.         SoutInputBox( QWidget *_parent = NULL, const QString& mrl = "" );
  34.         void setMRL( const QString& );
  35.     private:
  36.         QLineEdit *sourceLine;
  37.         QLabel *sourceValueLabel;
  38. };
  39. class VirtualDestBox : public QWidget
  40. {
  41.     Q_OBJECT;
  42.     public:
  43.         VirtualDestBox( QWidget *_parent = NULL ) : QWidget( _parent ){}
  44.         virtual QString getMRL( const QString& ) = 0;
  45.     protected:
  46.         QString mrl;
  47.     signals:
  48.         void mrlUpdated();
  49. };
  50. class FileDestBox: public VirtualDestBox
  51. {
  52.     Q_OBJECT;
  53.     public:
  54.         FileDestBox( QWidget *_parent = NULL );
  55.         virtual QString getMRL( const QString& );
  56.     private:
  57.         QLineEdit *fileEdit;
  58.     private slots:
  59.         void fileBrowse();
  60. };
  61. class HTTPDestBox: public VirtualDestBox
  62. {
  63.     Q_OBJECT;
  64.     public:
  65.         HTTPDestBox( QWidget *_parent = NULL );
  66.         virtual QString getMRL( const QString& );
  67.     private:
  68.         QLineEdit *HTTPEdit;
  69.         QSpinBox *HTTPPort;
  70. };
  71. class MMSHDestBox: public VirtualDestBox
  72. {
  73.     Q_OBJECT;
  74.     public:
  75.         MMSHDestBox( QWidget *_parent = NULL );
  76.         virtual QString getMRL( const QString& );
  77.     private:
  78.         QLineEdit *MMSHEdit;
  79.         QSpinBox *MMSHPort;
  80. };
  81. class UDPDestBox: public VirtualDestBox
  82. {
  83.     Q_OBJECT;
  84.     public:
  85.         UDPDestBox( QWidget *_parent = NULL );
  86.         virtual QString getMRL( const QString& );
  87.     private:
  88.         QLineEdit *UDPEdit;
  89.         QSpinBox *UDPPort;
  90. };
  91. class RTPDestBox: public VirtualDestBox
  92. {
  93.     Q_OBJECT;
  94.     public:
  95.         RTPDestBox( QWidget *_parent = NULL );
  96.         virtual QString getMRL( const QString& );
  97.     private:
  98.         QLineEdit *RTPEdit;
  99.         QSpinBox *RTPPort;
  100.         QSpinBox *RTPPortVideo;
  101.         QSpinBox *RTPPortAudio;
  102. };
  103. class ICEDestBox: public VirtualDestBox
  104. {
  105.     Q_OBJECT;
  106.     public:
  107.         ICEDestBox( QWidget *_parent = NULL );
  108.         virtual QString getMRL( const QString& );
  109.     private:
  110.         QLineEdit *ICEEdit;
  111.         QLineEdit *ICEMountEdit;
  112.         QLineEdit *ICEPassEdit;
  113.         QSpinBox *ICEPort;
  114. };
  115. #endif