aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-05-24 15:47:57 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-05-24 16:00:33 -0300
commit92a07a7a15394b3f0a01004988d6025e7c8f1e9e (patch)
tree1b8412f2b105f93d20231bc9f68cd41155ee66d5
parent4c3a4cc91fc3dc4b4cadeff5a423ff93624b83de (diff)
QtMultimedia bindings.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>, Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r--PySide/QtMultimedia/CMakeLists.txt7
-rw-r--r--PySide/QtMultimedia/typesystem_multimedia.xml96
-rw-r--r--tests/qtmultimedia/audio_test.py32
3 files changed, 117 insertions, 18 deletions
diff --git a/PySide/QtMultimedia/CMakeLists.txt b/PySide/QtMultimedia/CMakeLists.txt
index 7846f2c82..cbf0b6f33 100644
--- a/PySide/QtMultimedia/CMakeLists.txt
+++ b/PySide/QtMultimedia/CMakeLists.txt
@@ -3,13 +3,18 @@ project(QtMultimedia)
set(QtMultimedia_SRC
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudio_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qabstractvideobuffer_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudioenginefactoryinterface_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qvideosurfaceformat_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qabstractvideosurface_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudiodeviceinfo_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qabstractaudiodeviceinfo_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qabstractaudiooutput_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qabstractaudioinput_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudioengineplugin_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudioformat_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudioinput_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qaudiooutput_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qvideoframe_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qvideosurfaceformat_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMultimedia/qtmultimedia_module_wrapper.cpp
)
diff --git a/PySide/QtMultimedia/typesystem_multimedia.xml b/PySide/QtMultimedia/typesystem_multimedia.xml
index e7ff202d1..1786e7073 100644
--- a/PySide/QtMultimedia/typesystem_multimedia.xml
+++ b/PySide/QtMultimedia/typesystem_multimedia.xml
@@ -19,6 +19,7 @@
<enum-type name="QVideoSurfaceFormat::Direction"/>
<enum-type name="QVideoSurfaceFormat::YCbCrColorSpace"/>
+ <value-type name="QVideoSurfaceFormat"/>
<object-type name="QAbstractVideoBuffer">
<modify-function signature="map(QAbstractVideoBuffer::MapMode, int*, int*)">
<modify-argument index="0">
@@ -35,28 +36,89 @@
</inject-code>
</modify-function>
</object-type>
+ <object-type name="QAbstractVideoSurface"/>
+ <object-type name="QVideoFrame"/>
+
+ <value-type name="QAudioFormat"/>
+ <value-type name="QAudioDeviceInfo"/>
+ <object-type name="QAbstractAudioDeviceInfo"/>
- <object-type name="QVideoSurfaceFormat"/>
- <object-type name="QAbstractVideoSurface">
- <modify-function signature="nearestFormat(const QVideoSurfaceFormat&amp;)const" remove="all"/>
- <modify-function signature="surfaceFormat()const" remove="all"/>
+ <object-type name="QAbstractAudioOutput">
+ <modify-function signature="start(QIODevice *)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
- <object-type name="QAudioDeviceInfo">
- <modify-function signature="defaultInputDevice()" remove="all"/>
- <modify-function signature="defaultOutputDevice()" remove="all"/>
- <modify-function signature="nearestFormat(const QAudioFormat&amp;)const" remove="all"/>
- <modify-function signature="preferredFormat()const" remove="all"/>
- <modify-function signature="availableDevices(QAudio::Mode)" remove="all"/>
+
+ <object-type name="QAbstractAudioInput">
+ <modify-function signature="start(QIODevice *)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
- <value-type name="QAudioFormat"/>
- <!-- TODO TESTCASE start() check reference-count -->
+
+ <object-type name="QAudioEnginePlugin">
+ <modify-function signature="createInput(const QByteArray&amp;, const QAudioFormat&amp;)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="createOutput(const QByteArray&amp;, const QAudioFormat&amp;)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="createDeviceInfo(const QByteArray&amp;, QAudio::Mode)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+
+ <object-type name="QAudioEngineFactoryInterface">
+ <modify-function signature="createInput(const QByteArray&amp;, const QAudioFormat&amp;)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="createOutput(const QByteArray&amp;, const QAudioFormat&amp;)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="createDeviceInfo(const QByteArray&amp;, QAudio::Mode)">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="default"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+
<object-type name="QAudioInput">
- <modify-function signature="format()const" remove="all"/>
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
- <!-- TODO TESTCASE start() check reference-count -->
+
<object-type name="QAudioOutput">
- <modify-function signature="format()const" remove="all"/>
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
</object-type>
- <!-- TODO TESTCASE don't increment the reference count of the video buffer -->
- <object-type name="QVideoFrame"/>
+
</typesystem>
diff --git a/tests/qtmultimedia/audio_test.py b/tests/qtmultimedia/audio_test.py
new file mode 100644
index 000000000..04d0a1e05
--- /dev/null
+++ b/tests/qtmultimedia/audio_test.py
@@ -0,0 +1,32 @@
+
+'''Test cases for QHttp'''
+
+import unittest
+
+from PySide.QtCore import *
+from PySide.QtMultimedia import *
+
+class testAudioDevices(unittest.TestCase):
+
+ def testListDevices(self):
+ for devInfo in QAudioDeviceInfo.availableDevices(QAudio.AudioOutput):
+ fmt = QAudioFormat()
+ for codec in devInfo.supportedCodecs():
+ fmt.setCodec(codec)
+ for frequency in devInfo.supportedFrequencies():
+ fmt.setFrequency(frequency)
+ for channels in devInfo.supportedChannels():
+ fmt.setChannels(channels)
+ for sampleType in devInfo.supportedSampleTypes():
+ fmt.setSampleType(sampleType)
+ for sampleSize in devInfo.supportedSampleSizes():
+ fmt.setSampleSize(sampleSize)
+ for endian in devInfo.supportedByteOrders():
+ fmt.setByteOrder(endian)
+ if devInfo.isFormatSupported(fmt):
+ return
+ self.assert_(False)
+
+
+if __name__ == '__main__':
+ unittest.main()