Since nearly all programmable torch hardware doubles as camera flash
hardware, offer this class here that wraps the QCameraFlashControl.
Change-Id: Ib2c061c21c14221d67477d8a3fd89a76fc26ed71
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This code was including the qmacdefines_mac.h header from QtWidgets,
which has recently been removed. Using the header is no longer
necessary.
Note that the qmacdefines_mac.h contained a workaround for some mac
system headers declaring variables named `slots'. Replace that
workaround with the standard no_keywords method.
Change-Id: Icd47a562d64953692e50a9fea8bb4a9c8424375c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
There doesn't seem to be any reason for using the full path to subdirs
here. Using the full path is unconventional, and it causes the
makefile targets to be named after the full path to the subdir, which
is unnecessarily long and also unpredictable.
Change-Id: I88361b50a4814b5b063f6d84bc68ff6955af1960
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* lingering references to Mobility
* missing group tags on some classes meant they went missing
* put classes into functional groups as well (e.g. audio, camera)
* added some of the qdoc files to OTHER_FILES so they show up in Creator
There are still a lot of warnings since it seems like qdoc is not
processing the controls directory.
Change-Id: I036f8826ae63f8273b3e649cb32c091d964ce830
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This enables the expression of extra camera modes like
viewfinder only or capture during video recording.
Change-Id: Ie02fdeef5eb7fd6fc2f133c1afb0141e37c22b06
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
They aren't useful in the case of QtMultimedia{Kit}
Change-Id: If1b0b6625763c85907fb05beb9c440046472ddef
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Include the correct header file (it was renamed) and also remove
duplicate declaration.
Change-Id: I2683851e9fd0978427273c4739f47b54e1af743b
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Update headers from before 2011 that were missed in the previous commit.
Change-Id: Ib0fd91a39ffc57117fe01280e34519c3f914fac0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The QtMultimedia module should have version 5.0 to align with
Qt 5 in general. This change updates the version, but keeps
4.0 versions of the elements for compatability purposes.
Documentation and examples has also been updated to reflect
this version change.
Change-Id: Ica10c1a5ecc2c7233192a65e04ff77eb33a77e30
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Since it's not guaranteed that other Qt modules will be built by the
time qmake is run (and config.tests are created) we can't rely on
compilation. Just check the module.pri variable for widgets instead.
Change-Id: I352cf6427b748b89b69ec17588ce0dd83065090f
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
When multiple QSoundEffect instances play the same wav source file
simultaneously, the system would crash due to some instances not
waiting for the underlying pulse audio stream to complete its
setup logic. QSoundEffect now waits for the stream to attain the
correct state before playing the sound.
Change-Id: Ib5a1e6bc3f1cc314054f9cdc89c10100ad546721
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Not yet fully documented in QML - needs a bit of an overhaul first.
Change-Id: Ic11684858fb872d0b4dcedf60b390571371db252
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
It does use a config test for now, just to make it clearer. The Mac
backend currently requires widgets, but most of the others should work
without it (just not supporting QVideoWidget/WindowControl).
The QVideoDeviceControl interface was modified to remove the QIcon
usage - it was never implemented.
Unfortunately even the QML examples need widgets for the wrapper
application, and will need to be ported to QtGui based wrapper.
Change-Id: I8a55ad5cf09ab51749510bf16f49de0bd3f0bcdb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Added a re-implementation of QSound, using functionality derived from
QSoundEffect. QSound API remains the same as the original 4.x version.
It offers both a static interface (with auto resource cleanup on sound
completion), as well as an object instance interface for more detailed
control.
Change-Id: I85c00dd88547f8dea9b1e1ef2da31d2f2e28a172
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Adding hasAudio and hasVideo to MediaPlayer QML object to allow users
to determine whether the current media has audio and/or video
streams. Also adding notifies for when these properties change.
Change-Id: Ife7606e148f0c0ad558b4019c68c70973c199c08
Reviewed-by: Sergey Dubitskiy
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Modified handling of source update in gstreamervideorenderer as
the existing logic meant that it would never emit the readyChanged
signal.
Change-Id: I0a1488cfc151388fe0145d231001e502e9f45f0e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
The X11 buffer pool was using outdated APIs, and as the 'qpa'
configuration value is being removed, it caused the X11 code
to be pulled in, and therefore cause compilation failures.
Change-Id: I5fdaed854c6525716fccca44b5fbd0b850880cb9
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Since I get build failures due to other changes in lower modules.
Change-Id: Iac6a814071c019de25db52daf941185337fad14a
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
It's useful when video frame is accessed from multiple places
like display and encoding.
Change-Id: I8af175c780783216d8b7717cdf0744ad9bc95348
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Just uses an integer to represent the degrees rotation from standard.
Only supports multiples of 90 - other rotation can be done with
standard QML.
Change-Id: Id4013169c5d9da473b6e5be94ba341da21c2f2a3
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Don't keep the frame after it was uploaded to texture;
Upload frame data during rendering (in material shader updateState)
instead of updatePaintNode().
Change-Id: Ia6a4063bfa02d4d20f75735649fe4f777cf50494
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Otherwise the pulse client library dislikes having methods called
with a null context.
Change-Id: I96629065b7a0e36e0d10402526cb167e65458e27
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
It's necessary to release video frames during media pipeline shutdown
or reconfiguration.
Change-Id: I386ad4d173b8731f257ec9272ef8c46a27769bd0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Task-Number: QTBUG-22779
Some pulseaudio callback may happen after SoundEffect was deleted,
thus the userdata(SoundEffect point) we passed previously may
result in potential crash with QMetaObject::invokeMethod to queue some event.
To solve this problem, the release mehtod is added to SoundEffectPrivate,
and instead of calling d->deleteLater in SoundEffect::dtor,
d->release is called. So SoundEffectPrivate will no when it is going to
be deleted soon rather than handle everything in SoundEffectPrivate::dtor
which may be too late.
class RefObject is also added to be able to track the SoundEffectPrivate
status by pulseaduio callbacks. I thought this could be avoided by checking
the connection state of pulse stream. However, that doesn't work as expected,
stream state remains Ready when checked in callbacks even after disconnect
stream has been called. So RefObject is used instead and its lifecycle is
managed by an internal reference count.
When release is invoked,
m_ref->onDeleted is called first, this will mark SoundEffectPrivate as dead.
and then unloadPulseStream is called.
After those two invocations, we can be asured that:
1. if some pulse callbacks has been called without knowing
SoundEffectPrivate dead, the queued invocation on SoundEffectPrivate
would be safe, since SoundEffectPrivate::deleteLater would
be called after them.
2. Since on pulse callbacks would be executed when unloadPulseStream is called,
then at this moment if some pulse callbacks is called again, it would certainly
knows that SoundEffectPrivate is marked as dead and would not queue and
event on SoundEffectPrivate.
Now, the deleteLater can be safely called.
Change-Id: I807f29cddb677d1f4bc078fd306ed0d83d6f7dc4
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Causes entirely reasonable warnings from QCoreApplication::postEvents,
when calling deleteLater on a null pointer.
Change-Id: I5f1fa526b2d57844b9c0d2e634d434e2f7867bdf
Reviewed-by: Ling Hu <ling.hu@nokia.com>
(Cherry-picked from 663df44fc8563c548c26a7ae21927b09664c28f2)
Change-Id: I005071bc1a8b2eae4d0660042fc8986d61804c47
Reviewed-by: Michael Goddard
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>