diff options
author | Gareth Stockwell <ext-gareth.stockwell@nokia.com> | 2011-11-18 14:31:47 +0000 |
---|---|---|
committer | Gareth Stockwell <ext-gareth.stockwell@nokia.com> | 2011-11-25 16:43:34 +0000 |
commit | efa3f329b23b513b30cc4cd7c8f283076cc153a7 (patch) | |
tree | 171baa2e1d7b42f060045c952cdc2115634e9a06 /plugins | |
parent | c937a3c395441eb1da825fe15894e316c90e2464 (diff) |
Code clean up in Symbian MMF backend
No functional changes
* Qt code style fixes
* Correct whitespace
* Indenting
* Space around parentheses and operators
* Removed excessive blank lines
* Correct brace placement
* Moved S60MediaSettings class into its own file
* Moved some function implementations out of line
* Removed uninformative API doc comments
* Replaced use of Symbian TBool values (ETrue/EFalse) and macros (TRUE/FALSE) with true/false
* Replaced use of NULL with 0
* Removed unnecessary #include directives
* Changed some helpers from member to free functions
Reviewed-by: TrustMe
Diffstat (limited to 'plugins')
53 files changed, 915 insertions, 1896 deletions
diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.cpp index 39db63de4f..d8032cc49a 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.cpp @@ -47,15 +47,14 @@ #include "s60audiocontainercontrol.h" #include "s60mmtrace.h" -S60AudioCaptureService::S60AudioCaptureService(QObject *parent): - QMediaService(parent) +S60AudioCaptureService::S60AudioCaptureService(QObject *parent) + : QMediaService(parent) { TRACE("S60AudioCaptureService::S60AudioCaptureService" << qtThisPtr()); - m_session = new S60AudioCaptureSession(this); - m_encoderControl = new S60AudioEncoderControl(m_session,this); - m_recorderControl = new S60AudioMediaRecorderControl(m_session,this); - m_endpointSelector = new S60AudioEndpointSelector(m_session,this); + m_encoderControl = new S60AudioEncoderControl(m_session, this); + m_recorderControl = new S60AudioMediaRecorderControl(m_session, this); + m_endpointSelector = new S60AudioEndpointSelector(m_session, this); m_containerControl = new S60AudioContainerControl(m_session, this); } @@ -67,22 +66,16 @@ S60AudioCaptureService::~S60AudioCaptureService() QMediaControl *S60AudioCaptureService::requestControl(const char *name) { QMediaControl *result = 0; - if (qstrcmp(name,QMediaRecorderControl_iid) == 0) result = m_recorderControl; - if (qstrcmp(name,QAudioEncoderControl_iid) == 0) result = m_encoderControl; - if (qstrcmp(name,QAudioEndpointSelector_iid) == 0) result = m_endpointSelector; - if (qstrcmp(name,QMediaContainerControl_iid) == 0) result = m_containerControl; - TRACE("S60AudioCaptureService::requestControl" << qtThisPtr() << "name" << name << "result" << result); - return result; } @@ -90,6 +83,5 @@ void S60AudioCaptureService::releaseControl(QMediaControl *control) { TRACE("S60AudioCaptureService::releaseControl" << qtThisPtr() << "control" << control); - Q_UNUSED(control) } diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.h b/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.h index 040f97d297..3a36e7d6c8 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocaptureservice.h @@ -43,7 +43,6 @@ #define S60AUDIOCAPTURESERVICE_H #include <QtCore/qobject.h> - #include <qmediaservice.h> QT_USE_NAMESPACE @@ -54,7 +53,6 @@ class S60AudioMediaRecorderControl; class S60AudioEndpointSelector; class S60AudioContainerControl; - class S60AudioCaptureService : public QMediaService { Q_OBJECT @@ -64,6 +62,7 @@ public: QMediaControl *requestControl(const char *name); void releaseControl(QMediaControl *control); + private: S60AudioCaptureSession *m_session; S60AudioEncoderControl *m_encoderControl; diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.cpp index bb7c1d73c9..f653ed96f5 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.cpp @@ -43,7 +43,6 @@ #include "s60mmtrace.h" #include <QtCore/qurl.h> #include <QDir> - #include <mda/common/audio.h> #include <mda/common/resource.h> #include <mda/client/utility.h> @@ -60,9 +59,9 @@ const QString S60AudioCaptureSession::voiceCall("Voice Call"); const QString S60AudioCaptureSession::fmRadio("FM Radio"); #endif -S60AudioCaptureSession::S60AudioCaptureSession(QObject *parent): - QObject(parent) - , m_recorderUtility(NULL) +S60AudioCaptureSession::S60AudioCaptureSession(QObject *parent) + : QObject(parent) + , m_recorderUtility(0) , m_captureState(ENotInitialized) , m_controllerIdMap(QHash<QString, ControllerData>()) , m_audioCodeclist(QHash<QString, CodecData>()) @@ -71,8 +70,8 @@ S60AudioCaptureSession::S60AudioCaptureSession(QObject *parent): { TRACE("S60AudioCaptureSession::S60AudioCaptureSession" << qtThisPtr()); #ifdef AUDIOINPUT_ROUTING - m_audioInput = NULL; - m_setActiveEndPoint = FALSE; + m_audioInput = 0; + m_setActiveEndPoint = false; m_audioEndpoint = S60AudioCaptureSession::microPhone; #endif //AUDIOINPUT_ROUTING TRAPD(err, initializeSessionL()); @@ -143,7 +142,6 @@ QMediaRecorder::Error S60AudioCaptureSession::fromSymbianErrorToMultimediaError( S60AudioCaptureSession::~S60AudioCaptureSession() { TRACE("S60AudioCaptureSession::~S60AudioCaptureSession" << qtThisPtr()); - //stop the utility before deleting it stop(); if (m_recorderUtility) delete m_recorderUtility; @@ -220,9 +218,8 @@ bool S60AudioCaptureSession::setAudioCodec(const QString &codecName) { TRACE("S60AudioCaptureSession::setAudioCodec" << qtThisPtr() << "codec" << codecName); - QStringList codecs = supportedAudioCodecs(); - if(codecs.contains(codecName)) { + if (codecs.contains(codecName)) { m_format.setCodec(codecName); return true; } @@ -233,14 +230,12 @@ bool S60AudioCaptureSession::setAudioContainer(const QString &containerMimeType) { TRACE("S60AudioCaptureSession::setAudioContainer" << qtThisPtr() << "mimeType" << containerMimeType); - QStringList containers = supportedAudioContainers(); - if (containerMimeType == "audio/mpeg") - { + if (containerMimeType == "audio/mpeg") { m_container = "audio/mp4"; return true; - } - if(containers.contains(containerMimeType)) { + } + if (containers.contains(containerMimeType)) { m_container = containerMimeType; return true; } @@ -262,11 +257,10 @@ QUrl S60AudioCaptureSession::outputLocation() const return m_sink; } -bool S60AudioCaptureSession::setOutputLocation(const QUrl& sink) +bool S60AudioCaptureSession::setOutputLocation(const QUrl &sink) { TRACE("S60AudioCaptureSession::setOutputLocation" << qtThisPtr() << "location" << sink); - QString filename = QDir::toNativeSeparators(sink.toString()); TPtrC16 path(reinterpret_cast<const TUint16*>(filename.utf16())); TRAPD(err, BaflUtils::EnsurePathExistsL(m_fsSession,path)); @@ -274,7 +268,7 @@ bool S60AudioCaptureSession::setOutputLocation(const QUrl& sink) m_sink = sink; setError(err); return true; - }else { + } else { setError(err); return false; } @@ -284,7 +278,6 @@ qint64 S60AudioCaptureSession::position() const { if ((m_captureState != ERecording) || !m_recorderUtility) return 0; - return m_recorderUtility->Duration().Int64() / 1000; } @@ -297,20 +290,21 @@ void S60AudioCaptureSession::prepareSinkL() QDir outputDir(QDir::rootPath()); int lastImage = 0; int fileCount = 0; - foreach(QString fileName, outputDir.entryList(QStringList() << "recordclip_*")) { + foreach (QString fileName, outputDir.entryList(QStringList() << "recordclip_*")) { int imgNumber = fileName.mid(5, fileName.size() - 9).toInt(); lastImage = qMax(lastImage, imgNumber); if (outputDir.exists(fileName)) fileCount += 1; } lastImage += fileCount; - m_sink = QUrl(QDir::toNativeSeparators(outputDir.canonicalPath() + QString("/recordclip_%1").arg(lastImage + 1, 4, 10, QLatin1Char('0')))); + m_sink = QUrl(QDir::toNativeSeparators(outputDir.canonicalPath() + + QString("/recordclip_%1").arg(lastImage + 1, 4, 10, QLatin1Char('0')))); } QString sink = QDir::toNativeSeparators(m_sink.toString()); TPtrC16 path(reinterpret_cast<const TUint16*>(sink.utf16())); if (BaflUtils::FileExists(m_fsSession, path)) - BaflUtils::DeleteFile(m_fsSession, path); + BaflUtils::DeleteFile(m_fsSession, path); int index = sink.lastIndexOf('.'); if (index != -1) @@ -337,7 +331,7 @@ void S60AudioCaptureSession::record() TRAP(err, m_recorderUtility->OpenFileL(sink)); } setError(err); - }else if (m_captureState == EPaused) { + } else if (m_captureState == EPaused) { m_recorderUtility->SetPosition(m_pausedPosition); TRAPD(error, m_recorderUtility->RecordL()); setError(error); @@ -349,15 +343,12 @@ void S60AudioCaptureSession::record() void S60AudioCaptureSession::mute(bool muted) { TRACE("S60AudioCaptureSession::mute" << qtThisPtr() << "muted" << muted); - if (!m_recorderUtility) return; - if (muted) m_recorderUtility->SetGain(0); else m_recorderUtility->SetGain(m_recorderUtility->MaxGain()); - m_isMuted = muted; } @@ -372,7 +363,7 @@ void S60AudioCaptureSession::setDefaultSettings() // Setting AMR to default format if supported if (m_controllerIdMap.count() > 0) { - if ( m_controllerIdMap.contains("audio/amr")) + if (m_controllerIdMap.contains("audio/amr")) m_container = QString("audio/amr"); else m_container = m_controllerIdMap.keys()[0]; @@ -384,18 +375,17 @@ void S60AudioCaptureSession::setDefaultSettings() m_format.setFrequency(8000); m_format.setSampleType(QAudioFormat::SignedInt); m_format.setCodec("AMR"); - }else + } else { m_format.setCodec(m_audioCodeclist.keys()[0]); + } } } void S60AudioCaptureSession::pause() { TRACE("S60AudioCaptureSession::pause" << qtThisPtr()); - if (!m_recorderUtility) return; - m_pausedPosition = m_recorderUtility->Position(); m_recorderUtility->Stop(); m_captureState = EPaused; @@ -405,21 +395,15 @@ void S60AudioCaptureSession::pause() void S60AudioCaptureSession::stop() { TRACE("S60AudioCaptureSession::stop" << qtThisPtr()); - if (!m_recorderUtility) return; - m_recorderUtility->Stop(); - #ifdef AUDIOINPUT_ROUTING - //delete audio input instance before closing the utility. - if (m_audioInput) - { + if (m_audioInput) { delete m_audioInput; - m_audioInput = NULL; - } -#endif //AUDIOINPUT_ROUTING - + m_audioInput = 0; + } +#endif m_recorderUtility->Close(); m_captureState = ERecordComplete; emit stateChanged(m_captureState); @@ -430,28 +414,25 @@ void S60AudioCaptureSession::stop() void S60AudioCaptureSession::initAudioInputs() { TRACE("S60AudioCaptureSession::initAudioInputs" << qtThisPtr()); - m_audioInputs[S60AudioCaptureSession::microPhone] = QString("Microphone associated with the currently active speaker."); m_audioInputs[S60AudioCaptureSession::voiceCall] = QString("Audio stream associated with the current phone call."); m_audioInputs[S60AudioCaptureSession::fmRadio] = QString("Audio of the currently tuned FM radio station."); } -#endif //AUDIOINPUT_ROUTING +#endif void S60AudioCaptureSession::setActiveEndpoint(const QString& audioEndpoint) { TRACE("S60AudioCaptureSession::setActiveEndpoint" << qtThisPtr() << "endpoint" << audioEndpoint); - if (!m_audioInputs.keys().contains(audioEndpoint)) return; - if (activeEndpoint().compare(audioEndpoint) != 0) { m_audioEndpoint = audioEndpoint; #ifdef AUDIOINPUT_ROUTING - m_setActiveEndPoint = TRUE; + m_setActiveEndPoint = true; #endif - } + } } QList<QString> S60AudioCaptureSession::availableEndpoints() const @@ -468,13 +449,13 @@ QString S60AudioCaptureSession::endpointDescription(const QString& name) const QString S60AudioCaptureSession::activeEndpoint() const { - QString inputSourceName = NULL; + QString inputSourceName; #ifdef AUDIOINPUT_ROUTING if (m_audioInput) { CAudioInput::TAudioInputArray input = m_audioInput->AudioInput(); inputSourceName = qStringFromTAudioInputPreference(input[0]); } -#endif //AUDIOINPUT_ROUTING +#endif return inputSourceName; } @@ -483,17 +464,17 @@ QString S60AudioCaptureSession::defaultEndpoint() const #ifdef AUDIOINPUT_ROUTING return QString(S60AudioCaptureSession::microPhone); #else - return NULL; + return QString(); #endif } #ifdef AUDIOINPUT_ROUTING -void S60AudioCaptureSession::doSetAudioInputL(const QString& name) +void S60AudioCaptureSession::doSetAudioInputL(const QString &name) { TRACE("S60AudioCaptureSession::doSetAudioInputL" << qtThisPtr() << "name" << name); - TInt err(KErrNone); + TInt err = KErrNone; if (!m_recorderUtility) return; @@ -508,23 +489,19 @@ void S60AudioCaptureSession::doSetAudioInputL(const QString& name) else // S60AudioCaptureSession::microPhone input = CAudioInput::EDefaultMic; - RArray<CAudioInput::TAudioInputPreference> inputArray; - inputArray.Append(input); - - if (m_audioInput){ - TRAP(err,m_audioInput->SetAudioInputL(inputArray.Array())); + RArray<CAudioInput::TAudioInputPreference> inputArray; + inputArray.Append(input); - if (err == KErrNone) { - emit activeEndpointChanged(name); - } - else{ - setError(err); - } - } - inputArray.Close(); + if (m_audioInput){ + TRAP(err,m_audioInput->SetAudioInputL(inputArray.Array())); + if (err == KErrNone) + emit activeEndpointChanged(name); + else + setError(err); + } + inputArray.Close(); } - QString S60AudioCaptureSession::qStringFromTAudioInputPreference(CAudioInput::TAudioInputPreference input) const { if (input == CAudioInput::EVoiceCall) @@ -536,19 +513,16 @@ QString S60AudioCaptureSession::qStringFromTAudioInputPreference(CAudioInput::TA } #endif //AUDIOINPUT_ROUTING - void S60AudioCaptureSession::MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode) { TRACE("S60AudioCaptureSession::MoscoStateChangeEvent" << qtThisPtr() << "prevState" << aPreviousState << "currentState" << aCurrentState << "error" << aErrorCode); - if (aErrorCode==KErrNone) { TRAPD(err, MoscoStateChangeEventL(aObject, aPreviousState, aCurrentState, NULL)); setError(err); - } - else { + } else { setError(aErrorCode); } } @@ -558,33 +532,29 @@ void S60AudioCaptureSession::MoscoStateChangeEventL(CBase* aObject, { if (aObject != m_recorderUtility) return; - - switch(aCurrentState) { - case CMdaAudioClipUtility::EOpen: { - if(aPreviousState == CMdaAudioClipUtility::ENotReady) { - applyAudioSettingsL(); - m_recorderUtility->SetGain(m_recorderUtility->MaxGain()); - TRAPD(err, m_recorderUtility->RecordL()); - setError(err); - m_captureState = EOpenCompelete; - emit stateChanged(m_captureState); - } - break; - } - case CMdaAudioClipUtility::ENotReady: { - m_captureState = EInitialized; - emit stateChanged(m_captureState); - break; - } - case CMdaAudioClipUtility::ERecording: { - m_captureState = ERecording; + switch(aCurrentState) { + case CMdaAudioClipUtility::EOpen: { + if (aPreviousState == CMdaAudioClipUtility::ENotReady) { + applyAudioSettingsL(); + m_recorderUtility->SetGain(m_recorderUtility->MaxGain()); + TRAPD(err, m_recorderUtility->RecordL()); + setError(err); + m_captureState = EOpenCompelete; emit stateChanged(m_captureState); - break; } - default: { - break; - } - } + break; + } + case CMdaAudioClipUtility::ENotReady: + m_captureState = EInitialized; + emit stateChanged(m_captureState); + break; + case CMdaAudioClipUtility::ERecording: + m_captureState = ERecording; + emit stateChanged(m_captureState); + break; + default: + break; + } } void S60AudioCaptureSession::updateAudioContainersL() @@ -609,10 +579,10 @@ void S60AudioCaptureSession::updateAudioContainersL() //Get all audio record controllers/formats that are supported pluginParameters->ListImplementationsL(controllers); - for (TInt index=0; index<controllers.Count(); index++) { + for (TInt index=0; index<controllers.Count(); ++index) { const RMMFFormatImplInfoArray& recordFormats = controllers[index]->RecordFormats(); - for (TInt j=0; j<recordFormats.Count(); j++) { + for (TInt j=0; j<recordFormats.Count(); ++j) { const CDesC8Array& mimeTypes = recordFormats[j]->SupportedMimeTypes(); const CDesC8Array& fileExtensions = recordFormats[j]->SupportedFileExtensions(); TInt mimeCount = mimeTypes.Count(); @@ -623,7 +593,7 @@ void S60AudioCaptureSession::updateAudioContainersL() TPtrC8 mimeType = mimeTypes[0]; QString type = QString::fromUtf8((char *)mimeType.Ptr(), mimeType.Length()); - if (type != "audio/basic") { + if (type != "audio/basic") { ControllerData data; data.controllerUid = controllers[index]->Uid().iUid; data.destinationFormatUid = recordFormats[j]->Uid().iUid; @@ -641,66 +611,58 @@ void S60AudioCaptureSession::updateAudioContainersL() void S60AudioCaptureSession::retrieveSupportedAudioSampleRatesL() { - if (!m_recorderUtility) { + if (!m_recorderUtility) return; - } - m_supportedSampleRates.clear(); - RArray<TUint> supportedSampleRates; CleanupClosePushL(supportedSampleRates); m_recorderUtility->GetSupportedSampleRatesL(supportedSampleRates); - for (TInt j = 0; j < supportedSampleRates.Count(); j++ ) + for (TInt j=0; j<supportedSampleRates.Count(); ++j) m_supportedSampleRates.append(supportedSampleRates[j]); - CleanupStack::PopAndDestroy(&supportedSampleRates); } QList<int> S60AudioCaptureSession::supportedAudioSampleRates(const QAudioEncoderSettings &settings) const { QList<int> supportedSampleRates; - if (!settings.codec().isEmpty()) { if (settings.codec() == "AMR") supportedSampleRates.append(8000); else supportedSampleRates = m_supportedSampleRates; - }else + } else { supportedSampleRates = m_supportedSampleRates; - + } return supportedSampleRates; } void S60AudioCaptureSession::populateAudioCodecsDataL() { - if (!m_recorderUtility) { + if (!m_recorderUtility) return; - } - if (m_controllerIdMap.contains("audio/amr")) { CodecData data; data.codecDescription = QString("GSM AMR Codec"); - m_audioCodeclist[QString("AMR")]=data; + m_audioCodeclist[QString("AMR")] = data; } if (m_controllerIdMap.contains("audio/basic")) { CodecData data; data.fourCC = KMMFFourCCCodeALAW; data.codecDescription = QString("Sun/Next ""Au"" audio codec"); - m_audioCodeclist[QString("AULAW")]=data; + m_audioCodeclist[QString("AULAW")] = data; } if (m_controllerIdMap.contains("audio/wav")) { CodecData data; data.fourCC = KMMFFourCCCodePCM16; data.codecDescription = QString("Pulse code modulation"); - m_audioCodeclist[QString("PCM")]=data; + m_audioCodeclist[QString("PCM")] = data; } if (m_controllerIdMap.contains("audio/mp4")) { CodecData data; data.fourCC = KMMFFourCCCodeAAC; data.codecDescription = QString("Advanced Audio Codec"); - m_audioCodeclist[QString("AAC")]=data; + m_audioCodeclist[QString("AAC")] = data; } - // default samplerates m_supportedSampleRates << 96000 << 88200 << 64000 << 48000 << 44100 << 32000 << 24000 << 22050 << 16000 << 12000 << 11025 << 8000; } @@ -708,7 +670,6 @@ void S60AudioCaptureSession::populateAudioCodecsDataL() void S60AudioCaptureSession::applyAudioSettingsL() { TRACE("S60AudioCaptureSession::applyAudioSettingsL" << qtThisPtr()); - if (!m_recorderUtility) return; @@ -716,14 +677,14 @@ void S60AudioCaptureSession::applyAudioSettingsL() //CAudioInput needs to be re-initialized every time recording starts if (m_audioInput) { delete m_audioInput; - m_audioInput = NULL; + m_audioInput = 0; } if (m_setActiveEndPoint) { m_audioInput = CAudioInput::NewL(*m_recorderUtility); doSetAudioInputL(m_audioEndpoint); } -#endif //AUDIOINPUT_ROUTING +#endif if (m_format.codec() == "AMR") return; @@ -737,29 +698,27 @@ void S60AudioCaptureSession::applyAudioSettingsL() CleanupClosePushL(supportedDataTypes); TRAP_IGNORE(m_recorderUtility->GetSupportedDestinationDataTypesL(supportedDataTypes)); TInt num = supportedDataTypes.Count(); - if (num > 0 ) { + if (num > 0) { supportedDataTypes.SortUnsigned(); int index = supportedDataTypes.Find(fourCC.FourCC()); - if (index != KErrNotFound) { + if (index != KErrNotFound) TRAP_IGNORE(m_recorderUtility->SetDestinationDataTypeL(supportedDataTypes[index])); - } } supportedDataTypes.Reset(); CleanupStack::PopAndDestroy(&supportedDataTypes); if (m_recorderUtility->DestinationSampleRateL() != m_format.frequency()) { - RArray<TUint> supportedSampleRates; CleanupClosePushL(supportedSampleRates); m_recorderUtility->GetSupportedSampleRatesL(supportedSampleRates); - for (TInt i = 0; i < supportedSampleRates.Count(); i++ ) { - TUint supportedSampleRate = supportedSampleRates[i]; - if (supportedSampleRate == m_format.frequency()) { - m_recorderUtility->SetDestinationSampleRateL(m_format.frequency()); - break; + for (TInt i=0; i<supportedSampleRates.Count(); ++i) { + TUint supportedSampleRate = supportedSampleRates[i]; + if (supportedSampleRate == m_format.frequency()) { + m_recorderUtility->SetDestinationSampleRateL(m_format.frequency()); + break; + } } - } supportedSampleRates.Reset(); CleanupStack::PopAndDestroy(&supportedSampleRates); } @@ -769,7 +728,7 @@ void S60AudioCaptureSession::applyAudioSettingsL() RArray<TUint> supportedChannels; CleanupClosePushL(supportedChannels); m_recorderUtility->GetSupportedNumberOfChannelsL(supportedChannels); - for (TInt l = 0; l < supportedChannels.Count(); l++ ) { + for (TInt l=0; l < supportedChannels.Count(); ++l) { if (supportedChannels[l] == m_format.channels()) { m_recorderUtility->SetDestinationNumberOfChannelsL(m_format.channels()); break; @@ -784,7 +743,7 @@ void S60AudioCaptureSession::applyAudioSettingsL() RArray<TUint> supportedBitRates; CleanupClosePushL(supportedBitRates); m_recorderUtility->GetSupportedBitRatesL(supportedBitRates); - for (TInt l = 0; l < supportedBitRates.Count(); l++ ) { + for (TInt l=0; l<supportedBitRates.Count(); ++l) { if (supportedBitRates[l] == m_audioEncoderSettings.bitRate()) { m_recorderUtility->SetDestinationBitRateL(m_audioEncoderSettings.bitRate()); break; @@ -799,44 +758,36 @@ void S60AudioCaptureSession::applyAudioSettingsL() TFourCC S60AudioCaptureSession::determinePCMFormat() { TFourCC fourCC; - if (m_format.sampleSize() == 8) { // 8 bit switch (m_format.sampleType()) { - case QAudioFormat::SignedInt: { + case QAudioFormat::SignedInt: fourCC.Set(KMMFFourCCCodePCM8); break; - } - case QAudioFormat::UnSignedInt: { + case QAudioFormat::UnSignedInt: fourCC.Set(KMMFFourCCCodePCMU8); break; - } case QAudioFormat::Float: case QAudioFormat::Unknown: - default: { + default: fourCC.Set(KMMFFourCCCodePCM8); break; } - } } else if (m_format.sampleSize() == 16) { // 16 bit switch (m_format.sampleType()) { - case QAudioFormat::SignedInt: { + case QAudioFormat::SignedInt: fourCC.Set(m_format.byteOrder()==QAudioFormat::BigEndian? KMMFFourCCCodePCM16B:KMMFFourCCCodePCM16); break; - } - case QAudioFormat::UnSignedInt: { + case QAudioFormat::UnSignedInt: fourCC.Set(m_format.byteOrder()==QAudioFormat::BigEndian? KMMFFourCCCodePCMU16B:KMMFFourCCCodePCMU16); break; - } - default: { + default: fourCC.Set(KMMFFourCCCodePCM16); break; } - } } - return fourCC; } diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.h b/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.h index 78f018f3f6..685ab4a59c 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocapturesession.h @@ -63,6 +63,7 @@ #endif //AUDIOINPUT_ROUTING QT_BEGIN_NAMESPACE + struct ControllerData { int controllerUid; @@ -76,19 +77,19 @@ struct CodecData TFourCC fourCC; QString codecDescription; }; + QT_END_NAMESPACE QT_USE_NAMESPACE -class S60AudioCaptureSession : public QObject, public MMdaObjectStateChangeObserver +class S60AudioCaptureSession : public QObject + , public MMdaObjectStateChangeObserver { Q_OBJECT Q_PROPERTY(qint64 position READ position NOTIFY positionChanged) Q_ENUMS(TAudioCaptureState) public: - - enum TAudioCaptureState - { + enum TAudioCaptureState { ENotInitialized = 0, EInitialized, EOpenCompelete, @@ -125,13 +126,14 @@ public: QString activeEndpoint() const; QString defaultEndpoint() const; QList<QString> availableEndpoints() const; - QString endpointDescription(const QString& name) const; + QString endpointDescription(const QString &name) const; #ifdef AUDIOINPUT_ROUTING static const QString microPhone; static const QString voiceCall; static const QString fmRadio; -#endif //AUDIOINPUT_ROUTING +#endif + private: void initializeSessionL(); void setError(TInt aError); @@ -143,6 +145,7 @@ private: void applyAudioSettingsL(); TFourCC determinePCMFormat(); void setDefaultSettings(); + // MMdaObjectStateChangeObserver void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode); @@ -152,18 +155,18 @@ private: #ifdef AUDIOINPUT_ROUTING QString qStringFromTAudioInputPreference(CAudioInput::TAudioInputPreference input) const; void initAudioInputs(); - void doSetAudioInputL(const QString& name); -#endif //AUDIOINPUT_ROUTING + void doSetAudioInputL(const QString &name); +#endif public Q_SLOTS: - void setActiveEndpoint(const QString& audioEndpoint); - + void setActiveEndpoint(const QString &audioEndpoint); Q_SIGNALS: void stateChanged(S60AudioCaptureSession::TAudioCaptureState); void positionChanged(qint64 position); void error(int error, const QString &errorString); void activeEndpointChanged(const QString &audioEndpoint); + private: QString m_container; QUrl m_sink; @@ -182,12 +185,10 @@ private: #ifdef AUDIOINPUT_ROUTING bool m_setActiveEndPoint; CAudioInput *m_audioInput; +#endif -#endif //AUDIOINPUT_ROUTING QMap<QString, QString> m_audioInputs; QString m_audioEndpoint; - - }; #endif // S60AUDIOCAPTURESESSION_H diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.cpp index 54eec244eb..54e4774145 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.cpp @@ -50,7 +50,7 @@ S60AudioContainerControl::S60AudioContainerControl(QObject *parent) } S60AudioContainerControl::S60AudioContainerControl(QObject *session, QObject *parent) - : QMediaContainerControl(parent) + : QMediaContainerControl(parent) { TRACE("S60AudioContainerControl::S60AudioContainerControl" << qtThisPtr()); m_session = qobject_cast<S60AudioCaptureSession*>(session); @@ -77,4 +77,3 @@ QString S60AudioContainerControl::containerDescription(const QString &containerM { return m_session->audioContainerDescription(containerMimeType); } - diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.h b/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.h index e657b4319c..239e4728d5 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiocontainercontrol.h @@ -45,14 +45,13 @@ #include "qmediacontainercontrol.h" #include <QtCore/qstringlist.h> - QT_USE_NAMESPACE class S60AudioCaptureSession; class S60AudioContainerControl : public QMediaContainerControl { -Q_OBJECT + Q_OBJECT public: S60AudioContainerControl(QObject *parent = 0); S60AudioContainerControl(QObject *session, QObject *parent = 0); diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.cpp index cc058fbe38..17da5c0791 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.cpp @@ -42,14 +42,12 @@ #include "s60audioencodercontrol.h" #include "s60audiocapturesession.h" #include "s60mmtrace.h" - #include "qaudioformat.h" S60AudioEncoderControl::S60AudioEncoderControl(QObject *session, QObject *parent) - :QAudioEncoderControl(parent), m_quality(QtMultimediaKit::NormalQuality) + : QAudioEncoderControl(parent), m_quality(QtMultimediaKit::NormalQuality) { TRACE("S60AudioEncoderControl::S60AudioEncoderControl" << qtThisPtr()); - m_session = qobject_cast<S60AudioCaptureSession*>(session); QAudioFormat fmt = m_session->format(); // medium, 22050Hz mono S16 @@ -124,23 +122,19 @@ QStringList S60AudioEncoderControl::supportedEncodingOptions(const QString &code QStringList list; if (codec == "PCM") list << "quality" << "channels" << "samplerate"; - return list; + return list; } QVariant S60AudioEncoderControl::encodingOption(const QString &codec, const QString &name) const { if (codec == "PCM") { QAudioFormat fmt = m_session->format(); - - if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) { + if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) return QVariant(quality()); - } - else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) { + else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) return QVariant(fmt.channels()); - } - else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) { + else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) return QVariant(fmt.frequency()); - } } return QVariant(); } @@ -150,17 +144,14 @@ void S60AudioEncoderControl::setEncodingOption( { TRACE("S60AudioEncoderControl::setEncodingOption" << qtThisPtr() << "codec" << codec << "name" << name << "value" << value); - if (codec == "PCM") { QAudioFormat fmt = m_session->format(); - - if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) { + if(qstrcmp(name.toLocal8Bit().constData(), "quality") == 0) setQuality((QtMultimediaKit::EncodingQuality)value.toInt(), fmt); - } else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) { + else if(qstrcmp(name.toLocal8Bit().constData(), "channels") == 0) fmt.setChannels(value.toInt()); - } else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) { + else if(qstrcmp(name.toLocal8Bit().constData(), "samplerate") == 0) fmt.setFrequency(value.toInt()); - } m_session->setFormat(fmt); } } @@ -169,7 +160,6 @@ QList<int> S60AudioEncoderControl::supportedSampleRates(const QAudioEncoderSetti { if (continuous) *continuous = false; - return m_session->supportedAudioSampleRates(settings); } @@ -187,17 +177,15 @@ void S60AudioEncoderControl::setAudioSettings(const QAudioEncoderSettings &setti << "channelCount" << settings.channelCount() << "sampleRate" << settings.sampleRate() << "quality" << settings.quality()); - QAudioFormat fmt = m_session->format(); if (settings.encodingMode() == QtMultimediaKit::ConstantQualityEncoding) { fmt.setCodec(settings.codec()); setQuality(settings.quality(), fmt); - if (settings.sampleRate() > 0) { + if (settings.sampleRate() > 0) fmt.setFrequency(settings.sampleRate()); - } if (settings.channelCount() > 0) fmt.setChannels(settings.channelCount()); - }else { + } else { if (settings.sampleRate() == 8000) { fmt.setSampleType(QAudioFormat::UnSignedInt); fmt.setSampleSize(8); diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.h b/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.h index df44b498df..0e77d00532 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audioencodercontrol.h @@ -63,7 +63,7 @@ public: QList<int> supportedSampleRates(const QAudioEncoderSettings &settings, bool *continuous = 0) const; QAudioEncoderSettings audioSettings() const; - void setAudioSettings(const QAudioEncoderSettings&); + void setAudioSettings(const QAudioEncoderSettings &settings); QStringList supportedEncodingOptions(const QString &codec) const; QVariant encodingOption(const QString &codec, const QString &name) const; diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.cpp index ac2b02db59..558f03ace6 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.cpp @@ -46,12 +46,12 @@ #include <qaudiodeviceinfo.h> S60AudioEndpointSelector::S60AudioEndpointSelector(QObject *session, QObject *parent) - :QAudioEndpointSelector(parent) + : QAudioEndpointSelector(parent) { TRACE("S60AudioEndpointSelector::S60AudioEndpointSelector" << qtThisPtr()); m_session = qobject_cast<S60AudioCaptureSession*>(session); - - connect(m_session, SIGNAL(activeEndpointChanged(const QString &)), this, SIGNAL(activeEndpointChanged(const QString &))); + connect(m_session, SIGNAL(activeEndpointChanged(const QString &)), + this, SIGNAL(activeEndpointChanged(const QString &))); } S60AudioEndpointSelector::~S60AudioEndpointSelector() @@ -64,7 +64,7 @@ QList<QString> S60AudioEndpointSelector::availableEndpoints() const return m_session->availableEndpoints(); } -QString S60AudioEndpointSelector::endpointDescription(const QString& name) const +QString S60AudioEndpointSelector::endpointDescription(const QString &name) const { return m_session->endpointDescription(name); } @@ -79,7 +79,7 @@ QString S60AudioEndpointSelector::activeEndpoint() const return m_session->activeEndpoint(); } -void S60AudioEndpointSelector::setActiveEndpoint(const QString& name) +void S60AudioEndpointSelector::setActiveEndpoint(const QString &name) { TRACE("S60AudioEndpointSelector::setActiveEndpoint" << qtThisPtr() << "name" << name); diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.h b/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.h index f9668108bd..d565e957a4 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audioendpointselector.h @@ -43,7 +43,6 @@ #define S60AUDIOENDPOINTSELECTOR_H #include <QStringList> - #include <qaudioendpointselector.h> QT_USE_NAMESPACE @@ -52,24 +51,20 @@ class S60AudioCaptureSession; class S60AudioEndpointSelector : public QAudioEndpointSelector { - -Q_OBJECT - + Q_OBJECT public: S60AudioEndpointSelector(QObject *session, QObject *parent = 0); ~S60AudioEndpointSelector(); QList<QString> availableEndpoints() const; - QString endpointDescription(const QString& name) const; + QString endpointDescription(const QString &name) const; QString defaultEndpoint() const; QString activeEndpoint() const; - public Q_SLOTS: - void setActiveEndpoint(const QString& name); + void setActiveEndpoint(const QString &name); private: - S60AudioCaptureSession* m_session; }; diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.cpp b/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.cpp index 2c7c96e78e..a473a12d9c 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.cpp +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.cpp @@ -44,14 +44,16 @@ #include "s60mmtrace.h" S60AudioMediaRecorderControl::S60AudioMediaRecorderControl(QObject *session, QObject *parent) - :QMediaRecorderControl(parent), m_state(QMediaRecorder::StoppedState) + : QMediaRecorderControl(parent), m_state(QMediaRecorder::StoppedState) { TRACE("S60AudioMediaRecorderControl::S60AudioMediaRecorderControl" << qtThisPtr()); - m_session = qobject_cast<S60AudioCaptureSession*>(session); - connect(m_session, SIGNAL(positionChanged(qint64)), this, SIGNAL(durationChanged(qint64))); - connect(m_session, SIGNAL(stateChanged(S60AudioCaptureSession::TAudioCaptureState)), this, SLOT(updateState(S60AudioCaptureSession::TAudioCaptureState))); - connect(m_session,SIGNAL(error(int,const QString &)),this,SIGNAL(error(int,const QString &))); + connect(m_session, SIGNAL(positionChanged(qint64)), + this, SIGNAL(durationChanged(qint64))); + connect(m_session, SIGNAL(stateChanged(S60AudioCaptureSession::TAudioCaptureState)), + this, SLOT(updateState(S60AudioCaptureSession::TAudioCaptureState))); + connect(m_session,SIGNAL(error(int, const QString &)), + this, SIGNAL(error(int, const QString &))); } S60AudioMediaRecorderControl::~S60AudioMediaRecorderControl() @@ -64,11 +66,10 @@ QUrl S60AudioMediaRecorderControl::outputLocation() const return m_session->outputLocation(); } -bool S60AudioMediaRecorderControl::setOutputLocation(const QUrl& sink) +bool S60AudioMediaRecorderControl::setOutputLocation(const QUrl &sink) { TRACE("S60AudioMediaRecorderControl::setOutputLocation" << qtThisPtr() << "sink" << sink); - return m_session->setOutputLocation(sink); } @@ -116,21 +117,18 @@ qint64 S60AudioMediaRecorderControl::duration() const void S60AudioMediaRecorderControl::record() { TRACE("S60AudioMediaRecorderControl::record" << qtThisPtr()); - m_session->record(); } void S60AudioMediaRecorderControl::pause() { TRACE("S60AudioMediaRecorderControl::pause" << qtThisPtr()); - m_session->pause(); } void S60AudioMediaRecorderControl::stop() { TRACE("S60AudioMediaRecorderControl::stop" << qtThisPtr()); - m_session->stop(); } @@ -139,6 +137,11 @@ bool S60AudioMediaRecorderControl::isMuted() const return m_session->muted(); } +void S60AudioMediaRecorderControl::applySettings() +{ + +} + void S60AudioMediaRecorderControl::setMuted(bool muted) { if (muted != isMuted()) { diff --git a/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.h b/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.h index 1312050caa..d766111028 100644 --- a/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.h +++ b/plugins/multimedia/symbian/mmf/audiosource/s60audiomediarecordercontrol.h @@ -44,33 +44,25 @@ #include <QtCore/qobject.h> #include <QUrl> - #include "qmediarecorder.h" #include "qmediarecordercontrol.h" - #include "s60audiocapturesession.h" QT_USE_NAMESPACE -//class S60AudioCaptureSession; - class S60AudioMediaRecorderControl : public QMediaRecorderControl { Q_OBJECT public: - S60AudioMediaRecorderControl(QObject *session,QObject *parent = 0); + S60AudioMediaRecorderControl(QObject *session, QObject *parent = 0); ~S60AudioMediaRecorderControl(); QUrl outputLocation() const; bool setOutputLocation(const QUrl &sink); - QMediaRecorder::State state() const; - qint64 duration() const; - bool isMuted() const; - - void applySettings() {} + void applySettings(); private: QMediaRecorder::State convertState(S60AudioCaptureSession::TAudioCaptureState aState) const; diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/mediaplayer_s60.pri b/plugins/multimedia/symbian/mmf/mediaplayer/mediaplayer_s60.pri index aef2145bd4..6786f1a2be 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/mediaplayer_s60.pri +++ b/plugins/multimedia/symbian/mmf/mediaplayer/mediaplayer_s60.pri @@ -35,6 +35,8 @@ HEADERS += \ $$PWD/s60mediarecognizer.h \ $$PWD/s60audioplayersession.h \ $$PWD/s60mediaplayeraudioendpointselector.h \ + $$PWD/s60mediaplayerutils.h \ + $$PWD/s60mediasettings.h \ $$PWD/s60mediastreamcontrol.h \ $$PWD/s60medianetworkaccesscontrol.h @@ -47,6 +49,8 @@ SOURCES += \ $$PWD/s60mediarecognizer.cpp \ $$PWD/s60audioplayersession.cpp \ $$PWD/s60mediaplayeraudioendpointselector.cpp \ + $$PWD/s60mediaplayerutils.cpp \ + $$PWD/s60mediasettings.cpp \ $$PWD/s60mediastreamcontrol.cpp \ $$PWD/s60medianetworkaccesscontrol.cpp diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.cpp index 82125da719..caa9384ec5 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.cpp @@ -41,15 +41,6 @@ #include "s60audioplayersession.h" #include "s60mmtrace.h" -#include <QtCore/qdebug.h> -#include <QtCore/qvariant.h> - -/*! - Constructs the CMdaAudioPlayerUtility object with given \a parent QObject. - - And Registers for Audio Loading Notifications. - -*/ S60AudioPlayerSession::S60AudioPlayerSession(QObject *parent) : S60MediaPlayerSession(parent) @@ -57,22 +48,13 @@ S60AudioPlayerSession::S60AudioPlayerSession(QObject *parent) , m_audioEndpoint("Default") { TRACE("S60AudioPlayerSession::S60AudioPlayerSession" << qtThisPtr()); - #ifdef HAS_AUDIOROUTING m_audioOutput = 0; -#endif //HAS_AUDIOROUTING +#endif QT_TRAP_THROWING(m_player = CAudioPlayer::NewL(*this, 0, EMdaPriorityPreferenceNone)); m_player->RegisterForAudioLoadingNotification(*this); } - -/*! - Destroys the CMdaAudioPlayerUtility object. - - And Unregister the observer. - -*/ - S60AudioPlayerSession::~S60AudioPlayerSession() { TRACE("S60AudioPlayerSession::~S60AudioPlayerSession" << qtThisPtr()); @@ -85,12 +67,6 @@ S60AudioPlayerSession::~S60AudioPlayerSession() delete m_player; } -/*! - - Opens the a file from \a path. - -*/ - void S60AudioPlayerSession::doLoadL(const TDesC &path) { #ifdef HAS_AUDIOROUTING @@ -98,27 +74,21 @@ void S60AudioPlayerSession::doLoadL(const TDesC &path) if (m_audioOutput) m_audioOutput->UnregisterObserver(*this); delete m_audioOutput; - m_audioOutput = NULL; -#endif //HAS_AUDIOROUTING + m_audioOutput = 0; +#endif m_player->OpenFileL(path); } -/*! - - Returns the duration of the audio sample in microseconds. - -*/ +void S60AudioPlayerSession::doLoadUrlL(const TDesC &path) +{ + Q_UNUSED(path); +} qint64 S60AudioPlayerSession::doGetDurationL() const { return m_player->Duration().Int64() / qint64(1000); } -/*! - * Returns the current playback position in microseconds from the start of the clip. - -*/ - qint64 S60AudioPlayerSession::doGetPositionL() const { TTimeIntervalMicroSeconds ms = 0; @@ -126,158 +96,85 @@ qint64 S60AudioPlayerSession::doGetPositionL() const return ms.Int64() / qint64(1000); } -/*! - Returns TRUE if Video available or else FALSE - */ - bool S60AudioPlayerSession::isVideoAvailable() { return false; } -/*! - Returns TRUE if Audio available or else FALSE - */ bool S60AudioPlayerSession::isAudioAvailable() { - return true; // this is a bit happy scenario, but we do emit error that we can't play + return true; } -/*! - Starts loading Media and sets media status to Buffering. - - */ - void S60AudioPlayerSession::MaloLoadingStarted() { TRACE("S60AudioPlayerSession::MaloLoadingStarted" << qtThisPtr()); - buffering(); } - -/*! - Indicates loading Media is completed. - - And sets media status to Buffered. - - */ - void S60AudioPlayerSession::MaloLoadingComplete() { TRACE("S60AudioPlayerSession::MaloLoadingComplete" << qtThisPtr()); - buffered(); } -/*! - Start or resume playing the current source. -*/ - void S60AudioPlayerSession::doPlay() { - // For some reason loading progress callback are not called on emulator - // Same is the case with hardware. Will be fixed as part of QTMOBILITY-782. - - //#ifdef __WINSCW__ - buffering(); - //#endif - m_player->Play(); - //#ifdef __WINSCW__ - buffered(); - //#endif + buffering(); + m_player->Play(); + buffered(); } - -/*! - Pause playing the current source. -*/ - - void S60AudioPlayerSession::doPauseL() { m_player->Pause(); } - -/*! - - Stop playing, and reset the play position to the beginning. -*/ - void S60AudioPlayerSession::doStop() { m_player->Stop(); } -/*! - Closes the current audio clip (allowing another clip to be opened) -*/ - void S60AudioPlayerSession::doClose() { #ifdef HAS_AUDIOROUTING if (m_audioOutput) { m_audioOutput->UnregisterObserver(*this); delete m_audioOutput; - m_audioOutput = NULL; + m_audioOutput = 0; } #endif m_player->Close(); } -/*! - - Changes the current playback volume to specified \a value. -*/ - void S60AudioPlayerSession::doSetVolumeL(int volume) { m_player->SetVolume(volume * m_player->MaxVolume() / 100); } -/*! - Sets the current playback position to \a microSeconds from the start of the clip. -*/ - void S60AudioPlayerSession::doSetPositionL(qint64 microSeconds) { m_player->SetPosition(TTimeIntervalMicroSeconds(microSeconds)); } -/*! - - Updates meta data entries in the current audio clip. -*/ - void S60AudioPlayerSession::updateMetaDataEntriesL() { metaDataEntries().clear(); int numberOfMetaDataEntries = 0; - - //User::LeaveIfError(m_player->GetNumberOfMetaDataEntries(numberOfMetaDataEntries)); m_player->GetNumberOfMetaDataEntries(numberOfMetaDataEntries); - - for (int i = 0; i < numberOfMetaDataEntries; i++) { - CMMFMetaDataEntry *entry = NULL; + for (int i=0; i<numberOfMetaDataEntries; ++i) { + CMMFMetaDataEntry *entry = 0; entry = m_player->GetMetaDataEntryL(i); - metaDataEntries().insert(QString::fromUtf16(entry->Name().Ptr(), entry->Name().Length()), QString::fromUtf16(entry->Value().Ptr(), entry->Value().Length())); + metaDataEntries().insert(QString::fromUtf16(entry->Name().Ptr(), entry->Name().Length()), + QString::fromUtf16(entry->Value().Ptr(), entry->Value().Length())); delete entry; } emit metaDataChanged(); } -/*! - Sets the playbackRate with \a rate. -*/ - void S60AudioPlayerSession::setPlaybackRate(qreal rate) { TRACE("S60AudioPlayerSession::setPlaybackRate" << qtThisPtr() << "rate" << rate); - /*Since AudioPlayerUtility doesn't support set playback rate hence - * setPlaybackRate emits playbackRateChanged signal for 1.0x ie normal playback. - * For all other playBackRates it sets and emits error signal. - */ if (rate == 1.0) { emit playbackRateChanged(rate); return; @@ -287,11 +184,6 @@ void S60AudioPlayerSession::setPlaybackRate(qreal rate) } } -/*! - - Returns the percentage of the audio clip loaded. -*/ - int S60AudioPlayerSession::doGetBufferStatusL() const { int progress = 0; @@ -299,16 +191,6 @@ int S60AudioPlayerSession::doGetBufferStatusL() const return progress; } -/*! - - Defines required client behaviour when an attempt to open and initialise an audio sample has completed, - successfully or not. - - \a aError if KErrNone the sample is ready to play or else system wide error. - - \a aDuration The duration of the audio sample. -*/ - #ifdef S60_DRM_SUPPORTED void S60AudioPlayerSession::MdapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration) #else @@ -316,15 +198,14 @@ void S60AudioPlayerSession::MapcInitComplete(TInt aError, const TTimeIntervalMic #endif { TRACE("S60AudioPlayerSession::MapcInitComplete" << qtThisPtr() << "error" << aError); - Q_UNUSED(aDuration); setError(aError); if (KErrNone != aError) return; #ifdef HAS_AUDIOROUTING TRAPD(err, - m_audioOutput = CAudioOutput::NewL(*m_player); - m_audioOutput->RegisterObserverL(*this); + m_audioOutput = CAudioOutput::NewL(*m_player); + m_audioOutput->RegisterObserverL(*this); ); setActiveEndpoint(m_audioEndpoint); setError(err); @@ -333,14 +214,6 @@ void S60AudioPlayerSession::MapcInitComplete(TInt aError, const TTimeIntervalMic loaded(); } -/*! - Defines required client behaviour when an attempt to playback an audio sample has completed, - successfully or not. - - \a aError if KErrNone the playback completed or else system wide error. -*/ - - #ifdef S60_DRM_SUPPORTED void S60AudioPlayerSession::MdapcPlayComplete(TInt aError) #else @@ -348,29 +221,17 @@ void S60AudioPlayerSession::MapcPlayComplete(TInt aError) #endif { TRACE("S60AudioPlayerSession::MapcPlayComplete" << qtThisPtr() << "error" << aError); - if (KErrNone == aError) endOfMedia(); else setError(aError); } -/*! - Defiens which Audio End point to use. - - \a audioEndpoint audioEndpoint name. -*/ - -void S60AudioPlayerSession::doSetAudioEndpoint(const QString& audioEndpoint) +void S60AudioPlayerSession::doSetAudioEndpoint(const QString &audioEndpoint) { m_audioEndpoint = audioEndpoint; } -/*! - - Returns audioEndpoint name. -*/ - QString S60AudioPlayerSession::activeEndpoint() const { QString outputName = QString("Default"); @@ -383,10 +244,6 @@ QString S60AudioPlayerSession::activeEndpoint() const return outputName; } -/*! - * Returns default Audio End point in use. -*/ - QString S60AudioPlayerSession::defaultEndpoint() const { QString outputName = QString("Default"); @@ -399,17 +256,11 @@ QString S60AudioPlayerSession::defaultEndpoint() const return outputName; } -/*! - Sets active end \a name as an Audio End point. -*/ - -void S60AudioPlayerSession::setActiveEndpoint(const QString& name) +void S60AudioPlayerSession::setActiveEndpoint(const QString &name) { TRACE("S60AudioPlayerSession::setActiveEndpoint" << qtThisPtr() << "name" << name); - #ifdef HAS_AUDIOROUTING CAudioOutput::TAudioOutputPreference output = CAudioOutput::ENoPreference; - if (name == QString("Default")) output = CAudioOutput::ENoPreference; else if (name == QString("All")) @@ -420,7 +271,6 @@ void S60AudioPlayerSession::setActiveEndpoint(const QString& name) output = CAudioOutput::EPrivate; else if (name == QString("Speaker")) output = CAudioOutput::EPublic; - if (m_audioOutput) { TRAPD(err, m_audioOutput->SetAudioOutputL(output)); setError(err); @@ -428,34 +278,17 @@ void S60AudioPlayerSession::setActiveEndpoint(const QString& name) #endif } -/*! - The default audio output has been changed. - - \a aAudioOutput Audio Output object. - - \a aNewDefault is CAudioOutput::TAudioOutputPreference. -*/ - - #ifdef HAS_AUDIOROUTING void S60AudioPlayerSession::DefaultAudioOutputChanged(CAudioOutput& aAudioOutput, - CAudioOutput::TAudioOutputPreference aNewDefault) + CAudioOutput::TAudioOutputPreference aNewDefault) { - TRACE("S60AudioPlayerSession::DefaultAudioOutputChanged" << qtThisPtr() << "newDefault" << aNewDefault); - + TRACE("S60AudioPlayerSession::DefaultAudioOutputChanged" << qtThisPtr() + << "newDefault" << aNewDefault); // Emit already implemented in setActiveEndpoint function Q_UNUSED(aAudioOutput) Q_UNUSED(aNewDefault) } - -/*! - Converts CAudioOutput::TAudioOutputPreference enum to QString. - - \a output is CAudioOutput::TAudioOutputPreference enum value. - -*/ - QString S60AudioPlayerSession::qStringFromTAudioOutputPreference(CAudioOutput::TAudioOutputPreference output) const { if (output == CAudioOutput::ENoPreference) @@ -472,12 +305,7 @@ QString S60AudioPlayerSession::qStringFromTAudioOutputPreference(CAudioOutput::T } #endif -/*! - Return True if its Seekable or else False. -*/ - bool S60AudioPlayerSession::getIsSeekable() const { - return ETrue; + return true; } - diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.h index 772d9fc9a7..a2dee6f517 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60audioplayersession.h @@ -42,23 +42,22 @@ #ifndef S60AUDIOPLAYERSESSION_H #define S60AUDIOPLAYERSESSION_H -#include <QtCore/qobject.h> #include "s60mediaplayersession.h" #ifdef S60_DRM_SUPPORTED -#include <drmaudiosampleplayer.h> -typedef CDrmPlayerUtility CAudioPlayer; -typedef MDrmAudioPlayerCallback MAudioPlayerObserver; +# include <drmaudiosampleplayer.h> + typedef CDrmPlayerUtility CAudioPlayer; + typedef MDrmAudioPlayerCallback MAudioPlayerObserver; #else -#include <mdaaudiosampleplayer.h> -typedef CMdaAudioPlayerUtility CAudioPlayer; -typedef MMdaAudioPlayerCallback MAudioPlayerObserver; +# include <mdaaudiosampleplayer.h> + typedef CMdaAudioPlayerUtility CAudioPlayer; + typedef MMdaAudioPlayerCallback MAudioPlayerObserver; #endif #ifdef HAS_AUDIOROUTING -#include <AudioOutput.h> -#include <MAudioOutputObserver.h> -#endif //HAS_AUDIOROUTING +# include <AudioOutput.h> +# include <MAudioOutputObserver.h> +#endif class S60AudioPlayerSession : public S60MediaPlayerSession , public MAudioPlayerObserver @@ -72,32 +71,33 @@ public: S60AudioPlayerSession(QObject *parent); ~S60AudioPlayerSession(); - //From S60MediaPlayerSession + // S60MediaPlayerSession bool isVideoAvailable(); bool isAudioAvailable(); - // From MAudioLoadingObserver + // MAudioLoadingObserver void MaloLoadingStarted(); void MaloLoadingComplete(); #ifdef HAS_AUDIOROUTING - // From MAudioOutputObserver - void DefaultAudioOutputChanged( CAudioOutput& aAudioOutput, - CAudioOutput::TAudioOutputPreference aNewDefault ); -#endif //HAS_AUDIOROUTING + // MAudioOutputObserver + void DefaultAudioOutputChanged(CAudioOutput& aAudioOutput, + CAudioOutput::TAudioOutputPreference aNewDefault); +#endif public: - // From S60MediaPlayerAudioEndpointSelector + // S60MediaPlayerAudioEndpointSelector QString activeEndpoint() const; QString defaultEndpoint() const; void setPlaybackRate(qreal rate); + public Q_SLOTS: - void setActiveEndpoint(const QString& name); + void setActiveEndpoint(const QString &name); protected: - //From S60MediaPlayerSession + // S60MediaPlayerSession void doLoadL(const TDesC &path); - void doLoadUrlL(const TDesC &path){Q_UNUSED(path)/*empty implementation*/} + void doLoadUrlL(const TDesC &path); void doPlay(); void doStop(); void doClose(); @@ -108,29 +108,30 @@ protected: void updateMetaDataEntriesL(); int doGetBufferStatusL() const; qint64 doGetDurationL() const; - void doSetAudioEndpoint(const QString& audioEndpoint); + void doSetAudioEndpoint(const QString &audioEndpoint); bool getIsSeekable() const; + private: #ifdef S60_DRM_SUPPORTED - // From MMdaAudioPlayerCallback + // MMdaAudioPlayerCallback void MdapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration); void MdapcPlayComplete(TInt aError); #else - // From MDrmAudioPlayerCallback + // MDrmAudioPlayerCallback void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration); void MapcPlayComplete(TInt aError); #endif #ifdef HAS_AUDIOROUTING QString qStringFromTAudioOutputPreference(CAudioOutput::TAudioOutputPreference output) const; -#endif //HAS_AUDIOROUTING +#endif private: CAudioPlayer *m_player; #ifdef HAS_AUDIOROUTING CAudioOutput *m_audioOutput; -#endif //HAS_AUDIOROUTING +#endif QString m_audioEndpoint; }; -#endif +#endif // S60AUDIOPLAYERSESSION_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.cpp index 2d23db0434..49d6656bb6 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.cpp @@ -43,33 +43,20 @@ #include "s60mediaplayercontrol.h" #include "s60mediaplayersession.h" #include "s60mmtrace.h" -#include <QtCore/qdebug.h> -/*! - * Typecasts the \a control object to S60MediaPlayerControl object. -*/ S60MediaMetaDataProvider::S60MediaMetaDataProvider(QObject *control, QObject *parent) : QMetaDataReaderControl(parent) - , m_control(NULL) + , m_control(0) { TRACE("S60MediaMetaDataProvider::S60MediaMetaDataProvider" << qtThisPtr()); - m_control = qobject_cast<S60MediaPlayerControl*>(control); } -/*! - * Destructor -*/ - S60MediaMetaDataProvider::~S60MediaMetaDataProvider() { TRACE("S60MediaMetaDataProvider::~S60MediaMetaDataProvider" << qtThisPtr()); } -/*! - * Returns TRUE if MetaData is Available or else FALSE. -*/ - bool S60MediaMetaDataProvider::isMetaDataAvailable() const { if (m_control->session()) @@ -77,18 +64,11 @@ bool S60MediaMetaDataProvider::isMetaDataAvailable() const return false; } -/*! - * Always returns FLASE. -*/ bool S60MediaMetaDataProvider::isWritable() const { return false; } -/*! - * Returns when \a key meta data is found in metaData. -*/ - QVariant S60MediaMetaDataProvider::metaData(QtMultimediaKit::MetaData key) const { if (m_control->session()) @@ -96,10 +76,6 @@ QVariant S60MediaMetaDataProvider::metaData(QtMultimediaKit::MetaData key) const return QVariant(); } -/*! - * Returns available metaData. -*/ - QList<QtMultimediaKit::MetaData> S60MediaMetaDataProvider::availableMetaData() const { if (m_control->session()) @@ -107,10 +83,6 @@ QList<QtMultimediaKit::MetaData> S60MediaMetaDataProvider::availableMetaData() c return QList<QtMultimediaKit::MetaData>(); } -/*! - * Returns when \a key string is found in extended metaData. -*/ - QVariant S60MediaMetaDataProvider::extendedMetaData(const QString &key) const { if (m_control->session()) @@ -118,10 +90,6 @@ QVariant S60MediaMetaDataProvider::extendedMetaData(const QString &key) const return QVariant(); } -/*! - * Returns available Extended MetaData. -*/ - QStringList S60MediaMetaDataProvider::availableExtendedMetaData() const { if (m_control->session()) diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.h index b7285c4ff6..4b97609844 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediametadataprovider.h @@ -43,7 +43,6 @@ #define S60MEDIAMETADATAPROVIDER_H #include <qmetadatareadercontrol.h> -#include "s60mediaplayercontrol.h" QT_USE_NAMESPACE diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.cpp index 1604fccc61..b88850c332 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.cpp @@ -48,19 +48,20 @@ S60MediaNetworkAccessControl::S60MediaNetworkAccessControl(QObject *parent) , m_iapId(KUseDefaultIap) , m_currentIndex(0) { + } void S60MediaNetworkAccessControl::accessPointChanged(int id) { - if (!m_IapIdList.isEmpty()) - m_NetworkObject = m_NetworkObjectList.at(m_IapIdList.indexOf(id)); - emit configurationChanged(m_NetworkObject); + if (!m_iapIdList.isEmpty()) + m_networkObject = m_networkObjectList.at(m_iapIdList.indexOf(id)); + emit configurationChanged(m_networkObject); } S60MediaNetworkAccessControl::~S60MediaNetworkAccessControl() { - m_NetworkObjectList.clear(); - m_IapIdList.clear(); + m_networkObjectList.clear(); + m_iapIdList.clear(); } void S60MediaNetworkAccessControl::resetIndex() @@ -74,44 +75,41 @@ void S60MediaNetworkAccessControl::setConfigurations(const QList<QNetworkConfigu m_currentIndex =0; TRAPD(error, retriveAccesspointIDL(configurations)); if (error != KErrNone) { - m_NetworkObjectList.clear(); - m_IapIdList.clear(); + m_networkObjectList.clear(); + m_iapIdList.clear(); } } } -TBool S60MediaNetworkAccessControl::isLastAccessPoint() +bool S60MediaNetworkAccessControl::isLastAccessPoint() { - if (m_currentIndex == m_NetworkObjectList.size()) - return TRUE; + if (m_currentIndex == m_networkObjectList.size()) + return true; else - return FALSE; + return false; } int S60MediaNetworkAccessControl::accessPointId() { - if (m_IapIdList.isEmpty()) + if (m_iapIdList.isEmpty()) return m_iapId; - - m_iapId = m_IapIdList.at(m_currentIndex); - + m_iapId = m_iapIdList.at(m_currentIndex); if (isLastAccessPoint()) m_currentIndex = 0; else m_currentIndex ++; - return m_iapId; } QNetworkConfiguration S60MediaNetworkAccessControl::currentConfiguration() const { - return m_NetworkObject; + return m_networkObject; } void S60MediaNetworkAccessControl::retriveAccesspointIDL(const QList<QNetworkConfiguration> &configurationList) { - m_NetworkObjectList.clear(); - m_IapIdList.clear(); + m_networkObjectList.clear(); + m_iapIdList.clear(); TBuf<KBuffersize> iapName; TUint32 iapId; TInt err; @@ -123,22 +121,22 @@ void S60MediaNetworkAccessControl::retriveAccesspointIDL(const QList<QNetworkCon // Open the IAP table CCommsDbTableView* view = commDB->OpenTableLC(TPtrC(IAP)); - for (int i=0;i<=configurationList.size()- 1;i++) { - QString accesspointname = configurationList.at(i).name(); - TBuf<KBuffersize> accesspointbuffer(accesspointname.utf16()); + for (int i=0; i<=configurationList.size()- 1; ++i) { + QString accesspointname = configurationList.at(i).name(); + TBuf<KBuffersize> accesspointbuffer(accesspointname.utf16()); // Point to the first entry if (view->GotoFirstRecord() == KErrNone) { - do { - view->ReadTextL(TPtrC(COMMDB_NAME), iapName); - view->ReadUintL(TPtrC(COMMDB_ID), iapId); - if (accesspointbuffer == iapName) { - m_NetworkObjectList<<configurationList.at(i); - m_IapIdList<<iapId; - } - // Store name and ID to where you want to - } while (err = view->GotoNextRecord(), err == KErrNone); - } - } + do { + view->ReadTextL(TPtrC(COMMDB_NAME), iapName); + view->ReadUintL(TPtrC(COMMDB_ID), iapId); + if (accesspointbuffer == iapName) { + m_networkObjectList << configurationList.at(i); + m_iapIdList << iapId; + } + // Store name and ID to where you want to + } while (err = view->GotoNextRecord(), err == KErrNone); + } + } CleanupStack::PopAndDestroy(); // view CleanupStack::PopAndDestroy(); // commDB } diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.h index 529d95f272..a1c7e7d5ee 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60medianetworkaccesscontrol.h @@ -39,19 +39,15 @@ ** ****************************************************************************/ -#ifndef S60MEDIANETWORKACCESSCONTROL_H_ -#define S60MEDIANETWORKACCESSCONTROL_H_ +#ifndef S60MEDIANETWORKACCESSCONTROL_H +#define S60MEDIANETWORKACCESSCONTROL_H - -#include <QtCore/qobject.h> -#include <QtCore/qlist.h> -#include <QtCore/qstring.h> -#include <qmetaobject.h> -#include <QtNetwork/qnetworkconfiguration.h> +#include <QtCore/QList> +#include <QtNetwork/QNetworkConfiguration> +#include <qmedianetworkaccesscontrol.h> #include <commdbconnpref.h> #include <commdb.h> #include <mmf/common/mmfcontrollerframeworkbase.h> -#include <qmedianetworkaccesscontrol.h> #include "s60mediaplayercontrol.h" QT_BEGIN_NAMESPACE @@ -63,27 +59,26 @@ QT_END_NAMESPACE class S60MediaNetworkAccessControl : public QMediaNetworkAccessControl { Q_OBJECT - public: - S60MediaNetworkAccessControl(QObject *parent = 0); ~S60MediaNetworkAccessControl(); virtual void setConfigurations(const QList<QNetworkConfiguration> &configurations); virtual QNetworkConfiguration currentConfiguration() const; int accessPointId(); - TBool isLastAccessPoint(); + bool isLastAccessPoint(); void resetIndex(); public Q_SLOTS: void accessPointChanged(int); private: - void retriveAccesspointIDL(const QList<QNetworkConfiguration> &); - QList<int> m_IapIdList; - QList<QNetworkConfiguration> m_NetworkObjectList; - QNetworkConfiguration m_NetworkObject; + void retriveAccesspointIDL(const QList<QNetworkConfiguration> &accessPoint); + QList<int> m_iapIdList; + QList<QNetworkConfiguration> m_networkObjectList; + QNetworkConfiguration m_networkObject; int m_iapId; int m_currentIndex; }; -#endif /* S60MEDIANETWORKACCESSCONTROL_H_ */ + +#endif // S60MEDIANETWORKACCESSCONTROL_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.cpp index cdcc9f3841..c0885264d3 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.cpp @@ -44,19 +44,11 @@ #include "s60mediaplayeraudioendpointselector.h" #include "s60mmtrace.h" -#include <QtGui/QIcon> -#include <QtCore/QDebug> - -/*! - Constructs a new audio endpoint selector with the given \a parent. -*/ - S60MediaPlayerAudioEndpointSelector::S60MediaPlayerAudioEndpointSelector(QObject *control, QObject *parent) - :QAudioEndpointSelector(parent) + : QAudioEndpointSelector(parent) , m_control(0) { TRACE("S60MediaPlayerAudioEndpointSelector::S60MediaPlayerAudioEndpointSelector" << qtThisPtr()); - m_control = qobject_cast<S60MediaPlayerControl*>(control); m_audioEndpointNames.append("Default"); m_audioEndpointNames.append("All"); @@ -65,87 +57,66 @@ S60MediaPlayerAudioEndpointSelector::S60MediaPlayerAudioEndpointSelector(QObject m_audioEndpointNames.append("Speaker"); } -/*! - Destroys an audio endpoint selector. -*/ - S60MediaPlayerAudioEndpointSelector::~S60MediaPlayerAudioEndpointSelector() { TRACE("S60MediaPlayerAudioEndpointSelector::~S60MediaPlayerAudioEndpointSelector" << qtThisPtr()); } -/*! - \return a list of available audio endpoints. -*/ QList<QString> S60MediaPlayerAudioEndpointSelector::availableEndpoints() const { return m_audioEndpointNames; } -/*! - \return the description of the endpoint name. -*/ - QString S60MediaPlayerAudioEndpointSelector::endpointDescription(const QString& name) const { - if (name == QString("Default")) //ENoPreference + if (name == QString("Default")) // ENoPreference return QString("Used to indicate that the playing audio can be routed to" - "any speaker. This is the default value for audio."); - else if (name == QString("All")) //EAll + "any speaker. This is the default value for audio."); + else if (name == QString("All")) // EAll return QString("Used to indicate that the playing audio should be routed to all speakers."); - else if (name == QString("None")) //ENoOutput + else if (name == QString("None")) // ENoOutput return QString("Used to indicate that the playing audio should not be routed to any output."); - else if (name == QString("Earphone")) //EPrivate + else if (name == QString("Earphone")) // EPrivate return QString("Used to indicate that the playing audio should be routed to" - "the default private speaker. A private speaker is one that can only" - "be heard by one person."); - else if (name == QString("Speaker")) //EPublic + "the default private speaker. A private speaker is one that can only" + "be heard by one person."); + else if (name == QString("Speaker")) // EPublic return QString("Used to indicate that the playing audio should be routed to" - "the default public speaker. A public speaker is one that can " - "be heard by multiple people."); - + "the default public speaker. A public speaker is one that can " + "be heard by multiple people."); return QString(); } -/*! - \return the name of the currently selected audio endpoint. -*/ - QString S60MediaPlayerAudioEndpointSelector::activeEndpoint() const { - if (m_control->session()) { + if (m_control->session()) return m_control->session()->activeEndpoint(); - } - else { + else return m_control->mediaControlSettings().audioEndpoint(); - } } -/*! - \return the name of the default audio endpoint. -*/ - QString S60MediaPlayerAudioEndpointSelector::defaultEndpoint() const { - if (m_control->session()) { + if (m_control->session()) return m_control->session()->defaultEndpoint(); - } - else { + else return m_control->mediaControlSettings().audioEndpoint(); - } } -/*! - Set the audio endpoint to \a name. -*/ - -void S60MediaPlayerAudioEndpointSelector::setActiveEndpoint(const QString& name) +void S60MediaPlayerAudioEndpointSelector::setActiveEndpoint(const QString &name) { QString oldEndpoint = m_control->mediaControlSettings().audioEndpoint(); - if (name != oldEndpoint && (name == QString("Default") || name == QString("All") || - name == QString("None") || name == QString("Earphone") || name == QString("Speaker"))) { + if (name != oldEndpoint && + ( + name == QString("Default") + || name == QString("All") + || name == QString("None") + || name == QString("Earphone") + || name == QString("Speaker") + ) + ) { TRACE("S60MediaPlayerAudioEndpointSelector::setActiveEndpoint" << qtThisPtr() << "name" << name); if (m_control->session()) { diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.h index 9f0fcfe4e6..4f726259eb 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayeraudioendpointselector.h @@ -42,8 +42,8 @@ #ifndef S60MEDIAPLAYERAUDIOENDPOINTSELECTOR_H #define S60MEDIAPLAYERAUDIOENDPOINTSELECTOR_H -#include <QStringList> - +#include <QtCore/QList> +#include <QtCore/QString> #include <qaudioendpointselector.h> QT_USE_NAMESPACE @@ -53,20 +53,18 @@ class S60MediaPlayerSession; class S60MediaPlayerAudioEndpointSelector : public QAudioEndpointSelector { - -Q_OBJECT - + Q_OBJECT public: S60MediaPlayerAudioEndpointSelector(QObject *control, QObject *parent = 0); ~S60MediaPlayerAudioEndpointSelector(); QList<QString> availableEndpoints() const ; - QString endpointDescription(const QString& name) const; + QString endpointDescription(const QString &name) const; QString defaultEndpoint() const; QString activeEndpoint() const; public Q_SLOTS: - void setActiveEndpoint(const QString& name); + void setActiveEndpoint(const QString &name); private: S60MediaPlayerControl* m_control; diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp index 8cab27e8cf..1a83fa0313 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.cpp @@ -1,4 +1,3 @@ - /**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). @@ -40,40 +39,27 @@ ** ****************************************************************************/ +#include <QtCore/QDir> +#include <QtCore/QUrl> #include "s60mediaplayercontrol.h" #include "s60mediaplayersession.h" #include "s60mmtrace.h" -#include <QtCore/qdir.h> -#include <QtCore/qurl.h> -#include <QtCore/qdebug.h> - -/*! - Constructs a new media player control with the given \a parent. -*/ - S60MediaPlayerControl::S60MediaPlayerControl(S60MediaPlayerService *service) - : QMediaPlayerControl(service), - m_service(service), - m_session(NULL), - m_stream(NULL) + : QMediaPlayerControl(service) + , m_service(service) + , m_session(0) + , m_stream(0) + , m_mediaSettings(new S60MediaSettings(this)) { TRACE("S60MediaPlayerControl::S60MediaPlayerControl" << qtThisPtr()); } -/*! - Destroys a media player control. -*/ - S60MediaPlayerControl::~S60MediaPlayerControl() { TRACE("S60MediaPlayerControl::~S60MediaPlayerControl" << qtThisPtr()); } -/*! - \return the current playback position in milliseconds. -*/ - qint64 S60MediaPlayerControl::position() const { if (m_session) @@ -81,10 +67,6 @@ qint64 S60MediaPlayerControl::position() const return 0; } -/*! - \return the duration of the current media in milliseconds. -*/ - qint64 S60MediaPlayerControl::duration() const { if (m_session) @@ -92,10 +74,6 @@ qint64 S60MediaPlayerControl::duration() const return -1; } -/*! - \return the state of a player control. -*/ - QMediaPlayer::State S60MediaPlayerControl::state() const { if (m_session) @@ -103,22 +81,13 @@ QMediaPlayer::State S60MediaPlayerControl::state() const return QMediaPlayer::StoppedState; } -/*! - \return the status of the current media. -*/ - QMediaPlayer::MediaStatus S60MediaPlayerControl::mediaStatus() const { if (m_session) return m_session->mediaStatus(); - return m_mediaSettings.mediaStatus(); + return m_mediaSettings->mediaStatus(); } -/*! - \return the buffering progress of the current media. Progress is measured in the percentage - of the buffer filled. -*/ - int S60MediaPlayerControl::bufferStatus() const { if (m_session) @@ -126,212 +95,112 @@ int S60MediaPlayerControl::bufferStatus() const return 0; } -/*! - \return the audio volume of a player control. -*/ - int S60MediaPlayerControl::volume() const { if (m_session) return m_session->volume(); - return m_mediaSettings.volume(); + return m_mediaSettings->volume(); } -/*! - \return the mute state of a player control. -*/ - bool S60MediaPlayerControl::isMuted() const { if (m_session) - return m_session->isMuted(); - return m_mediaSettings.isMuted(); + return m_session->isMuted(); + return m_mediaSettings->isMuted(); } -/*! - Identifies if the current media is seekable. - - \return true if it possible to seek within the current media, and false otherwise. -*/ - bool S60MediaPlayerControl::isSeekable() const { if (m_session) - return m_session->isSeekable(); + return m_session->isSeekable(); return false; } -/*! - \return a range of times in milliseconds that can be played back. - - Usually for local files this is a continuous interval equal to [0..duration()] - or an empty time range if seeking is not supported, but for network sources - it refers to the buffered parts of the media. -*/ - QMediaTimeRange S60MediaPlayerControl::availablePlaybackRanges() const { QMediaTimeRange ranges; - - if(m_session && m_session->isSeekable()) + if (m_session && m_session->isSeekable()) ranges.addInterval(0, m_session->duration()); - return ranges; } -/*! - \return the rate of playback. -*/ - qreal S60MediaPlayerControl::playbackRate() const { - return m_mediaSettings.playbackRate(); + return m_mediaSettings->playbackRate(); } -/*! - Sets the \a rate of playback. -*/ - void S60MediaPlayerControl::setPlaybackRate(qreal rate) { TRACE("S60MediaPlayerControl::setPlaybackRate" << qtThisPtr() << "rate" << rate); - - //getting the current playbackrate - qreal currentPBrate = m_mediaSettings.playbackRate(); - //checking if we need to change the Playback rate - if (!qFuzzyCompare(currentPBrate,rate)) + qreal currentRate = m_mediaSettings->playbackRate(); + if (!qFuzzyCompare(currentRate, rate)) { - if(m_session) + if (m_session) m_session->setPlaybackRate(rate); - - m_mediaSettings.setPlaybackRate(rate); + m_mediaSettings->setPlaybackRate(rate); } } -/*! - Sets the playback \a pos of the current media. This will initiate a seek and it may take - some time for playback to reach the position set. -*/ - void S60MediaPlayerControl::setPosition(qint64 pos) { TRACE("S60MediaPlayerControl::setPosition" << qtThisPtr() << "pos" << pos); - if (m_session) m_session->setPosition(pos); } -/*! - Starts playback of the current media. - - If successful the player control will immediately enter the \l {QMediaPlayer::PlayingState} - {playing} state. -*/ - void S60MediaPlayerControl::play() { TRACE("S60MediaPlayerControl::play" << qtThisPtr()); - if (m_session) m_session->play(); } -/*! - Pauses playback of the current media. - - If sucessful the player control will immediately enter the \l {QMediaPlayer::PausedState} - {paused} state. -*/ - void S60MediaPlayerControl::pause() { TRACE("S60MediaPlayerControl::pause" << qtThisPtr()); - if (m_session) m_session->pause(); } -/*! - Stops playback of the current media. - - If successful the player control will immediately enter the \l {QMediaPlayer::StoppedState} - {stopped} state. -*/ - void S60MediaPlayerControl::stop() { TRACE("S60MediaPlayerControl::stop" << qtThisPtr()); - if (m_session) m_session->stop(); } -/*! - Sets the audio \a volume of a player control. -*/ - void S60MediaPlayerControl::setVolume(int volume) { int boundVolume = qBound(0, volume, 100); - if (boundVolume == m_mediaSettings.volume()) + if (boundVolume == m_mediaSettings->volume()) return; - TRACE("S60MediaPlayerControl::setVolume" << qtThisPtr() << "volume" << volume << "boundVolume" << boundVolume); - - m_mediaSettings.setVolume(boundVolume); - + m_mediaSettings->setVolume(boundVolume); if (m_session) m_session->setVolume(boundVolume); } -/*! - Sets the \a muted state of a player control. -*/ - void S60MediaPlayerControl::setMuted(bool muted) { - if (m_mediaSettings.isMuted() == muted) + if (m_mediaSettings->isMuted() == muted) return; - TRACE("S60MediaPlayerControl::setMuted" << qtThisPtr() << "muted" << muted); - - m_mediaSettings.setMuted(muted); - + m_mediaSettings->setMuted(muted); if (m_session) m_session->setMuted(muted); } -/*! - * \return the current media source. -*/ - QMediaContent S60MediaPlayerControl::media() const { return m_media; } -/*! - \return the current media stream. This is only a valid if a stream was passed to setMedia(). - - \sa setMedia() -*/ - const QIODevice *S60MediaPlayerControl::mediaStream() const { return m_stream; } -/*! - Sets the current \a source media source. If a \a stream is supplied; data will be read from that - instead of attempting to resolve the media source. The media source may still be used to - supply media information such as mime type. - - Setting the media to a null QMediaContent will cause the control to discard all - information relating to the current media source and to cease all I/O operations related - to that media. -*/ - void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *stream) { TRACE("S60MediaPlayerControl::setMedia" << qtThisPtr() @@ -349,7 +218,7 @@ void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *str m_session->load(source); mediaStatus = m_session->mediaStatus(); } - m_mediaSettings.setMediaStatus(mediaStatus); + m_mediaSettings->setMediaStatus(mediaStatus); } emit stateChanged(QMediaPlayer::StoppedState); if (m_media != source) { @@ -358,47 +227,32 @@ void S60MediaPlayerControl::setMedia(const QMediaContent &source, QIODevice *str } } -/*! - * \return media player session. -*/ S60MediaPlayerSession* S60MediaPlayerControl::session() { return m_session; } -/*! - * Sets \a output as a VideoOutput. -*/ - void S60MediaPlayerControl::setVideoOutput(QObject *output) { TRACE("S60MediaPlayerControl::setVideoOutput" << qtThisPtr() << "output" << output); - m_mediaSettings.setVideoOutput(output); + m_mediaSettings->setVideoOutput(output); if (m_session) m_session->setVideoRenderer(output); } QObject *S60MediaPlayerControl::videoOutput() const { - return m_mediaSettings.videoOutput(); + return m_mediaSettings->videoOutput(); } -/*! - * \return TRUE if Audio available or else FALSE. -*/ - bool S60MediaPlayerControl::isAudioAvailable() const { if (m_session) - return m_session->isAudioAvailable(); + return m_session->isAudioAvailable(); return false; } -/*! - * \return TRUE if Video available or else FALSE. -*/ - bool S60MediaPlayerControl::isVideoAvailable() const { if (m_session) @@ -406,36 +260,22 @@ bool S60MediaPlayerControl::isVideoAvailable() const return false; } -/*! - * \return media settings. - * - * Media Settings include volume, muted, playbackRate, mediaStatus, audioEndpoint. -*/ -const S60MediaSettings& S60MediaPlayerControl::mediaControlSettings() const +const S60MediaSettings &S60MediaPlayerControl::mediaControlSettings() const { - return m_mediaSettings; + return *m_mediaSettings; } -/*! - * Set the audio endpoint to \a name. -*/ - -void S60MediaPlayerControl::setAudioEndpoint(const QString& name) +void S60MediaPlayerControl::setAudioEndpoint(const QString &name) { TRACE("S60MediaPlayerControl::setAudioEndpoint" << qtThisPtr() << "name" << name); - - m_mediaSettings.setAudioEndpoint(name); + m_mediaSettings->setAudioEndpoint(name); } -/*! - * Sets media type \a type as Unknown, Video, Audio, Data. -*/ - -void S60MediaPlayerControl::setMediaType(S60MediaSettings::TMediaType type) +void S60MediaPlayerControl::setMediaType(S60MediaSettings::MediaType type) { TRACE("S60MediaPlayerControl::setMediaType" << qtThisPtr() << "type" << type); - - m_mediaSettings.setMediaType(type); + m_mediaSettings->setMediaType(type); } + diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.h index 7fde62867c..3356170981 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayercontrol.h @@ -42,11 +42,8 @@ #ifndef S60MEDIAPLAYERCONTROL_H #define S60MEDIAPLAYERCONTROL_H -#include <QtCore/qobject.h> - #include <qmediaplayercontrol.h> - -#include <QtCore/qdebug.h> +#include "s60mediasettings.h" QT_BEGIN_NAMESPACE class QMediaPlayer; @@ -59,48 +56,6 @@ QT_USE_NAMESPACE class S60MediaPlayerSession; class S60MediaPlayerService; -class S60MediaSettings -{ - -public: - S60MediaSettings() - : m_volume(30) - , m_muted(false) - , m_playbackRate(0) - , m_mediaStatus(QMediaPlayer::NoMedia) - , m_audioEndpoint(QString("Default")) - , m_videoOutput(0) - { - } - - enum TMediaType {Unknown, Video, Audio, Data}; - - void setVolume(int volume) { m_volume = volume; } - void setMuted(bool muted) { m_muted = muted; } - void setPlaybackRate(qreal rate) { m_playbackRate = rate; } - void setMediaStatus(QMediaPlayer::MediaStatus status) {m_mediaStatus=status;} - void setAudioEndpoint(const QString& audioEndpoint) { m_audioEndpoint = audioEndpoint; } - void setMediaType(S60MediaSettings::TMediaType type) { m_mediaType = type; } - void setVideoOutput(QObject *value) { m_videoOutput = value; } - - int volume() const { return m_volume; } - bool isMuted() const { return m_muted; } - qreal playbackRate() const { return m_playbackRate; } - QMediaPlayer::MediaStatus mediaStatus() const {return m_mediaStatus;} - QString audioEndpoint() const { return m_audioEndpoint; } - S60MediaSettings::TMediaType mediaType() const { return m_mediaType; } - QObject *videoOutput() const { return m_videoOutput; } - -private: - int m_volume; - bool m_muted; - qreal m_playbackRate; - QMediaPlayer::MediaStatus m_mediaStatus; - QString m_audioEndpoint; - S60MediaSettings::TMediaType m_mediaType; - QObject *m_videoOutput; -}; - class S60MediaPlayerControl : public QMediaPlayerControl { Q_OBJECT @@ -109,44 +64,44 @@ public: S60MediaPlayerControl(S60MediaPlayerService *service); ~S60MediaPlayerControl(); - // from QMediaPlayerControl - virtual QMediaPlayer::State state() const; - virtual QMediaPlayer::MediaStatus mediaStatus() const; - virtual qint64 duration() const; - virtual qint64 position() const; - virtual void setPosition(qint64 pos); - virtual int volume() const; - virtual void setVolume(int volume); - virtual bool isMuted() const; - virtual void setMuted(bool muted); - virtual int bufferStatus() const; - virtual bool isAudioAvailable() const; - virtual bool isVideoAvailable() const; - virtual bool isSeekable() const; - virtual QMediaTimeRange availablePlaybackRanges() const; - virtual qreal playbackRate() const; - virtual void setPlaybackRate(qreal rate); - virtual QMediaContent media() const; - virtual const QIODevice *mediaStream() const; - virtual void setMedia(const QMediaContent&, QIODevice *); - virtual void play(); - virtual void pause(); - virtual void stop(); + // QMediaPlayerControl + QMediaPlayer::State state() const; + QMediaPlayer::MediaStatus mediaStatus() const; + qint64 duration() const; + qint64 position() const; + void setPosition(qint64 pos); + int volume() const; + void setVolume(int volume); + bool isMuted() const; + void setMuted(bool muted); + int bufferStatus() const; + bool isAudioAvailable() const; + bool isVideoAvailable() const; + bool isSeekable() const; + QMediaTimeRange availablePlaybackRanges() const; + qreal playbackRate() const; + void setPlaybackRate(qreal rate); + QMediaContent media() const; + const QIODevice *mediaStream() const; + void setMedia(const QMediaContent &source, QIODevice *device); + void play(); + void pause(); + void stop(); // Own methods S60MediaPlayerSession* session(); void setVideoOutput(QObject *output); QObject *videoOutput() const; const S60MediaSettings& mediaControlSettings() const; - void setAudioEndpoint(const QString& name); - void setMediaType(S60MediaSettings::TMediaType type); + void setAudioEndpoint(const QString &name); + void setMediaType(S60MediaSettings::MediaType type); private: S60MediaPlayerService *m_service; S60MediaPlayerSession *m_session; QMediaContent m_media; QIODevice *m_stream; - S60MediaSettings m_mediaSettings; + S60MediaSettings *m_mediaSettings; }; #endif diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.cpp index 51d9f5b4f2..0a7c1a12d9 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.cpp @@ -42,7 +42,8 @@ #include <QtCore/qvariant.h> #include <QtCore/qdebug.h> #include <QtGui/qwidget.h> - +#include <qmediaplaylistnavigator.h> +#include <qmediaplaylist.h> #include "s60mediaplayerservice.h" #include "s60mediaplayercontrol.h" #include "s60videoplayersession.h" @@ -55,13 +56,6 @@ #include "s60mediastreamcontrol.h" #include "s60mmtrace.h" -#include <qmediaplaylistnavigator.h> -#include <qmediaplaylist.h> - -/*! - Construct a media service with the given \a parent. -*/ - S60MediaPlayerService::S60MediaPlayerService(QObject *parent) : QMediaService(parent) , m_control(0) @@ -72,7 +66,6 @@ S60MediaPlayerService::S60MediaPlayerService(QObject *parent) , m_videoOutputFactory(0) { TRACE("S60MediaPlayerService::S60MediaPlayerService" << qtThisPtr()); - m_control = new S60MediaPlayerControl(this); m_metaData = new S60MediaMetaDataProvider(m_control, this); m_audioEndpointSelector = new S60MediaPlayerAudioEndpointSelector(m_control, this); @@ -81,41 +74,22 @@ S60MediaPlayerService::S60MediaPlayerService(QObject *parent) m_videoOutputFactory = new S60VideoOutputFactory(this); } -/*! - Destroys a media service. -*/ - S60MediaPlayerService::~S60MediaPlayerService() { TRACE("S60MediaPlayerService::~S60MediaPlayerService" << qtThisPtr()); } -/*! - \return a pointer to the media control, which matches the controller \a name. - - If the service does not implement the control, or if it is unavailable a - null pointer is returned instead. - - Controls must be returned to the service when no longer needed using the - releaseControl() function. -*/ - QMediaControl *S60MediaPlayerService::requestControl(const char *name) { QMediaControl *result = 0; - if (qstrcmp(name, QMediaPlayerControl_iid) == 0) result = m_control; - if (qstrcmp(name, QMediaNetworkAccessControl_iid) == 0) result = m_networkAccessControl; - if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) result = m_metaData; - if (qstrcmp(name, QAudioEndpointSelector_iid) == 0) result = m_audioEndpointSelector; - if (qstrcmp(name, QMediaStreamsControl_iid) == 0) result = m_streamControl; @@ -130,10 +104,6 @@ QMediaControl *S60MediaPlayerService::requestControl(const char *name) return result; } -/*! - Releases a \a control back to the service. -*/ - void S60MediaPlayerService::releaseControl(QMediaControl *control) { TRACE("S60MediaPlayerService::releaseControl" << qtThisPtr() @@ -144,15 +114,11 @@ void S60MediaPlayerService::releaseControl(QMediaControl *control) m_videoOutputFactory->releaseControl(control); } -/*! - * \return media player session(audio playersesion/video playersession) - * by recognizing whether media is audio or video and sets it on media type. -*/ S60MediaPlayerSession* S60MediaPlayerService::createPlayerSession(const QMediaContent &content) { QUrl url = content.canonicalUrl(); S60MediaPlayerSession *session = 0; - S60MediaSettings::TMediaType mediaType = S60MediaSettings::Unknown; + S60MediaSettings::MediaType mediaType = S60MediaSettings::Unknown; if (!url.isEmpty()) { S60MediaRecognizer *recognizer = new S60MediaRecognizer; const S60MediaRecognizer::MediaType recognizerMediaType = recognizer->mediaType(url); @@ -173,16 +139,9 @@ S60MediaPlayerSession* S60MediaPlayerService::createPlayerSession(const QMediaCo return session; } -/*! - * \return media playersession (videoplayersession). - * constructs the videoplayersession object and connects all the respective signals and slots. - * and initialises all the media settings. -*/ - S60MediaPlayerSession* S60MediaPlayerService::createVideoPlayerSession() { S60VideoPlayerSession *session = new S60VideoPlayerSession(this, m_networkAccessControl); - connect(session, SIGNAL(positionChanged(qint64)), m_control, SIGNAL(positionChanged(qint64))); connect(session, SIGNAL(playbackRateChanged(qreal)), @@ -217,25 +176,16 @@ S60MediaPlayerSession* S60MediaPlayerService::createVideoPlayerSession() m_streamControl, SLOT(handleStreamsChanged())); connect(session, SIGNAL(accessPointChanged(int)), m_networkAccessControl, SLOT(accessPointChanged(int))); - session->setVolume(m_control->mediaControlSettings().volume()); session->setMuted(m_control->mediaControlSettings().isMuted()); session->setAudioEndpoint(m_control->mediaControlSettings().audioEndpoint()); session->setVideoRenderer(m_control->mediaControlSettings().videoOutput()); - return session; } -/*! - * \return media playersession (audioplayersession). - * constructs the audioplayersession object and connects all the respective signals and slots. - * and initialises all the media settings. -*/ - S60MediaPlayerSession* S60MediaPlayerService::createAudioPlayerSession() { S60AudioPlayerSession *session = new S60AudioPlayerSession(this); - connect(session, SIGNAL(positionChanged(qint64)), m_control, SIGNAL(positionChanged(qint64))); connect(session, SIGNAL(playbackRateChanged(qreal)), @@ -268,10 +218,9 @@ S60MediaPlayerSession* S60MediaPlayerService::createAudioPlayerSession() m_audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&))); connect(session, SIGNAL(mediaChanged()), m_streamControl, SLOT(handleStreamsChanged())); - session->setVolume(m_control->mediaControlSettings().volume()); session->setMuted(m_control->mediaControlSettings().isMuted()); session->setAudioEndpoint(m_control->mediaControlSettings().audioEndpoint()); - return session; } + diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.h index ec39a8d2a8..54e772dd9e 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerservice.h @@ -44,7 +44,6 @@ #include <QtCore/qobject.h> #include <qmediaservice.h> - #include "s60mediaplayeraudioendpointselector.h" QT_BEGIN_NAMESPACE @@ -61,21 +60,19 @@ class S60MediaPlayerControl; class S60MediaMetaDataProvider; class S60MediaStreamControl; class S60MediaRecognizer; +class S60MediaNetworkAccessControl; class S60VideoOutputFactory; - class QMediaContent; class QMediaPlaylistNavigator; -class S60MediaNetworkAccessControl; class S60MediaPlayerService : public QMediaService { Q_OBJECT - public: - S60MediaPlayerService(QObject *parent = 0); ~S60MediaPlayerService(); + // QMediaService QMediaControl *requestControl(const char *name); void releaseControl(QMediaControl *control); diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp index 3cef38b3f8..24a8b78671 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp @@ -39,19 +39,13 @@ ** ****************************************************************************/ -#include "s60mediaplayersession.h" -#include "s60mmtrace.h" - -#include <QtCore/qdebug.h> -#include <QtCore/qdir.h> -#include <QtCore/qvariant.h> -#include <QtCore/qtimer.h> +#include <QtCore/QDir> +#include <QtCore/QTimer> #include <mmf/common/mmferrors.h> #include <qmediatimerange.h> - -/*! - Construct a media playersession with the given \a parent. -*/ +#include "s60mediaplayersession.h" +#include "s60mediaplayerutils.h" +#include "s60mmtrace.h" S60MediaPlayerSession::S60MediaPlayerSession(QObject *parent) : QObject(parent) @@ -70,44 +64,28 @@ S60MediaPlayerSession::S60MediaPlayerSession(QObject *parent) , m_progressduration(0) { TRACE("S60MediaPlayerSession::S60MediaPlayerSession" << qtThisPtr()); - connect(m_progressTimer, SIGNAL(timeout()), this, SLOT(tick())); connect(m_stalledTimer, SIGNAL(timeout()), this, SLOT(stalled())); } -/*! - Destroys a media playersession. -*/ - S60MediaPlayerSession::~S60MediaPlayerSession() { TRACE("S60MediaPlayerSession::~S60MediaPlayerSession" << qtThisPtr()); } -/*! - * \return the audio volume of a player session. -*/ int S60MediaPlayerSession::volume() const { return m_volume; } -/*! - Sets the audio \a volume of a player session. -*/ - void S60MediaPlayerSession::setVolume(int volume) { if (m_volume == volume) return; - TRACE("S60MediaPlayerSession::setVolume" << qtThisPtr() << "volume" << volume); - m_volume = volume; emit volumeChanged(m_volume); - - // Dont set symbian players volume until media loaded. - // Leaves with KerrNotReady although documentation says otherwise. + // Don't set player volume until media loaded if (!m_muted && ( mediaStatus() == QMediaPlayer::LoadedMedia || (mediaStatus() == QMediaPlayer::StalledMedia && state() != QMediaPlayer::StoppedState) @@ -119,94 +97,55 @@ void S60MediaPlayerSession::setVolume(int volume) } } -/*! - \return the mute state of a player session. -*/ - bool S60MediaPlayerSession::isMuted() const { return m_muted; } -/*! - Identifies if the current media is seekable. - - \return true if it possible to seek within the current media, and false otherwise. -*/ - bool S60MediaPlayerSession::isSeekable() const { return m_seekable; } -/*! - Sets the \a status of the current media. -*/ - void S60MediaPlayerSession::setMediaStatus(QMediaPlayer::MediaStatus status) { if (m_mediaStatus == status) return; - TRACE("S60MediaPlayerSession::setMediaStatus" << qtThisPtr() << "status" << status); - m_mediaStatus = status; - emit mediaStatusChanged(m_mediaStatus); - if (m_play_requested && m_mediaStatus == QMediaPlayer::LoadedMedia) play(); } -/*! - Sets the \a state on media player. -*/ - void S60MediaPlayerSession::setState(QMediaPlayer::State state) { if (m_state == state) return; - TRACE("S60MediaPlayerSession::setMediaStatus" << qtThisPtr() << "state" << state); - m_state = state; emit stateChanged(m_state); } -/*! - \return the state of a player session. -*/ - QMediaPlayer::State S60MediaPlayerSession::state() const { return m_state; } -/*! - \return the status of the current media. -*/ - QMediaPlayer::MediaStatus S60MediaPlayerSession::mediaStatus() const { return m_mediaStatus; } -/*! - * Loads the \a url for playback. - * If \a url is local file then it loads audio playersesion if its audio file. - * If it is a local video file then loads the video playersession. -*/ - void S60MediaPlayerSession::load(const QMediaContent source) { TRACE("S60MediaPlayerSession::load" << qtThisPtr() << "source" << source.canonicalUrl().toString()); - m_source = source; setMediaStatus(QMediaPlayer::LoadingMedia); startStalledTimer(); - m_stream = (source.canonicalUrl().scheme() == "file")?false:true; - m_UrlPath = source.canonicalUrl(); + m_stream = (source.canonicalUrl().scheme() != "file"); + m_url = source.canonicalUrl(); TRAPD(err, if (m_stream) doLoadUrlL(QString2TPtrC(source.canonicalUrl().toString())); @@ -216,35 +155,32 @@ void S60MediaPlayerSession::load(const QMediaContent source) m_isaudiostream = false; } +bool S60MediaPlayerSession::getIsSeekable() const +{ + return ETrue; +} + TBool S60MediaPlayerSession::isStreaming() { return m_stream; } -/*! - Start or resume playing the current source. -*/ void S60MediaPlayerSession::play() { TRACE("S60MediaPlayerSession::play" << qtThisPtr() << "state" << state() << "mediaStatus" << mediaStatus()); - - if ( (state() == QMediaPlayer::PlayingState && m_play_requested == false) + if ( (state() == QMediaPlayer::PlayingState && m_play_requested == false) || mediaStatus() == QMediaPlayer::UnknownMediaStatus || mediaStatus() == QMediaPlayer::NoMedia || mediaStatus() == QMediaPlayer::InvalidMedia) return; - setState(QMediaPlayer::PlayingState); - if (mediaStatus() == QMediaPlayer::LoadingMedia || (mediaStatus() == QMediaPlayer::StalledMedia && - state() == QMediaPlayer::StoppedState)) - { + state() == QMediaPlayer::StoppedState)) { m_play_requested = true; return; } - m_play_requested = false; m_duration = duration(); setVolume(m_volume); @@ -253,38 +189,25 @@ void S60MediaPlayerSession::play() doPlay(); } -/*! - Pause playing the current source. -*/ - void S60MediaPlayerSession::pause() { TRACE("S60MediaPlayerSession::pause" << qtThisPtr()); - if (state() != QMediaPlayer::PlayingState) return; - if (mediaStatus() == QMediaPlayer::NoMedia || mediaStatus() == QMediaPlayer::InvalidMedia) return; - setState(QMediaPlayer::PausedState); stopProgressTimer(); TRAP_IGNORE(doPauseL()); m_play_requested = false; } -/*! - Stop playing, and reset the play position to the beginning. -*/ - void S60MediaPlayerSession::stop() { TRACE("S60MediaPlayerSession::stop" << qtThisPtr()); - if (state() == QMediaPlayer::StoppedState) return; - m_play_requested = false; m_state = QMediaPlayer::StoppedState; if (mediaStatus() == QMediaPlayer::BufferingMedia || @@ -300,129 +223,99 @@ void S60MediaPlayerSession::stop() emit stateChanged(m_state); } -/*! - * Sets \a renderer as video renderer. -*/ - void S60MediaPlayerSession::setVideoRenderer(QObject *renderer) { TRACE("S60MediaPlayerSession::setVideoRenderer" << qtThisPtr() << "videoRenderer" << renderer); - Q_UNUSED(renderer); } -/*! - * the percentage of the temporary buffer filled before playback begins. - - When the player object is buffering; this property holds the percentage of - the temporary buffer that is filled. The buffer will need to reach 100% - filled before playback can resume, at which time the MediaStatus will be - BufferedMedia. - - \sa mediaStatus() -*/ - int S60MediaPlayerSession::bufferStatus() { if (state() ==QMediaPlayer::StoppedState) return 0; - if( mediaStatus() == QMediaPlayer::LoadingMedia || mediaStatus() == QMediaPlayer::UnknownMediaStatus || mediaStatus() == QMediaPlayer::NoMedia || mediaStatus() == QMediaPlayer::InvalidMedia) return 0; - int progress = 0; TRAPD(err, progress = doGetBufferStatusL()); // If buffer status query not supported by codec return 100 // do not set error - if(err == KErrNotSupported) + if (err == KErrNotSupported) return 100; - setError(err); return progress; } -/*! - * return TRUE if Meta data is available in current media source. -*/ - bool S60MediaPlayerSession::isMetadataAvailable() const { return !m_metaDataMap.isEmpty(); } -/*! - * \return the \a key meta data. -*/ QVariant S60MediaPlayerSession::metaData(const QString &key) const { return m_metaDataMap.value(key); } -/*! - * \return the \a key meta data as QString. -*/ - QVariant S60MediaPlayerSession::metaData(QtMultimediaKit::MetaData key) const { return metaData(metaDataKeyAsString(key)); } -/*! - * \return List of all available meta data from current media source. -*/ - QList<QtMultimediaKit::MetaData> S60MediaPlayerSession::availableMetaData() const { QList<QtMultimediaKit::MetaData> metaDataTags; if (isMetadataAvailable()) { - for (int i = QtMultimediaKit::Title; i <= QtMultimediaKit::ThumbnailImage; i++) { + for (int i=QtMultimediaKit::Title; i<=QtMultimediaKit::ThumbnailImage; ++i) { QString metaDataItem = metaDataKeyAsString((QtMultimediaKit::MetaData)i); if (!metaDataItem.isEmpty()) { - if (!metaData(metaDataItem).isNull()) { + if (!metaData(metaDataItem).isNull()) metaDataTags.append((QtMultimediaKit::MetaData)i); - } } } } - return metaDataTags; } -/*! - * \return all available extended meta data of current media source. -*/ - QStringList S60MediaPlayerSession::availableExtendedMetaData() const { return m_metaDataMap.keys(); } -/*! - * \return meta data \a key as QString. -*/ - QString S60MediaPlayerSession::metaDataKeyAsString(QtMultimediaKit::MetaData key) const { switch(key) { - case QtMultimediaKit::Title: return "title"; - case QtMultimediaKit::AlbumArtist: return "artist"; - case QtMultimediaKit::Comment: return "comment"; - case QtMultimediaKit::Genre: return "genre"; - case QtMultimediaKit::Year: return "year"; - case QtMultimediaKit::Copyright: return "copyright"; - case QtMultimediaKit::AlbumTitle: return "album"; - case QtMultimediaKit::Composer: return "composer"; - case QtMultimediaKit::TrackNumber: return "albumtrack"; - case QtMultimediaKit::AudioBitRate: return "audiobitrate"; - case QtMultimediaKit::VideoBitRate: return "videobitrate"; - case QtMultimediaKit::Duration: return "duration"; - case QtMultimediaKit::MediaType: return "contenttype"; - case QtMultimediaKit::CoverArtImage: return "attachedpicture"; - case QtMultimediaKit::SubTitle: // TODO: Find the matching metadata keys + case QtMultimediaKit::Title: + return "title"; + case QtMultimediaKit::AlbumArtist: + return "artist"; + case QtMultimediaKit::Comment: + return "comment"; + case QtMultimediaKit::Genre: + return "genre"; + case QtMultimediaKit::Year: + return "year"; + case QtMultimediaKit::Copyright: + return "copyright"; + case QtMultimediaKit::AlbumTitle: + return "album"; + case QtMultimediaKit::Composer: + return "composer"; + case QtMultimediaKit::TrackNumber: + return "albumtrack"; + case QtMultimediaKit::AudioBitRate: + return "audiobitrate"; + case QtMultimediaKit::VideoBitRate: + return "videobitrate"; + case QtMultimediaKit::Duration: + return "duration"; + case QtMultimediaKit::MediaType: + return "contenttype"; + case QtMultimediaKit::CoverArtImage: + return "attachedpicture"; + case QtMultimediaKit::SubTitle: case QtMultimediaKit::Description: case QtMultimediaKit::Category: case QtMultimediaKit::Date: @@ -462,21 +355,15 @@ QString S60MediaPlayerSession::metaDataKeyAsString(QtMultimediaKit::MetaData key default: break; } - return QString(); } -/*! - Sets the \a muted state of a player session. -*/ - void S60MediaPlayerSession::setMuted(bool muted) { if (muted != m_muted) { TRACE("S60MediaPlayerSession::setMuted" << qtThisPtr() << "muted" << muted); m_muted = muted; emit mutedChanged(m_muted); - if( m_mediaStatus == QMediaPlayer::LoadedMedia || (m_mediaStatus == QMediaPlayer::StalledMedia && state() != QMediaPlayer::StoppedState) || m_mediaStatus == QMediaPlayer::BufferingMedia @@ -488,10 +375,6 @@ void S60MediaPlayerSession::setMuted(bool muted) } } -/*! - \return the duration of the current media in milliseconds. -*/ - qint64 S60MediaPlayerSession::duration() const { if( mediaStatus() == QMediaPlayer::LoadingMedia @@ -500,16 +383,11 @@ qint64 S60MediaPlayerSession::duration() const || (mediaStatus() == QMediaPlayer::StalledMedia && state() == QMediaPlayer::StoppedState) || mediaStatus() == QMediaPlayer::InvalidMedia) return -1; - qint64 pos = 0; TRAP_IGNORE(pos = doGetDurationL()); return pos; } -/*! - \return the current playback position in milliseconds. -*/ - qint64 S60MediaPlayerSession::position() const { if( mediaStatus() == QMediaPlayer::LoadingMedia @@ -518,7 +396,6 @@ qint64 S60MediaPlayerSession::position() const || (mediaStatus() == QMediaPlayer::StalledMedia && state() == QMediaPlayer::StoppedState) || mediaStatus() == QMediaPlayer::InvalidMedia) return 0; - qint64 pos = 0; TRAP_IGNORE(pos = doGetPositionL()); if (pos < m_progressduration) @@ -526,64 +403,39 @@ qint64 S60MediaPlayerSession::position() const return pos; } -/*! - Sets the playback \a pos of the current media. This will initiate a seek and it may take - some time for playback to reach the position set. -*/ - void S60MediaPlayerSession::setPosition(qint64 pos) { if (position() == pos) return; - TRACE("S60MediaPlayerSession::setPosition" << qtThisPtr() << "pos" << pos); - QMediaPlayer::State originalState = state(); - if (originalState == QMediaPlayer::PlayingState) pause(); - TRAPD(err, doSetPositionL(pos * 1000)); setError(err); - if (err == KErrNone) { if (mediaStatus() == QMediaPlayer::EndOfMedia) setMediaStatus(QMediaPlayer::LoadedMedia); - } - else if (err == KErrNotSupported) { + } else if (err == KErrNotSupported) { m_seekable = false; emit seekableChanged(m_seekable); } - if (originalState == QMediaPlayer::PlayingState) play(); - TRAP_IGNORE(m_progressduration = doGetPositionL()); emit positionChanged(m_progressduration); } -/*! - * Set the audio endpoint to \a audioEndpoint. -*/ - void S60MediaPlayerSession::setAudioEndpoint(const QString& audioEndpoint) { TRACE("S60MediaPlayerSession::setAudioEndpoint" << qtThisPtr() << "audioEndpoint" << audioEndpoint); - doSetAudioEndpoint(audioEndpoint); } -/*! - * Loading of media source is completed. - * And ready for playback. Updates all the media status, state, settings etc. - * And emits the signals. -*/ - void S60MediaPlayerSession::loaded() { TRACE("S60MediaPlayerSession::loaded" << qtThisPtr()); - stopStalledTimer(); if (m_error == KErrNone || m_error == KErrMMPartialPlayback) { setMediaStatus(QMediaPlayer::LoadedMedia); @@ -594,86 +446,50 @@ void S60MediaPlayerSession::loaded() emit videoAvailableChanged(isVideoAvailable()); emit audioAvailableChanged(isAudioAvailable()); emit mediaChanged(); - m_seekable = getIsSeekable(); } } -/*! - * Playback is completed as medai source reached end of media. -*/ void S60MediaPlayerSession::endOfMedia() { TRACE("S60MediaPlayerSession::endOfMedia" << qtThisPtr()); - m_state = QMediaPlayer::StoppedState; setMediaStatus(QMediaPlayer::EndOfMedia); - //there is a chance that user might have called play from EOF callback - //if we are already in playing state, do not send state change callback + // There is a chance that user might have called play from EOF callback. + // If we are already in playing state, do not send state change callback. emit positionChanged(m_duration); - if(m_state == QMediaPlayer::StoppedState) + if (m_state == QMediaPlayer::StoppedState) emit stateChanged(QMediaPlayer::StoppedState); } -/*! - * The percentage of the temporary buffer filling before playback begins. - - When the player object is buffering; this property holds the percentage of - the temporary buffer that is filled. The buffer will need to reach 100% - filled before playback can resume, at which time the MediaStatus will be - BufferedMedia. - - \sa mediaStatus() -*/ - void S60MediaPlayerSession::buffering() { TRACE("S60MediaPlayerSession::buffering" << qtThisPtr()); - startStalledTimer(); setMediaStatus(QMediaPlayer::BufferingMedia); - -//Buffering cannot happen in stopped state. Hence update the state + // Buffering cannot happen in stopped state. Hence update the state if (state() == QMediaPlayer::StoppedState) setState(QMediaPlayer::PausedState); } -/*! - * Buffer is filled with data and to for continuing/start playback. -*/ - void S60MediaPlayerSession::buffered() { TRACE("S60MediaPlayerSession::buffered" << qtThisPtr()); - stopStalledTimer(); setMediaStatus(QMediaPlayer::BufferedMedia); } -/*! - * Sets media status as stalled as waiting for the buffer to be filled to start playback. -*/ - void S60MediaPlayerSession::stalled() { TRACE("S60MediaPlayerSession::stalled" << qtThisPtr()); - setMediaStatus(QMediaPlayer::StalledMedia); } -/*! - * \return all the meta data entries in the current media source. -*/ - -QMap<QString, QVariant>& S60MediaPlayerSession::metaDataEntries() +QMap<QString, QVariant> &S60MediaPlayerSession::metaDataEntries() { return m_metaDataMap; } -/*! - * \return Error by converting Symbian specific error to Multimedia error. -*/ - QMediaPlayer::Error S60MediaPlayerSession::fromSymbianErrorToMultimediaError(int error) { switch(error) { @@ -736,24 +552,14 @@ QMediaPlayer::Error S60MediaPlayerSession::fromSymbianErrorToMultimediaError(int } } -/*! - * \return error. - */ - int S60MediaPlayerSession::error() const { return m_error; } -/*! - * Sets the error. - * * If playback complete/prepare complete ..., etc with successful then sets error as ZERO - * else Multimedia error. -*/ - void S60MediaPlayerSession::setError(int error, const QString &errorString, bool forceReset) { - if( forceReset ) { + if (forceReset) { TRACE("S60MediaPlayerSession::setError" << qtThisPtr() << "forceReset"); m_error = KErrNone; emit this->error(QMediaPlayer::NoError, QString()); @@ -800,142 +606,35 @@ void S60MediaPlayerSession::setAndEmitError(int error) emit this->error(rateError, symbianError); } -/*! - * emits the signal if there is a changes in position and buffering status. - */ - void S60MediaPlayerSession::tick() { m_progressduration = position(); emit positionChanged(m_progressduration); - if (bufferStatus() < 100) emit bufferStatusChanged(bufferStatus()); } -/*! - * Starts the timer once the media source starts buffering. -*/ - void S60MediaPlayerSession::startProgressTimer() { TRACE("S60MediaPlayerSession::startProgressTimer" << qtThisPtr()); - m_progressTimer->start(500); } -/*! - * Stops the timer once the media source finished buffering. -*/ - void S60MediaPlayerSession::stopProgressTimer() { TRACE("S60MediaPlayerSession::stopProgressTimer" << qtThisPtr()); - m_progressduration = 0; m_progressTimer->stop(); } -/*! - * Starts the timer while waiting for some events to happen like source buffering or call backs etc. - * So that if the events doesn't occur before stalled timer stops, it'll set the error/media status etc. -*/ - void S60MediaPlayerSession::startStalledTimer() { TRACE("S60MediaPlayerSession::startStalledTimer" << qtThisPtr()); - m_stalledTimer->start(30000); } -/*! - * Stops the timer when some events occurred while waiting for them. - * media source started buffering or call back is received etc. -*/ - void S60MediaPlayerSession::stopStalledTimer() { TRACE("S60MediaPlayerSession::stopStalledTimer" << qtThisPtr()); - m_stalledTimer->stop(); } - -/*! - * \return Converted Symbian specific Descriptor to QString. -*/ - -QString S60MediaPlayerSession::TDesC2QString(const TDesC& aDescriptor) -{ - return QString::fromUtf16(aDescriptor.Ptr(), aDescriptor.Length()); -} - -/*! - * \return Converted QString to non-modifiable pointer Descriptor. -*/ - -TPtrC S60MediaPlayerSession::QString2TPtrC( const QString& string ) -{ - // Returned TPtrC is valid as long as the given parameter is valid and unmodified - return TPtrC16(static_cast<const TUint16*>(string.utf16()), string.length()); -} - -/*! - * \return Converted Symbian TRect object to QRect object. -*/ - -QRect S60MediaPlayerSession::TRect2QRect(const TRect& tr) -{ - return QRect(tr.iTl.iX, tr.iTl.iY, tr.Width(), tr.Height()); -} - -/*! - * \return converted QRect object to Symbian specific TRec object. - */ - -TRect S60MediaPlayerSession::QRect2TRect(const QRect& qr) -{ - return TRect(TPoint(qr.left(), qr.top()), TSize(qr.width(), qr.height())); -} - -/*! - \fn bool S60MediaPlayerSession::isVideoAvailable(); - - - Returns TRUE if Video is available. -*/ - -/*! - \fn bool S60MediaPlayerSession::isAudioAvailable(); - - - Returns TRUE if Audio is available. -*/ - -/*! - \fn void S60MediaPlayerSession::setPlaybackRate (qreal rate); - - - Sets \a rate play back rate on media source. getIsSeekable -*/ - -/*! - \fn bool S60MediaPlayerSession::getIsSeekable () const; - - - \return TRUE if Seekable possible on current media source else FALSE. -*/ - -/*! - \fn QString S60MediaPlayerSession::activeEndpoint () const; - - - \return active end point name.. -*/ - -/*! - \fn QString S60MediaPlayerSession::defaultEndpoint () const; - - - \return default end point name. -*/ - diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h index fc70d6ace8..cbba418b28 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.h @@ -42,18 +42,11 @@ #ifndef S60MEDIAPLAYERSESSION_H #define S60MEDIAPLAYERSESSION_H -#include <QtCore/qobject.h> -#include <QtCore/qurl.h> -#include <QtCore/qpair.h> +#include <QtCore/QUrl> +#include <QtCore/QRect> #include <qmediaplayer.h> -#include <e32cmn.h> // for TDesC -#include <QRect> #include "s60mediaplayerservice.h" - -_LIT( KSeekable, "Seekable" ); -_LIT( KFalse, "0"); - QT_BEGIN_NAMESPACE class QMediaTimeRange; QT_END_NAMESPACE @@ -68,7 +61,6 @@ public: S60MediaPlayerSession(QObject *parent); virtual ~S60MediaPlayerSession(); - // for player control interface to use QMediaPlayer::State state() const; QMediaPlayer::MediaStatus mediaStatus() const; qint64 duration() const; @@ -95,9 +87,9 @@ public: virtual void setVideoRenderer(QObject *renderer); void setMediaStatus(QMediaPlayer::MediaStatus); void setState(QMediaPlayer::State state); - void setAudioEndpoint(const QString& audioEndpoint); + void setAudioEndpoint(const QString &audioEndpoint); virtual void setPlaybackRate(qreal rate) = 0; - virtual bool getIsSeekable() const { return ETrue; } + virtual bool getIsSeekable() const; TBool isStreaming(); protected: @@ -113,33 +105,30 @@ protected: virtual void updateMetaDataEntriesL() = 0; virtual int doGetBufferStatusL() const = 0; virtual qint64 doGetDurationL() const = 0; - virtual void doSetAudioEndpoint(const QString& audioEndpoint) = 0; + virtual void doSetAudioEndpoint(const QString &audioEndpoint) = 0; public: - // From S60MediaPlayerAudioEndpointSelector + // S60MediaPlayerAudioEndpointSelector virtual QString activeEndpoint() const = 0; virtual QString defaultEndpoint() const = 0; + public Q_SLOTS: - virtual void setActiveEndpoint(const QString& name) = 0; + virtual void setActiveEndpoint(const QString &name) = 0; protected: int error() const; - void setError(int error, const QString &errorString = QString(), bool forceReset = false); + void setError(int error, const QString &errorString = QString(), bool forceReset = false); void setAndEmitError(int error); void loaded(); void buffering(); void buffered(); void endOfMedia(); - QMap<QString, QVariant>& metaDataEntries(); + QMap<QString, QVariant> &metaDataEntries(); QMediaPlayer::Error fromSymbianErrorToMultimediaError(int error); void startProgressTimer(); void stopProgressTimer(); void startStalledTimer(); void stopStalledTimer(); - QString TDesC2QString(const TDesC& aDescriptor); - TPtrC QString2TPtrC( const QString& string ); - QRect TRect2QRect(const TRect& tr); - TRect QRect2TRect(const QRect& qr); protected slots: void tick(); @@ -154,7 +143,7 @@ signals: void audioAvailableChanged(bool audioAvailable); void bufferStatusChanged(int percentFilled); void seekableChanged(bool); - void availablePlaybackRangesChanged(const QMediaTimeRange&); + void availablePlaybackRangesChanged(const QMediaTimeRange &range); void metaDataChanged(); void error(int error, const QString &errorString); void activeEndpointChanged(const QString &name); @@ -164,7 +153,7 @@ signals: void mutedChanged(bool muted); protected: - QUrl m_UrlPath; + QUrl m_url; bool m_stream; QMediaContent m_source; bool m_isaudiostream; diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.cpp new file mode 100644 index 0000000000..093479e115 --- /dev/null +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.cpp @@ -0,0 +1,64 @@ + +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "s60mediaplayerutils.h" + +QString TDesC2QString(const TDesC &des) +{ + return QString::fromUtf16(des.Ptr(), des.Length()); +} + +TPtrC QString2TPtrC(const QString &string) +{ + // Returned TPtrC is valid as long as the given parameter is valid and unmodified + return TPtrC16(static_cast<const TUint16*>(string.utf16()), string.length()); +} + +QRect TRect2QRect(const TRect &tr) +{ + return QRect(tr.iTl.iX, tr.iTl.iY, tr.Width(), tr.Height()); +} + +TRect QRect2TRect(const QRect &qr) +{ + return TRect(TPoint(qr.left(), qr.top()), TSize(qr.width(), qr.height())); +} diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.h new file mode 100644 index 0000000000..18b489dff5 --- /dev/null +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayerutils.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef S60MEDIAPLAYERUTILS_H +#define S60MEDIAPLAYERUTILS_H + +#include <QtCore/QString> +#include <QtCore/QRect> +#include <e32cmn.h> + +QString TDesC2QString(const TDesC &des); +TPtrC QString2TPtrC(const QString &string); +QRect TRect2QRect(const TRect &tr); +TRect QRect2TRect(const QRect &qr); + +#endif // S60MEDIAPLAYERUTILS_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.cpp index a0bf0b35fc..b2dbdd5c87 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.cpp @@ -39,14 +39,13 @@ ** ****************************************************************************/ +#include <QtCore/QUrl> +#include <QtCore/QDir> +#include "s60mediaplayerutils.h" #include "s60mediarecognizer.h" #include "s60mmtrace.h" #include <e32def.h> #include <e32cmn.h> -#include <QtCore/qurl.h> -#include <QtCore/qdir.h> -#include <QtCore/qdebug.h> - #include <apgcli.h> static const TInt KMimeTypePrefixLength = 6; // "audio/" or "video/" @@ -55,34 +54,20 @@ _LIT(KMimeTypePrefixAudio, "audio/"); _LIT(KMimeTypePrefixVideo, "video/"); _LIT(KMimeTypeRingingTone, "application/vnd.nokia.ringing-tone"); -/*! - Construct a media Recognizer with the given \a parent. -*/ - -S60MediaRecognizer::S60MediaRecognizer(QObject *parent) : QObject(parent) +S60MediaRecognizer::S60MediaRecognizer(QObject *parent) + : QObject(parent) { TRACE("S60MediaRecognizer::S60MediaRecognizer" << qtThisPtr()); } -/*! - Destroys a media Recognizer. -*/ - S60MediaRecognizer::~S60MediaRecognizer() { TRACE("S60MediaRecognizer::~S60MediaRecognizer" << qtThisPtr()); - m_file.Close(); m_fileServer.Close(); m_recognizer.Close(); } -/*! - * \return media type of \a url. - * \a url may be a streaming link or a local file. - * If \a url is local file then identifies the media type and returns it. -*/ - S60MediaRecognizer::MediaType S60MediaRecognizer::mediaType(const QUrl &url) { S60MediaRecognizer::MediaType result; @@ -95,62 +80,36 @@ S60MediaRecognizer::MediaType S60MediaRecognizer::mediaType(const QUrl &url) return result; } -/*! - * \return Media type of \a file name by recognizing its mimetype whether its audio or video. -*/ - -S60MediaRecognizer::MediaType S60MediaRecognizer::identifyMediaType(const QString& fileName) +S60MediaRecognizer::MediaType S60MediaRecognizer::identifyMediaType(const QString &fileName) { - - S60MediaRecognizer::MediaType result = Video; // default to videoplayer + S60MediaRecognizer::MediaType result = Video; bool recognizerOpened = false; - TInt err = m_recognizer.Connect(); - if (err == KErrNone) { + if (err == KErrNone) recognizerOpened = true; - } - err = m_fileServer.Connect(); - if (err == KErrNone) { + if (err == KErrNone) recognizerOpened = true; - } - // This is needed for sharing file handles for the recognizer err = m_fileServer.ShareProtected(); - if (err == KErrNone) { + if (err == KErrNone) recognizerOpened = true; - } - if (recognizerOpened) { m_file.Close(); - err = m_file.Open(m_fileServer, QString2TPtrC(QDir::toNativeSeparators(fileName)), EFileRead | - EFileShareReadersOnly); - + err = m_file.Open(m_fileServer, QString2TPtrC(QDir::toNativeSeparators(fileName)), + EFileRead | EFileShareReadersOnly); if (err == KErrNone) { TDataRecognitionResult recognizerResult; err = m_recognizer.RecognizeData(m_file, recognizerResult); if (err == KErrNone) { const TPtrC mimeType = recognizerResult.iDataType.Des(); - - if (mimeType.Left(KMimeTypePrefixLength).Compare(KMimeTypePrefixAudio) == 0 || - mimeType.Compare(KMimeTypeRingingTone) == 0) { + if (mimeType.Left(KMimeTypePrefixLength).Compare(KMimeTypePrefixAudio) == 0 + || mimeType.Compare(KMimeTypeRingingTone) == 0) result = Audio; - } else if (mimeType.Left(KMimeTypePrefixLength).Compare(KMimeTypePrefixVideo) == 0) { + else if (mimeType.Left(KMimeTypePrefixLength).Compare(KMimeTypePrefixVideo) == 0) result = Video; - } } } } - return result; } - -/*! - * \return Symbian modifiable pointer descriptor from a QString \a string. - */ - -TPtrC S60MediaRecognizer::QString2TPtrC( const QString& string ) -{ - // Returned TPtrC is valid as long as the given parameter is valid and unmodified - return TPtrC16(static_cast<const TUint16*>(string.utf16()), string.length()); -} diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.h index 0d654ca70b..300e066ff6 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediarecognizer.h @@ -39,11 +39,10 @@ ** ****************************************************************************/ -#ifndef S60MEDIARECOGNIZER_H_ -#define S60MEDIARECOGNIZER_H_ - -#include <QtCore/qobject.h> +#ifndef S60MEDIARECOGNIZER_H +#define S60MEDIARECOGNIZER_H +#include <QtCore/QObject> #include <apgcli.h> #include <f32file.h> @@ -52,7 +51,6 @@ class QUrl; class S60MediaRecognizer : public QObject { Q_OBJECT - public: enum MediaType { Audio, @@ -65,10 +63,7 @@ public: ~S60MediaRecognizer(); S60MediaRecognizer::MediaType mediaType(const QUrl &url); - S60MediaRecognizer::MediaType identifyMediaType(const QString& fileName); - -protected: - TPtrC QString2TPtrC( const QString& string ); + S60MediaRecognizer::MediaType identifyMediaType(const QString &fileName); private: RApaLsSession m_recognizer; @@ -76,4 +71,4 @@ private: RFs m_fileServer; }; -#endif /* S60MEDIARECOGNIZER_H_ */ +#endif // S60MEDIARECOGNIZER_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.cpp new file mode 100644 index 0000000000..42ec348cd3 --- /dev/null +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.cpp @@ -0,0 +1,125 @@ + +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "s60mediasettings.h" + +S60MediaSettings::S60MediaSettings(QObject *parent) + : QObject(parent) + , m_volume(30) + , m_muted(false) + , m_playbackRate(0) + , m_mediaStatus(QMediaPlayer::NoMedia) + , m_audioEndpoint(QString("Default")) + , m_videoOutput(0) +{ + +} + +void S60MediaSettings::setVolume(int volume) +{ + m_volume = volume; +} + +void S60MediaSettings::setMuted(bool muted) +{ + m_muted = muted; +} + +void S60MediaSettings::setPlaybackRate(qreal rate) +{ + m_playbackRate = rate; +} + +void S60MediaSettings::setMediaStatus(QMediaPlayer::MediaStatus status) +{ + m_mediaStatus = status; +} + +void S60MediaSettings::setAudioEndpoint(const QString &audioEndpoint) +{ + m_audioEndpoint = audioEndpoint; +} + +void S60MediaSettings::setMediaType(MediaType type) +{ + m_mediaType = type; +} + +void S60MediaSettings::setVideoOutput(QObject *value) +{ + m_videoOutput = value; +} + +int S60MediaSettings::volume() const +{ + return m_volume; +} + +bool S60MediaSettings::isMuted() const +{ + return m_muted; +} + +qreal S60MediaSettings::playbackRate() const +{ + return m_playbackRate; +} + +QMediaPlayer::MediaStatus S60MediaSettings::mediaStatus() const +{ + return m_mediaStatus; +} + +QString S60MediaSettings::audioEndpoint() const +{ + return m_audioEndpoint; +} + +S60MediaSettings::MediaType S60MediaSettings::mediaType() const +{ + return m_mediaType; +} + +QObject *S60MediaSettings::videoOutput() const +{ + return m_videoOutput; +} diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.h new file mode 100644 index 0000000000..0e2cc229e6 --- /dev/null +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediasettings.h @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef S60MEDIASETTINGS_H +#define S60MEDIASETTINGS_H + +#include <QtCore/QObject> +#include <QtCore/QString> +#include <qmediaplayer.h> + +class S60MediaSettings : public QObject +{ +public: + S60MediaSettings(QObject *parent = 0); + + enum MediaType { + Unknown, + Video, + Audio, + Data + }; + + void setVolume(int volume); + void setMuted(bool muted); + void setPlaybackRate(qreal rate); + void setMediaStatus(QMediaPlayer::MediaStatus status); + void setAudioEndpoint(const QString &audioEndpoint); + void setMediaType(MediaType type); + void setVideoOutput(QObject *value); + + int volume() const; + bool isMuted() const; + qreal playbackRate() const; + QMediaPlayer::MediaStatus mediaStatus() const; + QString audioEndpoint() const; + MediaType mediaType() const; + QObject *videoOutput() const; + +private: + int m_volume; + bool m_muted; + qreal m_playbackRate; + QMediaPlayer::MediaStatus m_mediaStatus; + QString m_audioEndpoint; + MediaType m_mediaType; + QObject *m_videoOutput; +}; + +#endif // S60MEDIASETTINGS_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.cpp index 61a8e4109e..c9fba84460 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.cpp @@ -43,40 +43,22 @@ #include "s60mediaplayersession.h" #include "s60mediaplayercontrol.h" #include "s60mmtrace.h" -#include <qmediastreamscontrol.h> - -#include <QtCore/qdir.h> -#include <QtCore/qurl.h> -#include <QtCore/qdebug.h> - -/*! - Constructs a new media streams control with the given \a control. -*/ S60MediaStreamControl::S60MediaStreamControl(QObject *control, QObject *parent) : QMediaStreamsControl(parent) - , m_control(NULL) + , m_control(0) , m_mediaType(S60MediaSettings::Unknown) { TRACE("S60MediaStreamControl::S60MediaStreamControl" << qtThisPtr()); - m_control = qobject_cast<S60MediaPlayerControl*>(control); m_mediaType = m_control->mediaControlSettings().mediaType(); } -/*! - Destroys a media streams control. -*/ - S60MediaStreamControl::~S60MediaStreamControl() { TRACE("S60MediaStreamControl::~S60MediaStreamControl" << qtThisPtr()); } -/*! - \return the number of media streams. -*/ - int S60MediaStreamControl::streamCount() { int streamCount = 0; @@ -87,34 +69,20 @@ int S60MediaStreamControl::streamCount() return streamCount; } -/*! - \return the type of a media \a streamNumber. -*/ - QMediaStreamsControl::StreamType S60MediaStreamControl::streamType(int streamNumber) { Q_UNUSED(streamNumber); - QMediaStreamsControl::StreamType type = QMediaStreamsControl::UnknownStream; - if (m_control->mediaControlSettings().mediaType() == S60MediaSettings::Video) type = QMediaStreamsControl::VideoStream; else type = QMediaStreamsControl::AudioStream; - return type; } -/*! - \return the meta-data value of \a key for a given \a streamNumber. - - Useful metadata keya are QtMultimediaKit::Title, QtMultimediaKit::Description and QtMultimediaKit::Language. -*/ - QVariant S60MediaStreamControl::metaData(int streamNumber, QtMultimediaKit::MetaData key) { Q_UNUSED(streamNumber); - if (m_control->session()) { if (m_control->session()->isMetadataAvailable()) return m_control->session()->metaData(key); @@ -122,10 +90,6 @@ QVariant S60MediaStreamControl::metaData(int streamNumber, QtMultimediaKit::Meta return QVariant(); } -/*! - \return true if the media \a streamNumber is active else false. -*/ - bool S60MediaStreamControl::isActive(int streamNumber) { if (m_control->mediaControlSettings().mediaType() == S60MediaSettings::Video) { @@ -138,37 +102,20 @@ bool S60MediaStreamControl::isActive(int streamNumber) break; } } - return m_control->isAudioAvailable(); } -/*! - Sets the active \a streamNumber of a media \a state. - - Symbian MMF does not support enabling or disabling specific media streams. - - Setting the active state of a media stream to true will activate it. If any other stream - of the same type was previously active it will be deactivated. Setting the active state fo a - media stream to false will deactivate it. -*/ - void S60MediaStreamControl::setActive(int streamNumber, bool state) { TRACE("S60MediaStreamControl::setActive" << qtThisPtr() << "streamNumber" << streamNumber << "state" << state); - Q_UNUSED(streamNumber); Q_UNUSED(state); // Symbian MMF does not support enabling or disabling specific media streams } -/*! - The signal is emitted when the available streams list is changed. -*/ - void S60MediaStreamControl::handleStreamsChanged() { TRACE("S60MediaStreamControl::handleStreamsChanged" << qtThisPtr()); - emit streamsChanged(); } diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.h index 6df90c4b67..89a8b5a0e5 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediastreamcontrol.h @@ -42,12 +42,11 @@ #ifndef S60MEDIASTREAMCONTROL_H #define S60MEDIASTREAMCONTROL_H -#include <QVariant> - -#include "s60mediaplayercontrol.h" - +#include <QtCore/QVariant> #include <qmediastreamscontrol.h> #include <qtmedianamespace.h> +#include "s60mediaplayercontrol.h" +#include "s60mediasettings.h" QT_USE_NAMESPACE @@ -61,7 +60,7 @@ public: S60MediaStreamControl(QObject *session, QObject *parent = 0); ~S60MediaStreamControl(); - // from QMediaStreamsControl + // QMediaStreamsControl int streamCount(); QMediaStreamsControl::StreamType streamType(int streamNumber); QVariant metaData(int streamNumber, QtMultimediaKit::MetaData key); @@ -73,7 +72,7 @@ public Q_SLOTS: private: S60MediaPlayerControl *m_control; - S60MediaSettings::TMediaType m_mediaType; + S60MediaSettings::MediaType m_mediaType; }; -#endif //S60MEDIASTREAMCONTROL_H +#endif // S60MEDIASTREAMCONTROL_H diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp index 0bac88660e..e284f58e43 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp @@ -41,6 +41,7 @@ #include "s60videoplayersession.h" #include "s60mediaplayerservice.h" +#include "s60mediaplayerutils.h" #include "s60videowidgetcontrol.h" #include "s60videowidgetdisplay.h" #include "s60videowindowcontrol.h" @@ -71,8 +72,10 @@ const QString DefaultAudioEndpoint = QLatin1String("Default"); const TUid KHelixUID = {0x101F8514}; +_LIT(KSeekable, "Seekable" ); +_LIT(KFalse, "0"); -//Hard-coding the command to support older versions. +// Hard-coding the command to support older versions. const TInt KMMFROPControllerEnablePausedLoadingStatus = 7; TVideoRotation videoRotation(qreal angle) @@ -154,13 +157,10 @@ bool S60VideoPlayerEventHandler::filterEvent(void *message, long *result) return ret; } -/*! - Constructs the CVideoPlayerUtility2 object with given \a service and \a object. - And Registers for Video Loading Notifications. -*/ S60VideoPlayerSession::S60VideoPlayerSession(QMediaService *service, S60MediaNetworkAccessControl *object) : S60MediaPlayerSession(service) , m_accessPointId(0) + , m_networkAccessControl(object) , m_wsSession(&CCoeEnv::Static()->WsSession()) , m_screenDevice(CCoeEnv::Static()->ScreenDevice()) , m_service(service) @@ -185,8 +185,6 @@ S60VideoPlayerSession::S60VideoPlayerSession(QMediaService *service, S60MediaNet #endif { TRACE("S60VideoPlayerSession::S60VideoPlayerSession" << qtThisPtr()); - - m_networkAccessControl = object; #ifdef VIDEOOUTPUT_GRAPHICS_SURFACES QT_TRAP_THROWING(m_player = CVideoPlayerUtility2::NewL( *this, @@ -227,12 +225,6 @@ S60VideoPlayerSession::S60VideoPlayerSession(QMediaService *service, S60MediaNet S60VideoPlayerEventHandler::instance()->addApplicationFocusObserver(this); } -/*! - Destroys the CVideoPlayerUtility2 object. - - And Unregister the observer. -*/ - S60VideoPlayerSession::~S60VideoPlayerSession() { TRACE("S60VideoPlayerSession::~S60VideoPlayerSession" << qtThisPtr()); @@ -264,17 +256,12 @@ void S60VideoPlayerSession::applicationLostFocus() TRACE("S60VideoPlayerSession::applicationLostFocus" << qtThisPtr()); if (QMediaPlayer::PlayingState == state()) { if (!m_isaudiostream) { - m_backendInitiatedPause = true; - pause(); + m_backendInitiatedPause = true; + pause(); } } } -/*! - - Opens the a file from \a path. -*/ - void S60VideoPlayerSession::doLoadL(const TDesC &path) { #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER @@ -282,29 +269,18 @@ void S60VideoPlayerSession::doLoadL(const TDesC &path) if (m_audioOutput) m_audioOutput->UnregisterObserver(*this); delete m_audioOutput; - m_audioOutput = NULL; + m_audioOutput = 0; #endif m_player->OpenFileL(path, KHelixUID); } -/*! - Sets the playbackRate with \a rate. -*/ - void S60VideoPlayerSession::setPlaybackRate(qreal rate) { - /* - * setPlaybackRate is not supported in S60 3.1 and 3.2 - * This flag will be defined for 3.1 and 3.2 - */ #ifdef PLAY_RATE_NOT_SUPPORTED TRACE("S60VideoPlayerSession::setPlaybackRate" << qtThisPtr() << "rate" << rate << "not supported"); #else TRACE("S60VideoPlayerSession::setPlaybackRate" << qtThisPtr() << "rate" << rate); - //setPlayVelocity requires rate in the form of - //50 = 0.5x ;100 = 1.x ; 200 = 2.x ; 300 = 3.x - //so multiplying rate with 100 TRAPD(err, m_player->SetPlayVelocityL((TInt)(rate*100))); if (KErrNone == err) emit playbackRateChanged(rate); @@ -313,11 +289,6 @@ void S60VideoPlayerSession::setPlaybackRate(qreal rate) #endif } -/*! - - Opens the a Url from \a path for streaming the source. -*/ - void S60VideoPlayerSession::doLoadUrlL(const TDesC &path) { #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER @@ -325,17 +296,12 @@ void S60VideoPlayerSession::doLoadUrlL(const TDesC &path) if (m_audioOutput) m_audioOutput->UnregisterObserver(*this); delete m_audioOutput; - m_audioOutput = NULL; + m_audioOutput = 0; #endif m_accessPointId = m_networkAccessControl->accessPointId(); m_player->OpenUrlL(path, m_accessPointId, KNullDesC8, KHelixUID); } -/*! - - Returns the percentage of the video clip loaded. -*/ - int S60VideoPlayerSession::doGetBufferStatusL() const { int progress = 0; @@ -343,19 +309,11 @@ int S60VideoPlayerSession::doGetBufferStatusL() const return progress; } -/*! - Returns the duration of the video sample in microseconds. -*/ - qint64 S60VideoPlayerSession::doGetDurationL() const { return m_player->DurationL().Int64() / qint64(1000); } -/*! - * Sets the \a videooutput for video rendering. -*/ - void S60VideoPlayerSession::setVideoRenderer(QObject *videoOutput) { TRACE("S60VideoPlayerSession::setVideoRenderer" << qtThisPtr() @@ -406,9 +364,6 @@ void S60VideoPlayerSession::setVideoRenderer(QObject *videoOutput) } } -/*! - * Apply the pending changes for window. -*/ void S60VideoPlayerSession::applyPendingChanges(bool force) { TRACE("S60VideoPlayerSession::applyPendingChanges" << qtThisPtr() @@ -498,10 +453,6 @@ void S60VideoPlayerSession::applyPendingChanges(bool force) } } -/*! - * \return TRUE if video is available. -*/ - bool S60VideoPlayerSession::isVideoAvailable() { #ifdef PRE_S60_50_PLATFORM @@ -526,10 +477,6 @@ bool S60VideoPlayerSession::isVideoAvailable() } -/*! - * \return TRUE if Audio available. -*/ - bool S60VideoPlayerSession::isAudioAvailable() { if ( mediaStatus() == QMediaPlayer::LoadingMedia @@ -549,10 +496,6 @@ bool S60VideoPlayerSession::isAudioAvailable() } } -/*! - Start or resume playing the current source. -*/ - void S60VideoPlayerSession::doPlay() { m_player->Play(); @@ -560,95 +503,59 @@ void S60VideoPlayerSession::doPlay() m_videoOutputDisplay->setHasContent(true); } -/*! - Pause playing the current source. -*/ - void S60VideoPlayerSession::doPauseL() { m_player->PauseL(); } -/*! - - Stop playing, and reset the play position to the beginning. -*/ - void S60VideoPlayerSession::doStop() { if (m_stream) m_networkAccessControl->resetIndex(); - if (m_videoOutputDisplay) m_videoOutputDisplay->setHasContent(false); - m_player->Stop(); } -/*! - Closes the current audio clip (allowing another clip to be opened) -*/ - void S60VideoPlayerSession::doClose() { #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER if (m_audioOutput) { m_audioOutput->UnregisterObserver(*this); delete m_audioOutput; - m_audioOutput = NULL; + m_audioOutput = 0; } #endif - m_player->Close(); #ifdef VIDEOOUTPUT_GRAPHICS_SURFACES m_nativeSurface = TSurfaceId::CreateNullId(); #endif -// close will remove the window handle in media clint video. -// So mark it in pending changes. + // Close will remove the window handle from m_player, so mark + // it in pending changes. m_pendingChanges |= WindowHandle; } -/*! - * Returns the current playback position in microseconds from the start of the clip. - -*/ - qint64 S60VideoPlayerSession::doGetPositionL() const { return m_player->PositionL().Int64() / qint64(1000); } -/*! - Sets the current playback position to \a microSeconds from the start of the clip. -*/ - void S60VideoPlayerSession::doSetPositionL(qint64 microSeconds) { m_player->SetPositionL(TTimeIntervalMicroSeconds(microSeconds)); } -/*! - - Changes the current playback volume to specified \a value. -*/ - void S60VideoPlayerSession::doSetVolumeL(int volume) { m_player->SetVolumeL(volume * m_player->MaxVolume() / 100); } -/*! - * Notification to the client that the opening of the video clip has completed. - * If successful then an \a aError will be ZERO else system wide error. -*/ - void S60VideoPlayerSession::MvpuoOpenComplete(TInt aError) { TRACE("S60VideoPlayerSession::MvpuoOpenComplete" << qtThisPtr() << "error" << aError); - setError(aError); #ifdef HTTP_COOKIES_ENABLED if (KErrNone == aError) { @@ -689,26 +596,19 @@ void S60VideoPlayerSession::MvpuoOpenComplete(TInt aError) if (KErrNone == aError) m_player->Prepare(); #endif - const TMMFMessageDestinationPckg dest( KUidInterfaceMMFROPController ); + const TMMFMessageDestinationPckg dest(KUidInterfaceMMFROPController); TRAP_IGNORE(m_player->CustomCommandSync(dest, KMMFROPControllerEnablePausedLoadingStatus, KNullDesC8, KNullDesC8)); } -/*! - * Notification to the client that the opening of the video clip has been preapred. - * If successful then an \a aError will be ZERO else system wide error. -*/ - void S60VideoPlayerSession::MvpuoPrepareComplete(TInt aError) { TRACE("S60VideoPlayerSession::MvpuoPrepareComplete" << qtThisPtr() << "error" << aError); - - if (KErrNone == aError && m_stream) { + if (KErrNone == aError && m_stream) emit accessPointChanged(m_accessPointId); - } if (KErrCouldNotConnect == aError && !(m_networkAccessControl->isLastAccessPoint())) { load(m_source); - return; + return; } TInt error = aError; if (KErrNone == error || KErrMMPartialPlayback == error) { @@ -729,13 +629,12 @@ void S60VideoPlayerSession::MvpuoPrepareComplete(TInt aError) #endif } if (KErrNone == error) { - // changes made to play without pausing in case of audio streaming use case if (m_player->VideoFormatMimeType().Length() == 0) { - m_isaudiostream = true; - m_backendInitiatedPause = false; - play(); + m_isaudiostream = true; + m_backendInitiatedPause = false; + play(); } else { - m_isaudiostream = false; + m_isaudiostream = false; } #ifdef VIDEOOUTPUT_GRAPHICS_SURFACES // Register for callbacks via MMMFSurfaceEventHandler @@ -763,30 +662,18 @@ void S60VideoPlayerSession::MvpuoPrepareComplete(TInt aError) } } -/*! - * Notification that frame requested by a call to GetFrameL is ready. -*/ - void S60VideoPlayerSession::MvpuoFrameReady(CFbsBitmap &aFrame, TInt aError) { Q_UNUSED(aFrame); Q_UNUSED(aError); } -/*! - * Notification that video playback has completed. - * If successful then \a aError will be ZERO else system wide error. - * This not called if playback is explicitly stopped by calling stop. -*/ - void S60VideoPlayerSession::MvpuoPlayComplete(TInt aError) { TRACE("S60VideoPlayerSession::MvpuoPlayComplete" << qtThisPtr() << "error" << aError); - if (m_stream) - m_networkAccessControl->resetIndex(); - + m_networkAccessControl->resetIndex(); if (aError != KErrNone) { setError(aError); doClose(); @@ -795,12 +682,6 @@ void S60VideoPlayerSession::MvpuoPlayComplete(TInt aError) } } - -/*! - * General \a event notification from controller. - * These events are specified by the supplier of the controller. -*/ - void S60VideoPlayerSession::MvpuoEvent(const TMMFEvent &aEvent) { TRACE("S60VideoPlayerSession::MvpuoEvent" << qtThisPtr() @@ -845,18 +726,13 @@ void S60VideoPlayerSession::MmsehRemoveSurface(const TSurfaceId& aId) } #endif // VIDEOOUTPUT_GRAPHICS_SURFACES -/*! - - Updates meta data entries in the current video clip. -*/ - void S60VideoPlayerSession::updateMetaDataEntriesL() { metaDataEntries().clear(); int numberOfMetaDataEntries = 0; numberOfMetaDataEntries = m_player->NumberOfMetaDataEntriesL(); - for (int i = 0; i < numberOfMetaDataEntries; i++) { - CMMFMetaDataEntry *entry = NULL; + for (int i=0; i<numberOfMetaDataEntries; ++i) { + CMMFMetaDataEntry *entry = 0; entry = m_player->MetaDataEntryL(i); metaDataEntries().insert(TDesC2QString(entry->Name()), TDesC2QString(entry->Value())); delete entry; @@ -864,38 +740,23 @@ void S60VideoPlayerSession::updateMetaDataEntriesL() emit metaDataChanged(); } -/*! - * Apply the window changes when window handle changes. -*/ - void S60VideoPlayerSession::windowHandleChanged() { TRACE("S60VideoPlayerSession::windowHandleChanged" << qtThisPtr()); - m_pendingChanges |= WindowHandle; applyPendingChanges(); } -/*! - * Apply the window changes when display Rect changes. -*/ - void S60VideoPlayerSession::displayRectChanged() { TRACE("S60VideoPlayerSession::displayRectChanged" << qtThisPtr()); - m_pendingChanges |= DisplayRect; applyPendingChanges(); } -/*! - * Apply the window changes when aspect Ratio changes. -*/ - void S60VideoPlayerSession::aspectRatioChanged() { TRACE("S60VideoPlayerSession::aspectRatioChanged" << qtThisPtr()); - m_pendingChanges |= ScaleFactors; applyPendingChanges(); } @@ -903,7 +764,6 @@ void S60VideoPlayerSession::aspectRatioChanged() void S60VideoPlayerSession::rotationChanged() { TRACE("S60VideoPlayerSession::rotationChanged" << qtThisPtr()); - m_pendingChanges |= ScaleFactors; m_pendingChanges |= Rotation; applyPendingChanges(); @@ -913,14 +773,12 @@ void S60VideoPlayerSession::rotationChanged() void S60VideoPlayerSession::suspendDirectScreenAccess() { TRACE("S60VideoPlayerSession::suspendDirectScreenAccess" << qtThisPtr()); - m_dsaStopped = stopDirectScreenAccess(); } void S60VideoPlayerSession::resumeDirectScreenAccess() { TRACE("S60VideoPlayerSession::resumeDirectScreenAccess" << qtThisPtr()); - if (!m_dsaStopped) return; startDirectScreenAccess(); @@ -930,7 +788,6 @@ void S60VideoPlayerSession::resumeDirectScreenAccess() void S60VideoPlayerSession::startDirectScreenAccess() { TRACE("S60VideoPlayerSession::startDirectScreenAccess" << qtThisPtr()); - if (m_dsaActive) return; TRAPD(err, m_player->StartDirectScreenAccessL()); @@ -942,7 +799,6 @@ void S60VideoPlayerSession::startDirectScreenAccess() bool S60VideoPlayerSession::stopDirectScreenAccess() { TRACE("S60VideoPlayerSession::stopDirectScreenAccess" << qtThisPtr()); - if (!m_dsaActive) return false; TRAPD(err, m_player->StopDirectScreenAccessL()); @@ -953,44 +809,23 @@ bool S60VideoPlayerSession::stopDirectScreenAccess() } #endif -/*! - * The percentage of the temporary buffer filling before playback begins. -*/ - void S60VideoPlayerSession::MvloLoadingStarted() { TRACE("S60VideoPlayerSession::MvloLoadingStarted" << qtThisPtr()); - buffering(); } -/*! - * Buffer is filled with data and to for continuing/start playback. -*/ - void S60VideoPlayerSession::MvloLoadingComplete() { TRACE("S60VideoPlayerSession::MvloLoadingComplete" << qtThisPtr()); - buffered(); } -/*! - Defiens which Audio End point to use. - - \a audioEndpoint audioEndpoint name. -*/ - void S60VideoPlayerSession::doSetAudioEndpoint(const QString& audioEndpoint) { m_audioEndpoint = audioEndpoint; } -/*! - - Returns audioEndpoint name. -*/ - QString S60VideoPlayerSession::activeEndpoint() const { QString outputName = m_audioEndpoint; @@ -1003,10 +838,6 @@ QString S60VideoPlayerSession::activeEndpoint() const return outputName; } -/*! - * Returns default Audio End point in use. -*/ - QString S60VideoPlayerSession::defaultEndpoint() const { QString outputName = DefaultAudioEndpoint; @@ -1019,14 +850,9 @@ QString S60VideoPlayerSession::defaultEndpoint() const return outputName; } -/*! - Sets active end \a name as an Audio End point. -*/ - void S60VideoPlayerSession::setActiveEndpoint(const QString& name) { TRACE("S60VideoPlayerSession::setActiveEndpoint" << qtThisPtr() << "name" << name); - #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER CAudioOutput::TAudioOutputPreference output = CAudioOutput::ENoPreference; if (name == DefaultAudioEndpoint) @@ -1046,30 +872,17 @@ void S60VideoPlayerSession::setActiveEndpoint(const QString& name) #endif } -/*! - The default Audio output has been changed. - - \a aAudioOutput Audio Output object. - - \a aNewDefault is CAudioOutput::TAudioOutputPreference. -*/ - #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER -void S60VideoPlayerSession::DefaultAudioOutputChanged( CAudioOutput& aAudioOutput, - CAudioOutput::TAudioOutputPreference aNewDefault) +void S60VideoPlayerSession::DefaultAudioOutputChanged(CAudioOutput& aAudioOutput, + CAudioOutput::TAudioOutputPreference aNewDefault) { TRACE("S60VideoPlayerSession::DefaultAudioOutputChanged" << qtThisPtr() << "newDefault" << aNewDefault); - // Emit already implemented in setActiveEndpoint function Q_UNUSED(aAudioOutput) Q_UNUSED(aNewDefault) } -/*! - * \return CAudioOutput::ENoOutput by converting it to QString. -*/ - QString S60VideoPlayerSession::qStringFromTAudioOutputPreference(CAudioOutput::TAudioOutputPreference output) const { if (output == CAudioOutput::ENoPreference) @@ -1086,32 +899,24 @@ QString S60VideoPlayerSession::qStringFromTAudioOutputPreference(CAudioOutput::T } #endif //HAS_AUDIOROUTING_IN_VIDEOPLAYER) -/*! - * \return TRUE if video is Seekable else FALSE. -*/ - bool S60VideoPlayerSession::getIsSeekable() const { bool seekable = ETrue; int numberOfMetaDataEntries = 0; - TRAPD(err, numberOfMetaDataEntries = m_player->NumberOfMetaDataEntriesL()); if (err) return seekable; - - for (int i = 0; i < numberOfMetaDataEntries; i++) { - CMMFMetaDataEntry *entry = NULL; + for (int i=0; i<numberOfMetaDataEntries; ++i) { + CMMFMetaDataEntry *entry = 0; TRAP(err, entry = m_player->MetaDataEntryL(i)); - if (err) return seekable; - if (!entry->Name().Compare(KSeekable)) { if (!entry->Value().Compare(KFalse)) seekable = EFalse; break; } } - return seekable; } + diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.h b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.h index 163daf8721..c9bb7154cc 100644 --- a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.h +++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.h @@ -53,16 +53,14 @@ #include <surfaceeventhandler.h> #else #include <videoplayer.h> -#endif // VIDEOOUTPUT_GRAPHICS_SURFACES +#endif #include <QtCore/QCoreApplication> -#include <QtGui/qwidget.h> -#include <qvideowidget.h> #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER #include <AudioOutput.h> #include <MAudioOutputObserver.h> -#endif // HAS_AUDIOROUTING_IN_VIDEOPLAYER +#endif class QTimer; class S60MediaNetworkAccessControl; @@ -84,8 +82,8 @@ class S60VideoPlayerEventHandler : public QObject public: static S60VideoPlayerEventHandler *instance(); static bool filterEvent(void *message, long *result); - void addApplicationFocusObserver(ApplicationFocusObserver* observer); - void removeApplicationFocusObserver(ApplicationFocusObserver* observer); + void addApplicationFocusObserver(ApplicationFocusObserver *observer); + void removeApplicationFocusObserver(ApplicationFocusObserver *observer); private: S60VideoPlayerEventHandler(); ~S60VideoPlayerEventHandler(); @@ -111,22 +109,22 @@ public: S60VideoPlayerSession(QMediaService *service, S60MediaNetworkAccessControl *object); ~S60VideoPlayerSession(); - // From S60MediaPlayerSession + // S60MediaPlayerSession bool isVideoAvailable(); bool isAudioAvailable(); void setVideoRenderer(QObject *renderer); - // From MVideoLoadingObserver + // MVideoLoadingObserver void MvloLoadingStarted(); void MvloLoadingComplete(); void setPlaybackRate(qreal rate); #ifdef HAS_AUDIOROUTING_IN_VIDEOPLAYER - // From MAudioOutputObserver + // MAudioOutputObserver void DefaultAudioOutputChanged(CAudioOutput& aAudioOutput, CAudioOutput::TAudioOutputPreference aNewDefault); #endif - // From S60MediaPlayerAudioEndpointSelector + // S60MediaPlayerAudioEndpointSelector QString activeEndpoint() const; QString defaultEndpoint() const; @@ -135,19 +133,19 @@ public: void applicationLostFocus(); signals: - void nativeSizeChanged(QSize); + void nativeSizeChanged(QSize size); #ifdef VIDEOOUTPUT_GRAPHICS_SURFACES void nativeSurfaceChanged(TSurfaceId surface); #endif public Q_SLOTS: - void setActiveEndpoint(const QString& name); + void setActiveEndpoint(const QString &name); signals: void accessPointChanged(int); protected: - // From S60MediaPlayerSession + // S60MediaPlayerSession void doLoadL(const TDesC &path); void doLoadUrlL(const TDesC &path); void doPlay(); @@ -160,7 +158,7 @@ protected: void updateMetaDataEntriesL(); int doGetBufferStatusL() const; qint64 doGetDurationL() const; - void doSetAudioEndpoint(const QString& audioEndpoint); + void doSetAudioEndpoint(const QString &audioEndpoint); bool getIsSeekable() const; private slots: @@ -172,8 +170,8 @@ private slots: void suspendDirectScreenAccess(); void resumeDirectScreenAccess(); #endif - -private: + +private: void applyPendingChanges(bool force = false); #ifndef VIDEOOUTPUT_GRAPHICS_SURFACES void startDirectScreenAccess(); @@ -183,7 +181,7 @@ private: QString qStringFromTAudioOutputPreference(CAudioOutput::TAudioOutputPreference output) const; #endif - // From MVideoPlayerUtilityObserver + // MVideoPlayerUtilityObserver void MvpuoOpenComplete(TInt aError); void MvpuoPrepareComplete(TInt aError); void MvpuoFrameReady(CFbsBitmap &aFrame, TInt aError); @@ -203,7 +201,7 @@ private: private: int m_accessPointId; - S60MediaNetworkAccessControl* m_networkAccessControl; + S60MediaNetworkAccessControl *m_networkAccessControl; RWsSession *const m_wsSession; CWsScreenDevice *const m_screenDevice; QMediaService *const m_service; @@ -238,3 +236,4 @@ private: }; #endif + diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.cpp b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.cpp index 595a8ba62c..972de3e923 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.cpp +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.cpp @@ -43,8 +43,6 @@ #include "s60radiotunerservice.h" #include "s60mmtrace.h" -#include <QFile> - // from AudioPreference.h const TInt KAudioPriorityFMRadio = 79; const TUint KAudioPrefRadioAudioEvent = 0x03000001; @@ -66,14 +64,12 @@ S60RadioTunerControl::S60RadioTunerControl(QObject *parent) , m_vol(50) { TRACE("S60RadioTunerControl::S60RadioTunerControl" << qtThisPtr()); - initRadio(); } S60RadioTunerControl::~S60RadioTunerControl() { TRACE("S60RadioTunerControl::~S60RadioTunerControl" << qtThisPtr()); - if (m_tunerUtility) { m_tunerUtility->Close(); m_tunerUtility->CancelNotifyChange(); @@ -81,9 +77,6 @@ S60RadioTunerControl::~S60RadioTunerControl() m_tunerUtility->CancelNotifyStereoChange(); delete m_tunerUtility; } - if (m_audioPlayerUtility) { - m_audioPlayerUtility = NULL; - } } bool S60RadioTunerControl::initRadio() @@ -91,7 +84,7 @@ bool S60RadioTunerControl::initRadio() m_available = false; TRAPD(tunerError, m_tunerUtility = CMMTunerUtility::NewL(*this, CMMTunerUtility::ETunerBandFm, 1, - CMMTunerUtility::ETunerAccessPriorityNormal)); + CMMTunerUtility::ETunerAccessPriorityNormal)); if (tunerError != KErrNone) { m_radioError = QRadioTuner::OpenError; return m_available; @@ -104,7 +97,7 @@ bool S60RadioTunerControl::initRadio() } TRAPD(initializeError, m_audioPlayerUtility->InitializeL(KAudioPriorityFMRadio, - TMdaPriorityPreference(KAudioPrefRadioAudioEvent))); + TMdaPriorityPreference(KAudioPrefRadioAudioEvent))); if (initializeError != KErrNone) { m_radioError = QRadioTuner::OpenError; return m_available; @@ -125,14 +118,12 @@ bool S60RadioTunerControl::initRadio() void S60RadioTunerControl::start() { TRACE("S60RadioTunerControl::start" << qtThisPtr()); - if (!m_audioInitializationComplete) { TFrequency freq(m_currentFreq); m_tunerUtility->Tune(freq); } else { m_audioPlayerUtility->Play(); } - m_apiTunerState = QRadioTuner::ActiveState; emit stateChanged(m_apiTunerState); } @@ -140,7 +131,6 @@ void S60RadioTunerControl::start() void S60RadioTunerControl::stop() { TRACE("S60RadioTunerControl::stop" << qtThisPtr()); - if (m_audioPlayerUtility) { m_audioPlayerUtility->Stop(); m_apiTunerState = QRadioTuner::StoppedState; @@ -190,7 +180,6 @@ int S60RadioTunerControl::frequency() const void S60RadioTunerControl::setFrequency(int frequency) { TRACE("S60RadioTunerControl::setFrequency" << qtThisPtr() << "frequency" << frequency); - m_currentFreq = frequency; TFrequency freq(m_currentFreq); m_tunerUtility->Tune(freq); @@ -199,7 +188,6 @@ void S60RadioTunerControl::setFrequency(int frequency) int S60RadioTunerControl::frequencyStep(QRadioTuner::Band b) const { int step = 0; - if(b == QRadioTuner::FM) step = 100000; // 100kHz steps else if(b == QRadioTuner::LW) @@ -208,7 +196,6 @@ int S60RadioTunerControl::frequencyStep(QRadioTuner::Band b) const step = 1000; // 1kHz steps else if(b == QRadioTuner::SW) step = 500; // 500Hz steps - return step; } @@ -217,14 +204,11 @@ QPair<int,int> S60RadioTunerControl::frequencyRange(QRadioTuner::Band band) cons TFrequency bottomFreq; TFrequency topFreq; int bandError = KErrNone; - if (m_tunerUtility){ bandError = m_tunerUtility->GetFrequencyBandRange(bottomFreq, topFreq); - if (!bandError) { + if (!bandError) return qMakePair<int,int>(bottomFreq.iFrequency, topFreq.iFrequency); - } } - return qMakePair<int,int>(0,0); } @@ -254,7 +238,6 @@ QRadioTuner::StereoMode S60RadioTunerControl::stereoMode() const void S60RadioTunerControl::setStereoMode(QRadioTuner::StereoMode mode) { TRACE("S60RadioTunerControl::setStereoMode" << qtThisPtr() << "mode" << mode); - m_stereoMode = mode; if (m_tunerUtility) { if (QRadioTuner::ForceMono == mode) @@ -281,7 +264,6 @@ int S60RadioTunerControl::signalStrength() const } } } - return m_signal; } @@ -293,7 +275,6 @@ int S60RadioTunerControl::volume() const void S60RadioTunerControl::setVolume(int volume) { TRACE("S60RadioTunerControl::setVolume" << qtThisPtr() << "volume" << volume); - if (m_audioPlayerUtility) { m_vol = volume; TInt error = m_audioPlayerUtility->SetVolume(volume/10); @@ -309,7 +290,6 @@ bool S60RadioTunerControl::isMuted() const void S60RadioTunerControl::setMuted(bool muted) { TRACE("S60RadioTunerControl::setMuted" << qtThisPtr() << "muted" << muted); - if (m_audioPlayerUtility && m_audioInitializationComplete) { m_muted = muted; m_audioPlayerUtility->Mute(m_muted); @@ -333,7 +313,6 @@ bool S60RadioTunerControl::isSearching() const void S60RadioTunerControl::cancelSearch() { TRACE("S60RadioTunerControl::cancelSearch" << qtThisPtr()); - m_tunerUtility->CancelRetune(); m_scanning = false; emit searchingChanged(false); @@ -342,7 +321,6 @@ void S60RadioTunerControl::cancelSearch() void S60RadioTunerControl::searchForward() { TRACE("S60RadioTunerControl::searchForward" << qtThisPtr()); - m_scanning = true; setVolume(m_vol); m_tunerUtility->StationSeek(CMMTunerUtility::ESearchDirectionUp); @@ -352,7 +330,6 @@ void S60RadioTunerControl::searchForward() void S60RadioTunerControl::searchBackward() { TRACE("S60RadioTunerControl::searchBackward" << qtThisPtr()); - m_scanning = true; setVolume(m_vol); m_tunerUtility->StationSeek(CMMTunerUtility::ESearchDirectionDown); @@ -390,16 +367,14 @@ QString S60RadioTunerControl::errorString() const void S60RadioTunerControl::MToTuneComplete(TInt aError) { TRACE("S60RadioTunerControl::MToTuneComplete" << qtThisPtr() << "error" << error); - if (aError == KErrNone) { m_scanning = false; m_audioPlayerUtility->Play(); if (!m_audioInitializationComplete) { TRAPD(initializeError, m_audioPlayerUtility->InitializeL(KAudioPriorityFMRadio, - TMdaPriorityPreference(KAudioPrefRadioAudioEvent))); - if (initializeError != KErrNone) { - m_radioError = QRadioTuner::OpenError; - } + TMdaPriorityPreference(KAudioPrefRadioAudioEvent))); + if (initializeError != KErrNone) + m_radioError = QRadioTuner::OpenError; } } } @@ -408,7 +383,6 @@ void S60RadioTunerControl::MTcoFrequencyChanged(const TFrequency& aOldFrequency, { TRACE("S60RadioTunerControl::MTcoFrequencyChanged" << qtThisPtr() << "oldFreq" << aOldFrequency.iFrequency << "newFreq" << aNewFrequency.iFrequency); - m_currentFreq = aNewFrequency.iFrequency; m_scanning = false; emit frequencyChanged(m_currentFreq); @@ -418,29 +392,23 @@ void S60RadioTunerControl::MTcoStateChanged(const TUint32& aOldState, const TUin { TRACE("S60RadioTunerControl::MTcoStateChanged" << qtThisPtr() << "oldState" << aOldState << "newState" << aNewState); - - if (aNewState == CMMTunerUtility::ETunerStateActive) { + if (aNewState == CMMTunerUtility::ETunerStateActive) m_apiTunerState = QRadioTuner::ActiveState; - } - if (aNewState == CMMTunerUtility::ETunerStatePlaying) { + if (aNewState == CMMTunerUtility::ETunerStatePlaying) m_apiTunerState = QRadioTuner::ActiveState; - } - if (aOldState != aNewState){ + if (aOldState != aNewState) emit stateChanged(m_apiTunerState); - } } void S60RadioTunerControl::MTcoAntennaDetached() { TRACE("S60RadioTunerControl::MTcoAntennaDetached" << qtThisPtr()); - // no actions } void S60RadioTunerControl::MTcoAntennaAttached() { TRACE("S60RadioTunerControl::MTcoAntennaAttached" << qtThisPtr()); - // no actions } @@ -448,7 +416,6 @@ void S60RadioTunerControl::FlightModeChanged(TBool aFlightMode) { TRACE("S60RadioTunerControl::FlightModeChanged" << qtThisPtr() << "enabled" << aFlightMode); - // no actions } @@ -464,16 +431,14 @@ void S60RadioTunerControl::MTsoForcedMonoChanged(TBool aForcedMono) { TRACE("S60RadioTunerControl::MTsoForcedMonoChanged" << qtThisPtr() << "forcedMono" << aForcedMono); - if (aForcedMono) { + if (aForcedMono) m_stereoMode = QRadioTuner::ForceMono; - } } void S60RadioTunerControl::MssoSignalStrengthChanged(TInt aNewSignalStrength) { TRACE("S60RadioTunerControl::MssoSignalStrengthChanged" << qtThisPtr() << "signalStrength" << aNewSignalStrength); - m_signal = aNewSignalStrength; emit signalStrengthChanged(m_signal); } @@ -482,7 +447,6 @@ void S60RadioTunerControl::MTapoInitializeComplete(TInt aError) { TRACE("S60RadioTunerControl::MTapoInitializeComplete" << qtThisPtr() << "error" << aError); - if (aError == KErrNone) { m_audioInitializationComplete = true; m_available = true; @@ -498,9 +462,5 @@ void S60RadioTunerControl::MTapoPlayEvent(TEventType aEvent, TInt aError, TAny* { TRACE("S60RadioTunerControl::MTapoPlayEvent" << qtThisPtr() << "event" << aEvent << "error" << aError); - // no actions } - - - diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.h b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.h index 4a1a61f11c..c6f2a0f160 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.h +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_31.h @@ -42,7 +42,6 @@ #ifndef S60RADIOTUNERCONTROL_H #define S60RADIOTUNERCONTROL_H -#include <QtCore/qobject.h> #include <qradiotunercontrol.h> #include <qradiotuner.h> #include <tuner.h> @@ -103,59 +102,52 @@ public: QRadioTuner::Error error() const; QString errorString() const; - //MMMTunerObserver + // MMMTunerObserver void MToTuneComplete(TInt aError); - //MMMTunerChangeObserver + // MMMTunerChangeObserver void MTcoFrequencyChanged(const TFrequency& aOldFrequency, const TFrequency& aNewFrequency); void MTcoStateChanged(const TUint32& aOldState, const TUint32& aNewState); void MTcoAntennaDetached(); void MTcoAntennaAttached(); void FlightModeChanged(TBool aFlightMode); - //MMMTunerStereoObserver + // MMMTunerStereoObserver void MTsoStereoReceptionChanged(TBool aStereo); void MTsoForcedMonoChanged(TBool aForcedMono); - //MMMSignalStrengthObserver + // MMMSignalStrengthObserver void MssoSignalStrengthChanged(TInt aNewSignalStrength); - //MMMTunerAudioPlayerObserver + // MMMTunerAudioPlayerObserver void MTapoInitializeComplete(TInt aError); void MTapoPlayEvent(TEventType aEvent, TInt aError, TAny* aAdditionalInfo); -private slots: - - private: bool initRadio(); CMMTunerUtility::TTunerBand getNativeBand(QRadioTuner::Band b) const; +private: mutable int m_error; CMMTunerUtility *m_tunerUtility; CMMTunerAudioPlayerUtility *m_audioPlayerUtility; - bool m_audioInitializationComplete; bool m_muted; bool m_isStereo; bool m_available; int m_step; int m_vol; - mutable int m_signal; + mutable int m_signal; bool m_scanning; bool forward; QRadioTuner::Band m_currentBand; qint64 m_currentFreq; - QRadioTuner::Error m_radioError; QRadioTuner::StereoMode m_stereoMode; QString m_errorString; - //caps meaning what the tuner can do. TTunerCapabilities m_currentTunerCapabilities; long m_tunerState; QRadioTuner::State m_apiTunerState; - }; #endif - diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.cpp b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.cpp index 65381fd368..801e688a7c 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.cpp +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.cpp @@ -48,9 +48,9 @@ S60RadioTunerControl::S60RadioTunerControl(QObject *parent) : QRadioTunerControl(parent) , m_error(0) - , m_radioUtility(NULL) - , m_fmTunerUtility(NULL) - , m_playerUtility(NULL) + , m_radioUtility(0) + , m_fmTunerUtility(0) + , m_playerUtility(0) , m_maxVolume(100) , m_audioInitializationComplete(false) , m_muted(false) @@ -80,15 +80,10 @@ S60RadioTunerControl::S60RadioTunerControl(QObject *parent) S60RadioTunerControl::~S60RadioTunerControl() { TRACE("S60RadioTunerControl::~S60RadioTunerControl" << qtThisPtr()); - - if (m_fmTunerUtility) { + if (m_fmTunerUtility) m_fmTunerUtility->Close(); - } - - if (m_playerUtility) { + if (m_playerUtility) m_playerUtility->Close(); - } - delete m_radioUtility; } @@ -119,15 +114,14 @@ bool S60RadioTunerControl::isBandSupported(QRadioTuner::Band b) const } void S60RadioTunerControl::changeSignalStrength() - { - +{ int currentSignal = signalStrength(); - if (currentSignal != m_previousSignal) - { + if (currentSignal != m_previousSignal) { m_previousSignal = currentSignal; emit signalStrengthChanged(currentSignal); - } } +} + void S60RadioTunerControl::setBand(QRadioTuner::Band b) { TRACE("S60RadioTunerControl::setBand" << qtThisPtr() << "band" << b); @@ -136,29 +130,27 @@ void S60RadioTunerControl::setBand(QRadioTuner::Band b) if (isBandSupported(tempBand)){ m_currentBand = b; emit bandChanged(m_currentBand); - } - else { - switch(tempBand) - { - case QRadioTuner::FM : - m_errorString = QString(tr("Band FM not Supported")); - break; - case QRadioTuner::AM : - m_errorString = QString(tr("Band AM not Supported")); - break; - case QRadioTuner::SW : - m_errorString = QString(tr("Band SW not Supported")); - break; - case QRadioTuner::LW : - m_errorString = QString(tr("Band LW not Supported")); - break; - case QRadioTuner::FM2 : - m_errorString = QString(tr("Band FM2 not Supported")); - break; - default : - m_errorString = QString("Band %1 not Supported").arg(tempBand); - break; - } + } else { + switch(tempBand) { + case QRadioTuner::FM : + m_errorString = QString(tr("Band FM not Supported")); + break; + case QRadioTuner::AM : + m_errorString = QString(tr("Band AM not Supported")); + break; + case QRadioTuner::SW : + m_errorString = QString(tr("Band SW not Supported")); + break; + case QRadioTuner::LW : + m_errorString = QString(tr("Band LW not Supported")); + break; + case QRadioTuner::FM2 : + m_errorString = QString(tr("Band FM2 not Supported")); + break; + default : + m_errorString = QString("Band %1 not Supported").arg(tempBand); + break; + } emit error(QRadioTuner::OutOfRangeError); } } @@ -172,10 +164,10 @@ int S60RadioTunerControl::frequency() const void S60RadioTunerControl::setFrequency(int frequency) { TRACE("S60RadioTunerControl::setFrequency" << qtThisPtr() << "frequency" << frequency); - m_currentFreq = frequency; m_fmTunerUtility->SetFrequency(m_currentFreq); } + int S60RadioTunerControl::frequencyStep(QRadioTuner::Band b) const { int step = 0; @@ -194,17 +186,12 @@ QPair<int,int> S60RadioTunerControl::frequencyRange(QRadioTuner::Band band) cons { int bottomFreq; int topFreq; - int bandError = KErrNone; TFmRadioFrequencyRange range; - - if (m_fmTunerUtility) { + if (m_fmTunerUtility) bandError = m_fmTunerUtility->GetFrequencyRange(range, bottomFreq, topFreq); - } - if (!bandError) { + if (!bandError) return qMakePair<int,int>(bottomFreq, topFreq); - } - return qMakePair<int,int>(0,0); } @@ -221,7 +208,6 @@ QRadioTuner::StereoMode S60RadioTunerControl::stereoMode() const void S60RadioTunerControl::setStereoMode(QRadioTuner::StereoMode mode) { TRACE("S60RadioTunerControl::setStereoMode" << qtThisPtr() << "mode" << mode); - if (m_fmTunerUtility) { if (QRadioTuner::ForceMono == mode) { m_fmTunerUtility->ForceMonoReception(true); @@ -242,18 +228,15 @@ int S60RadioTunerControl::signalStrength() const TInt maxSignalStrength; TInt currentSignalStrength; m_error = m_fmTunerUtility->GetMaxSignalStrength(maxSignalStrength); - if (m_error == KErrNone) { m_error = m_fmTunerUtility->GetSignalStrength(currentSignalStrength); if (m_error == KErrNone) { - if (currentSignalStrength == 0 || maxSignalStrength == 0) { + if (currentSignalStrength == 0 || maxSignalStrength == 0) return currentSignalStrength; - } m_signal = ((TInt64)currentSignalStrength) * 100 / maxSignalStrength; } } } - return m_signal; } @@ -265,20 +248,16 @@ int S60RadioTunerControl::volume() const void S60RadioTunerControl::setVolume(int volume) { TRACE("S60RadioTunerControl::setVolume" << qtThisPtr() << "volume" << volume); - int boundVolume = qBound(0, volume, 100); - if (m_vol == boundVolume ) return; - if (!m_muted && m_playerUtility) { m_vol = boundVolume; // Don't set volume until State is in Active State. if (state() == QRadioTuner::ActiveState ) { m_playerUtility->SetVolume(m_vol*m_volMultiplier); - } else { - m_volChangeRequired = TRUE; + m_volChangeRequired = true; emit volumeChanged(boundVolume); } } @@ -306,7 +285,6 @@ bool S60RadioTunerControl::isSearching() const void S60RadioTunerControl::cancelSearch() { TRACE("S60RadioTunerControl::cancelSearch" << qtThisPtr()); - m_fmTunerUtility->CancelStationSeek(); m_scanning = false; emit searchingChanged(false); @@ -351,9 +329,7 @@ bool S60RadioTunerControl::initRadio() m_radioError = QRadioTuner::ResourceError; return m_available; } - m_tunerControl = false; - m_available = true; return m_available; } @@ -374,20 +350,18 @@ QtMultimediaKit::AvailabilityError S60RadioTunerControl::availabilityError() con void S60RadioTunerControl::start() { TRACE("S60RadioTunerControl::start" << qtThisPtr()); - if (!m_tunerControl) { + if (!m_tunerControl) m_fmTunerUtility->RequestTunerControl(); - } else { + else m_playerUtility->Play(); - } m_signalStrengthTimer->start(3000); } void S60RadioTunerControl::stop() { TRACE("S60RadioTunerControl::stop" << qtThisPtr()); - if (m_playerUtility) { + if (m_playerUtility) m_playerUtility->Stop(); - } m_signalStrengthTimer->stop(); } @@ -410,10 +384,8 @@ void S60RadioTunerControl::MrpoStateChange(TPlayerState aState, TInt aError) m_apiTunerState = QRadioTuner::StoppedState; } else if (aState == ERadioPlayerPlaying) { m_apiTunerState = QRadioTuner::ActiveState; - //Apply pending volume changes. - if(m_volChangeRequired){ + if (m_volChangeRequired) setVolume(m_vol); - } } } else { m_apiTunerState = QRadioTuner::StoppedState; @@ -426,12 +398,10 @@ void S60RadioTunerControl::MrpoVolumeChange(TInt aVolume) TRACE("S60RadioTunerControl::MrpoVolumeChange" << qtThisPtr() << "volume" << aVolume); m_vol = (aVolume/m_volMultiplier); - if (!m_volChangeRequired) { + if (!m_volChangeRequired) emit volumeChanged(m_vol); - - } else { + else m_volChangeRequired = false; - } } void S60RadioTunerControl::MrpoMuteChange(TBool aMute) @@ -446,7 +416,6 @@ void S60RadioTunerControl::MrpoBalanceChange(TInt aLeftPercentage, TInt aRightPe { TRACE("S60RadioTunerControl::MrpoBalanceChange" << qtThisPtr() << "left" << aLeftPercentage << "right" << aRightPercentage); - // no actions } @@ -467,7 +436,6 @@ void S60RadioTunerControl::MrftoRequestTunerControlComplete(TInt aError) emit signalStrengthChanged(signal); m_signal = signal; } - } else if (aError == KFmRadioErrAntennaNotConnected) { m_radioError = QRadioTuner::OpenError; m_errorString = QString(tr("Antenna Not Connected")); @@ -480,7 +448,7 @@ void S60RadioTunerControl::MrftoRequestTunerControlComplete(TInt aError) m_radioError = QRadioTuner::OutOfRangeError; m_errorString = QString(tr("Frequency out of band range")); emit error(m_radioError); - }else{ + } else { m_radioError = QRadioTuner::OpenError; m_errorString = QString(tr("Unknown Error.")); emit error(m_radioError); @@ -540,7 +508,6 @@ void S60RadioTunerControl::MrftoFmTransmitterStatusChange(TBool aActive) { TRACE("S60RadioTunerControl::MrftoFmTransmitterStatusChange" << qtThisPtr() << "active" << aActive); - //no actions } @@ -548,37 +515,30 @@ void S60RadioTunerControl::MrftoAntennaStatusChange(TBool aAttached) { TRACE("S60RadioTunerControl::MrftoAntennaStatusChange" << qtThisPtr() << "attached" << aAttached); - - if (aAttached && m_tunerControl) { + if (aAttached && m_tunerControl) m_playerUtility->Play(); - } } void S60RadioTunerControl::MrftoOfflineModeStatusChange(TBool aOfflineMode) { TRACE("S60RadioTunerControl::MrftoOfflineModeStatusChange" << qtThisPtr() << "mode" << aOfflineMode); - } void S60RadioTunerControl::MrftoFrequencyRangeChange(TFmRadioFrequencyRange aBand /*, TInt aMinFreq, TInt aMaxFreq*/) { TRACE("S60RadioTunerControl::MrftoFrequencyRangeChange" << qtThisPtr() << "band" << aBand); - - if (aBand == EFmRangeEuroAmerica) { + if (aBand == EFmRangeEuroAmerica) setBand(QRadioTuner::FM); - } } void S60RadioTunerControl::MrftoFrequencyChange(TInt aNewFrequency) { TRACE("S60RadioTunerControl::MrftoFrequencyChange" << qtThisPtr() << "frequency" << aNewFrequency); - m_currentFreq = aNewFrequency; emit frequencyChanged(m_currentFreq); - int signal = signalStrength(); if (m_signal != signal) { emit signalStrengthChanged(signal); @@ -590,12 +550,10 @@ void S60RadioTunerControl::MrftoForcedMonoChange(TBool aForcedMono) { TRACE("S60RadioTunerControl::MrftoForcedMonoChange" << qtThisPtr() << "forcedMono" << aForcedMono); - - if (aForcedMono) { + if (aForcedMono) m_stereoMode = QRadioTuner::ForceMono; - } else { + else m_stereoMode = QRadioTuner::ForceStereo; - } emit stereoStatusChanged(!aForcedMono); } @@ -603,6 +561,5 @@ void S60RadioTunerControl::MrftoSquelchChange(TBool aSquelch) { TRACE("S60RadioTunerControl::MrftoSquelchChange" << qtThisPtr() << "squelch" << aSquelch); - // no actions } diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.h b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.h index 7081e5718b..9e331aa5a4 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.h +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunercontrol_since32.h @@ -255,17 +255,22 @@ public: */ void MrftoSquelchChange(TBool aSquelch); +Q_SIGNALS: + void error(QRadioTuner::Error) const; + +protected slots: + void changeSignalStrength(); + private: bool initRadio(); +private: mutable int m_error; - CRadioUtility* m_radioUtility; CRadioFmTunerUtility* m_fmTunerUtility; CRadioPlayerUtility* m_playerUtility; TInt m_maxVolume; TReal m_volMultiplier; - bool m_tunerControl; bool m_audioInitializationComplete; bool m_muted; @@ -278,18 +283,11 @@ private: bool m_scanning; QRadioTuner::Band m_currentBand; qint64 m_currentFreq; - QRadioTuner::Error m_radioError; QRadioTuner::StereoMode m_stereoMode; QString m_errorString; QRadioTuner::State m_apiTunerState; QTimer *m_signalStrengthTimer; - -Q_SIGNALS: - void error(QRadioTuner::Error) const; - -protected slots: - void changeSignalStrength(); }; #endif diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.cpp b/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.cpp index 87859b8f22..43e11010af 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.cpp +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.cpp @@ -42,19 +42,16 @@ #include "s60radiotunerservice.h" #include "s60mmtrace.h" - S60RadioTunerService::S60RadioTunerService(QObject *parent) : QMediaService(parent) { TRACE("S60RadioTunerService::S60RadioTunerService" << qtThisPtr()); - m_playerControl = new S60RadioTunerControl(this); } S60RadioTunerService::~S60RadioTunerService() { TRACE("S60RadioTunerService::~S60RadioTunerService" << qtThisPtr()); - delete m_playerControl; } @@ -72,6 +69,5 @@ void S60RadioTunerService::releaseControl(QMediaControl *control) { TRACE("S60RadioTunerService::releaseControl" << qtThisPtr() << "control" << control); - Q_UNUSED(control); } diff --git a/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.h b/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.h index bdc3e82749..331fb05e8c 100644 --- a/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.h +++ b/plugins/multimedia/symbian/mmf/radio/s60radiotunerservice.h @@ -42,8 +42,6 @@ #ifndef S60RADIOTUNERSERVICE_H #define S60RADIOTUNERSERVICE_H -#include <QtCore/qobject.h> - #include <qmediaservice.h> #ifdef TUNERLIBUSED diff --git a/plugins/multimedia/symbian/mmf/s60formatsupported.cpp b/plugins/multimedia/symbian/mmf/s60formatsupported.cpp index 5287649f81..f36746fd63 100644 --- a/plugins/multimedia/symbian/mmf/s60formatsupported.cpp +++ b/plugins/multimedia/symbian/mmf/s60formatsupported.cpp @@ -39,66 +39,45 @@ ** ****************************************************************************/ - #include "s60formatsupported.h" - - S60FormatSupported::S60FormatSupported() -{} +{ + +} S60FormatSupported::~S60FormatSupported() { - if (m_controllerparam) { - delete m_controllerparam; - m_controllerparam = NULL; - } + delete m_controllerparam; } QStringList S60FormatSupported::supportedPlayMimeTypesL() { - RArray<TUid> mediaIds; //search for both audio and video - RMMFControllerImplInfoArray iControllers; - m_controllerparam = CMMFControllerPluginSelectionParameters::NewL(); - m_playformatparam = CMMFFormatSelectionParameters::NewL(); - mediaIds.Append(KUidMediaTypeAudio); - mediaIds.Append(KUidMediaTypeVideo); - m_controllerparam->SetMediaIdsL(mediaIds, CMMFPluginSelectionParameters::EAllowOtherMediaIds); - m_controllerparam->SetRequiredPlayFormatSupportL(*m_playformatparam); - m_controllerparam->ListImplementationsL(iControllers); - CDesC8ArrayFlat* controllerArray = new (ELeave) CDesC8ArrayFlat(1); - for (TInt i = 0; i < iControllers.Count(); i++) { for (TInt j = 0; j < (iControllers[i]->PlayFormats()).Count(); j++) { const CDesC8Array& iarr = (iControllers[i]->PlayFormats()[j]->SupportedMimeTypes()); - TInt count = iarr.Count(); - for (TInt k = 0; k < count; k++) { TPtrC8 ptr = iarr.MdcaPoint(k); - HBufC8* n = HBufC8::NewL(ptr.Length()); - TPtr8 ptr1 = n->Des(); - ptr1.Copy((TUint8*) ptr.Ptr(), ptr.Length()); - controllerArray->AppendL(ptr1); } } } -// converting CDesC8Array to QStringList + // converting CDesC8Array to QStringList for (TInt x = 0; x < controllerArray->Count(); x++) { m_supportedplaymime.append(QString::fromUtf8( (const char*) (controllerArray->MdcaPoint(x).Ptr()), @@ -110,12 +89,9 @@ QStringList S60FormatSupported::supportedPlayMimeTypesL() QStringList tempvideo = m_supportedplaymime.filter(QString("video")); m_supportedplaymime.clear(); - m_supportedplaymime = tempaudio + tempvideo; - mediaIds.Close(); delete controllerArray; iControllers.ResetAndDestroy(); - return m_supportedplaymime; } diff --git a/plugins/multimedia/symbian/mmf/s60formatsupported.h b/plugins/multimedia/symbian/mmf/s60formatsupported.h index 89aa8639b0..4e1f588606 100644 --- a/plugins/multimedia/symbian/mmf/s60formatsupported.h +++ b/plugins/multimedia/symbian/mmf/s60formatsupported.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef S60FORMATSUPPORTED_H_ -#define S60FORMATSUPPORTED_H_ +#ifndef S60FORMATSUPPORTED_H +#define S60FORMATSUPPORTED_H #include <mmf/common/mmfcontrollerpluginresolver.h> #include <mmf/server/mmfdatasourcesink.hrh> @@ -57,9 +57,9 @@ public: QStringList supportedPlayMimeTypesL(); private: - CMMFFormatSelectionParameters* m_playformatparam; CMMFControllerPluginSelectionParameters* m_controllerparam; QStringList m_supportedplaymime; }; -#endif /* S60FORMATSUPPORTED_H_ */ + +#endif // S60FORMATSUPPORTED_H diff --git a/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.cpp b/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.cpp index 6074a6e5f0..21d084f22e 100644 --- a/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.cpp +++ b/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.cpp @@ -51,7 +51,7 @@ #endif #ifdef AUDIOSOURCEUSED #include "s60audiocaptureservice.h" -#endif /* AUDIOSOURCEUSED */ +#endif QStringList S60MediaServicePlugin::keys() const { @@ -65,7 +65,7 @@ QStringList S60MediaServicePlugin::keys() const #endif #ifdef AUDIOSOURCEUSED list << QLatin1String(Q_MEDIASERVICE_AUDIOSOURCE); -#endif /* AUDIOSOURCEUSED */ +#endif return list; } @@ -78,12 +78,11 @@ QMediaService* S60MediaServicePlugin::create(QString const& key) #ifdef AUDIOSOURCEUSED if (key == QLatin1String(Q_MEDIASERVICE_AUDIOSOURCE)) return new S60AudioCaptureService; -#endif /* AUDIOSOURCEUSED */ +#endif #if defined(TUNERLIBUSED) || defined(RADIOUTILITYLIBUSED) if (key == QLatin1String(Q_MEDIASERVICE_RADIO)) return new S60RadioTunerService; #endif - return 0; } diff --git a/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.h b/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.h index d0f203a7dc..b58fe29fdf 100644 --- a/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.h +++ b/plugins/multimedia/symbian/mmf/s60mediaserviceplugin.h @@ -39,11 +39,9 @@ ** ****************************************************************************/ - #ifndef S60SERVICEPLUGIN_H #define S60SERVICEPLUGIN_H -#include <QtCore/qobject.h> #include <qmediaservice.h> #include <qmediaserviceproviderplugin.h> #include "s60formatsupported.h" @@ -62,6 +60,7 @@ public: QtMultimediaKit::SupportEstimate hasSupport(const QString &mimeType, const QStringList& codecs) const; QStringList supportedMimeTypes() const; + private: mutable QStringList m_supportedmimetypes; }; diff --git a/plugins/multimedia/symbian/videooutput/s60videodisplay.cpp b/plugins/multimedia/symbian/videooutput/s60videodisplay.cpp index f3a2197f72..8c54c267fb 100644 --- a/plugins/multimedia/symbian/videooutput/s60videodisplay.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videodisplay.cpp @@ -46,13 +46,13 @@ #include <w32std.h> S60VideoDisplay::S60VideoDisplay(QObject *parent) -: QObject(parent) -, m_fullScreen(false) -, m_visible(true) -, m_aspectRatioMode(Qt::KeepAspectRatio) -, m_paintingEnabled(false) -, m_rotation(0.0f) -, m_hasContent(false) + : QObject(parent) + , m_fullScreen(false) + , m_visible(true) + , m_aspectRatioMode(Qt::KeepAspectRatio) + , m_paintingEnabled(false) + , m_rotation(0.0f) + , m_hasContent(false) { connect(this, SIGNAL(displayRectChanged(QRect, QRect)), this, SLOT(updateContentRect())); diff --git a/plugins/multimedia/symbian/videooutput/s60videowidget.cpp b/plugins/multimedia/symbian/videooutput/s60videowidget.cpp index 3804204e2c..a824a4594b 100644 --- a/plugins/multimedia/symbian/videooutput/s60videowidget.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videowidget.cpp @@ -56,11 +56,11 @@ using namespace S60VideoOutputUtils; const int NullOrdinalPosition = -1; S60VideoWidget::S60VideoWidget(QWidget *parent) -: QWidget(parent) -, m_pixmap(NULL) -, m_paintingEnabled(false) -, m_topWinId(0) -, m_ordinalPosition(NullOrdinalPosition) + : QWidget(parent) + , m_pixmap(0) + , m_paintingEnabled(false) + , m_topWinId(0) + , m_ordinalPosition(NullOrdinalPosition) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setPalette(QPalette(Qt::black)); diff --git a/plugins/multimedia/symbian/videooutput/s60videowidgetcontrol.cpp b/plugins/multimedia/symbian/videooutput/s60videowidgetcontrol.cpp index 37c35b773a..d5d045f667 100644 --- a/plugins/multimedia/symbian/videooutput/s60videowidgetcontrol.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videowidgetcontrol.cpp @@ -43,8 +43,8 @@ #include "s60videowidgetdisplay.h" S60VideoWidgetControl::S60VideoWidgetControl(QObject *parent) -: QVideoWidgetControl(parent) -, m_display(new S60VideoWidgetDisplay(this)) + : QVideoWidgetControl(parent) + , m_display(new S60VideoWidgetDisplay(this)) { connect(m_display, SIGNAL(nativeSizeChanged(QSize)), this, SIGNAL(nativeSizeChanged())); diff --git a/plugins/multimedia/symbian/videooutput/s60videowidgetdisplay.cpp b/plugins/multimedia/symbian/videooutput/s60videowidgetdisplay.cpp index 0208d546b7..dacdde9498 100644 --- a/plugins/multimedia/symbian/videooutput/s60videowidgetdisplay.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videowidgetdisplay.cpp @@ -47,8 +47,8 @@ #include <w32std.h> S60VideoWidgetDisplay::S60VideoWidgetDisplay(QObject *parent) -: S60VideoDisplay(parent) -, m_widget(new S60VideoWidget) + : S60VideoDisplay(parent) + , m_widget(new S60VideoWidget) { connect(this, SIGNAL(paintingEnabledChanged(bool)), m_widget, SLOT(setPaintingEnabled(bool))); connect(this, SIGNAL(fullScreenChanged(bool)), m_widget, SLOT(setFullScreen(bool))); diff --git a/plugins/multimedia/symbian/videooutput/s60videowindowcontrol.cpp b/plugins/multimedia/symbian/videooutput/s60videowindowcontrol.cpp index 0cc6e8ac4b..afd4366e41 100644 --- a/plugins/multimedia/symbian/videooutput/s60videowindowcontrol.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videowindowcontrol.cpp @@ -43,8 +43,8 @@ #include "s60videowindowdisplay.h" S60VideoWindowControl::S60VideoWindowControl(QObject *parent) -: QVideoWindowControl(parent) -, m_display(new S60VideoWindowDisplay(this)) + : QVideoWindowControl(parent) + , m_display(new S60VideoWindowDisplay(this)) { connect(m_display, SIGNAL(nativeSizeChanged(QSize)), this, SIGNAL(nativeSizeChanged())); diff --git a/plugins/multimedia/symbian/videooutput/s60videowindowdisplay.cpp b/plugins/multimedia/symbian/videooutput/s60videowindowdisplay.cpp index ccdc8c1d34..c6feddce5f 100644 --- a/plugins/multimedia/symbian/videooutput/s60videowindowdisplay.cpp +++ b/plugins/multimedia/symbian/videooutput/s60videowindowdisplay.cpp @@ -48,9 +48,9 @@ using namespace S60VideoOutputUtils; S60VideoWindowDisplay::S60VideoWindowDisplay(QObject *parent) -: S60VideoDisplay(parent) -, m_winId(0) -, m_bitmap(0) + : S60VideoDisplay(parent) + , m_winId(0) + , m_bitmap(0) { parent->setProperty("colorKey", Qt::transparent); } |