kde-playground/pykde4/sip/phonon/objectdescription.sip

174 lines
No EOL
5.1 KiB
Text

//
// 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/>.
%ModuleHeaderCode
#include <phonon/objectdescription.h>
%End
namespace Phonon
{
enum ObjectDescriptionType
{
AudioOutputDeviceType,
EffectType,
AudioChannelType,
SubtitleType,
AudioCaptureDeviceType,
VideoCaptureDeviceType
};
template <T>
class ObjectDescription
{
%TypeHeaderCode
#include <phonon/objectdescription.h>
%End
public:
static Phonon::ObjectDescription<T> fromIndex (int index);
bool operator == (const ObjectDescription& otherDescription) const;
bool operator != (const ObjectDescription& otherDescription) const;
QString name () const;
QString description () const;
QVariant property (const char* name) const;
QList<QByteArray> propertyNames () const;
bool isValid () const;
int index () const;
ObjectDescription ();
ObjectDescription (int index, const QHash<QByteArray,QVariant>& properties);
};
// ObjectDescription
typedef Phonon::ObjectDescription<Phonon::AudioOutputDeviceType> AudioOutputDevice;
typedef Phonon::ObjectDescription<Phonon::AudioCaptureDeviceType> AudioCaptureDevice;
typedef Phonon::ObjectDescription<Phonon::VideoCaptureDeviceType> VideoCaptureDevice;
typedef Phonon::ObjectDescription<Phonon::EffectType> EffectDescription;
typedef Phonon::ObjectDescription<Phonon::AudioChannelType> AudioChannelDescription;
typedef Phonon::ObjectDescription<Phonon::SubtitleType> SubtitleDescription;
typedef QPair<QByteArray,QString> DeviceAccess;
typedef QList<QPair<QByteArray,QString>> DeviceAccessList;
// typedef QList<Phonon::DeviceAccess> DeviceAccessList;
class ObjectDescriptionData
{
%TypeHeaderCode
#include <phonon/objectdescription.h>
%End
public:
bool operator == (const Phonon::ObjectDescriptionData& otherDescription) const;
QString name () const;
QString description () const;
QVariant property (const char* name) const;
QList<QByteArray> propertyNames () const;
bool isValid () const;
int index () const;
static Phonon::ObjectDescriptionData* fromIndex (Phonon::ObjectDescriptionType type, int index);
~ObjectDescriptionData ();
//ig ObjectDescriptionData (ObjectDescriptionPrivate* = 0);
ObjectDescriptionData (int index, const QHash<QByteArray,QVariant>& properties);
};
void registerMetaTypes ();
};
// Phonon
/*
%MappedType QList<Phonon::ObjectDescription>
{
%TypeHeaderCode
#include <qlist.h>
%End
%ConvertFromTypeCode
// Create the list.
PyObject *l;
if ((l = PyList_New(sipCpp->size())) == NULL)
return NULL;
// Set the list elements.
for (int i = 0; i < sipCpp->size(); ++i)
{
DNSSD::RemoteService::Ptr *t = new Phonon::ObjectDescription (sipCpp->at(i));
PyObject *tobj;
if ((tobj = sipConvertFromNewInstance(t->data(), sipClass_DNSSD_RemoteService, sipTransferObj)) == NULL)
{
Py_DECREF(l);
delete t;
return NULL;
}
PyList_SET_ITEM(l, i, tobj);
}
return l;
%End
%ConvertToTypeCode
// Check the type if that is all that is required.
if (sipIsErr == NULL)
{
if (!PyList_Check(sipPy))
return 0;
for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, SIP_NOT_NONE))
return 0;
return 1;
}
QList<DNSSD::RemoteService::Ptr> *ql = new QList<DNSSD::RemoteService::Ptr>;
for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
{
int state;
DNSSD::RemoteService *t = reinterpret_cast<DNSSD::RemoteService *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_DNSSD_RemoteService, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
if (*sipIsErr)
{
sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
delete ql;
return 0;
}
DNSSD::RemoteService::Ptr *tptr = new DNSSD::RemoteService::Ptr (t);
ql->append(*tptr);
sipReleaseInstance(t, sipClass_DNSSD_RemoteService, state);
}
*sipCppPtr = ql;
return sipGetState(sipTransferObj);
%End
};
*/