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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * open.hpp : advanced open dialog
  3.  ****************************************************************************
  4.  * Copyright (C) 2006-2007 the VideoLAN team
  5.  * $Id: 7ba13fc6fd93360b2486657d300824c6f3118a2c $
  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 QVLC_OPEN_DIALOG_H_
  24. #define QVLC_OPEN_DIALOG_H_ 1
  25. #ifdef HAVE_CONFIG_H
  26. # include "config.h"
  27. #endif
  28. #include <vlc_common.h>
  29. #include "util/qvlcframe.hpp"
  30. #include "ui/open.h"
  31. #include "components/open_panels.hpp"
  32. enum {
  33.     OPEN_FILE_TAB,
  34.     OPEN_DISC_TAB,
  35.     OPEN_NETWORK_TAB,
  36.     OPEN_CAPTURE_TAB,
  37.     OPEN_TAB_MAX
  38. };
  39. enum {
  40.     OPEN_AND_PLAY,
  41.     OPEN_AND_ENQUEUE,
  42.     OPEN_AND_STREAM,
  43.     OPEN_AND_SAVE,
  44.     SELECT              /* Special mode to select a MRL (for VLM or similar */
  45. };
  46. class QString;
  47. class QTabWidget;
  48. class OpenDialog : public QVLCDialog
  49. {
  50.     Q_OBJECT;
  51. public:
  52.     static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
  53.                                 bool b_rawInstance = false, int _action_flag = 0,
  54.                                 bool b_selectMode = false, bool b_pl = true );
  55.     static void killInstance()
  56.     {
  57.         delete instance;
  58.         instance = NULL;
  59.     }
  60.     void showTab( int = OPEN_FILE_TAB );
  61.     QString getMRL( bool b = true );
  62. public slots:
  63.     void selectSlots();
  64.     void play();
  65.     void stream( bool b_transode_only = false );
  66.     void enqueue();
  67.     void transcode();
  68. private:
  69.     OpenDialog( QWidget *parent, intf_thread_t *, bool b_selectMode,
  70.                 int _action_flag = 0, bool b_pl = true );
  71.     virtual ~OpenDialog();
  72.     static OpenDialog *instance;
  73.     input_thread_t *p_input;
  74.     QString optionsMRL;
  75.     QString storedMethod;
  76.     QStringList itemsMRL;
  77.     Ui::Open ui;
  78.     FileOpenPanel *fileOpenPanel;
  79.     NetOpenPanel *netOpenPanel;
  80.     DiscOpenPanel *discOpenPanel;
  81.     CaptureOpenPanel *captureOpenPanel;
  82.     int i_action_flag;
  83.     bool b_pl;
  84.     QStringList SeparateEntries( const QString& );
  85.     QPushButton *cancelButton, *selectButton;
  86.     QPushButton *playButton;
  87.     void finish( bool );
  88. private slots:
  89.     void setMenuAction();
  90.     void cancel();
  91.     void close();
  92.     void toggleAdvancedPanel();
  93.     void updateMRL( const QStringList&, const QString& );
  94.     void updateMRL();
  95.     void newCachingMethod( const QString& );
  96.     void signalCurrent( int );
  97.     void browseInputSlave();
  98. };
  99. #endif