Commit Graph

120 Commits

Author SHA1 Message Date
Lev Zelenskiy
23a81d62e7 Clean buffers before closing the input device.
Input device handle is invalid after waveInClose()
QTBUG-24119

Change-Id: I8276e56766684efd26b78dc019ff871ebac28408
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-27 08:11:59 +02:00
Lev Zelenskiy
4ebedcd158 Added support for big endian data to QAudioOutput win32 backend.
Convert data from big endian to little endian.
QTBUG-19881

Change-Id: If62a69b79c01d66536010b3326a86df8ca5f83b0
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-06-26 09:13:30 +02:00
Oswald Buddenhagen
631f3ab025 fix bogus conditional
this code meant (alsa && linux) || openbsd || freebsd, which is
presumably not what was meant.
but the os test seems rather pointless in the first place, so just
remove it.

Change-Id: I2591c9307ab9d6e821625b24797259ed60e9a082
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-06-25 10:40:03 +02:00
Oswald Buddenhagen
82ade38b11 switch to new-style configure tests
Change-Id: Ib56d0cb24065c1f990aee5d7f41bfedfe75332a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-25 10:40:03 +02:00
Michael Goddard
eb92be7ede Fix QAudioOutput volume on OSX.
Change-Id: I142ca638d3dc0839f7c5b103f03edac6715a0bb6
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-20 09:11:28 +02:00
Maurice Kalinowski
6d2883e7ed fix volume handling on Windows
volume handling for QAudioOutput is broken currently as it fallbacks to
the default implementation.
Need to cache the volume, as hWaveOut is invalid while the output is not
in active state.

Task-number: QTBUG-25454
Change-Id: I2adb28a5e6719a5d3c360553abd70af46b646080
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-20 00:30:57 +02:00
Thiago Macieira
4bbbffeebc QIODevice* is used, but QIODevice was never declared
After I made qpair.h no longer include qdatastream.h, which included
qiodevice.h.

Change-Id: Icae2b466e022d3394ce5cafceeb4ea6601f6d33f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-19 21:58:02 +02:00
Michael Goddard
6931cbb35a Fix a number of other qdoc issues.
* Several places needed the forward class declaration hack
* Missing/wrong minor version numbers on imports
* A few typos
* Any number of attempts to work around qdoc
* A few missing docs
* Tweaked soundeffect docs

Change-Id: I3c2ab998a11cbb0956712e0423e01fdb70f5bfff
Reviewed-by: Peter Yard <peter.yard@nokia.com>
Reviewed-by: Angus Cummings <angus.cummings@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-06-15 08:49:29 +02:00
Simon Hausmann
40a95ed42c Fix build on Windows with new qdatetime.h that doesn't redefine min/max
Windows system header files redefine min/max, unless NOMINMAX is defined.
In some cases we can simply include qt_windows.h, which does the trick,
in other cases including qt_windows.h produces different compilation
errors and it's simpler to just do the NOMINMAX trick.

Change-Id: I3cf81bab7c239363adfa274f158bdf999d1d3ecd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 12:19:17 +02:00
Michael Goddard
f5e3fdc4a7 Clarify documentation about QAudioDecoder::read and blocking.
It doesn't block - not safe to implement in all cases.  Applications
can implement blocking semantics based on their usage of event loops
or threads.

Change-Id: If9a6b1ae7014df63a43989c4940524bc5eaae383
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-13 05:53:50 +02:00
Angus Cummings
4000a180dd Fixing some doc errors for overview
Change-Id: Ic502abf295d402678bb28e68bfacc76ae05ee8ec
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-08 06:02:32 +02:00
Michael Goddard
f53788ae42 A number of documentation fixes.
* Remove references to private QMediaServiceProvider class and point
  new backend writers to irc/mailing lists
* Wrong or missing parameter names
* Fix a few links
* Correct a few property data types
* Various other things to keep qdoc happier

