summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon
Commit message (Collapse)AuthorAgeFilesLines
...
| * Implemented stereo widening effect in Phonon MMF backendGareth Stockwell2010-01-113-1/+161
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Implemented reverb effect in Phonon MMF backendGareth Stockwell2010-01-115-2/+283
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Implemented loudness effect in Phonon MMF backendGareth Stockwell2010-01-113-0/+146
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Implemented bass boost in Phonon MMF backendGareth Stockwell2010-01-115-11/+42
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Refactored AbstractAudioEffect to reduce redundancy in derived classesGareth Stockwell2010-01-116-41/+37
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Removed unnecessary check in Phonon MMF backendGareth Stockwell2010-01-111-5/+3
| | | | | | | | | | | | | | | | This pointer is guaranteed not to be null by the check in AbstractAudioEffect::setParameterValue. Task-number: QTBUG-4659 Reviewed-by: trustme
| * Added a macro to reduce boilerplate code in Phonon MMF backendGareth Stockwell2010-01-115-17/+35
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Removed dependency of EffectFactory on native effect headersGareth Stockwell2010-01-116-60/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By refactoring the static capabilities / parameters interface exposed by AbstractAudioEffect-derived classes to the EffectFactory, the latter's implementation no longer needs access to the headers for native effect classes. Previously, during the initialization phase, the EffectFactory tried to create an instance of each native effect class, in order to determine whether that effect is supported. This is now done inside the backend class for each effect, thereby improving encapsulation. Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Delayed creation of audio effect object until audio is initializedGareth Stockwell2010-01-118-23/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When applying effects to an audio stream, we must ensure that the MMF utility API (CMdaAudioPlayerUtility or CVideoPlayerUtility) instance has loaded a controller before calling attempting to create a CAudioEffect- derived object. If the controller has not been loaded, construction of the effect object will fail. Even if we mitigate against this, calling CAudioEffect::ApplyL() will only have an effect if there is a controller object - or more precisely, a DevSound instance - on which to apply the effect. This patch delays construction of the effect object until the MediaObject has transitioned out of the LoadingState, indicating that an underlying DevSound instance will have been created. Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Modified effect parameter handling to improve user experienceGareth Stockwell2010-01-118-23/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is to work around a limitation in the Phonon::EffectWidget class. This widget only displays sliders for parameters with numeric values if the variant type of the parameter is QReal and the range is exactly -1.0 to +1.0; otherwise, a spinbox is displayed. This is rather inconvenient for many effects, such as the audio equalizer, for which a slider is a much more natural UI control. The MMF backend therefore reports the type of numeric parameters to be QReal, and the range to be -1.0 to +1.0. Internally, the integer range for the parameter is stored. Changes to the parameter value are converted from the client-side, floating point representation to the internal, integer representation. Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Added comments to clarify usage of Phonon::EffectParameter APIGareth Stockwell2010-01-111-8/+9
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: trustme
| * Shortened description of audio equalizer bandsGareth Stockwell2010-01-111-1/+1
| | | | | | | | | | | | | | | | This improves the small-screen layout of the equalizer configuration dialog. Task-number: QTBUG-4659 Reviewed-by: trustme
| * Implemented audio effects capability querying in Phonon MMF backendGareth Stockwell2010-01-0810-132/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch addresses the following deficiencies in the existing implementation of audio effects: 1. Native effect objects (e.g. CAudioEqualizer, CBassBoost etc) were created frequently, just in order to check whether a given effect is supported, or retrieve the list of parameters which it requires. Although this is in part due to a deficiency in the S60 audio effects API (it doesn't have a 'capability query' concept), it can be improved by using caching. This patch introduces a singleton EffectFactory object, which lazily initializes a data structure containing information about support and parameters. 2. In order to either query effect support, the native effect object ultimately needs to access a DevSound instance. Previously, the effect object was provided with a CMdaAudioPlayerUtility object. If this player utility has not loaded an MMF controller plugin *before* the effects object makes any calls to the player utility, incorrect results will be returned. This was observed in the previous code. For querying, we don't actually need to load an MMF controller; instead, we would like to directly provide a CMMFDevSound instance to the effect object. Unfortunately, this API is not available in public S60 SDKs, so we must use the next lowest interface available, namely CMdaAudioOutputStream. By making this change, this patch ensures that support and parameter queries made via the EffectFactory will return the correct result. At this point, however, effect settings made via the Phonon API are not actually applied to the audio output. Fixing this will require notifying the audio effects backend nodes of state changes in the MediaObject. Task-number: QTBUG-4659 Reviewed-by: Espen Riskedal
| * Corrected parameter name ordering in internal Phonon MMF function signaturesGareth Stockwell2010-01-082-4/+4
| | | | | | | | | | | | | | | | Some instances of the changeState signal declaration had the newState and oldState parameters in the wrong order. While this has no effect on the behaviour of the code, it can be confusing to developers reading it. Reviewed-by: trustme
| * Fixed typo in Phonon::EffectWidget implementationGareth Stockwell2010-01-081-1/+1
| | | | | | | | | | Task-number: QTBUG-4659 Reviewed-by: trustme
* | Merge branch '4.6'Thiago Macieira2010-01-1229-501/+837
|\ \ | |/
| * Fixed build breakage on S60 3.1 due to audio effects changesGareth Stockwell2010-01-086-31/+10
| | | | | | | | | | | | | | | | Removed calls to the video overload of the audio effect constructors, e.g. CAudioEqualizer::NewL(VideoPlayerUtility&) Task-number: QTBUG-7223 Reviewed-by: trustme
| * Implemented node disconnection in Phonon MMF backendGareth Stockwell2009-12-0820-194/+348
| | | | | | | | | | Task-number: QTBUG-4663 Reviewed-by: Frans Englich
| * Removed dead code from Phonon MMF backendGareth Stockwell2009-12-081-12/+2
| | | | | | | | | | | | | | | | | | The following source types are handled in MediaObject::createPlayer Invalid, Disc, Stream, Empty The code removed in this patch is therefore never executed. Reviewed-by: Frans Englich
| * Re-emit prefinishMarkReached and aboutToFinish if rewound back past mark.Gareth Stockwell2009-12-082-2/+25
| | | | | | | | | | Task-number: QTBUG-6214 Reviewed-by: Frans Englich
| * Implemented support for playlist handling in Phonon MMF backendGareth Stockwell2009-12-0812-170/+129
| | | | | | | | | | | | | | | | | | | | The main changes are: 1. MediaObject emits prefinishMark at the appropriate instant 2. MediaObject emits aboutToFinish at the appropriate instant 3. MediaObject switches to next source when playback completes Task-number: QTBUG-6214 Reviewed-by: Frans Englich
| * Changed call sequence of seeking in Phonon MMF backend, for streamingGareth Stockwell2009-12-082-19/+11
| | | | | | | | | | | | | | | | | | | | | | | | Modified the sequence of calls made to the MMF APIs when seeking during ongoing playback. This fixes a bug found during early testing of streaming playback, whereby playback would not resume following the seeking operation. This was due to an interaction between the pause / seek / play operations, and the buffering callbacks received from the MMF, which caused the backend to enter an incorrect state. Task-number: QTBUG-4660 Reviewed-by: Frans Englich
| * Implemented buffer status notifications in Phonon MMF backendGareth Stockwell2009-12-089-62/+162
| | | | | | | | | | | | | | | | | | | | | | | | When clips are buffering (either at the start of playback, or during playback, when buffer levels drop due to e.g. CPU, file system or network load), the backend receives notification from the MMF. While buffering is ongoing, the backend periodically queries the filling status and emits a signal. Task-number: QTBUG-4660 Reviewed-by: Frans Englich
| * Added support for streaming playback to Phonon MMF backendGareth Stockwell2009-12-088-6/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because the MIME type of the stream cannot always be deduced from the URL, we assume that it is a video stream. This is based on the assumption that the video controllers will be capable of parsing the container formats for audio-only, as well as video clips. Note that this assumption may not hold on all devices. Note that most implementations of the MMF client APIs do not support HTTP streaming (a.k.a. progressive download). The backend has therefore only been tested with RTSP streams - see the JIRA entry for further details. Task-number: QTBUG-4660 Reviewed-by: Frans Englich
| * Merge branch 'mmfphonon' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Gareth Stockwell2009-12-082-34/+34
| |\ | | | | | | | | | mmfphonon
| | * Symbian: More i18n strings work.Frans Englich2009-12-072-34/+34
| | | | | | | | | | | | | | | | | | | | | | | | * Consistently capitalize error sentences * Simplify & fix code/documentation. Task-number: QTBUG-4994 Reviewed-by: TrustMe
| * | Phonon MMF: leaves during object construction throw exceptionsGareth Stockwell2009-12-082-9/+7
| | | | | | | | | | | | Reviewed-by: Frans Englich
| * | Removed stale TODO comments from Phonon MMF backendGareth Stockwell2009-12-083-4/+1
| |/ | | | | | | Reviewed-by: Frans Englich
| * Fixed bug which caused Phonon backend error messages to be suppressedGareth Stockwell2009-12-022-6/+7
| | | | | | | | | | | | | | | | | | | | | | When the mediaplayer receives a state change into the ErrorState, it calls pause() on the media object. Previously, this caused the backend to transition into PausedState. When the mediaplayer subsequently called errorString() to retrieve the error message, an empty string was returned because the backend was no longer in the ErrorState. Task-number: QTBUG-4994 Reviewed-by: trustme
| * Added error strings to Phonon MMF backendGareth Stockwell2009-12-028-51/+170
| | | | | | | | | | | | | | | | | | | | Note that changing Utils from a namespace into a class, and then using Q_DECLARE_TR_FUNCTIONS in the class declaration, was necessary in order to be able to call tr(...) from the implementation of Utils::symbianErrorToString. Task-number: QTBUG-4994 Reviewed-by: Oswald Buddenhagen
* | Merge branch '4.6'Thiago Macieira2009-12-025-11/+100
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/gui/dialogs/qfiledialog_win.cpp src/plugins/qpluginbase.pri src/qbase.pri tests/auto/selftests/expected_cmptest.txt tests/auto/selftests/expected_crashes_3.txt tests/auto/selftests/expected_longstring.txt tests/auto/selftests/expected_maxwarnings.txt tests/auto/selftests/expected_skip.txt tools/assistant/tools/assistant/doc/assistant.qdocconf tools/qdoc3/test/assistant.qdocconf tools/qdoc3/test/designer.qdocconf tools/qdoc3/test/linguist.qdocconf tools/qdoc3/test/qmake.qdocconf tools/qdoc3/test/qt-build-docs.qdocconf tools/qdoc3/test/qt.qdocconf
| * Clip video rect to physical screen dimensionsGareth Stockwell2009-11-261-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The CVideoPlayerUtility API requires both a native window handle and an absolute screen rectangle in order to define the location of the rendered video output. On certain devices, such as the Nokia E75, which runs S60 3.2, if the absolute rectangle extends outside the physical screen extent, no video is rendered. This change works around this defect in the platform by clipping the video rectangle to the physical screen extent. Task-number: QTBUG-5467 Reviewed-by: trustme
| * Tidied up logic of retrieving video window in Phonon MMF backendGareth Stockwell2009-11-261-2/+1
| | | | | | | | | | Task-number: QTBUG-5467 Reviewed-by: trustme
| * Suspend DSA while drawing is in progressGareth Stockwell2009-11-264-1/+85
| | | | | | | | | | | | | | | | | | In order to prevent flicker or - on some versions of the platform - video disappearing from the screen altogether, the video controller's DSA session must be suspended while the window control is redrawn. Task-number: QTBUG-5467 Reviewed-by: Jason Barron
| * Changed video widget native paint mode to zero-fill native windowGareth Stockwell2009-11-262-7/+2
| | | | | | | | | | | | | | | | | | Certain S60 video stacks require the screen region in which video will be rendered to be painted with a zero brush (opaque black for EColor16MU displays; transparent black for EColor16MA / EColor16MAP). Task-number: QTBUG-5467 Reviewed-by: Jason Barron
* | Merge branch '4.6'Thiago Macieira2009-11-2540-499/+501
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/src/modules.qdoc examples/assistant/simpletextviewer/findfiledialog.cpp examples/webkit/fancybrowser/mainwindow.cpp src/gui/widgets/qtabbar.cpp src/gui/widgets/qtabbar_p.h tests/auto/qpixmap/tst_qpixmap.cpp tools/assistant/compat/helpdialog.cpp tools/assistant/compat/tabbedbrowser.cpp translations/translations.pri
| * Fix for compile error in Phonon MMF backendGareth Stockwell2009-11-196-58/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was introduced by d0b0b525de. The use of QT_NO_DEBUG macros causes release-armv5 builds to fail when the -release option is passed to configure. This change causes the debugging code (ObjectDump and related classes) to be included in release builds, although these functions are not executed. This is a temporary fix; task QTBUG-6012 has been created for re-removing this code from release builds. Reviewed-by: Frans Englich
| * Merge oslo-staging-2/4.6 into upstream/4.6Olivier Goffart2009-11-197-23/+23
| |\
| | * Ran the script utils/normalizeOlivier Goffart2009-11-187-23/+23
| | | | | | | | | | | | Over src/ tools/ examples/ and demos/
| * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Justin McPherson2009-11-1732-422/+453
| |\ \ | | |/
| | * Merge commit 's60/4.6' into mmfphononFrans Englich2009-11-16100-153/+267
| | |\
| | | * Merge commit upstream/4.6 into oslo-staging-2/4.6Olivier Goffart2009-11-1399-146/+249
| | | |\
| | | * | Fix QT_NO_PHONON_SETTINGSGROUPJørgen Lind2009-11-123-4/+14
| | | | | | | | | | | | | | | | | | | | Reviewed-by: paul
| | | * | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into ↵axis2009-11-123-5/+22
| | | |\ \ | | | | | | | | | | | | | | | | | | 4.6-staging2
| | | | * \ Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Shane Kearns2009-11-101-1/+1
| | | | |\ \
| | * | | \ \ Merge branch '4.6' into mmfphononFrans Englich2009-11-164-6/+28
| | |\ \ \ \ \ | | | | |/ / / | | | |/| | |
| | | * | | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-11-091-1/+6
| | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qblendfunctions.cpp
| | | * | | | | Fix qdoc errors in the MMF Phonon backend.Frans Englich2009-11-063-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-5355 Reviewed-by: TrustMe
| | * | | | | | Implemented aspect ratio and scale mode handling in Phonon MMF backendGareth Stockwell2009-11-1317-337/+380
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replaced VolumeObserver and VideoOutputObserver interfaces with signals. - Added signals for propagating changes in aspect ratio and scale mode from VideoOutput to VideoPlayer. - Removed VideoPlayer::getNativeWindowSystemHandles. Interaction with window system is moved into VideoOutput, so that VideoPlayer is better focussed on its main task: interacting with CVideoPlayerUtility. - WId changes, resize and move events received by the VideoOutput widget cause it to emit a videoWindowChanged signal. This is received by the VideoPlayer, which triggers a call to updateVideoRect. The main task of this function is to calculate the scale factors which are provided to the MMF via CVideoPlayerUtility::SetScaleFactorL. Note that: i) This function must be called both before and after the call to SetDisplayWindowL. For changes in aspect ratio or scale mode, setting the scale mode after updating the display window is sufficient. However, testing showed that, when switching in or out of full-screen mode, two calls were necessary in order to preserve the correct aspect ratio. ii) The screen rectangle passed to the MMF is still the full window extent; it is not the region in which video will actually be rendered. The post-processor will fill in the remainder of the window with a background colour (typically black). If, on the other hand, we passed in the actual video display rectangle, we would need to do this background painting in the widget. This in turn would require a change to QtGui: at present, we can only disable blitting on a per-widget basis (by setting QWExtra::disableBlit). If we needed to paint the borders of the video window, disableBlit would need to contain the actual DSA region, rather than just a single boolean flag. Task-number: QTBUG-5585 Reviewed-by: Frans Englich
| | * | | | | | Allowed execution of pause command when backend is in error stateGareth Stockwell2009-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When qmediaplayer receives a stateChanged(ErrorState) signal, it first displays a dialog, and then calls pause() on the media object. This change allows that pause command to be executed on the underlying MMF client API. Reviewed-by: Frans Englich