]> git.sesse.net Git - vlc/blob - bindings/phonon/vlc/seekstack.h
Phonon Backend using VLC
[vlc] / bindings / phonon / vlc / seekstack.h
1 /*****************************************************************************
2  * VLC backend for the Phonon library                                        *
3  * Copyright (C) 2007-2008 Tanguy Krotoff <tkrotoff@gmail.com>               *
4  * Copyright (C) 2008 Lukas Durfina <lukas.durfina@gmail.com>                *
5  * Copyright (C) 2009 Fathi Boudra <fabo@kde.org>                            *
6  *                                                                           *
7  * This program is free software; you can redistribute it and/or             *
8  * modify it under the terms of the GNU Lesser General Public                *
9  * License as published by the Free Software Foundation; either              *
10  * version 3 of the License, or (at your option) any later version.          *
11  *                                                                           *
12  * This program is distributed in the hope that it will be useful,           *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
15  * Lesser General Public License for more details.                           *
16  *                                                                           *
17  * You should have received a copy of the GNU Lesser General Public          *
18  * License along with this package; if not, write to the Free Software       *
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA *
20  *****************************************************************************/
21
22 #ifndef PHONON_VLC_SEEKSTACK_H
23 #define PHONON_VLC_SEEKSTACK_H
24
25 #include "mediaobject.h"
26
27 #include <QtCore/QObject>
28 #include <QtCore/QStack>
29
30 class QTimer;
31
32 namespace Phonon
33 {
34 namespace VLC {
35
36 /**
37  * A queue of seek commands.
38  */
39 class SeekStack : public QObject
40 {
41     Q_OBJECT
42
43 public:
44
45     SeekStack(MediaObject *mediaObject);
46     ~SeekStack();
47
48     void pushSeek(qint64 milliseconds);
49
50 signals:
51
52 private slots:
53
54     void popSeek();
55
56     void reconnectTickSignal();
57
58 private:
59
60     MediaObject *p_media_object;
61
62     QTimer *p_timer;
63
64     QStack<qint64> stack;
65 };
66
67 }
68 } // Namespace Phonon::VLC
69
70 #endif // PHONON_VLC_SEEKSTACK_H