Change-Id: I5c8800d65c00f0783541afef35990bd3918acab7
Reviewed-by: Angus Cummings <angus.cummings@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Daniel Kovacic <daniel.kovacic@nokia.com>
2012-06-07 07:05:57 +02:00
Stephen Kelly
b93032a7df Use QPointer instead of QWeakPointer to track QObjects.
The latter is to be deprecated.

Change-Id: I01998be880feba0819a9bc51f9bec48fd4601789
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-07 02:17:22 +02:00
Lars Knoll
487010e579 Remove the last remainders of the old plugin system
Port the last two currently unused plugins (v4l and wmf) over to the new plugin
format.

Fix documentation that still mentioned Q_EXPORT_PLUGIN.

Change-Id: I18200dd792e8973687e92180fc41d11395b35132
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-05 12:44:29 +02:00
Angus Cummings
786ecd937c ensure important docs are built by the automated publisher
this workaround makes sure that qdoc can find the \class
and \namespace declarations.

Change-Id: I950e6fbc10064f438d7f282ff20783acdf20de27
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-01 07:25:57 +02:00
Angus Cummings
b96ca81108 Very minor C++ doc changes
Reordering some enum's so values are listed ascending
Replace 'The' with 'the' in some briefs

Change-Id: Ibc5042389687598ddaaf11e72acaa688b85fd4cf
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-16 06:14:30 +02:00
Angus Cummings
9e6d03584a Minor doc fixes for QML
renaming QML element to QML type
removing some \fn tags that were making the docs not build
some rewording
some new signal docs

Change-Id: I9b350dad1780276959aef4105e53b91082a6083e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-16 05:21:25 +02:00
Thiago Macieira
b2b92dad82 Change uses of {to,from}Ascii to {to,from}Latin1
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: Ic591779a3431999c007fb0ff362c7e25ce54097e
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-04 13:36:08 +02:00
Jonathan Liu
641474ab10 Fix MinGW-w64 compilation
Change-Id: I812b53e822947a9f85d6523722c6a4f9e57e0426
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-30 11:04:05 +02:00
Lev Zelenskiy
4d1579d37b QSampleCache: Add a method to check whether a sample is cached.
At the moment there is no way to tell whether a sample
returned by QSampleCache comes from cache.
This functionality is required for a unit test.

Change-Id: Ice23bb39b8e4f0a58b9297b46bb19b9a8c34b53c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-27 05:05:38 +02:00
Michael Goddard
d6cba78516 Fix a compiler warning.
Change-Id: If82ec145b9076c1418460fa4d59595e0a60e5a0f
Reviewed-by: Jun Zhu <jun.5.zhu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-27 05:05:35 +02:00
Michael Goddard
b2d581b42e Fix a possible stale pointer access if we can't connect to PulseAudio.
We free the mainloop but didn't check validity before calling lock or
unlock.  Also we might need to unlock the main loop before freeing
it in some other error cases.

Change-Id: Iadf1049324cdf37ca9841b82e53e33afdcba8cb2
Reviewed-by: Jun Zhu <jun.5.zhu@nokia.com>
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-27 05:05:32 +02:00
Lev Zelenskiy
cd5e90f00a Still need to count usage even when capacity is zero.
When the sample is removed we need to decrease sample cache usage,
even when capacity is set to zero.
Otherwise we're getting wrong usage after capacity is changed.

Change-Id: I38820c0f9441abec3086189698ec5a904e1e9b6f
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-25 04:04:59 +02:00
Lev Zelenskiy
c718043588 Do not try to complete flush operation if stream has changed.
There is a problem when sound effect already has a sound loaded and
we try to load new sound with setSource().
When sampleReady() is called between emptyStream() and emptyComplete()
it unloads the current stream and creates a new stream.
As a result pulse audio crashed in emptyComplete() while calling
pa_operation_unref(pa_stream_cork(
m_pulseStream, 1, stream_cork_callback, m_ref->getRef()))
with the new m_pulseStream.

