From 75b41faff44a1488d88eca6e910d4b617cb42221 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 7 Oct 2009 13:28:25 +0200 Subject: Avoid adding a debug library to the glue projects, when debug_and_release The VCPROJ/SLN generator generates dependencies on the glue project, so the glue must use the correct library for the dependencies to be correct. The qtAddLibrary() would add the project 'default' to the glue, which could end up adding a debug lib to the glue, so the dependency checker wouldn't find the proper project. We therefore force qtAddLibrary to only add d/_debug if we're not using debug_and_release, or not in the glue part Reviewed-by: Rohan McGovern --- mkspecs/features/qt_functions.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 243a829..6322233 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -50,7 +50,7 @@ defineTest(qtAddLibrary) { INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE } isEmpty(LINKAGE) { - CONFIG(debug, debug|release) { + if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug } -- cgit v0.12 From 16e21cb0beb0e5f5189048b95d1cb74ae0c0702a Mon Sep 17 00:00:00 2001 From: Frans Englich Date: Wed, 7 Oct 2009 14:10:26 +0200 Subject: mediaplayer: crash in settings dialog. The MediaPlayer requires that an output device is available. Task-number: QTBUG-4755 Reviewed-by: Gareth Stockwell --- src/3rdparty/phonon/mmf/audiooutput.cpp | 26 +++++++++++++++++++------- src/3rdparty/phonon/mmf/audiooutput.h | 13 +++++++++---- src/3rdparty/phonon/mmf/backend.cpp | 18 ++++++++++++++---- 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/src/3rdparty/phonon/mmf/audiooutput.cpp b/src/3rdparty/phonon/mmf/audiooutput.cpp index 58e2f5e..5a00f60 100644 --- a/src/3rdparty/phonon/mmf/audiooutput.cpp +++ b/src/3rdparty/phonon/mmf/audiooutput.cpp @@ -18,6 +18,8 @@ along with this library. If not, see . #include +#include + #include "audiooutput.h" #include "defs.h" #include "mediaobject.h" @@ -74,16 +76,13 @@ void MMF::AudioOutput::setVolume(qreal volume) int MMF::AudioOutput::outputDevice() const { - return 0; -} - -bool MMF::AudioOutput::setOutputDevice(int) -{ - return true; + return AudioOutputDeviceID; } -bool MMF::AudioOutput::setOutputDevice(const Phonon::AudioOutputDevice &) +bool MMF::AudioOutput::setOutputDevice(int index) { + Q_ASSERT_X(index == AudioOutputDeviceID, Q_FUNC_INFO, + "We only support one output device, with id 0"); return true; } @@ -101,4 +100,17 @@ bool MMF::AudioOutput::activateOnMediaObject(MediaObject *mo) return true; } +QHash MMF::AudioOutput::audioOutputDescription(int index) +{ + if (index == AudioOutputDeviceID) { + QHash retval; + + retval.insert("name", QCoreApplication::translate("Phonon::MMF", "Audio Output")); + retval.insert("description", QCoreApplication::translate("Phonon::MMF", "The audio output device")); + retval.insert("available", true); + + return retval; + } +} + QT_END_NAMESPACE diff --git a/src/3rdparty/phonon/mmf/audiooutput.h b/src/3rdparty/phonon/mmf/audiooutput.h index 0a962a9..d0ba086 100644 --- a/src/3rdparty/phonon/mmf/audiooutput.h +++ b/src/3rdparty/phonon/mmf/audiooutput.h @@ -19,6 +19,8 @@ along with this library. If not, see . #ifndef PHONON_MMF_AUDIOOUTPUT_H #define PHONON_MMF_AUDIOOUTPUT_H +#include + #include "mmf_medianode.h" #include @@ -65,10 +67,12 @@ public: */ virtual bool setOutputDevice(int); - /** - * Has no effect. - */ - virtual bool setOutputDevice(const Phonon::AudioOutputDevice &); + static QHash audioOutputDescription(int index); + + enum Constants + { + AudioOutputDeviceID = 0 + }; protected: virtual bool activateOnMediaObject(MediaObject *mo); @@ -78,6 +82,7 @@ Q_SIGNALS: void audioDeviceFailed(); private: + void setVolumeObserver(VolumeObserver* observer); qreal m_volume; diff --git a/src/3rdparty/phonon/mmf/backend.cpp b/src/3rdparty/phonon/mmf/backend.cpp index be43f46..f542ec9 100644 --- a/src/3rdparty/phonon/mmf/backend.cpp +++ b/src/3rdparty/phonon/mmf/backend.cpp @@ -107,6 +107,12 @@ QList Backend::objectDescriptionIndexes(ObjectDescriptionType type) const { case EffectType: retval.append(EffectFactory::effectIndexes()); + break; + case AudioOutputDeviceType: + // We only have one possible output device, but we need at least + // one. + retval.append(AudioOutput::AudioOutputDeviceID); + break; default: ; } @@ -119,10 +125,14 @@ QHash Backend::objectDescriptionProperties(ObjectDescripti { TRACE_CONTEXT(Backend::connectNodes, EBackend); - if (type == EffectType) - return EffectFactory::audioEffectDescriptions(AbstractAudioEffect::Type(index)); - else - return QHash(); + switch (type) { + case EffectType: + return EffectFactory::audioEffectDescriptions(AbstractAudioEffect::Type(index)); + case AudioOutputDeviceType: + return AudioOutput::audioOutputDescription(index); + default: + return QHash(); + } } bool Backend::startConnectionChange(QSet) -- cgit v0.12 From 350f97874544396a99cf82b47eb9a6e50838a88a Mon Sep 17 00:00:00 2001 From: Frans Englich Date: Wed, 7 Oct 2009 14:29:06 +0200 Subject: Use QScopedPointer for AudioPlayer's CPlayerType. Reviewed-by: Gareth Stockwell --- src/3rdparty/phonon/mmf/audioplayer.cpp | 9 +++------ src/3rdparty/phonon/mmf/audioplayer.h | 5 ++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/3rdparty/phonon/mmf/audioplayer.cpp b/src/3rdparty/phonon/mmf/audioplayer.cpp index 6c1fc68..ceaf305 100644 --- a/src/3rdparty/phonon/mmf/audioplayer.cpp +++ b/src/3rdparty/phonon/mmf/audioplayer.cpp @@ -34,14 +34,13 @@ using namespace Phonon::MMF; // Constructor / destructor //----------------------------------------------------------------------------- -MMF::AudioPlayer::AudioPlayer() : m_player(0) +MMF::AudioPlayer::AudioPlayer() { construct(); } MMF::AudioPlayer::AudioPlayer(const AbstractPlayer& player) : AbstractMediaPlayer(player) - , m_player(0) { construct(); } @@ -51,7 +50,7 @@ void MMF::AudioPlayer::construct() TRACE_CONTEXT(AudioPlayer::AudioPlayer, EAudioApi); TRACE_ENTRY_0(); - TRAPD(err, m_player = CPlayerType::NewL(*this, 0, EMdaPriorityPreferenceNone)); + TRAPD(err, m_player.reset(CPlayerType::NewL(*this, 0, EMdaPriorityPreferenceNone))); if (KErrNone != err) { changeState(ErrorState); } @@ -64,8 +63,6 @@ MMF::AudioPlayer::~AudioPlayer() TRACE_CONTEXT(AudioPlayer::~AudioPlayer, EAudioApi); TRACE_ENTRY_0(); - delete m_player; - TRACE_EXIT_0(); } @@ -237,7 +234,7 @@ void MMF::AudioPlayer::MapcPlayComplete(TInt aError) CPlayerType *MMF::AudioPlayer::player() const { - return m_player; + return m_player.data(); } diff --git a/src/3rdparty/phonon/mmf/audioplayer.h b/src/3rdparty/phonon/mmf/audioplayer.h index f16de1d..60ef436 100644 --- a/src/3rdparty/phonon/mmf/audioplayer.h +++ b/src/3rdparty/phonon/mmf/audioplayer.h @@ -86,6 +86,9 @@ public: virtual void MapcPlayComplete(TInt aError); #endif + /** + * This class owns the pointer. + */ CPlayerType *player() const; private: @@ -96,7 +99,7 @@ private: * Using CPlayerType typedef in order to be able to easily switch between * CMdaAudioPlayerUtility and CDrmPlayerUtility */ - CPlayerType* m_player; + QScopedPointer m_player; }; } } -- cgit v0.12