//
//     Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Phonon
{

class MediaObject : QObject, Phonon::MediaNode
{
%TypeHeaderCode
#include <phonon/mediaobject.h>
%End

public:

    Phonon::State           state () const;

    bool                    hasVideo () const;
    bool                    isSeekable () const;
    qint32                  tickInterval () const;
    QStringList             metaData (const QString& key) const;
    QStringList             metaData (Phonon::MetaData key) const;
    QMultiMap<QString,QString>  metaData () const;
    QString                 errorString () const;
    Phonon::ErrorType       errorType () const;

    Phonon::MediaSource     currentSource () const;
    void                    setCurrentSource (const Phonon::MediaSource& source);
    QList<Phonon::MediaSource>  queue () const;
    void                    setQueue (const QList<Phonon::MediaSource>& sources);
    void                    setQueue (const QList<QUrl>& urls);
    void                    enqueue (const Phonon::MediaSource& source);
    void                    enqueue (const QList<Phonon::MediaSource>& sources);
    void                    enqueue (const QList<QUrl>& urls);
    void                    clearQueue ();
    qint64                  currentTime () const;
    qint64                  totalTime () const;
    qint64                  remainingTime () const;
    qint32                  prefinishMark () const;
    void                    setPrefinishMark (qint32 msecToEnd);
    qint32                  transitionTime () const;
    void                    setTransitionTime (qint32 msec);
    void                    setTickInterval (qint32 newTickInterval);
    void                    play ();
    void                    pause ();
    void                    stop ();
    void                    seek (qint64 time);
    void                    clear ();

signals:
    void               stateChanged (Phonon::State newstate, Phonon::State oldstate);
    void                    tick (qint64 time);
    void                    metaDataChanged ();
    void                    seekableChanged (bool isSeekable);
    void                    hasVideoChanged (bool hasVideo);
    void                    bufferStatus (int percentFilled);
    void                    finished ();
    void                    currentSourceChanged (const Phonon::MediaSource& newSource);
    void                    aboutToFinish ();
    void                    prefinishMarkReached (qint32 msecToEnd);
    void                    totalTimeChanged (qint64 newTotalTime);
};   // MediaObject

Phonon::MediaObject*  createPlayer (Phonon::Category category, const Phonon::MediaSource& source = Phonon::MediaSource());
};   // Phonon