Change-Id: Idff4fe6037d3f3f116734dc0facabaafa3db14a2
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-25 04:03:02 +02:00
Lev Zelenskiy
f1c4093f37 Disconnect probe control in case source was destroyed.
Change-Id: Ibc4583af8acf7d28ee2504f246840a26e3a527be
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-20 08:47:10 +02:00
Michael Goddard
5f7b64346d Expose the audio category information for streams.
QAudioOutput and QSoundEffect now have a category property so that
system volume mixing or processing can be applied.

Initially just pulseaudio supports this but Windows Vista etc should also
work.

Change-Id: I6855b08367e5a055ac7dfcffd644c98bfd7c5a4e
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-16 10:56:34 +02:00
Angus Cummings
e24f4fed53 expanding unit test for QAudioDecoder
Looking for feedback concerning:
implementation of the change
desired functionality of QAudioDecoder

Changed the behaviour of QAudioDecoder for
more sane error output

Change-Id: I82193a94b6fe1ef4202a4ac7bd95c607e0bee9c6
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-14 06:57:33 +02:00
Michael Goddard
e057fd9e8a Move QAudioDecoder to public.
To get better feedback between alpha & beta.

Change-Id: I3620825fb9c2bb9de69951cf1d583b191d62cb0d
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-04-11 03:32:00 +02:00
Michael Goddard
8484b0ff9c Fix a number of doc errors and warnings.
* Document a few missing classes/functions/methods
* Fix a number of QML snippets that wouldn't work as standalone snippets
* Add files to .pro so they show up in Creator..

Still the mysterious lack of controls dir documentation persists :/

Change-Id: I57162371a4d966e4db5bdb1b71d1baf9c0ca57c3
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-04-11 03:31:52 +02:00
Jonas Rabbe
c532850fd1 Updated a lot of minor fixes to the docs and removed warnings from qdoc
Change-Id: Ib7fd75fb93c038f9e8fa9d71b6ad01fb27b97622
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-05 03:54:02 +02:00
Thiago Macieira
45bd0d938e Rename the daemon global static to pulseDaemon
There's a daemon() function declared in unistd.h.

Change-Id: I1063e71248a5236a5bb6b8f10804c469c8d1f788
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-25 06:29:52 +02:00
Jonas Rabbe
7517dcca3b Updated IID, services, and controls to use qt-project URL
Instead of com.nokia.qt we should use org.qt-project.qt.
All the identifiers have also been updated to use pure lowercase, and
where used the version numbers have been updated to 5.0.

Change-Id: Ib209327f5205f5a086a5932394504a8a52e1f712
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-20 23:40:08 +01:00
Jonas Rabbe
a8ba6e3c7f Updated plugins to use new plugin architecture
Changed QMediaPluginLoader to use QFactoryLoader instead of QPluginLoader
and used metadata to get keys.
Removed QAudioPluginLoader and changed audio classes to use instead use
QMediaPluginLoader.
The plugins must include the Q_PLUGIN_METADATA macro, and no longer use
the Q_PLUGIN_EXPORT/Q_PLUGIN_EXPORT2 macros.
A json file has been added for each plugin which can contain metadata
which is available to the plugin loader before the plugin is actually
loaded, and is used to read the keys for the plugin, e.g. supported
services.
QFactoryInterface will be deprecated and has been removed from all
plugins.

Change-Id: I035b82f9c9c65717bebf704d560ea8f891df21da
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-20 23:39:45 +01:00
Casper van Donderen
d1b6bf5fac Remove the usage of deprecated qdoc macros.
QDoc now has support for Doxygen style commands for italics, bold
and list items. This change applies that change in QDoc to the
actual documentation.

Task-number: QTBUG-24578
Change-Id: Iec1c616e0d9a915a31a661916805916e19495dc9
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-02 04:02:43 +01:00
Lev Zelenskiy
0b8c6115cd Changes to QAudioBuffer and QAudioDecoder (position and duration).
QAudioBuffer:
- Allow to specify startTime in the constructor.
QAudioDecoder:
- Removed WaitingState.
- New signals: finished(), positionChanged(), durationChanged().
- New methods: position(), duration().
- A parameter removed from read() method.

