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> *
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. *
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. *
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 *****************************************************************************/
22 #include "seekstack.h"
24 #include <QtCore/QTimer>
25 #include <QtCore/QDebug>
31 SeekStack::SeekStack(MediaObject *mediaObject)
32 : QObject(mediaObject)
34 p_media_object = mediaObject;
36 p_timer = new QTimer(this);
37 connect(p_timer, SIGNAL(timeout()),
39 p_timer->setInterval(1000);
42 SeekStack::~SeekStack()
46 void SeekStack::pushSeek(qint64 milliseconds)
48 qDebug() << __FUNCTION__ << "seek:" << milliseconds;
50 disconnect(p_media_object, SIGNAL(tickInternal(qint64)),
51 p_media_object, SLOT(tickInternalSlot(qint64)));
53 stack.push(milliseconds);
55 if (!p_timer->isActive()) {
61 void SeekStack::popSeek()
63 if (stack.isEmpty()) {
65 reconnectTickSignal();
69 int i_milliseconds = stack.pop();
72 qDebug() << __FUNCTION__ << "real seek:" << i_milliseconds;
74 p_media_object->seekInternal(i_milliseconds);
76 reconnectTickSignal();
79 void SeekStack::reconnectTickSignal()
81 connect(p_media_object, SIGNAL(tickInternal(qint64)),
82 p_media_object, SLOT(tickInternalSlot(qint64)));
86 } // Namespace Phonon::VLC