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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * external.hpp : Dialogs from other LibVLC core and other plugins
  3.  ****************************************************************************
  4.  * Copyright (C) 2009 Rémi Denis-Courmont
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  19.  *****************************************************************************/
  20. #ifndef QVLC_DIALOGS_EXTERNAL_H_
  21. #define QVLC_DIALOGS_EXTERNAL_H_ 1
  22. #include <QObject>
  23. #include <vlc_common.h>
  24. class QVLCVariable : public QObject
  25. {
  26.     Q_OBJECT
  27. private:
  28.     static int callback (vlc_object_t *, const char *,
  29.                          vlc_value_t, vlc_value_t, void *);
  30.     vlc_object_t *object;
  31.     QString name;
  32. public:
  33.     QVLCVariable (vlc_object_t *, const char *, int);
  34.     virtual ~QVLCVariable (void);
  35. signals:
  36.     void pointerChanged (vlc_object_t *, void *);
  37. };
  38. struct intf_thread_t;
  39. class QProgressDialog;
  40. class DialogHandler : public QObject
  41. {
  42.     Q_OBJECT
  43.     friend class QVLCProgressDialog;
  44. public:
  45.     DialogHandler (intf_thread_t *, QObject *parent);
  46.     ~DialogHandler (void);
  47. private:
  48.     intf_thread_t *intf;
  49.     static int error (vlc_object_t *, const char *, vlc_value_t, vlc_value_t,
  50.                       void *);
  51.     QVLCVariable critical;
  52.     QVLCVariable login;
  53.     QVLCVariable question;
  54.     QVLCVariable progressBar;
  55. signals:
  56.     void progressBarDestroyed (QWidget *);
  57.     void error (const QString&, const QString&);
  58. private slots:
  59.     void displayError (const QString&, const QString&);
  60.     void displayCritical (vlc_object_t *, void *);
  61.     void requestLogin (vlc_object_t *, void *);
  62.     void requestAnswer (vlc_object_t *, void *);
  63.     void startProgressBar (vlc_object_t *, void *);
  64.     void stopProgressBar (QWidget *);
  65. };
  66. /* Put here instead of .cpp because of MOC */
  67. #include <QProgressDialog>
  68. class QVLCProgressDialog : public QProgressDialog
  69. {
  70.     Q_OBJECT
  71. public:
  72.     QVLCProgressDialog (DialogHandler *parent,
  73.                         struct dialog_progress_bar_t *);
  74.     virtual ~QVLCProgressDialog (void);
  75. private:
  76.     DialogHandler *handler;
  77.     bool cancelled;
  78.     static void update (void *, const char *, float);
  79.     static bool check (void *);
  80.     static void destroy (void *);
  81. private slots:
  82.     void saveCancel (void);
  83. signals:
  84.     void progressed (int);
  85.     void described (const QString&);
  86.     void destroyed (void);
  87. };
  88. #endif