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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * extended_panels.hpp : Exentended Panels
  3.  ****************************************************************************
  4.  * Copyright (C) 2006 the VideoLAN team
  5.  * $Id: 3d498c7dca0dc79ff6c277e01ea4611e6e3e1f75 $
  6.  *
  7.  * Authors: Clément Stenac <zorglub@videolan.org>
  8.  *          Antoine Cellerier <dionoea at videolan dot org>
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * (at your option) any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23.  *****************************************************************************/
  24. #ifndef _EQUALIZER_H_
  25. #define _EQUALIZER_H_
  26. #ifdef HAVE_CONFIG_H
  27. # include "config.h"
  28. #endif
  29. #include <vlc_common.h>
  30. #include <vlc_aout.h>
  31. #include "ui/equalizer.h"
  32. #include "ui/video_effects.h"
  33. #include "ui/v4l2.h"
  34. #include <QTabWidget>
  35. #define BANDS 10
  36. #define NUM_SP_CTRL 5
  37. class QSignalMapper;
  38. class ExtVideo: public QObject
  39. {
  40.     Q_OBJECT
  41.     friend class ExtendedDialog;
  42. public:
  43.     ExtVideo( intf_thread_t *, QTabWidget * );
  44.     virtual ~ExtVideo();
  45.     /*void gotoConf( QObject* );*/
  46. private:
  47.     Ui::ExtVideoWidget ui;
  48.     QSignalMapper* filterMapper;
  49.     intf_thread_t *p_intf;
  50.     vout_thread_t *p_vout;
  51.     void initComboBoxItems( QObject* );
  52.     void setWidgetValue( QObject* );
  53.     void ChangeVFiltersString( const char *psz_name, bool b_add );
  54.     void clean();
  55. private slots:
  56.     void updateFilters();
  57.     void updateFilterOptions();
  58.     void cropChange();
  59. };
  60. class ExtV4l2 : public QWidget
  61. {
  62.     Q_OBJECT
  63. public:
  64.     ExtV4l2( intf_thread_t *, QWidget * );
  65.     virtual ~ExtV4l2();
  66.     virtual void showEvent( QShowEvent *event );
  67. private:
  68.     intf_thread_t *p_intf;
  69.     Ui::ExtV4l2Widget ui;
  70.     QGroupBox *box;
  71. private slots:
  72.     void Refresh( void );
  73.     void ValueChange( int value );
  74.     void ValueChange( bool value );
  75. };
  76. class Equalizer: public QWidget
  77. {
  78.     Q_OBJECT
  79.     friend class ExtendedDialog;
  80. public:
  81.     Equalizer( intf_thread_t *, QWidget * );
  82.     virtual ~Equalizer();
  83.     QComboBox *presetsComboBox;
  84.     char * createValuesFromPreset( int i_preset );
  85.     void updateUIFromCore();
  86. private:
  87.     Ui::EqualizerWidget ui;
  88.     QSlider *bands[BANDS];
  89.     QLabel *band_texts[BANDS];
  90.     void delCallbacks( aout_instance_t * );
  91.     void addCallbacks( aout_instance_t * );
  92.     intf_thread_t *p_intf;
  93.     void clean();
  94. private slots:
  95.     void enable(bool);
  96.     void enable();
  97.     void set2Pass();
  98.     void setPreamp();
  99.     void setCoreBands();
  100.     void setCorePreset(int);
  101.     void updateUISliderValues( int );
  102. };
  103. class Spatializer: public QWidget
  104. {
  105.     Q_OBJECT
  106. public:
  107.     Spatializer( intf_thread_t *, QWidget * );
  108.     virtual ~Spatializer();
  109. private:
  110.     QSlider *spatCtrl[NUM_SP_CTRL];
  111.     QLabel *ctrl_texts[NUM_SP_CTRL];
  112.     QLabel *ctrl_readout[NUM_SP_CTRL];
  113.     float controlVars[5];
  114.     float oldControlVars[5];
  115.     QCheckBox *enableCheck;
  116.     void delCallbacks( aout_instance_t * );
  117.     void addCallbacks( aout_instance_t * );
  118.     intf_thread_t *p_intf;
  119. private slots:
  120.     void enable(bool);
  121.     void enable();
  122.     void setValues(float *);
  123.     void setInitValues();
  124. };
  125. class SyncControls : public QWidget
  126. {
  127.     Q_OBJECT
  128.     friend class ExtendedDialog;
  129. public:
  130.     SyncControls( intf_thread_t *, QWidget * );
  131.     virtual ~SyncControls() {};
  132. private:
  133.     intf_thread_t *p_intf;
  134.     QDoubleSpinBox *AVSpin;
  135.     QDoubleSpinBox *subsSpin;
  136.     QDoubleSpinBox *subSpeedSpin;
  137.     bool b_userAction;
  138.     void clean();
  139. public slots:
  140.     void update();
  141. private slots:
  142.     void advanceAudio( double );
  143.     void advanceSubs( double );
  144.     void adjustSubsSpeed( double );
  145. };
  146. #endif