]> git.sesse.net Git - vlc/blob - modules/gui/qt4/adapters/seekpoints.hpp
Qt: hotkeys: add check for app's menu shortcuts (fix #7930)
[vlc] / modules / gui / qt4 / adapters / seekpoints.hpp
1 /*****************************************************************************
2  * seekpoints.hpp : Chapters & Bookmarks (menu)
3  *****************************************************************************
4  * Copyright © 2011 the VideoLAN team
5  *
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * ( 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
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
20  *****************************************************************************/
21
22 #ifndef SEEKPOINTS_HPP
23 #define SEEKPOINTS_HPP
24
25 #ifdef HAVE_CONFIG_H
26 #include "config.h"
27 #endif
28
29 #include <vlc_common.h>
30 #include <vlc_interface.h>
31 #include <vlc_input.h>
32
33 #include <QObject>
34 #include <QList>
35 #include <QMutex>
36
37 class SeekPoint
38 {
39 public:
40     SeekPoint( seekpoint_t *seekpoint )
41     {
42         time = seekpoint->i_time_offset;
43         name = QString::fromUtf8( seekpoint->psz_name );
44     };
45     int64_t time;
46     QString name;
47 };
48
49 class SeekPoints : public QObject
50 {
51     Q_OBJECT
52 public:
53     SeekPoints( QObject *, intf_thread_t * );
54     QList<SeekPoint> const getPoints();
55     bool access() { return listMutex.tryLock( 100 ); }
56     void release() { listMutex.unlock(); }
57     bool jumpTo( int );
58
59 public slots:
60     void update();
61
62 private:
63     QList<SeekPoint> pointsList;
64     QMutex listMutex;
65     intf_thread_t *p_intf;
66 };
67
68 #endif // SEEKPOINTS_HPP