Change-Id: Ifb71502d0756aa306abd0a6bf7873934029952c4
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-24 06:00:38 +01:00
Peter Yard
cd5a8fc69d Docs: fix qml links and standalone build for Multimedia
Change-Id: Ia3f1e49aef203911bb5cf1ee062c9100be213b38
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-22 04:07:09 +01:00
Michael Goddard
b9e2410a2a Fix QAudioBuffer sampleCount vs. channelCount.
There were some inconsistencies in when the sample count was per channel
or in total.  The docs mention that it is in total, so fix a few cases
where it went wrong and test it.

Change-Id: I55c855911fcde66a218d6cdd327e09ad5406d5a4
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-21 07:35:23 +01:00
Lev Zelenskiy
4c07c6330d Added QAudioDecoderControl::sourceChanged signal.
The signal is mentioned in QAudioDecoder but is missing from
QAudioDecoderControl.

Change-Id: I0cd13c53541585098edd02093858501ffb5af1fb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-17 07:27:51 +01:00
Michael Goddard
f538a3a8f8 Use a PA function to compare specs instead of memcmp.
Otherwise valgrind complains a lot.  Probably holes in the spec
structure.

Change-Id: I9580a73255820f49c0ac947eed1595a758f19ccd
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-02-17 07:27:42 +01:00
Lev Zelenskiy
32b68f17f5 Changes to media probing API.
Added flush signals.

Change-Id: I9c124317e843c9b9011e69c44649ae9a4e974161
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-10 00:57:47 +01:00
Michael Goddard
db781f29e0 Add some recent things to the overview docs.
Also clean up a few other doc related bits and pieces.

Change-Id: I56714e1811e38a7225131c1d141430b49f5f509c
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-09 01:33:18 +01:00
Michael Goddard
87ec3461c1 Add the audio decoder variant of QMediaPlayer.
Rather than the probe based way of doing it.  Initially private.

Change-Id: I30005f8da22f6451cb9de8eb3f0e193838d48c93
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-08 11:36:08 +01:00
Michael Goddard
66b86ba581 Add exports for probe classes.
Oops.

Change-Id: I2273ac6789d2eb1042aa1d4b6ec64dac1904ce55
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-07 13:22:20 +01:00
Michael Goddard
8b1f11b370 Add some media probing API.
Change-Id: Ib83918f99b699ac3fbc7ede82a392d00d4c18005
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-07 05:01:24 +01:00
Michael Goddard
3c4dcf00bb Add a QAudioBuffer class.
Prereq for probing or decoding.  The abstract API probably needs
to change.

Change-Id: Ie0bf796c1f581f34bbc0a8af2dffc387c513a330
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-06 23:18:56 +01:00
Michael Goddard
c0fd63d143 Documentation tweaks.
Mostly move widgets classes into the QtMultimediaWidgets module, but
also mark a few mostly internal playlist classes as \internal.  A few other
tweaks.

Change-Id: If0e376410bf2187cafb24f583108c6beb7b910a9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 07:45:05 +01:00
Michael Goddard
0d9a5cc5b3 Fix some warnings.
Change-Id: I2ea7f6f016d34490a41e4c9449cbc92bd040de49
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 06:32:03 +01:00
Ling Hu
809bbc35c6 Add AudioEngine with new implementation
Change-Id: I5eebe662ecbce9814ed3e763db56df9be737d11f
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 05:35:28 +01:00
Jason McDonald
5e801e2793 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I20e5215108c6ebd5f8474fed5c3665118e4791e6
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 07:08:05 +01:00
Michael Goddard
3b00730eca Add a volume (gain) property to QAudioInput.
Only implemented for PulseAudio so far, but the API does explain that
it's optional.

Change-Id: I4543a1c81d810fe92bb08f1ed13f3a3534a371e4
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-01-25 07:18:48 +01:00