defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010-2011 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 #ifndef AUDIOPLAYERWIDGET_HPP 00012 #define AUDIOPLAYERWIDGET_HPP 00013 00014 #include "ui_audioplayerwidget.h" 00015 #include "guicore.hpp" 00016 #include "audiotrack.hpp" 00017 00018 namespace Player 00019 { 00020 enum PlayerWidgetState 00021 { 00022 NoFile = -1, 00023 Stopped, 00024 Playing, 00025 Paused, 00026 Disabled 00027 }; 00028 class AudioPlayerWidget : public QWidget, private Ui::AudioPlayerWidget 00029 { 00030 Q_OBJECT 00031 friend class MainPlayer; 00032 00033 public: 00034 explicit AudioPlayerWidget(QWidget *parent = 0); 00035 PlayerWidgetState state() const; 00036 void setState(PlayerWidgetState); 00037 void setTrackName(const QString& name); 00038 void setTimeLabel(const QString& time); 00039 void setPosition(int position); 00040 void setTrackInfo(Library::AudioTrack*track = 0); 00041 void setDuration(int duration); 00042 void invertDirection(); 00043 protected: 00044 void changeEvent(QEvent *e); 00045 private slots: 00046 void on_playButton_clicked(); 00047 void on_stopButton_clicked(); 00048 00049 void on_positionSlider_valueChanged(int value); 00050 void on_positionSlider_sliderMoved(int position); 00051 void on_positionSlider_sliderPressed(); 00052 void on_positionSlider_sliderReleased(); 00053 00054 signals: 00055 void playButton_clicked(); 00056 void stopButton_clicked(); 00057 void positionSlider_pressed(); 00058 void positionSlider_moved(); 00059 void positionSlider_released(int pos); 00060 00061 private: 00062 bool _updatePosition; 00063 int _duration; 00064 PlayerWidgetState _state; 00065 }; 00066 } 00067 #endif // AUDIOPLAYERWIDGET_HPP