defuze.me  Client
audioplayerwidget.hpp
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