File indexing completed on 2024-05-12 04:44:40
0001 class MediaPlayer : public QMainWindow 0002 { 0003 Q_OBJECT 0004 public: 0005 MediaPlayer(); 0006 0007 private slots: 0008 void play(const QModelIndex &modelIndex); 0009 void visEffectChanged(int index); 0010 0011 private: 0012 QColumnView m_fileView; 0013 QDirModel m_model; 0014 0015 Phonon::MediaObject *m_media; 0016 Phonon::Visualization *m_vis; 0017 QComboBox *m_visComboBox; 0018 }; 0019 0020 MediaPlayer::MediaPlayer() 0021 : m_vis(0), m_visComboBox(0) 0022 { 0023 //setCentralWidget(&m_fileView); 0024 m_fileView.setModel(&m_model); 0025 m_fileView.setFrameStyle(QFrame::NoFrame); 0026 0027 m_media = new MediaObject(this); 0028 AudioOutput *output = new AudioOutput(Phonon::Music, this); 0029 Phonon::createPath(m_media, output); 0030 0031 QList<VisualizationDescription> list = BackendCapabilities::availableVisualizationEffects(); 0032 if (!list.isEmpty()) { 0033 VideoWidget *visWidget = new VideoWidget(this); 0034 m_vis = new Visualization(this); 0035 Phonon::createPath(m_media, m_vis); 0036 Phonon::createPath(m_vis, visWidget); 0037 m_vis->setVisualization(list.first()); 0038 0039 m_visComboBox = new QComboBox(this); 0040 m_visComboBox->setModel(new VisualizationDescriptionModel(list, m_visComboBox)); 0041 connect(m_visComboBox, SIGNAL(activated(int)), SLOT(visEffectChanged(int))); 0042 } 0043 0044 connect(&m_fileView, SIGNAL(updatePreviewWidget(const QModelIndex &)), SLOT(play(const QModelIndex &))); 0045 } 0046 0047 void MediaPlayer::play(const QModelIndex &modelIndex) 0048 { 0049 m_media->setCurrentSource(url); 0050 m_media->play(); 0051 } 0052 0053 void MediaPlayer::visEffectChanged(int index) 0054 { 0055 QList<VisualizationDescription> list = BackendCapabilities::availableVisualizationEffects(); 0056 Q_ASSERT(index < list.size() && index >= 0); 0057 m_vis->setVisualization(list.at(index)); 0058 } 0059 0060