//
//     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 ObjectDescriptionModelData
{
%TypeHeaderCode
  <phonon/objectdescriptionmodel.h>
%End

public:
    int                     rowCount (const QModelIndex& parent = QModelIndex()) const;
    QVariant                data (const QModelIndex& index, int role = Qt::DisplayRole) const;
    Qt::ItemFlags           flags (const QModelIndex& index) const;
    QList<int>              tupleIndexOrder () const;
    int                     tupleIndexAtPositionIndex (int positionIndex) const;
    QMimeData*              mimeData (Phonon::ObjectDescriptionType type, const QModelIndexList& indexes) const;
    void                    moveUp (const QModelIndex& index);
    void                    moveDown (const QModelIndex& index);
//ig    void                    setModelData (const QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>>& data);
//ig    QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>>  modelData () const;

//mt undefined symbol: QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> None -- need mapped type?
//mt     QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>  modelData (const QModelIndex& index) const;


    Qt::DropActions         supportedDropActions () const;
    bool                    dropMimeData (Phonon::ObjectDescriptionType type, const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
    bool                    removeRows (int row, int count, const QModelIndex& parent = QModelIndex());
    QStringList             mimeTypes (Phonon::ObjectDescriptionType type) const;
                            ObjectDescriptionModelData (QAbstractListModel*);

protected:
                            ~ObjectDescriptionModelData ();
};   // ObjectDescriptionModelData


//template <ObjectDescriptionType type>
template <type>
class ObjectDescriptionModel : QAbstractListModel
{
%TypeHeaderCode
#include <phonon/objectdescriptionmodel.h>
%End

public:
    explicit                ObjectDescriptionModel (QObject* parent /TransferThis/ = 0);
    explicit                ObjectDescriptionModel (const QList< Phonon::ObjectDescription<type> >& data, QObject* parent /TransferThis/ = 0);

//ig    const QMetaObject staticMetaObject;
//ig    const QMetaObject*      metaObject () const;

//io     void*              qt_metacast (const char* _clname);

    int                     rowCount (const QModelIndex& parent = QModelIndex()) const;
    QVariant                data (const QModelIndex& index, int role = Qt::DisplayRole) const;
    Qt::ItemFlags           flags (const QModelIndex& index) const;
    QList<int>              tupleIndexOrder () const;
    int                     tupleIndexAtPositionIndex (int positionIndex) const;
    QMimeData*              mimeData (const QModelIndexList& indexes) const;
    void                    moveUp (const QModelIndex& index);
    void                    moveDown (const QModelIndex& index);


//ig    void                    setModelData (const QList<Phonon::ObjectDescription<type>>& data);
//ig    QList<ObjectDescription<type>>  modelData () const;
//ig    ObjectDescription<type>  modelData (const QModelIndex& index) const;
    Qt::DropActions         supportedDropActions () const;
    bool                    dropMimeData (const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
    bool                    removeRows (int row, int count, const QModelIndex& parent = QModelIndex());
    QStringList             mimeTypes () const;
};   // ObjectDescriptionModel

typedef Phonon::ObjectDescriptionModel<Phonon::AudioOutputDeviceType> AudioOutputDeviceModel;

typedef Phonon::ObjectDescriptionModel<Phonon::AudioCaptureDeviceType> AudioCaptureDeviceModel;

typedef Phonon::ObjectDescriptionModel<Phonon::EffectType> EffectDescriptionModel;

typedef Phonon::ObjectDescriptionModel<Phonon::AudioChannelType> AudioChannelDescriptionModel;

typedef Phonon::ObjectDescriptionModel<Phonon::SubtitleType> SubtitleDescriptionModel;

};   // Phonon


*/